OSDN Git Service

* tree.c (build_range_type_1): Do not SET_TYPE_STRUCTURAL_EQUALITY
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-12-02  Eric Botcazou  <ebotcazou@adacore.com>
2
3         * tree.c (build_range_type_1): Do not SET_TYPE_STRUCTURAL_EQUALITY
4         for a non-shared type.
5
6 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
7
8         PR middle-end/45297
9         * tree-scalar-evolution.c (interpret_rhs_expr): Handle ADDR_EXPR
10         with MEM_REFs as POINTER_PLUS_EXPR.
11
12 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
13
14         * config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
15         config/sparc/linux.h, config/sparc/linux64.h: Remove comments
16         mentioning /lib/elf.
17
18 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
19
20         * config/bfin/bfin.h (LINK_SPEC): Remove %{b}.
21         * config/frv/frv.h (LINK_SPEC): Remove %{b}.
22         * config/i386/netware.h (LINK_SPEC): Remove %{b}.
23         * config/i386/nto.h (LINK_SPEC): Remove %{b}.
24         * config/lm32/uclinux-elf.h (LINK_SPEC): Remove %{b}.
25         * config/sol2.h (LINK_SPEC): Remove %{b}.
26         * config/svr4.h (LINK_SPEC): Remove %{b}.
27
28 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
29
30         * config/i386/freebsd.h (LINK_SPEC): Cut long comment.
31         * config/i386/linux.h (LINK_SPEC): Cut long comment.
32         * config/i386/netware.h (LINK_SPEC): Remove %{V}.
33         * config/m32r/linux.h (LINK_SPEC): Cut long comment.
34         * config/m68k/linux.h (LINK_SPEC): Cut long comment.
35         * config/sparc/linux.h (LINK_SPEC): Cut long comment.
36         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
37         * config/sparc/linux64.h (LINK_SPEC): Cut long comment.
38         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
39         * config/sparc/netbsd-elf.h (ASM_SPEC): Remove %{V} and
40         %{v:%{!V:-V}}.
41
42 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
43
44         * gcc.c (trad_capable_cpp, default_compilers): Don't handle
45         -ftraditional.
46
47 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
48
49         * config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
50         * config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
51         * config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
52         * config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
53         * config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
54         * config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
55         * config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
56         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
57         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
58         * config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
59         * config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
60         * config/sol2.h (ASM_SPEC): Don't handle -Wa,.
61         * config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
62         * config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
63         * config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
64         * config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
65         * config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
66         * config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.
67
68 2010-12-02  Paul Koning  <ni1d@arrl.net>
69
70         * config/pdp11/pdp11.c (output_jump): Map unsigned to signed
71         opcodes if CC_NO_OVERFLOW is set.
72         (notice_update_cc_on_set): Correct setting of CC0 as a side
73         effect; set CC_NO_OVERFLOW for cases where C flag is not
74         meaningful.
75
76 2010-12-02  Ian Lance Taylor  <iant@google.com>
77
78         * doc/install.texi (Configuration): Update default for
79         --with-boot-ldflags.
80
81 2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>
82
83         PR c/45062
84         * c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
85         !funcdef_flag.
86
87 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
88
89         PR tree-optimization/45199
90         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
91         (stores_zero_from_loop): Call
92         mem_write_stride_of_same_size_as_unit_type_p.
93         * tree-data-ref.h (stride_of_unit_type_p): New.
94         * tree-loop-distribution.c (generate_memset_zero): Simplified.
95         Call stride_of_unit_type_p.
96         (build_rdg_partition_for_component): Do not call
97         rdg_flag_similar_memory_accesses when
98         flag_tree_loop_distribute_patterns is set.
99
100 2010-12-02  Richard Guenther  <rguenther@suse.de>
101
102         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
103         sign-changing conversions for induction detection.
104
105 2010-12-02  Richard Guenther  <rguenther@suse.de>
106
107         PR tree-optimization/46723
108         * tree-vect-loop.c (get_initial_def_for_induction): Strip
109         conversions from the induction evolution and apply it to
110         the result instead.
111         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
112         assigns for induction defs.
113
114 2010-12-02  Richard Guenther  <rguenther@suse.de>
115
116         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
117         the case we need to split the edge and not the block.
118
119 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
120
121         DFA model for Core 2 and Core i7 scheduling.
122
123         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
124         * config/i386/i386.c (ix86_option_override_internal): Update entries
125         for Core 2 and Core i7.
126         (ix86_issue_rate): Set issue rate to 3 [be realistic].
127         * config/i386/i386.md: Include "core2.md".
128         (define_attr cpu): Add "corei7".
129
130 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
131
132         Define tuning for Core 2 and Core i7.
133
134         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
135         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
136         (m_CORE2): Replace with m_CORE2_{32,64}.
137         (m_CORE2I7{,_32,_64}): New macros.
138         (m_GENERIC32, m_GENERIC64): Update.
139         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
140         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
141         set m_CORE2I7_64 iff m_GENERIC64.
142         (processor_target_table): Use generic costs for Core 2 and Core i7.
143         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
144         (ix86_issue_rate): Remove entry for Core 2.
145         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
146         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
147         (TARGET_CORE2): Update.
148         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
149         (PROCESSOR_CORE2): Remove.
150
151 2010-12-02  Richard Guenther  <rguenther@suse.de>
152
153         * lto-streamer.h (LTO_major_version): Bump to 2.
154
155 2010-12-02  Richard Guenther  <rguenther@suse.de>
156
157         PR lto/44871
158         * gimple.c (canonical_type_hash_cache): New hashtable.
159         (gimple_type_hash): Make a wrapper around ...
160         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
161         (gimple_canonical_type_hash): Likewise.
162         (gtc_visit): Take a gtc_mode argument.
163         (gimple_types_compatible_p_1): Likewise. Do not compare struct
164         tag names or field names when computing canonical types.
165         (gimple_types_compatible_p): Adjust.
166         (visit): Take a gtc_mode argument.
167         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
168         names or field names when computing hashes of canonical types.
169         (gimple_register_canonical_type): Use gimple_canonical_type_hash
170         for the hash.
171         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
172         (free_gimple_type_tables): Free canonical_type_hash_cache.
173
174 2010-12-02  Richard Guenther  <rguenther@suse.de>
175             Ira Rosen  <irar@il.ibm.com>
176
177         PR tree-optimization/46663
178         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
179         FUNCTION_DECL exists and that it's a builtin.
180
181 2010-12-02  Jie Zhang  <jie@codesourcery.com>
182
183         PR middle-end/46674
184         * varasm.c (compute_visible_aliases): Handle user set
185         assembler name.
186
187 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
188
189         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
190         thinko regarding setting -mno-<xxx> debug switches.
191         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
192
193 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
194
195         * intl.c: Don't include tm.h.
196         * Makefile.in (intl.o): Don't depend on $(TM_H).
197
198 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
199
200         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
201         unused warning.
202         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
203
204 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
205
206         * graphite-sese-to-poly.c (analyze_drs): Removed.
207         (build_scop_drs): Do not call analyze_drs.
208         (analyze_drs_in_stmts): New.
209         (insert_stmts): New.
210         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
211         (insert_out_of_ssa_copy_on_edge): Same.
212         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
213         (rewrite_phi_out_of_ssa): Same.
214         (rewrite_cross_bb_scalar_dependence): Same.
215         (split_reduction_stmt): Move data references in the new basic blocks.
216         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
217
218 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
219
220         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
221
222 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
223
224         PR middle-end/45297
225         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
226         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
227         * graphite-poly.h (new_poly_bb): Update declaration.
228         (gbb_from_bb): Moved here...
229         (pbb_from_bb): New.
230         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
231         Removed.
232         (graphite_stmt_p): Removed.
233         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
234         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
235         new_poly_bb.
236         (build_scop_bbs_1): Do not pass in sbitmap reductions.
237         (build_scop_bbs): Same.
238         (gbb_from_bb): ... from here.
239         (add_conditions_to_constraints): Moved up.
240         (analyze_drs): New.
241         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
242         not contain data references.
243         (new_pbb_from_pbb): New.
244         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
245         block is split.
246         (rewrite_close_phi_out_of_ssa): Update call to
247         insert_out_of_ssa_copy_on_edge.
248         (rewrite_reductions_out_of_ssa): Now static.
249         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
250         (split_pbb): New.
251         (split_reduction_stmt): Call split_pbb.
252         (translate_scalar_reduction_to_array): Pass in the scop, do not
253         pass in the sbitmap reductions.
254         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
255         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
256         (rewrite_commutative_reductions_out_of_ssa): Same.
257         (build_poly_scop): Call build_scop_bbs,
258         rewrite_commutative_reductions_out_of_ssa,
259         rewrite_reductions_out_of_ssa, and
260         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
261         before scop_to_lst.
262         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
263         Removed declaration.
264         (rewrite_reductions_out_of_ssa): Same.
265         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
266         (build_scop_bbs): Same.
267         * graphite.c (graphite_transform_loops): Do not initialize reductions.
268         Do not call build_scop_bbs,
269         rewrite_commutative_reductions_out_of_ssa,
270         rewrite_reductions_out_of_ssa, and
271         rewrite_cross_bb_scalar_deps_out_of_ssa.
272         * sese.h (struct gimple_bb): Add field pbb.
273         (GBB_PBB): New.
274
275 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
276
277         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
278         New.
279         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
280         handle_scalar_deps_crossing_scop_limits.
281         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
282         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
283
284 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
285
286         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
287         when replacing a constant in an ADDR_EXPR.
288
289 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
290
291         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
292         for the stride.
293         (lst_do_strip_mine): Same.
294         (scop_do_strip_mine): Same.
295         * graphite-poly.c (apply_poly_transforms): Update call to
296         scop_do_strip_mine.
297         * graphite-poly.h (scop_do_strip_mine): Update declaration.
298
299 2010-12-01  Jan Hubicka  <jh@suse.cz>
300
301         * tree.c (build_common_builtin_nodes): Do not initialize
302         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
303         * builtins.c (expand_builtin_profile_func): Remove.
304         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
305         BUILT_IN_PROFILE_FUNC_EXIT.
306         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
307         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
308         * gimplify.c (gimplify_function_tree): Reorganize code calling
309         profiling functions.
310
311 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
312
313         * opts.c: Expand comment on tm.h include.
314
315 2010-12-01  Yao Qi  <yao@codesourcery.com>
316
317         * config/arm/predicates.md ("vfp_register_operand"): Return true for
318         VFP_D0_D7_REGS classes.
319
320 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
321
322         * common.opt (flag_stack_check): New Variable entry.
323         (fcompare-debug-second): Use Var.
324         * flags.h (flag_compare_debug, flag_stack_check): Remove.
325         * opts.c (flag_compare_debug): Remove.
326         (common_handle_option): Don't handle OPT_fcompare_debug_second.
327         Set opts->x_flag_stack_check for OPT_fstack_check_.
328         * toplev.c (flag_stack_check): Remove.
329
330 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
331
332         * common.opt (main_input_filename, main_input_basename,
333         main_input_baselength): New Variable entries.  From toplev.c.
334         * final.c (output_quoted_string): Move from toplev.c.
335         * output.h (output_quoted_string): Move from toplev.h.
336         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
337         access main_input_filename, main_input_baselength and
338         main_input_basename.
339         * targhooks.c: Include intl.h and opts.h.
340         (option_affects_pch_p, default_get_pch_validity): Move from
341         toplev.c.
342         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
343         Move from toplev.h.
344         * toplev.c (main_input_filename, main_input_basename,
345         main_input_baselength): Move to common.opt.
346         (output_quoted_string): Move to final.c.
347         (warn_deprecated_use): Move to tree.c.
348         (option_affects_pch_p, default_get_pch_validity,
349         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
350         * toplev.h (skip_leading_substring): Move to tree-dump.c.
351         (warn_deprecated_use): Move to tree.h.
352         (output_quoted_string): Move to output.h.
353         (main_input_filename, main_input_basename, main_input_baselength):
354         Move to common.opt.
355         (default_get_pch_validity, default_pch_valid_p): Move to
356         targhooks.c.
357         * tree-dump.c (skip_leading_substring): Move from toplev.h.
358         * tree.c (warn_deprecated_use): Move from toplev.c.
359         * tree.h (warn_deprecated_use): Move from toplev.h.
360         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
361         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
362         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
363         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
364         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
365         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
366         config/mcore/mcore.c, config/mep/mep.c,
367         config/microblaze/microblaze.c, config/mips/mips.c,
368         config/mmix/mmix.c, config/mn10300/mn10300.c,
369         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
370         config/picochip/picochip.c, config/s390/s390.c,
371         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
372         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
373         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
374         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
375         varasm.c, xcoffout.c: Don't include toplev.h.
376         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
377         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
378         varasm.o, xcoffout.o): Update dependencies.
379         * config/arm/t-arm (arm.o): Update dependencies.
380         * config/spu/t-spu-elf (spu.o): Update dependencies.
381
382 2010-12-01  Richard Guenther  <rguenther@suse.de>
383
384         PR tree-optimization/46730
385         * value-prof.c (gimple_ic): Always generate a separate merge BB.
386
387 2010-11-30  Ian Lance Taylor  <iant@google.com>
388
389         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
390         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
391         * config/i386/linux64.h (ASM_SPEC): Likewise.
392         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
393         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
394         * config/i386/vxworks.h (ASM_SPEC): Likewise.
395         * config/i386/x86-64.h (ASM_SPEC): Likewise.
396         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
397         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
398
399 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
400
401         * c-decl.c (finish_function): Call objc_finish_function in
402         Objective-C.
403         * c-typeck.c (convert_for_assignment): Do not call
404         objc_type_quals_match().
405
406 2010-11-30  Richard Guenther  <rguenther@suse.de>
407
408         PR tree-optimization/46722
409         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
410         operands as arguments.
411         (execute_optimize_widening_mul): Also handle power of two as
412         multiplication.
413
414 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
415
416         PR middle-end/46709
417         * cgraphunit.c (process_function_and_variable_attributes): Fix
418         cut'n'pasteo.
419
420 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
421
422         * hwint.c:  New.  Extracted from toplev.c.
423         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
424         Move from toplev.h.
425         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
426         Move to hwint.c.
427         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
428         Move to hwint.h.
429         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
430         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
431         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
432         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
433         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
434         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
435         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
436         tree-vrp.c: Don't include toplev.h.
437         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
438         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
439         toplev.h in generated output.
440         * Makefile.in (OBJS-common): Add hwint.o.
441         Dependencies for above files changed to remove toplev.h.
442         (hwint.o): New.
443         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
444         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
445         toplev.h.
446         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
447         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
448
449 2010-11-30  Richard Guenther  <rguenther@suse.de>
450
451         PR tree-optimization/46717
452         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
453         call.  Manually create EH edges for the direct call and update
454         target PHI nodes.
455
456 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
457
458         * diagnostic-core.h: Include bversion.h.
459         * toplev.h: Don't include input.h or bversion.h.
460         (parse_optimize_options): Don't declare here.
461         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
462         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
463         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
464         config/host-darwin.c, config/i386/host-cygwin.c,
465         config/i386/host-mingw32.c, config/i386/msformat-c.c,
466         config/i386/netware.c, config/i386/nwld.c,
467         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
468         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
469         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
470         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
471         config/score/score3.c, config/score/score7.c,
472         config/sh/symbian-base.c, config/sh/symbian-c.c,
473         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
474         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
475         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
476         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
477         graphite-blocking.c, graphite-clast-to-gimple.c,
478         graphite-dependences.c, graphite-flattening.c,
479         graphite-interchange.c, graphite-poly.c,
480         graphite-scop-detection.c, graphite.c, haifa-sched.c,
481         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
482         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
483         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
484         lto-opts.c, lto-section-in.c, lto-section-out.c,
485         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
486         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
487         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
488         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
489         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
490         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
491         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
492         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
493         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
494         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
495         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
496         include toplev.h.
497         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
498         toplev.h.  Dependencies for above files and c-family files changed
499         to remove $(TOPLEV_H) or toplev.h.
500         (C_TREE_H): Don't include $(TOPLEV_H).
501         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
502         bversion.h.
503         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
504         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
505         config/t-darwin, config/t-sol2,
506         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
507         Dependencies for above files changed to remove $(TOPLEV_H) or
508         toplev.h.
509
510 2010-11-30  Richard Guenther  <rguenther@suse.de>
511
512         PR lto/44986
513         * gcc.c (main): Use the first input with a compiler as infile
514         for link spec processing.
515
516 2010-11-30  Richard Guenther  <rguenther@suse.de>
517
518         PR lto/45949
519         * cgraphunit.c (ipa_passes): Stop after errors from
520         small IPA passes.
521
522 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
523
524         * gcc-plugin.h: Include coretypes.h.
525         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
526
527 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
528
529         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
530         * ggc-none.c (ggc_internal_alloc_zone_stat)
531         (ggc_internal_cleared_alloc_zone_stat): New.
532
533 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
534
535         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
536         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
537         (rs6000_emit_prologue): Don't set PIC register if
538         TARGET_SINGLE_PIC_BASE.
539         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
540         * doc/invoke.texi (msingle-pic-base): Document.
541
542 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
543
544         PR driver/46712
545         * exec-tool.in (id): New.
546         Check and export LT_RCU_$id instead of LT_RCU.
547
548 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
549
550         PR tree-optimization/46675
551         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
552         in offset calculation.
553
554 2010-11-29  Jan Hubicka  <jh@suse.cz>
555
556         * collect2.c (main): Do not imply verbose output with
557         LTO and linker plugin.
558
559 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
560
561         * dwarf2out.c (print_die): Print the address of the current DIE or
562         of any DIE referenced by the current one.
563
564 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
565
566         PR debug/46101
567         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
568         function.
569         (scope_die_for, gen_type_die_for_member): Replace uses of
570         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
571
572 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
573
574         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
575         (darwin_asm_declare_object_name): Correct spelling.
576         (darwin_output_aligned_bss): Likewise.
577
578 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
579             Mike Stump  <mrs@gcc.gnu.org>
580
581         PR target/26427
582         PR target/33120
583         PR testsuite/35710
584         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
585         (ASM_OUTPUT_LOCAL): Likewise.
586         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
587         (darwin_output_aligned_bss): Likewise.
588         (darwin_asm_output_aligned_decl_local): Likewise.
589         (darwin_asm_output_aligned_decl_common): Likewise.
590         (darwin_use_anchors_for_symbol_p): Likewise.
591         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
592         (TARGET_ASM_OUTPUT_ANCHOR): Define.
593         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
594         (DARWIN_SECTION_ANCHORS): Set to 1.
595         * config/darwin.c (emit_aligned_common): New var.
596         (darwin_init_sections): Check that the Darwin private zero-size section
597         marker is in range.
598         (darwin_text_section): Check for zero-sized objects.
599         (darwin_mergeable_string_section): Likewise.
600         (darwin_mergeable_constant_section): Likewise.
601         (machopic_select_section): Adjust to check for zero-sized objects.
602         Assert that OBJC meta data are non-zero sized.
603         (darwin_asm_declare_object_name): New.
604         (darwin_asm_declare_constant_name): Adjust for zero-sized
605         object sections.
606         (BYTES_ZFILL): Define.
607         (darwin_emit_weak_or_comdat): New.
608         (darwin_emit_local_bss): New.
609         (darwin_emit_common): New.
610         (darwin_output_aligned_bss): New.
611         (darwin_asm_output_aligned_decl_common): New.
612         (darwin_asm_output_aligned_decl_local): New.
613         (darwin_file_end): Disable subsections_via_symbols when section
614         anchoring is active.
615         (darwin_asm_output_anchor): Re-enable.
616         (darwin_use_anchors_for_symbol_p): New.
617         (darwin_override_options): Check for versions that can emit
618         aligned common.  Update usage of flags to current.
619         * config/darwin-sections.def: Update comments and flags for
620         non-anchor sections.  zobj_const_section, zobj_data_section,
621         zobj_bss_section, zobj_const_data_section: New.
622         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
623         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
624         (L2_MAX_OFILE_ALIGNMENT): Define.
625         (ASM_OUTPUT_ALIGNED_BSS): Define.
626         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
627         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
628         (SECTION_NO_ANCHOR): Define.
629         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
630         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
631
632 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
633
634         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
635         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
636         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
637         Conditionally define.
638         (GET_ENVIRONMENT): Poison.
639         * configure.ac: Don't test for mincore.
640         * configure: Regenerate.
641         * config.in: Regenerate.
642         * collect2-aix.c: Don't include <sys/mman.h>.
643         * collect2.c: Don't include <signal.h>.
644         (SIGCHLD): Don't define.
645         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
646         * config/alpha/alpha.c: Include "splay-tree.h" instead of
647         <splay-tree.h>.
648         * config/arm/arm.c (arm_target_help): Use getenv instead of
649         GET_ENVIRONMENT.
650         * config/avr/driver-avr.c: Don't include <stdlib.h>.
651         * config/frv/frv.c: Don't include <ctype.h>.
652         * config/host-darwin.c: Don't include <sys/mman.h>.
653         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
654         (MAP_FAILED): Don't define.
655         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
656         * config/host-solaris.c: Don't include <sys/mman.h>.
657         * config/i386/cygming.h: Don't include <stdio.h>.
658         * config/i386/driver-i386.c: Don't include <stdlib.h>.
659         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
660         * config/iq2000/iq2000.c: Don't include <signal.h>.
661         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
662         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
663         * config/mep/mep-pragma.c: Don't include <stdio.h>.
664         * config/microblaze/microblaze.c: Don't include <signal.h>.
665         * config/mips/mips.c: Don't include <signal.h>.
666         * config/rs6000/host-darwin.c: Don't include <signal.h>.
667         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
668         * defaults.h (GET_ENVIRONMENT): Don't define.
669         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
670         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
671         (SIGCHLD, MAP_FAILED, kill): Don't define.
672         (process_command): Use getenv instead of GET_ENVIRONMENT.
673         * genhooks.c: Don't include <string.h>.
674         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
675         <sys/types.h>.
676         (MAP_FAILED): Don't define.
677         * ggc-page.c Don't include <sys/mman.h>.
678         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
679         * ggc-zone.c: Don't include <sys/mman.h>.
680         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
681         * graph.c: Include "config.h" instead of <config.h>.
682         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
683         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
684         (SIGCHLD, kill): Don't define.
685         * mips-tfile.c: Don't include <signal.h>.
686         * opts.c: Don't include <signal.h> or <sys/resource.h>.
687         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
688         * passes.c: Don't include <signal.h>, <sys/resource.h> or
689         <sys/times.h>.
690         * sparseset.h: Don't include <assert.h>.
691         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
692         * tlink.c: Don't include "libiberty.h".
693         * toplev.c: Don't include <signal.h> or <sys/times.h>.
694         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
695         * tree-switch-conversion.c: Don't include <signal.h>.
696         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
697
698 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
699
700         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
701         c_parser_objc_try_catch_finally_statement for consistency with the
702         C++ parser.  Parse @catch(...) and pass NULL_TREE to
703         objc_begin_catch_clause() in that case.  Improved error recovery.
704         Reorganized code to be almost identical to
705         cp_parser_objc_try_catch_finally_statement.
706
707 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
708
709         PR tree-optimization/46621
710         * gimple.h: Don't include tm.h or hard-reg-set.h .
711         * Makefile.in (GIMPLE_H): Remove $(TM_H).
712
713         PR bootstrap/44756
714         * cppbuiltin.c: Include target.h .
715         (define_builtin_macros_for_type_sizes):
716         Use targetm.float_words_big_endian.
717
718 2010-11-27  Jan Hubicka  <jh@suse.cz>
719
720         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
721         and output cold_text_section_label.
722         (dwarf2out_init): Don't do that there.
723         (dwarf2out_finish): Handle cold section end label only if cold
724         section was used.
725
726 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
727
728         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
729         VLA variables.
730
731 2010-11-27  Richard Guenther  <rguenther@suse.de>
732
733         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
734         (gimple_assign_ssa_name_copy_p): Likewise.
735         (gimple_assign_unary_nop_p): Use is_gimple_assign.
736         (is_gimple_cast): Remove.
737         (gimple_assign_single_p): Move ...
738         * gimple.h (gimple_assign_single_p): ... here.
739         (is_gimple_cast): Remove.
740         (gimple_assign_rhs_code): Simplify.
741         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
742         instead of is_gimple_cast.
743         * ipa-type-escape.c (look_for_casts): Likewise.
744
745 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
746
747         * doc/options.texi (Enum, EnumValue): Document new record types.
748         (Enum): Document new option flag.
749         * opt-functions.awk
750         * optc-gen.awk: Handle enumerated option arguments.
751         * opth-gen.awk: Handle enumerated option arguments.
752         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
753         enum_value_to_arg): New.
754         (decode_cmdline_option): Handle enumerated arguments.
755         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
756         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
757         * opts.c (print_filtered_help, print_specific_help): Take
758         lang_mask arguments.
759         (print_filtered_help): Handle printing values of enumerated
760         options.  Print possible arguments for enumerated options.
761         (print_specific_help): Update call to print_filtered_help.
762         (common_handle_option): Update calls to print_specific_help.  Use
763         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
764         handle OPT_ffp_contract_, OPT_fexcess_precision_,
765         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
766         OPT_fira_region_ here.
767         * opts.h (enum cl_var_type): Add CLVC_ENUM.
768         (struct cl_option): Add var_enum.
769         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
770         struct cl_enum, cl_enums, cl_enums_count): New.
771         (CL_ERR_ENUM_ARG): Define.
772         (CL_ERR_NEGATIVE): Update value.
773         (enum_value_to_arg): Declare.
774         * common.opt (flag_ira_algorithm, flag_ira_region,
775         flag_fp_contract_mode, flag_excess_precision_cmdline,
776         default_visibility, flag_tls_default): Remove Variable entries.
777         (help_enum_printed): New Variable.
778         (fdiagnostics-show-location=): Use Enum.  Add associated
779         SourceInclude, Enum and EnumValue entries.
780         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
781         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
782         associated Enum and EnumValue entries.
783
784 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
785
786         PR target/46623
787         * config/microblaze/microblaze.c (microblaze_block_move_straight):
788         Use XALLOCAVEC.
789         (microblaze_option_override): Don't use C++ style comments.
790         (save_restore_insns): Remove unused variable base_offset.
791         (microblaze_expand_prologue): Remove unused variable insn.
792         (microblaze_secondary_reload): Adjust type to match target.h .
793         (microblaze_elf_in_small_data_p): Move declarations to start of block.
794         (microblaze_expand_move): Likewise.
795         * config/microblaze/microblaze.h (LARGE_INT):
796         Avoid signed / unsigned comparisons.
797         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
798         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
799         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
800
801 2010-11-26  Michael Matz  <matz@suse.de>
802
803         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
804
805         * passes.c (init_optimization_passes): Remove superfluous
806         copy-prop pass.
807
808 2010-11-26  Richard Guenther  <rguenther@suse.de>
809
810         PR lto/46648
811         * gimple.c (gtc_visit): Do not return true for members of an
812         SCC still being processed but the current lattice value of
813         the member.  Treat SCC members comparison state as lattice,
814         starting at equal, eventually dropping to unequal.
815         (gimple_types_compatible_p_1): Likewise.
816
817 2010-11-26  Richard Guenther  <rguenther@suse.de>
818
819         PR middle-end/46559
820         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
821         for location list processing.
822
823 2010-11-26  Richard Guenther  <rguenther@suse.de>
824
825         PR lto/46560
826         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
827         flags manually.
828
829 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
830
831         * config/s390/s390.c (print_operand_address): Replace assert with
832         error message.
833         (print_operand): Replace assertions, gcc_unreachable and
834         fatal_insn with error messages.
835
836 2010-11-26  Richard Guenther  <rguenther@suse.de>
837
838         PR tree-optimization/46665
839         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
840
841 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
842
843         * config/arm/arm.c (arm_option_override): enable loop array
844         prefetching at -O3 for suitable targets, and configure params.
845         * config/arm/arm-protos.h (struct tune_params): Add fields for
846         configuring loop array prefetching.
847
848 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
849
850         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
851
852 2010-11-26  Richard Guenther  <rguenther@suse.de>
853
854         PR tree-optimization/46664
855         * tree-affine.c (aff_combination_to_tree): Add rest last.
856
857 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
858
859         PR target/33637
860         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
861         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
862         * configure: Regenerated.
863         * exec-tool.in: Not quoting command, may have extra arguments.
864
865 2010-11-26  Richard Guenther  <rguenther@suse.de>
866
867         PR tree-optimization/46528
868         PR debug/46338
869         * profile.c (branch_prob): Do not split blocks based on locations
870         from debug statements.
871
872 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
873
874         PR middle-end/46647
875         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
876         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
877
878         PR bootstrap/45700
879         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
880         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
881         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
882         build6_loc): Define.
883         * fold-const.c (protected_set_expr_location_unshare): New inline.
884         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
885         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
886         pedantic_omit_one_operand_loc, omit_two_operands_loc,
887         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
888         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
889         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
890         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
891         instead of buildN followed by SET_EXPR_LOCATION or
892         protected_set_expr_location.
893         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
894         Use buildN_stat_loc instead of buildN_stat followed by
895         SET_EXPR_LOCATION.
896
897 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
898
899         * Makefile.in (s-tm-texi): Remove spurous tab.
900
901 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
902
903         PR debug/46258
904         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
905         debug stmts.
906
907 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
908
909         * toplev.c (finalize): Add no_backend parameter.  Don't finish
910         passes when preprocessing only.  Adjust...
911         (do_compile): ... caller.
912
913 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
914
915         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
916         flag_unsafe_math_optimizations.
917         (negsf2): Likewise.
918         Move fnegabs related patterns together.  Only use fmpynfadd instruction
919         to negate a multiply if !flag_signed_zeros is true.
920
921 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
922
923         * gengtype-state.c (read_state_structures): Initialize "previous".
924
925 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
926             Jeremie Salvucci  <jeremie.salvucci@free.fr>
927
928         * gengtype-state.c: Add new file.
929
930         * gengtype.c (type count): New variable.
931         (new_structure, find_param_structure, create_pointer)
932         (create_array): Use it to set state_number in types.
933         (dump_everything): Improve comment.
934         (main): Call read_state and write_state. Print type_count.
935
936         * gengtype.h (type_lineloc): New function.
937         (read_state, write_state): New declarations.
938
939         * Makefile.in (GENGTYPE_FLAGS): New variable.
940         (s-gtype): Run gengtype twice and generate gtype.state.
941         (build/gengtype-state.o): New rule.
942         (build/gengtype$(build_exeext)): Link gengtype-state.o.
943         (mostlyclean): Update comment.  Remove gtype.state.
944
945 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
946
947         PR middle-end/46637
948         * combine.c (try_combine): When substing i2dest for i2src, pass
949         1 as last argument even if
950         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
951
952 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
953
954         PR middle-end/46647
955         * builtins.c (target_char_cast): Check INTEGER_CST instead of
956         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
957
958 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
959
960         * target.def (supports_split_stack, except_unwind_info): Take
961         gcc_options parameters.
962         * targhooks.c (default_except_unwind_info,
963         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
964         gcc_options parameters.
965         * targhooks.h (default_except_unwind_info,
966         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
967         prototypes.
968         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
969         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
970         Document that hooks must not be modified.
971         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
972         * doc/tm.texi: Regenerate.
973         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
974         &global_options to targetm.except_unwind_info.
975         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
976         dwarf2out_begin_prologue, dwarf2out_frame_init,
977         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
978         &global_options to targetm.except_unwind_info.
979         * except.c (init_eh, finish_eh_generation,
980         gate_convert_to_eh_region_ranges,
981         output_one_function_exception_table): Pass &global_options to
982         targetm.except_unwind_info.
983         * expr.c (build_personality_function): Pass &global_options to
984         targetm.except_unwind_info.
985         * function.c (expand_function_end): Pass &global_options to
986         targetm.except_unwind_info.
987         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
988         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
989         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
990         and targetm.supports_split_stack.  Remove assertions about opts
991         and opts_set.
992         (common_handle_option): Remove assertions about opts, opts_set and dc.
993         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
994         &global_options to targetm.except_unwind_info.
995         * tree.c (build_common_builtin_nodes: Pass &global_options to
996         targetm.except_unwind_info.
997         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
998         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
999         thumb1_expand_prologue, thumb1_output_function_prologue,
1000         arm_unwind_emit, arm_output_fn_unwind): Update calls to
1001         arm_except_unwind_info.
1002         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
1003         parameter.
1004         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
1005         parameter.
1006         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
1007         ia64_reorg, ia64_asm_unwind_emit): Update calls to
1008         ia64_except_unwind_info.
1009         * config/pa/pa.c (pa_option_override): Pass &global_options to
1010         targetm.except_unwind_info.
1011         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
1012         Remove prototype.
1013
1014 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
1015
1016         * cgraphunit.c (process_function_and_variable_attributes):
1017         Mark dllexport-ed function/variables as needed.
1018         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
1019         as externally visible.
1020
1021 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
1022
1023         PR rtl-optimization/46585
1024         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
1025         (vinsn_init): Skip computation of dependencies for local NOPs.
1026         (vinsn_delete): Don't try to free regsets for local NOPs.
1027         (setup_nop_and_exit_insns): Change definition of nop_pattern.
1028
1029 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
1030
1031         PR rtl-optimization/46602
1032         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
1033         (tidy_control_flow): Here.
1034
1035 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
1036             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1037
1038         PR bootstrap/45888
1039         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
1040         Fix target.def pathname in timestamp comparison.
1041
1042 2010-11-24  Richard Henderson  <rth@redhat.com>
1043
1044         * config/ia64/predicates.md (pmpyshr_operand): New.
1045         * config/ia64/ia64.c (ia64_expand_unpack): New.
1046         (ia64_expand_widen_mul_v4hi): New.
1047         (ia64_expand_widen_sum): Update for pattern renames.
1048         (ia64_expand_dot_prod_v8qi): Likewise.
1049         * config/ia64/ia64-protos.h: Update.
1050         * config/ia64/vect.md (vecwider): New mode attribute.
1051         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
1052         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
1053         (pmpyshr2, pmpyshr2_u): New.
1054         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
1055         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
1056         (mulv2si3): New.
1057         (vec_pack_ssat_v4hi): Rename from pack2_sss.
1058         (vec_pack_usat_v4hi): Rename from *pack2_uss.
1059         (vec_pack_ssat_v2si): Rename from pack4_sss.
1060         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
1061         vec_select operation.
1062         (vec_interleave_highv8qi): Similarly.
1063         (mux1_alt): Rename from *mux1_alt.
1064         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
1065         (vec_interleave_lowv4hi): Rename from unpack2_l.
1066         (vec_interleave_highv4hi): Rename from unpack2_h.
1067         (mix2_r): Rename from *mix2_r.
1068         (mix2_l): Similarly.
1069         (vec_extract_evenodd_helper): New.
1070         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
1071         (vec_interleave_lowv2si): Rename from *unpack4_l.
1072         (vec_interleave_highv2si): Rename from *unpack4_h.
1073         (vec_extract_evenv2si, vec_extract_oddv2si): New.
1074         (vec_interleave_lowv2sf): Rename from fmix_r.
1075         (vec_interleave_highv2sf): Rename from *fmix_l.
1076         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
1077         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
1078         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
1079         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
1080
1081 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1082
1083         * targhooks.c (default_except_unwind_info): Remove
1084         MUST_USE_SJLJ_EXCEPTIONS case.
1085         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1086         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1087         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1088         * doc/tm.texi: Regenerate.
1089         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
1090
1091 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1092
1093         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
1094         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
1095         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
1096         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
1097         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
1098
1099 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1100
1101         PR target/46519
1102         * config/i386/i386.c (ix86_expand_call): Don't check
1103         TREE_THIS_VOLATILE.
1104
1105 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1106
1107         PR target/46519
1108         * config/i386/i386.c (upper_128bits_state): New.
1109         (block_info_def): Remove upper_128bits_set and done.  Add state,
1110         referenced, count, processed and rescanned.
1111         (check_avx256_stores): Updated.
1112         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
1113         Call note_stores only if needed.  Set referenced and count.
1114         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
1115         (rescan_move_or_delete_vzeroupper): New.
1116         (move_or_delete_vzeroupper):  Process and rescan all all basic
1117         blocks instead of predecessor blocks of all exit points.
1118         (ix86_option_override_internal): Enable vzeroupper optimization
1119         only for -fexpensive-optimizations and not optimizing for size.
1120         (use_avx256_p): Removed.
1121         (init_cumulative_args): Don't set use_avx256_p.
1122         (ix86_function_arg): Likewise.
1123         (ix86_expand_move): Likewise.
1124         (ix86_expand_vector_move_misalign): Likewise.
1125         (ix86_local_alignment): Likewise.
1126         (ix86_minimum_alignment): Likewise.
1127         (ix86_expand_epilogue): Don't check use_avx256_p when generating
1128         vzeroupper.
1129         (ix86_expand_call): Likewise.
1130
1131         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
1132         and use_avx256_p.  Add rescan_vzeroupper_p.
1133
1134 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1135
1136         * toplev.c: Include <signal.h>.
1137
1138 2010-11-24  Richard Guenther  <rguenther@suse.de>
1139
1140         PR lto/43218
1141         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
1142         conflicting function signatures as non-inlineable.
1143
1144 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1145
1146         PR rtl-optimization/46614
1147         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
1148          (deps_analyze_insn): Mark JUMP_INSNs in
1149         last_pending_memory_flush that weren't added through
1150         flush_pending_lists with NON_FLUSH_JUMP_KIND.
1151         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
1152         on INSN_LIST instead of JUMP_P check on its operand.
1153         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
1154
1155 2010-11-24  Richard Guenther  <rguenther@suse.de>
1156
1157         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
1158
1159 2010-11-24  Richard Guenther  <rguenther@suse.de>
1160
1161         PR lto/46606
1162         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
1163         a FIELD_DECL that is type correct issue a warning and fixup
1164         with a VIEW_CONVERT_EXPR.
1165
1166 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
1167
1168         * doc/invoke.texi (Options for Debugging Your Program or GCC):
1169         Explain static numbering of dump files.
1170
1171 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1172
1173         * common.opt (user_vect_verbosity_level): New Variable entry.
1174         (ftree-vectorizer-verbose=): Mark as UInteger.
1175         * flag-types.h (enum vect_verbosity_levels): Move from enum
1176         verbosity_levels in tree-vectorizer.h.
1177         * opts.c: Don't include tree.h.
1178         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
1179         gcc_options parameter; take integer option argument.
1180         (common_handle_option): Update call to vect_set_verbosity_level.
1181         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
1182         (vect_set_verbosity_level): Move to opts.c.
1183         (vect_verbosity_level, vect_print_dump_info): Update for change of
1184         enum name.
1185         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
1186         (vect_print_dump_info): Update for change of enum name.
1187         * tree.h (vect_set_verbosity_level): Remove.
1188         * Makefile.in (opts.o): Update dependencies.
1189
1190 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1191
1192         PR middle-end/46629
1193         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
1194         instead of insn with any_condjump_p.
1195
1196 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
1197
1198         * config/mips/loongson.md: Change the description comment of the file
1199         and update the copyright years.
1200         (define_insn "<u>div<mode>3): Add loongson3a support.
1201         (define_insn "<u>mod<mode>3"): Likewise.
1202         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
1203         mul<mode>3_mul3_loongson.
1204         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
1205         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
1206
1207 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1208
1209         * common.opt (initial_max_fld_align, flag_debug_asm,
1210         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
1211         flag_print_asm_name, graph_dump_format, help_printed,
1212         help_columns, flag_opts_finished): New Variable entries.
1213         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
1214         frandom-seed=): Mark deferred.
1215         (fsched-verbose=): Use UInteger and Var.
1216         * flags.h (set_struct_debug_option, flag_print_asm_name,
1217         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
1218         graph_dump_format): Don't declare here.
1219         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
1220         * opts-global.c: Include dbgcnt.h and debug.h.
1221         (decode_options): Pass location to finish_options.
1222         (handle_common_deferred_options): Check flag_dump_all_passed.
1223         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
1224         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
1225         OPT_fstack_limit.
1226         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
1227         (set_struct_debug_option): Add location_t parameter.  Update
1228         recursive call.  Use error_at.
1229         (default_options_optimization): Use error_at.
1230         (finish_options): Add location_t parameter.  Use
1231         opts->x_flag_opts_finished instead of first_time_p.  Use
1232         opts->x_optimize instead of optimize.  Use error_at.  Pass
1233         location to inform.
1234         (print_filtered_help): Use opts->x_help_printed to track what
1235         options have been printed.
1236         (print_specific_help): Use opts->x_help_columns to track number of
1237         columns.
1238         (common_handle_option): Pass locations and gcc_options pointers to
1239         more functions.  Use warning_at instead of fnotice and warning.
1240         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
1241         OPT_fdebug_prefix_map_.  Use error_at.  Set
1242         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
1243         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
1244         OPT_fsched_verbose_.
1245         (handle_param): Add location_r parameter.  Use error_at.
1246         (set_debug_level): Add location_r parameter.  Use error_at and
1247         warning_at.
1248         (setup_core_dumping): Add diagnostic_context parameter.
1249         (decode_d_option): Add gcc_options, location_t and
1250         diagnostic_context parameters and use them instead of global
1251         state.  Use warning_at.
1252         (enable_warning_as_error): Use error_at.
1253         * opts.h (finish_options): Update prototype.
1254         (set_struct_debug_option): Declare here.
1255         * rtl.h (fix_sched_param): Remove.
1256         * stor-layout.c (initial_max_fld_align): Remove.
1257         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
1258         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
1259         (process_options): Set maximum_field_alignment.
1260         * tree.h (initial_max_fld_align) Don't declare here.
1261         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1262
1263 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1264
1265         * flag-types.h (struct visibility_flags): Don't declare here.
1266         * flags.h (strip_off_ending, fast_math_flags_set_p,
1267         fast_math_flags_struct_set_p): Declare here.
1268         (visibility_options): Don't declare here.
1269         * opts-common.c (option_enabled, get_option_state): Move from
1270         opts.c.
1271         * opts-global.c: Include diagnostic.h instead of
1272         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
1273         and toplev.h.
1274         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1275         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1276         print_ignored_options, unknown_option_callback,
1277         post_handling_callback, lang_handle_option, add_input_filename,
1278         read_cmdline_options, initial_lang_mask, init_options_once,
1279         decode_cmdline_options_to_array_default_mask,
1280         set_default_handlers, decode_options): Move from opts.c.
1281         (print_ignored_options): Use warning_at instead of saving and
1282         restoring input_location.
1283         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
1284         instead of expr.h.  Don't include langhooks.h, except.h or
1285         lto-streamer.h.  Add more comments on includes.
1286         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
1287         toplev.c.
1288         (visibility_options): Move to c-family/c-common.c.
1289         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1290         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1291         print_ignored_options, unknown_option_callback,
1292         post_handling_callback, lang_handle_option, add_input_filename,
1293         read_cmdline_options, initial_lang_mask, init_options_once,
1294         decode_cmdline_options_to_array_default_mask,
1295         set_default_handlers, decode_options): Move to opts-global.c.
1296         (target_handle_option, default_options_optimization,
1297         finish_options, common_handle_option): Remove static.
1298         (option_enabled, get_option_state): Move to opts-common.c.
1299         * opts.h (common_handle_option, target_handle_option,
1300         finish_options, default_options_optimization): Declare.
1301         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
1302         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
1303         opts.c.
1304         * toplev.h (strip_off_ending, decode_d_option,
1305         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
1306         declare here.
1307         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1308
1309 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
1310
1311         PR driver/42690
1312         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
1313         options, replace by call of pass-through-libs spec function to process
1314         link_gcc_c_sequence spec.
1315         (lto_libgcc_spec): Delete variable.
1316         (static_specs[]): Remove related entry.
1317         (static_spec_functions[]): Add new entry for pass-through-libs.
1318         (main): Don't generate deleted lto_libgcc_spec.
1319         (pass_through_libs_spec_func): New function to implement the new
1320         pass-through-libs spec function.
1321         * doc/invoke.texi (pass-through-libs): Document new spec function.
1322
1323 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1324
1325         * doc/options.texi (Warning, Optimization): Document.
1326
1327 2010-11-23  Jan Hubicka  <jh@suse.cz>
1328
1329         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
1330         (tree_decl_with_vis): Add implicit_section_name_p.
1331         * targhooks.h (default_function_section): Declare.
1332         * target.def (function_section): New hook.
1333         * defaults.h (HOT_TEXT_SECTION_NAME,
1334         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1335         * predict.c (choose_function_section): Remove.
1336         (estimate_bb_frequencies): Do not use choose_function_section.
1337         * coretypes.h (enum node_frequency): Move here from cgraph.h
1338         * cgraph.h (enum node_frequency): Remove.
1339         * varasm.c (initialize_cold_section_name, unlikely_text_section,
1340         unlikely_text_section_p): Remove.
1341         (named_subsection_entry): New structure.
1342         (get_text_section): New function.
1343         (default_function_section): New function.
1344         (function_section_1): Break out from ...; handle profile info.
1345         (function_section): ... here.
1346         (unlikely_text_section): Remove.
1347         (unlikely_text_section_p): Use function_section_1.
1348         (assemble_start_function): Do not initialize cold section.
1349         (default_section_type_flags): Do not special case cold subsection.
1350         (switch_to_section): Likewise.
1351         * output.h (get_text_section): Define.
1352         * config/i386/winnt.c: Do not special case cold section.
1353         * config/darwin-protos.h (darwin_function_section): Declare.
1354         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
1355         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1356         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
1357         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1358         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
1359         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
1360         * config/darwin.c (machopic_select_section): Use
1361         darwin_function_section.
1362         (darwin_function_section): New function.
1363         * config/darwin.h (HOT_TEXT_SECTION_NAME,
1364         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1365         (TARGET_ASM_FUNCTION_SECTION): Define.
1366         * system.h (HOT_TEXT_SECTION_NAME,
1367         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
1368
1369 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
1370
1371         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
1372         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
1373
1374 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
1375
1376         PR middle-end/46499
1377         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
1378         following unconditional jumps.
1379
1380 2010-11-23  Richard Guenther  <rguenther@suse.de>
1381
1382         * doc/md.texi (386 constraints): Clarify A constraint documentation.
1383
1384 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1385             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1386
1387         * gengtype.c (enum typekind, struct options)
1388         (struct nested_ptr_data, struct pair, NUM_PARAM)
1389         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
1390         Move to gengtype.h.
1391         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
1392         Remove static, add zero state_number.
1393         (typedefs, structures, param_structs, variables): Remove static.
1394         (create_option): Remove.
1395         (create_string_option, create_type_option, create_nested_option):
1396         New functions.
1397         (create_nested_ptr_option): Use create_nested_option.
1398         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
1399         new create*option functions.
1400         (process_gc_options): Adjust for discriminated option.
1401         (output_mangled_typename): Handle TYPE_NONE.
1402         (walk_type): Test option kinds.
1403         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
1404         (write_func_for_structure, write_type, write_local, write_root)
1405         (write_roots, note_def_vec, dump_options): Adjust for
1406         discriminated option.
1407
1408         * gengtype.h (typedefs, structures, param_structs, variables
1409         enum typekind): Move from gengtype.c
1410         (enum option_kind): New discriminating enumeration.
1411         (struct options): Becomes discriminated.
1412         (struct nested_ptr_data): Nove from gengtype.c
1413         (create_string_option, create_type_option, create_nested_option)
1414         (create_nested_ptr_option): New functions
1415         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
1416         (UNION_OR_STRUCT_P): Move from gengtype.c
1417
1418         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
1419         discriminated options.
1420
1421 2010-11-23  Richard Guenther  <rguenther@suse.de>
1422
1423         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
1424         twice.  Avoid re-allocating the ops vector all the time.
1425
1426 2010-11-23  Richard Guenther  <rguenther@suse.de>
1427
1428         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
1429         is_gimple_min_invariant, group tree code checks to allow
1430         combining them.
1431         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
1432         of is_gimple_reg.
1433
1434 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
1435
1436         * config.gcc (sparc*-*-*): Reorder.
1437
1438 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1439
1440         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
1441         Remove ENABLE_CHECKING around DBGPRINTF.
1442
1443 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
1444
1445         * common.opt (exit_after_options, write_symbols, debug_info_level,
1446         use_gnu_debug_info_extensions): New Variable entries.
1447         (fprofile-dir=): Use Var.
1448         * flag-types.h (enum debug_info_level): Rename to enum
1449         debug_info_levels.
1450         * flags.h (write_symbols, debug_info_level,
1451         use_gnu_debug_info_extensions): Remove declarations.
1452         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
1453         (set_struct_debug_option): Make static variables const.
1454         (use_gnu_debug_info_extensions): Remove.
1455         (set_debug_level, print_filtered_help, print_specific_help,
1456         fast_math_flags_set_p): Take gcc_options parameters and use them
1457         in place of global variables.
1458         (print_filtered_help): Make new_help non-static.
1459         (print_specific_help): Update call to print_filtered_help.
1460         (common_handle_option): Update calls to print_specific_help.  Use
1461         gcc_options structure for more settings.  Make --help table
1462         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
1463         set_debug_level.
1464         * toplev.c (profile_data_prefix): Remove.
1465         * toplev.h (profile_data_prefix, exit_after_options): Remove
1466         declarations.
1467         (fast_math_flags_set_p): Update prototype.
1468         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
1469         Update call to fast_math_flags_set_p.
1470
1471 2010-11-22  Richard Henderson  <rth@redhat.com>
1472
1473         PR target/46434
1474         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
1475         return the address register extracted.
1476         (crx_decompose_address): Update the extracted address register.
1477
1478 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
1479
1480         PR driver/43335
1481         * gcc.c (main): Don't crash when lto-wrapper program is not found.
1482
1483 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
1484
1485         PR target/46608
1486         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
1487         * config/picochip/picochip-protos.h: Don't include "target.h" .
1488         (picochip_secondary_reload): Don't declare.
1489
1490         PR target/46613
1491         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
1492         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
1493         static.
1494
1495 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
1496
1497         PR bootstrap/46609
1498         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
1499         (source_dot_c_frul): Likewise.
1500
1501 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
1502
1503         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
1504
1505 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
1506
1507         PR bootstrap/44970
1508         * Makefile.in (fwprop.o) Add sparseset.h.
1509         * fwprop.c: Include sparseset.h
1510         (struct find_occurrence_data, find_occurrence_callback,
1511         find_occurrence): Remove.
1512         (active_defs, active_defs_check, register_active_defs,
1513         update_df_init, update_uses): New.
1514         (update_df): Rewrite.
1515         (try_fwprop_subst, forward_propagate_asm): Add calls to
1516         update_df_init and update_df.
1517         (fwprop_init): Allocate active_defs and active_defs_check.
1518         (fwprop_done): Free them.
1519         (fwprop, fwprop_addr): Adjust comments.
1520         * df.h (df_uses_create): Declare.
1521         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
1522         (df_ref_create): Return result of df_ref_create_structure directly.
1523         (df_ref_create_structure): Call df_install_ref_incremental when
1524         no collection_rec is passed.
1525         (df_ref_record): Do not create multiword hard reg info when no
1526         collection_rec is passed.
1527         (df_uses_create): New.
1528
1529 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1530
1531         PR middle-end/43057
1532         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
1533         setting location.
1534
1535 2010-11-22  Richard Guenther  <rguenther@suse.de>
1536
1537         * gimple-fold.c (maybe_fold_reference): When canonicalizing
1538         MEM_REFs, preserve volatileness.
1539         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
1540         addresses.
1541
1542 2010-11-22  Richard Guenther  <rguenther@suse.de>
1543
1544         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
1545
1546 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
1547
1548         PR rtl-optimization/45652
1549         * alias.c (get_reg_base_value): New.
1550         * rtl.h (get_reg_base_value): Add prototype.
1551         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
1552         non-null REG_BASE_VALUE for renaming.
1553
1554 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
1555             Basile Starynkevitch  <basile@starynkevitch.net>
1556
1557         * gengtype.c: Include xregex.h and obstack.h
1558         Added comments about role of get_output_file_with_visibility and
1559         our regexpr machinery.
1560         (frul_actionrout_t, struct file_rule_st): New.
1561         (hader_dot_h_frul, source_dot_c_frul): New functions.
1562         (NULL_REGEX,  NULL_FRULACT): New.
1563         (files_rules): New.
1564         (matching_file_name_substitute): New function.
1565         (get_output_file_with_visibility): Updated comments and rewritten
1566         to use the new files_rules machinery.
1567
1568         * Makefile.in (XREGEX_H): Added variable.
1569         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
1570
1571 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1572
1573         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
1574
1575 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1576
1577         * target.def (conditional_register_usage): Define.
1578         * reginfo.c (init_reg_sets_1): Call
1579         targetm.conditional_register_usage.
1580         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
1581         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
1582         for making it a hook.
1583         * doc/tm.texi: Regenerate.
1584         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1585         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
1586         New function.
1587         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1588         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1589         * config/arc/arc.c (arc_conditional_register_usage): ...here.
1590         New function.
1591         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1592         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1593         * config/arm/arm.c (arm_conditional_register_usage): ...here.
1594         New function.
1595         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1596         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
1597         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
1598         * config/bfin/bfin.c (conditional_register_usage): Move code into...
1599         (bfin_conditional_register_usage): ...here.  New function.
1600         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1601         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
1602         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
1603         * config/cris/cris.c (cris_conditional_register_usage): Make static.
1604         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1605         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
1606         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
1607         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
1608         * config/frv/frv.c (frv_conditional_register_usage): Make static.
1609         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1610         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1611         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
1612         New function.
1613         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1614         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
1615         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
1616         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
1617         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1618         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
1619         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
1620         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
1621         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1622         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1623         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
1624         New function.
1625         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1626         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
1627         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
1628         Delete.
1629         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
1630         static.
1631         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1632         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
1633         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
1634         * config/mep/mep.c (mep_conditional_register_usage): Make static.
1635         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1636         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
1637         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
1638         * config/mips/mips.c (mips_conditional_register_usage): Make static.
1639         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1640         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
1641         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
1642         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
1643         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1644         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1645         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
1646         ...here.  New function.
1647         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1648         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1649         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
1650         * config/pa/pa.c (pa_conditional_register_usage): ...here.
1651         New function.
1652         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1653         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1654         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
1655         New function.
1656         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1657         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
1658         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
1659         Delete.
1660         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
1661         static.
1662         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1663         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
1664         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
1665         * config/rx/rx.c (rx_conditional_register_usage): Make static.
1666         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1667         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
1668         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
1669         * config/s390/s390.c (s390_conditional_register_usage): Make static.
1670         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1671         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1672         * config/score/score.c (score_conditional_register_usage): ...here.
1673         New function.
1674         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1675         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1676         * config/sh/sh.c (sh_conditional_register_usage): ...here.
1677         New function.
1678         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1679         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1680         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
1681         New function.
1682         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1683         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
1684         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
1685         * config/spu/spu.c (spu_conditional_register_usage): Make static.
1686         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1687         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1688         * config/v850/v850.c (v850_conditional_register_usage): ...here.
1689         New function.
1690         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1691
1692 2010-11-21  Jan Hubicka  <jh@suse.cz>
1693             Dominique d'Humieres <dominiq@lps.ens.ft>
1694
1695         PR target/46510
1696         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
1697         finalize external decls.
1698
1699 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
1700
1701         * system.h (strerror): Poison.
1702
1703 2010-11-21  Richard Henderson  <rth@redhat.com>
1704
1705         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
1706         for infq/huge_valq.
1707
1708 2010-11-21  Richard Henderson  <rth@redhat.com>
1709
1710         PR rtl-optimization/46571
1711         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
1712         (compute_hash_table_work): Use NONDEBUG_INSN_P.
1713
1714 2010-11-21  Paul Koning  <ni1d@arrl.net>
1715
1716         * config/mips/pdp11.md (negsi2): Fix wrong code.
1717
1718 2010-11-21  Paul Koning  <ni1d@arrl.net>
1719
1720         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
1721         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1722
1723 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
1724
1725         * config/mips/mips.c (machine_function): Rename load_label_length to
1726         load_label_num_insns.
1727         (mips_load_label_length): Rename to...
1728         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
1729         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
1730
1731 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1732
1733         PR target/46533
1734         * config/alpha/predicates.md (direct_call_operand): Return false
1735         for !TARGET_SMALL_TEXT targets.
1736
1737 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
1738
1739         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
1740         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
1741         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
1742         * doc/tm.texi: Regenerate.
1743         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
1744         HANDLE_PRAGMA_WEAK): Poison.
1745         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1746         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1747         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
1748         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
1749         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1750         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1751         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1752         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
1753         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1754         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
1755         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1756         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
1757         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1758         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1759         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1760         (HANDLE_PRAGMA_WEAK): Don't undefine.
1761         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1762         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
1763         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1764         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
1765         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1766         (HANDLE_PRAGMA_WEAK): Don't undefine.
1767         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1768         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
1769         (HANDLE_PRAGMA_PACK): Don't undefine.
1770         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
1771         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1772         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1773         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1774         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
1775         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1776         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1777         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1778         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
1779         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1780         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
1781         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1782         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1783         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1784         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1785         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
1786         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1787
1788 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1789
1790         PR target/31100
1791         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
1792         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
1793         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
1794
1795 2010-11-20  Jan Hubicka  <jh@suse.cz>
1796
1797         * cgraph.c (ld_plugin_symbol_resolution_names): New.
1798         (dump_cgraph_node): Dump resolution.
1799         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
1800         (cgraph_comdat_can_be_unshared_p): Dclare.
1801         * lto-streamer-out.c (produce_symtab): Use
1802         cgraph_comdat_can_be_unshared_p.
1803         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
1804         (cgraph_comdat_can_be_unshared_p): New function based on logic
1805         in cgraph_externally_visible_p.
1806         (cgraph_externally_visible_p): Use it.
1807         (varpool_externally_visible_p): Virtual tables can be unshared.
1808         * varpool.c (dump_varpool_node): Dump resolution.
1809
1810 2010-11-20  Jan Hubicka  <jh@suse.cz>
1811
1812         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
1813
1814 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1815
1816         PR other/46202
1817         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
1818         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
1819         shell quoting.
1820         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
1821         (install-strip): New target.
1822         (STRIPPROG): New variable, exported if STRIP is set.
1823         * doc/install.texi (Final install): Minor markup and code style
1824         fixes.  Document install-strip target.
1825
1826 2010-11-20  Paul Koning  <ni1d@arrl.net>
1827
1828         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
1829         pdp11_regno_reg_class): New functions.
1830         * config/pdp11/pdp11.md (define_constants): Add register numbers.
1831         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
1832         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
1833         functions.
1834         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
1835         frame pointer and argument pointer pseudo-registers.
1836         (ARG_POINTER_REGNUM): Define.
1837         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
1838         argument pointer.
1839         (FIRST_PARM_OFFSET): Update for argument pointer.
1840         (INITIAL_FRAME_POINTER_OFFSET): Delete.
1841         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
1842         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
1843         frame pointer and argument pointer.
1844
1845 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
1846
1847         PR debug/46561
1848         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
1849         when looking for immediate uses.
1850
1851         PR tree-optimization/45830
1852         * stmt.c (expand_switch_using_bit_tests_p): New function.
1853         (expand_case): Use it.
1854         * tree.h (expand_switch_using_bit_tests_p): New prototype.
1855         * tree-switch-conversion.c (struct switch_conv_info): Add
1856         bit_test_uniq, bit_test_count and bit_test_bb fields.
1857         (check_range): Fix a comment.
1858         (check_process_case): Compute bit_test_uniq and bit_test_count.
1859         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
1860         allocation.
1861         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
1862         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
1863         (array_value_type): New function.
1864         (build_one_array): Use it, if it returned different type,
1865         fold_convert all constructor fields and convert back to the
1866         wider type in the generated code.
1867         (process_switch): Initialize bit_test_uniq, bit_test_count and
1868         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
1869         returned true.
1870
1871 2010-11-19  Michael Matz  <matz@suse.de>
1872
1873         PR tree-optimization/46077
1874         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
1875
1876 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
1877
1878         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1879         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
1880         function.
1881         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1882
1883 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
1884
1885         * mode-switching.c (optimize_mode_switching): Use
1886         FOR_BB_INSNS instead of open-coded loop.
1887         * cfgrtl.c (redirect_branch_edge): Ditto.
1888
1889 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
1890
1891         PR target/46436
1892         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
1893         to accomodate 32 bit HOST_WIDE_INT.
1894         (m68hc11_emit_logical): Remove unused variable insn.
1895         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
1896         this_insn_uses_iy before use.
1897
1898         PR target/46434
1899         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
1900
1901 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1902
1903         PR c/46547
1904         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
1905         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
1906
1907 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
1908
1909         * doc/extend.texi (Function attributes): Document PowerPC target
1910         attributes that are supported.
1911         (Pragmas): Document that PowerPC now supports target pragmas.
1912
1913         * doc/options.texi (TargetVariable): Document TargetVariable,
1914         HeaderInclude, and SourceInclude.
1915
1916         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
1917         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
1918         -ffp-contract=off.
1919
1920         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
1921         SourceInclude directives.  Fix a cut+paste error with target save
1922         enum variables.  Sort enums in the structures after ints and
1923         before shorts.
1924         * opth-gen.awk: Ditto.
1925
1926         * configure.ac: Add support for HeaderInclude and SourceInclude option
1927         directives to add the appropriate files to the dependency lists.
1928         * configure: Regenerate.
1929         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
1930         (OPTIONS_C_EXTRA): New variable for SourceInclude.
1931         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
1932         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
1933         (gcc-options.o): Ditto.
1934         * opt-include.awk: New awk script to handle HeaderInclude and
1935         TargetInclude.
1936
1937         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
1938         gets saved in the target options.
1939         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
1940         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
1941         (-mprototype): Ditto.
1942         (-mbit-word): ditto.
1943         (-mregnames): Ditto.
1944         (-msecure-plt): Ditto.
1945         (-mbss-plt): Ditto.
1946         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
1947         (-mpowerpc-gfxopt): Ditto.
1948         (-mmfcrf): Ditto.
1949         (-mpopcntb): Ditto.
1950         (-mfprnd): Ditto.
1951         (-mcmpb): Ditto.
1952         (-mmmfpgpr): Ditto.
1953         (-maltivec): Ditto.
1954         (-mhard-dfp): Ditto.
1955         (-mmulhw): Ditto.
1956         (-mdlmzb): Ditto.
1957         (-mmultiple): Ditto.
1958         (-mstring): Ditto.
1959         (-mpopcntd): Ditto.
1960         (-mfriz): Ditto.
1961         (-mvsx): Ditto.
1962         (-mno-update): Ditto.
1963         (-mavoid-indexed-addresses): Ditto.
1964         (-mtls-markers): Ditto.
1965         (-msched-epilog): Ditto.
1966         (-msched-prolog): Ditto.
1967         (-maix-struct-return): Ditto.
1968         (-msvr4-struct-return): Ditto.
1969         (-mxl-compat): Ditto.
1970         (-mrecip-precision): Ditto.
1971         (-mfp-in-toc): Ditto.
1972         (-msum-in-toc): Ditto.
1973         (-mvrsave): Ditto.
1974         (-mblock-move-inline-limit=): Ditto.
1975         (-misel): Ditto.
1976         (-mpaired): Ditto.
1977         (-mlongcall): Ditto.
1978         (-mgen-cell-microcode): Ditto.
1979         (-mwarn-cell-microcode): Ditto.
1980         (-mwarn-altivec-long): Ditto.
1981         (-mprioritize-restricted-insns=): Ditto.
1982         (-msingle-float): Ditto.
1983         (-mdouble-float): Ditto.
1984         (-msimple-fpu): Ditto.
1985         (-mxilinx-fpu): Ditto.
1986         * config/rs6000/aix64.opt (-mpe): Ditto.
1987
1988         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
1989         (rs6000_cpu): Move variable to be a target variable.  Rename
1990         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
1991         -mdebug=<xxx> variables into a single int.
1992         (rs6000_always_hint): Ditto.
1993         (rs6000_sched_groups): Ditto.
1994         (rs6000_align_branch_targets): Ditto.
1995         (rs6000_sched_costly_dep): Ditto.
1996         (rs6000_sched_insert_nops): Ditto.
1997         (rs6000_long_double_type_size): Ditto.
1998         (rs6000_ieeequad): Ditto.
1999         (rs6000_altivec_abi): Ditto.
2000         (rs6000_spe): Ditto.
2001         (rs6000_spe_abi): Ditto.
2002         (rs6000_float_gprs): Ditto.
2003         (rs6000_darwin64_abi): Ditto.
2004         (can_override_loop_align): Ditto.
2005         (rs6000_sdata): Ditto.
2006         (rs6000_tls_size): Ditto.
2007         (rs6000_current_abi): Ditto.
2008         (rs6000_traceback): Ditto.
2009         (rs6000_alignment_flags): Ditto.
2010         (rs6000_current_cmodel): Ditto.
2011         (rs6000_recip_control): Ditto.
2012         (rs6000_cpu_index): Ditto.
2013         (rs6000_tune_index): Ditto.
2014         (rs6000_debug): Ditto.
2015         (rs6000_target_flags_explict): Ditto.
2016
2017         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
2018         declaration.
2019
2020         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
2021         cmodel.  Change all uses.
2022
2023         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
2024         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
2025         Rename cmodel to rs6000_current_cmodel.
2026         (rs6000_sched_groups): Ditto.
2027         (rs6000_align_branch_targets): Ditto.
2028         (rs6000_sched_costly_dep): Ditto.
2029         (rs6000_sched_insert_nops): Ditto.
2030         (rs6000_long_double_type_size): Ditto.
2031         (rs6000_ieeequad): Ditto.
2032         (rs6000_altivec_abi): Ditto.
2033         (rs6000_spe): Ditto.
2034         (rs6000_spe_abi): Ditto.
2035         (rs6000_float_gprs): Ditto.
2036         (rs6000_darwin64_abi): Ditto.
2037         (can_override_loop_align): Ditto.
2038         (rs6000_sdata): Ditto.
2039         (rs6000_tls_size): Ditto.
2040         (rs6000_current_abi): Ditto.
2041         (rs6000_traceback): Ditto.
2042         (rs6000_alignment_flags): Ditto.
2043         (rs6000_current_cmodel): Ditto.
2044         (rs6000_recip_control): Ditto.
2045         (rs6000_cpu_index): Ditto.
2046         (rs6000_tune_index): Ditto.
2047         (rs6000_debug): Ditto.
2048         (rs6000_target_flags_explict): Ditto.
2049         (rs6000_sched_insert_nops_str): Make static.
2050         (rs6000_sched_costly_dep_str): Ditto.
2051         (rs6000_recip_name): Ditto.
2052         (rs6000_abi_name): Ditto.
2053         (rs6000_sdata_name): Ditto.
2054         (enum rs6000_traceback_name): Move to rs6000-opts.h.
2055         (rs6000_parse_tls_size_option): Delete.
2056         (rs6000_valid_attribute_p): New function for target attributes and
2057         pragmas.
2058         (rs6000_function_specific_save): Ditto.
2059         (rs6000_function_specific_restore): Ditto.
2060         (rs6000_function_specific_print): Ditto.
2061         (rs6000_can_inline_p): Ditto.
2062         (rs6000_set_current_function): Ditto.
2063         (rs6000_inner_target_options): Ditto.
2064         (rs6000_debug_target_options): Ditto.
2065         (rs6000_pragma_target_parse): Ditto.
2066         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
2067         attributes and pragmas.
2068         (TARGET_OPTION_SAVE): Ditto.
2069         (TARGET_OPTION_RESTORE): Ditto.
2070         (TARGET_OPTION_PRINT): Ditto.
2071         (TARGET_CAN_INLINE_P): Ditto.
2072         (TARGET_SET_CURRENT_FUNCTION): Ditto.
2073         (POWER_MASKS): Move to file level scope from the
2074         rs6000_option_override_internal function.
2075         (POWERPC_MASKS): Ditto.
2076         (ISA_*_MASKS): Ditto.
2077         (struct rs6000_ptt): Ditto.
2078         (processor_target_table): Ditto.
2079         (rs6000_cpu_name_lookup): Map cpu name to an index in
2080         processor_target_table.
2081         (rs6000_debug_reg_global): Print more information on processor
2082         options for -mdebug=reg.
2083         (rs6000_init_hard_regno_mode_ok): Add support for target
2084         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
2085         Allow -mdebug=val1,val2.  Rename cmodel variable.
2086         (rs6000_option_override_internal): Ditto.
2087         (rs6000_option_override): Ditto.
2088         (rs6000_handle_option): Ditto.
2089         (rs6000_conditional_register_usage): Add debug trace message.
2090         (struct rs6000_opt_mask): New for target attribute/pragma support.
2091         (rs6000_opt_masks): Ditto.
2092         (struct rs6000_opt_var): Ditto.
2093         (rs6000_opt_vars): Ditto.
2094         (rs6000_previous_function): Ditto.
2095
2096         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
2097         wasn't already included.
2098         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
2099         (enum processor_type): Ditto.
2100         (rs6000_cpu): Ditto.
2101         (enum fpu_type_t): Ditto.
2102         (fpu_type): Ditto.
2103         (enum rs6000_dependence_cost): Ditto.
2104         (enum rs6000_nop_insertion): Ditto.
2105         (enum group_termination): Ditto.
2106         (rs6000_long_double_type_size): Ditto.
2107         (rs6000_ieeequad): Ditto.
2108         (rs6000_altivec_abi): Ditto.
2109         (rs6000_spe_abi): Ditto.
2110         (rs6000_spe): Ditto.
2111         (rs6000_float_gprs): Ditto.
2112         (rs6000_alignment_flags): Ditto.
2113         (rs6000_sched_insert_nops): Ditto.
2114         (enum rs6000_vector): Ditto.
2115         (enum rs6000_abi): Ditto.
2116         (rs6000_current_opt): Ditto.
2117         (rs6000_debug_*): Delete.
2118         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
2119         (TARGET_DEBUG*): Ditto.
2120
2121         * config/rs6000/rs6000-opts.h: New header file to define the enums
2122         that are used in target variables that are now defined in rs6000.opt.
2123
2124         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
2125         rs6000-opts.h.
2126         (rs6000_sdata): Ditto.
2127         (rs6000_abi_name): Delete.
2128         (rs6000_sdata_name): Ditto.
2129         (rs6000_tls_size_string): Ditto.
2130
2131 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2132
2133         * common.opt (debug_struct_ordinary, debug_struct_generic): New
2134         Variable entries.
2135         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
2136         should_emit_struct_debug): Move from opts.c.
2137         * flag-types.h (enum debug_struct_file): Move from opts.c.
2138         * flags.h (should_emit_struct_debug): Remove.
2139         (base_of_path): Declare.
2140         (set_struct_debug_option): Add gcc_options parameter.
2141         * optc-gen.awk, opth-gen.awk: Handle array variables.
2142         * opts.c (enum debug_struct_file, debug_struct_ordinary,
2143         debug_struct_generic): Remove.
2144         (set_struct_debug_option): Add gcc_options parameter.
2145         (base_of_path): Remove static.
2146         (main_input_basename, main_input_baselength, matches_main_base,
2147         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
2148         Remove.
2149         * toplev.c (main_input_basename, main_input_baselength): Define
2150         here.
2151         * toplev.h (main_input_basename, main_input_baselength): Declare
2152         here.
2153
2154 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2155
2156         * common.opt (flag_instrument_functions_exclude_functions,
2157         flag_instrument_functions_exclude_files): New Variable definitions.
2158         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
2159         * gimplify.c (char_p): Declare type and vectors.
2160         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
2161         * opts.c (flag_instrument_functions_exclude_functions,
2162         flag_instrument_functions_exclude_files): Remove.
2163         (add_comma_separated_to_vector): Take void **.
2164         (flag_instrument_functions_exclude_p): Move to gimplify.c.
2165         (common_handle_option): Use options structure for
2166         -finstrument-functions-exclude- options.
2167
2168 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2169
2170         * doc/options.texi (Var): Document effects of Defer.
2171         (Defer): Document.
2172         * opt-functions.awk (var_type, var_set): Handle deferred options.
2173         * opts-common.c (set_option): Handle CLVC_DEFER.
2174         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
2175         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
2176         fstack-limit-symbol=): Mark as deferred.
2177         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
2178         plugin.h.
2179         (print_filtered_help): Don't report state of CLVC_DEFER options.
2180         (common_handle_option): Move code for OPT_fcall_used_,
2181         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
2182         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
2183         OPT_fstack_limit_symbol_ to opts-global.c.
2184         (option_enabled, get_option_state): Handle CLVC_DEFER.
2185         * opts.h: Include vec.h.
2186         (enum cl_var_type): Add CLVC_DEFER.
2187         (cl_deferred_option): Define type and vectors.
2188         (handle_common_deferred_options): Declare.
2189         * opts-global.c: New.
2190         * toplev.c (toplev_main): Call handle_common_deferred_options
2191         * Makefile.in (OPTS_H): Include $(VEC_H).
2192         (OBJS-common): Include opts-global.o.
2193         (opts.o): Update dependencies.
2194         (opts-global.o): Add dependencies.
2195
2196 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
2197
2198         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
2199         to objc_declare_protocols.
2200
2201 2010-11-19  Richard Guenther  <rguenther@suse.de>
2202
2203         PR lto/45789
2204         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
2205         IDENTIFIERs do not stream TREE_TYPE.
2206         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
2207
2208 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
2209
2210         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
2211
2212 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
2213
2214         PR target/45870
2215         * dwarf2out.c (const_ok_for_output_1): Don't complain about
2216         non-delegitimized TLS UNSPECs.
2217
2218 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
2219             Ian Lance Taylor  <iant@google.com>
2220
2221         * config/darwin-c.c (darwin_additional_format_types): Export.
2222
2223 2010-11-18  Paul Koning  <ni1d@arrl.net>
2224
2225         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
2226         pointer.
2227
2228 2010-11-18  Paul Koning  <ni1d@arrl.net>
2229
2230         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
2231         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
2232         * config/pdp11/pdp11.opt (-mabshi): Delete.
2233
2234 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
2235
2236         * resource.h (struct resources): Fix typo in the comment.
2237
2238 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2239
2240         PR target/46546
2241         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
2242
2243 2010-11-18  Richard Henderson  <rth@redhat.com>
2244
2245         PR middle-end/46515
2246         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
2247         maybe_copy_epilogue_insn; handle prologue insns as well.
2248         * rtl.h, cfglayout.c: Update for rename.
2249         * recog.c (peep2_attempt): Copy prologue/epilogue data for
2250         RTX_FRAME_RELATED_P insns.
2251
2252 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
2253
2254         PR middle-end/46534
2255         * builtins.c (fold_builtin_printf): Don't copy and modify string
2256         before build_string_literal, instead modify what
2257         build_string_literal returned.
2258
2259 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
2260
2261         PR c/33193
2262         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
2263         REALPART_EXPR and IMAGPART_EXPR.
2264
2265 2010-11-18  Richard Guenther  <rguenther@suse.de>
2266
2267         PR tree-optimization/46172
2268         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
2269         function.
2270         (slpeel_tree_peel_loop_to_edge): Call it.
2271
2272 2010-11-18  Jeff Law  <law@redhat.com>
2273
2274         PR middle-end-optimization/46297
2275         * postreload.c (reload_combine_note_store): Deal with embedded
2276         side effects in MEM expressions.
2277
2278 2010-11-18  Richard Guenther  <rguenther@suse.de>
2279
2280         PR lto/45089
2281         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
2282         when checking is not enabled.
2283
2284 2010-11-18  Richard Guenther  <rguenther@suse.de>
2285
2286         PR lto/46525
2287         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
2288         type leaders.
2289         (gimple_register_canonical_type): Also cache the canoncial type
2290         for non type leaders.
2291
2292 2010-11-18  Richard Guenther  <rguenther@suse.de>
2293
2294         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
2295
2296 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
2297
2298         PR middle-end/46518
2299         * sel-sched-ir.c (init_expr): Use the correct type for
2300         target_available.
2301         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
2302
2303 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2304
2305         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
2306         as well as -mrelocatable at the same time.
2307
2308 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
2309
2310         PR target/46422
2311         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
2312         Call the clz builtin.
2313
2314 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
2315             Steve Ellcey  <sje@cup.hp.com>
2316
2317         PR middle-end/31490
2318         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
2319         if section attribute used.
2320
2321 2010-11-17  Jan Hubicka  <jh@suse.cz>
2322
2323         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
2324         expand errno setting variant when optimizing for size.
2325
2326 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
2327
2328         * postreload.c (reload_combine): Call control_flow_insn_p only once.
2329         Reverse backward loop.  Fix formatting issues.
2330
2331 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
2332
2333         * c-parser.c (c_token_is_qualifier,
2334         c_parser_next_token_is_qualifier): New.
2335         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
2336         Improve error message on specs->tagdef_seen_p.
2337         (c_parser_struct_or_union_specifier): Improve error recovery.
2338         (c_parser_declspecs): Move exit condition on C_ID_ID early.
2339         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
2340         using c_parser_next_token_is_qualifier; extend it to cover
2341         a ctsk_tagdef typespec and !typespec_ok in general.
2342
2343 2010-11-17  Richard Guenther  <rguenther@suse.de>
2344
2345         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
2346         (gimple_mod_pow2_value_transform): Likewise.
2347         (gimple_mod_subtract_transform): Likewise.
2348
2349 2010-11-17  Richard Guenther  <rguenther@suse.de>
2350
2351         PR lto/46504
2352         * gimple.c (gimple_register_canonical_type): Make sure to only
2353         make type leaders canonical types.
2354
2355 2010-11-17  Michael Matz  <matz@suse.de>
2356
2357         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
2358         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
2359         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
2360         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
2361         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
2362         (pass_build_ssa): ... but here.
2363         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
2364         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
2365         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
2366         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
2367         * predict.c (rebuild_frequencies): Ditto.
2368         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
2369         * emit-rtl.c (verify_rtl_sharing): Ditto.
2370         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
2371         * tree-ssa-live.c (remove_unused_locals): Ditto.
2372         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
2373         * tree-ssa.c (pass_early_warn_uninitialized,
2374         execute_update_addresses_taken, pass_update_address_taken): Ditto.
2375         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
2376         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
2377         * passes.c (pass_postreload, execute_todo): Ditto.
2378         * tree-ssanames.c (pass_release_ssa_names): Ditto.
2379
2380 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2381
2382         * doc/invoke.texi (-dy): Remove.
2383         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
2384         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
2385         * langhooks.c (lhd_do_nothing_i): Remove.
2386         * langhooks.h (lang_hooks.parse_file): Take no arguments.
2387         * toplev.c (set_yydebug): Remove.
2388         (compile_file): Update call to lang_hooks.parse_file.
2389         (decode_d_option): Don't handle -dy.
2390
2391 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2392
2393         PR rtl-optimization/46440
2394         * combine.c (update_cfg_for_uncondjump): When changing
2395         an indirect jump into unconditional jump, remove BARRIERs
2396         from bb's footer.
2397
2398 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2399
2400         * opts.c (target_handle_option): Do not assert that loc ==
2401         UNKNOWN_LOCATION.
2402
2403 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2404             Richard Guenther  <rguenther@suse.de>
2405
2406         PR middle-end/45838
2407         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2408         call_may_clobber_ref_p_1): Return true for __sync_* and some
2409         OpenMP builtins that act as threading barriers.
2410
2411 2010-11-17  Richard Guenther  <rguenther@suse.de>
2412
2413         PR tree-optimization/46498
2414         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
2415
2416 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2417
2418         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
2419         (xtensa_function_arg_boundary): ...this.
2420         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
2421         thinko in declaration.
2422         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
2423         number of parameters to picochip_function_arg_boundary.
2424         (picochip_arg_advance): Likewise.
2425
2426 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2427
2428         PR target/46512
2429         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
2430         under check for type.
2431
2432 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2433
2434         * ifcvt.c (dead_or_predicable): Fix typo.
2435
2436 2010-11-16  Richard Henderson  <rth@redhat.com>
2437
2438         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
2439         * config/s390/s390.opt (mfused-madd): Remove.
2440         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
2441         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
2442         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
2443         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
2444
2445 2010-11-16  Richard Henderson  <rth@redhat.com>
2446
2447         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
2448         * config/rs6000/rs6000.opt (mfused-madd): Remove.
2449         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
2450         (*altivec_vmaddfp_1): Remove.
2451         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
2452         (altivec_mulv4sf3): Expand to FMA directly.
2453         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
2454         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
2455         * config/rs6000/paired.md (paired_madds0): Use FMA.
2456         (paired_madds1): Likewise.
2457         (*paired_madd): Rename from paired_madd; use FMA.
2458         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
2459         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
2460         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
2461         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
2462         (rs6000_emit_madd): Use fma_optab.
2463         (rs6000_emit_msub): Use fms_optab.
2464         (rs6000_emit_nmsub): Expand the FMA pattern directly.
2465         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
2466         (*fmasf4_fpr): Rename from fmasf4_fpr.
2467         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
2468         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
2469         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
2470         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
2471         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
2472         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
2473         (*fmadf4_fpr): Rename from fmadf4_fpr.
2474         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
2475         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
2476         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
2477         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
2478         (fmasf4, fmadf4): Macroize into...
2479         (fma<FMA_F>4): ... here.
2480         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
2481         (nfma<FMA_F>4, nfms<FMA_F>4): New.
2482         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
2483         TARGET_FUSED_MADD.
2484         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
2485         (*vsx_fmadd<mode>4_1): Remove.
2486         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
2487         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
2488         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
2489         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
2490         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
2491         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
2492         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
2493
2494 2010-11-16  Richard Henderson  <rth@redhat.com>
2495
2496         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
2497         (fmasf4, fnmadf4, fnmasf4): Likewise.
2498         (unnamed plus+mult insns and splitters): Delete.
2499
2500 2010-11-16  Richard Henderson  <rth@redhat.com>
2501
2502         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
2503         (fnma<VSF>4): Rename from fnms_<VSF>.
2504         (fms<VSF>4): Rename from fms_<VSF>.
2505         (fma<VDF>4): Rename from fma_<VDF>.
2506         (fms<VDF>4): Rename from fms_<VDF>.
2507         (nfma<VDF>4): Rename from fnma_<VDF>.
2508         (nfms<VDF>4): Rename from fnms_<VDF>.
2509         (fnma<VDF>4, fnms<VDF>4): New expanders.
2510         (floatunsdisf2): Update for the renames.
2511         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
2512         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
2513
2514 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2515
2516         PR rtl-optimization/46490
2517         * combine.c (expand_compound_operation): Fix thinko.
2518
2519 2010-11-16  Richard Henderson  <rth@redhat.com>
2520
2521         PR target/46470
2522         * recog.c (peep2_attempt): Convert frame-related info when possible.
2523         (peep2_fill_buffer): Allow frame-related insns into the buffer.
2524         (peephole2_optimize): Allow peep2_attempt to fail.
2525
2526 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2527
2528         PR rtl-optimization/46315
2529         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
2530         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
2531         extracted from...
2532         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
2533         (remove_reg_equal_equiv_notes_for_defs): ...this.
2534         (delete_unmarked_insns): Adjust to above renaming.
2535         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
2536         referring to registers set in the insns being moved, if any.
2537
2538         * df-core.c (df_ref_dump): New function extracted from...
2539         (df_refs_chain_dump): ...here.  Call it.
2540         (df_regs_chain_dump): Likewise.
2541         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
2542         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
2543
2544 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
2545
2546         PR rtl-optimization/46395
2547         * postreload.c (reload_combine): Invalidate register use
2548         information on all control flow insns.
2549
2550         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
2551         LABEL_REF in UNSPEC operand.
2552
2553 2010-11-16  Jan Hubicka  <jh@suse.cz>
2554
2555         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
2556         when !flag_toplevel_reorder do not remove unless variable is
2557         COMDAT or ARTIFICIAL.
2558         * ipa.c (varpool_can_remove_if_no_refs): ... here.
2559         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
2560         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
2561         * varpool.c (decide_is_variable_needed): Do not handle visibility
2562         issues.
2563         (varpool_finalize_decl): Likewise.
2564         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
2565         update outdated comment on DECL_RTL_SET_P check.
2566
2567 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2568
2569         * config/sol2.h (NM_FLAGS): Define.
2570         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
2571         * doc/tm.texi: Update.
2572
2573 2010-11-16  Nick Clifton  <nickc@redhat.com>
2574
2575         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
2576         (msubsf4): Rename to fmssf4, and use fma.
2577         (nmaddsf4): Rename to fnmasf4 and use fma.
2578         (nmsubsf4): Rename to fnmssf4 and use fma.
2579
2580 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
2581
2582         PR target/44762
2583         * config/score/score3.c (score3_return_in_memory): Constify arguments.
2584         (score3_in_small_data_p, score3_function_value): Likewise.
2585         (score3_trampoline_init): Use LCT_NORMAL.
2586         (score3_print_operand): Initialize code as UNKNOWN.
2587         * config/score/predicates.md (score_load_multiple_operation):
2588         Remove unused variable.
2589         (score_store_multiple_operation): Likewise.
2590         * config/score/score7.c (score7_return_in_memory): Constify arguments.
2591         (score7_in_small_data_p, score7_function_value): Likewise.
2592         (score7_trampoline_init): Use LCT_NORMAL.
2593         (score7_print_operand): Initialize code as UNKNOWN.
2594         * config/score/score3.h (score3_return_in_memory): Update prototype.
2595         (score3_in_small_data_p, score3_function_value): Likewise.
2596         * config/score/score-protos.h (score_function_value): Likewise.
2597         * config/score/score7.h (score7_return_in_memory): Update prototype.
2598         (score7_in_small_data_p, score7_function_value): Likewise.
2599         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
2600         (score_return_in_memory, score_pass_by_reference): Constify arguments.
2601         (score_output_mi_thunk, score_function_prologue): Don't return a value.
2602         (score_function_epilogue, score_in_small_data_p): Likewise.
2603         (score_option_override, score_asm_trampoline_template): Likewise.
2604         (score_trampoline_init, score_print_operand): Likewise.
2605         (score_print_operand_address, score_prologue): Likewise.
2606         (score_epilogue, score_call, score_call_value): Likewise.
2607         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
2608         (score_function_arg_advance): Likewise. Make static.
2609         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
2610         (score_function_arg, score_legitimate_address_p): Make static.
2611         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
2612         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
2613         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
2614         Allow (W) == HOST_BITS_PER_WIDE_INT.
2615
2616         PR java/46386
2617         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
2618         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
2619
2620 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2621
2622         * config/arc/arc.c: Delete pasto.
2623         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
2624
2625 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
2626
2627         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
2628         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
2629         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
2630         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2631         (mn10300_preferred_reload_class,
2632         mn10300_preferred_output_reload_class): New functions.
2633
2634 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2635
2636         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
2637         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
2638         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
2639         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
2640
2641 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2642
2643         * builtins.c (std_gimplify_va_arg_expr): Use
2644         targetm.calls.function_arg_boundary.
2645         * function.c (assign_parms, locate_and_pad_parm): Likewise.
2646         * calls.c (struct arg_data): Update comment.
2647         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
2648         * target.def (function_arg_boundary): Define.
2649         * targhooks.h (default_function_arg_boundary): Declare.
2650         * targhooks.c (default_function_arg_boundary): Define.
2651         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
2652         TARGET_FUNCTION_ARG_BOUNDARY.
2653         (FUNCTION_ARG_BOUNDARY): Delete.
2654         (TARGET_FUNCTION_ARG_BOUNDARY): New.
2655         * doc/tm.texi: Regenerate.
2656         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
2657         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
2658         * config/arc/arc.c (arc_function_arg_boundary): Define.
2659         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2660         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
2661         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
2662         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
2663         (arm_function_arg_boundary): Define.
2664         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2665         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
2666         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
2667         * config/frv/frv.c (frv_function_arg_boundary): Make static.
2668         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2669         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
2670         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
2671         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
2672         (ix86_compat_function_arg_boundary): Take and return unsigned int.
2673         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2674         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
2675         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
2676         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
2677         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2678         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
2679         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
2680         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2681         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
2682         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
2683         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
2684         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2685         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
2686         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
2687         * config/mips/mips.c (mips_function_arg_boundary): Make static.
2688         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2689         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
2690         * config/pa/pa.c (pa_function_arg_boundary): Define.
2691         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2692         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
2693         * config/picochip/picochip-protos.h
2694         (picochip_get_function_arg_boundary): Delete.
2695         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
2696         Rename to...
2697         (picochip_function_arg_boundary): ...this.  Make static.
2698         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
2699         (picochip_arg_advance): Adjust.
2700         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2701         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
2702         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
2703         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
2704         (rs6000_function_arg_boundary): ...this.  Make static.
2705         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
2706         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2707         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
2708         * config/rx/rx.c (rx_function_arg_boundary): Define.
2709         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2710         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
2711         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
2712         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2713         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
2714         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
2715         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
2716         (xtensa_function_arg_boundary): ...this.  Make static.
2717         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2718
2719 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2720
2721         * expr.c (alignment_for_piecewise_move): New function.
2722         (widest_int_mode_for_size): New function.
2723         (move_by_pieces, move_by_pieces_ninsns): Call them.
2724         (can_store_by_pieces, store_by_pieces_1): Likewise.
2725
2726 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2727
2728         * gcc.c (char_p): Define.  Define a VEC of it.
2729         (n_linker_options, n_assembler_options, n_preprocessor_options):
2730         Delete.
2731         (linker_options, assembler_options, preprocessor_options): Convert
2732         to a VEC.
2733         (add_preprocessor_option): Adjust.
2734         (add_assembler_option): Adjust.
2735         (add_linker_option): Adjust.
2736         (do_specs_vec): New function.
2737         (do_spec_1): Call it.  Adjust for new types.
2738
2739 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2740
2741         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
2742         (sreal.o, statistics.o, stringpool.o): Likewise.
2743
2744 2010-11-16  Richard Guenther  <rguenther@suse.de>
2745
2746         PR tree-optimization/44545
2747         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
2748         statements are not reassociatable.
2749         (reassociate_bb): Likewise.
2750
2751 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2752
2753         * bitmap.c: Delete unnecessary includes.
2754         * ebitmap.c: Likewise.
2755         * et-forest.c: Likewise.
2756         * sreal.c: Likewise.
2757         * statistics.c: Likewise.
2758         * stringpool.c: Likewise.
2759         * double-int.c: Add comment for inclusion of tm.h.
2760
2761 2010-11-16  Richard Guenther  <rguenther@suse.de>
2762
2763         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
2764         (visit_nary_op): ... this.
2765         (visit_binary_op): Remove.
2766         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
2767
2768 2010-11-16  Richard Guenther  <rguenther@suse.de>
2769
2770         PR middle-end/45172
2771         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
2772
2773 2010-11-16  Nick Clifton  <nickc@redhat.com>
2774
2775         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
2776         record is packed.
2777
2778 2010-11-15  Richard Henderson  <rth@redhat.com>
2779
2780         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
2781         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
2782         DOT_PROD_EXPR.
2783
2784 2010-11-15  Richard Henderson  <rth@redhat.com>
2785
2786         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
2787         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
2788         fma rtx_code.
2789
2790 2010-11-15  Richard Henderson  <rth@redhat.com>
2791
2792         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
2793         and *mulsubsf4 respectively.  Use fma rtx_code.
2794
2795 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
2796
2797         * gcc.c: Include "vec.h".
2798         (argbuf): Make into a VEC.
2799         (argbuf_length, argbuf_index): Remove.
2800         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
2801         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
2802         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
2803         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
2804         (gcc.o): Depend on $(VEC_H).
2805
2806 2010-11-15  Richard Henderson  <rth@redhat.com>
2807
2808         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
2809         via FMA if unsafe math.
2810         (insert_var_expansion_initialization): Handle FMA.
2811         (combine_var_copies_in_loop_exit): Likewise.
2812
2813 2010-11-15  Richard Henderson  <rth@redhat.com>
2814
2815         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
2816         * config/ia64/ia64.opt: Remove mfused-madd.
2817         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
2818         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
2819         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
2820         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
2821         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
2822         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
2823         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
2824         (fmav2sf4): Rename from fpma; use FMA code.
2825         (fmsv2sf4): Rename from fpms; use FMA code.
2826         (fnmav2sf4): Rename from *fpnma; use FMA code.
2827         * config/ia64/ia64.md (MODE_SDF): New iterator.
2828         (suffix): New mode attribute.
2829         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
2830         (fmssf4): Rename from *fmssf4.
2831         (fnmasf4): Rename from *nfmasf4.
2832         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
2833         (*nmadddf4, *nmadddf4_truncsf): Remove.
2834         (fmsdf4): Rename from *fmsdf4.
2835         (fnmadf4): Rename from *nfmadf4.
2836         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
2837         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
2838         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
2839         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
2840         (fmsxf4): Rename from *fmsxf4.
2841         (fnmaxf4): Rename from *nfmaxf4.
2842         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
2843         (*fnmaxf_trunc_<MODE_SDF>): New.
2844
2845 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2846
2847         PR tree-optimization/46461
2848         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
2849         a gimple val.
2850
2851 2010-11-15  Ian Lance Taylor  <iant@google.com>
2852
2853         * godump.c: New file.
2854         * common.opt (fdump-go-spec=): New option.
2855         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
2856         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
2857         (TYPE_SYMTAB_IS_DIE): Define.
2858         (struct tree_type): Change GTY for symtab field to use
2859         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
2860         to pick the union field.
2861         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
2862         (dump_go_spec_init): Declare.
2863         * toplev.c (process_options): Handle flag_dump_go_spec.
2864         * debug.c: Include "tree.h".
2865         (do_nothing_debug_hooks): Set tree_type_symtab_field.
2866         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
2867         * dbxout.c (dbx_debug_hooks): Likewise.
2868         (xcoff_debug_hooks): Likewise.
2869         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2870         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
2871         SDB_DEBUGGING_INFO is not defined.
2872         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
2873         (Overall Options): Document -fdump-go-spec.
2874         * Makefile.in (OBJS-common): Add godump.o.
2875         (debug.o): Add dependency on $(TREE_H).
2876         (godump.o): New target.
2877         (GTFILES): Add $(srcdir)/godump.c.
2878
2879 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2880
2881         PR debug/46095
2882         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
2883         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
2884         style < 0, add REG_FRAME_RELATED_EXPR.
2885
2886         PR debug/46387
2887         * rtl.h (vt_equate_reg_base_value): New prototype.
2888         * alias.c (vt_equate_reg_base_value): New function.
2889         * var-tracking.c (vt_init_cfa_base): Use it.
2890
2891 2010-11-15  Jan Hubicka  <jh@suse.cz>
2892             Diego Novillo  <dnovillo@google.com>
2893
2894         PR lto/41528
2895         * doc/lto.texi: Add.
2896         * doc/gccint.texi: Add reference to lto.texi.
2897         * doc/invoke.texi: Update user documentation for LTO.
2898         Move internal flags to lto.texi
2899
2900 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
2901
2902         * c-typeck.c (build_unary_op): Use
2903         objc_build_incr_expr_for_property_ref to build the pre/post
2904         increment/decrement of an Objective-C property ref, and skip the
2905         lvalue_or_else check in that case.
2906
2907 2010-11-15  Martin Jambor  <mjambor@suse.cz>
2908
2909         PR tree-optimization/46349
2910         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
2911         (contains_vce_or_bfcref_p): Likewise.
2912         (sra_modify_assign): Use them.
2913
2914 2010-11-15  Richard Guenther  <rguenther@suse.de>
2915
2916         PR tree-optimization/46467
2917         * tree-ssa-structalias.c (do_structure_copy): Properly treat
2918         variables without subvars.
2919
2920 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
2921
2922         * config/picochip/picochip.c (file header): Picochip name change.
2923         * config/picochip/picochip.md (file header): Likewise.
2924         * config/picochip/predicates.md (file header): Likewise.
2925         * config/picochip/dfa_space.md (file header): Likewise.
2926         * config/picochip/dfa_speed.md (file header): Likewise.
2927         * config/picochip/picochip.h(file header): Likewise.
2928         * config/picochip/constraints.md (file header): Likewise.
2929         * config/picochip/picochip-protos.h (file header): Likewise.
2930         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
2931         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
2932         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
2933         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
2934         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
2935         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
2936         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
2937         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
2938         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
2939         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
2940         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
2941         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
2942         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
2943         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
2944
2945 2010-11-15  Richard Guenther  <rguenther@suse.de>
2946
2947         PR bootstrap/46474
2948         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
2949
2950 2010-11-15  Nick Clifton  <nickc@redhat.com>
2951
2952         * config/stormy16/stormy16.c (direct_return): Do not generate a
2953         direct return for interrupt handlers.
2954
2955 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
2956
2957         * Makefile.in (tm.texi): Replace with rule for:
2958         ($(srcdir)/doc/tm.texi).
2959         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
2960         $(srcdir)/doc/tm.texi .
2961         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
2962         tm.texi .
2963
2964         PR target/46427
2965         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
2966
2967         PR bootstrap/45444
2968         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
2969         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
2970
2971         PR target/46432
2972         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
2973
2974 2010-11-15  Richard Guenther  <rguenther@suse.de>
2975
2976         PR lto/44150
2977         * lto-opts.c (lto_write_options): Write -fexceptions even if
2978         not set by the user.
2979
2980 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2981
2982         PR c/46462
2983         * c-decl.c (declspecs_add_type): Make variables with error types
2984         integers.
2985         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
2986         do not start a declaration before an Objective-C foreach.
2987         (c_parser_declaration_or_fndef): Improve recovery after unknown
2988         type name.
2989         (c_parser_for_statement): Hoist entrance of "foreach context"
2990         before ifs, add corresponding reset where it was missing.  Do
2991         not set objc_could_be_foreach_context for C.
2992
2993 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
2994
2995         PR tree-optimization/45722
2996         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
2997         this is a reference to a component.
2998         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
2999         (ipa_note_param_call): Adjust comment.
3000
3001 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
3002
3003         * config/mips/mips.c (machine_function): Remove
3004         initialized_mips16_gp_pseudo_p.
3005         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
3006         detect whether a pseudo has already been created.  Unconditionally
3007         create a new one if not.
3008         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
3009         expanding to rtl.  Create a new pseudo otherwise, if allowed.
3010
3011 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
3012
3013         PR target/43440
3014         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
3015         * tm.texi: Regenerated.
3016         * output.h (decode_reg_name_and_count): Declare.
3017         * varasm.c (decode_reg_name_and_count): New function.
3018         (decode_reg_name): Reimplement using decode_reg_name_and_count.
3019         * reginfo.c (fix_register): Use decode_reg_name_and_count and
3020         iterate over all regs used.
3021         * stmt.c (expand_asm_operands): Likewise.
3022         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
3023         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
3024         multiple machine registers.
3025
3026 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
3027
3028         * stor-layout.c (place_union_field): Do not put location information
3029         on offset expressions.
3030         (place_field): Likewise.
3031         (finalize_record_size): Likewise on size expressions.
3032         (finalize_type_size): Likewise.
3033         (layout_type): Likewise.
3034
3035 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
3036
3037         PR debug/42889
3038         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
3039         * df-core.c (df_set_bb_dirty_nonrl): Remove.
3040         * df.h (df_set_bb_dirty_nonlr): Likewise.
3041
3042 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
3043
3044         * config/mips/mips.md (call_internal): Pass curr_insn to
3045         mips_split_call.
3046         (call_internal_direct): Ditto.
3047         (call_value_internal): Ditto.
3048         (call_value_internal_direct): Ditto.
3049         (call_value_multiple_internal): Ditto.
3050         * config/mips/mips.c (mips_split_call): Do not copy
3051         CALL_INSN_FUNCTION_USAGE here.
3052
3053 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
3054
3055         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
3056         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
3057         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
3058         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
3059         (TUNE_LOONGSON_3A): Define.
3060         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
3061         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
3062         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
3063         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
3064         (mips_rtx_cost_data): Add Loongson-3A.
3065
3066 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3067
3068         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
3069         switches.
3070
3071 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3072
3073         * dwarf2out.c (macinfo_entry): New struct.
3074         (output_comp_unit): Emit the section start label here and flag that we
3075         will emit an info section.
3076         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
3077         emitting directly.
3078         (dwarf2out_end_source_file): Likewise.
3079         (dwarf2out_define): Likewise.
3080         (dwarf2out_undef): Likewise.
3081         (output_macinfo): New.
3082         (dwarf2out_init): Do not emit debug section switches here, allocate a
3083         vec for macinfo, when required.
3084         (dwarf2out_finish): First switch to debug_abbrev_section here.
3085         debug_line_section,  debug_macinfo_section, Likewise.
3086         Check that the pubtypes table has at least one unpruned entry before
3087         trying to emit it.
3088
3089 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3090
3091         PR c/20385
3092         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
3093         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
3094         token lookahead.
3095         (c_parser_compound_statement_nostart, c_parser_label,
3096         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
3097         (c_parser_declaration_or_fndef): Detect the case now matched by
3098         c_parser_next_tokens_start_declaration, give error and correct it.
3099
3100 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3101
3102         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
3103         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
3104         with typespec_kind.
3105         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
3106         (shadow_tag_warned, check_compound_literal_type): Adjust
3107         uses of tag_defined_p.
3108         (declspecs_add_type): Set typespec_kind.
3109         * c-parser.c (c_parser_declaration_or_fndef,
3110         c_parser_declspecs, c_parser_struct_declaration,
3111         c_parser_parameter_declaration, c_parser_type_name,
3112         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
3113         of type_seen_p.
3114         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
3115         tag_defined_p, pass ctsk_firstref through.
3116
3117 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3118
3119         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
3120         (struct format_wanted_type): Replace field "name" with "kind", add
3121         "format_start" and "format_length".
3122         (check_format_info_main): Fill in new fields.  Fill in
3123         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
3124         after the final NUL outside the while loop.  Do not include
3125         width and precision modifiers in the format_start/format_length
3126         of the main format.
3127         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
3128         arguments.  Compute WANTED_TYPE first so that format_type_warning
3129         can be called for missing arguments.  Adjust calls to
3130         format_type_warning.
3131         (format_type_warning): Fetch as much information as possible
3132         from format_wanted_type.  Adjust printing now that every
3133         warning has a "descr", as well as for missing argument warnings
3134         and to include % sign for format specifiers.
3135
3136 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
3137
3138         PR rtl-optimization/46204
3139         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
3140         Update all callers.  Do not recompute topological order.  Adjust
3141         fallthrough edges following a degenerate conditional jump.
3142
3143 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3144
3145         * opts-common.c (control_warning_option): New.
3146         * opts.c (set_default_handlers): New.
3147         (decode_options): Use set_default_handlers and
3148         control_warning_option.
3149         (common_handle_option): Update call to enable_warning_as_error.
3150         (enable_warning_as_error): Take gcc_options parameters.  Use
3151         control_warning_option.
3152         * opts.h (set_default_handlers, control_warning_option): Declare.
3153
3154 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3155
3156         * Makefile.in (OPTS_H): Define.
3157         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
3158         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
3159         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
3160         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
3161         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
3162         * gcc.c (driver_handle_option): Take location_t parameter.
3163         (process_command, do_self_spec): Update calls to
3164         read_cmdline_option.
3165         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
3166         * langhooks.c (lhd_handle_option): Take location_t parameter.
3167         * langhooks.h (handle_option): Take location_t parameter.
3168         * lto-opts.c (lto_reissue_options): Update call to set_option.
3169         * opts-common.c (handle_option): Make static.  Take location_t
3170         parameter and pass it to other functions.
3171         (handle_generated_option): Take location_t parameter and pass it
3172         to other functions.
3173         (read_cmdline_option): Take location_t parameter and pass it to
3174         other functions.  Use warning_at and error_at.
3175         (set_option): Take location_t parameter and pass it to other
3176         functions.
3177         * opts.c (common_handle_option): Take location_t parameter and
3178         pass it to other functions.
3179         (enable_warning_as_error): Make static.  Take location_t parameter
3180         and pass it to other functions.
3181         (lang_handle_option): Take location_t parameter and pass it to
3182         other functions.
3183         (target_handle_option): Take location_t parameter.
3184         (read_cmdline_options, maybe_default_option,
3185         maybe_default_options, default_options_optimization,
3186         decode_options): Take location_t parameter and pass it to other
3187         functions.
3188         * opts.h: Include input.h.
3189         (struct cl_option_handler_func, decode_options, set_option,
3190         handle_generated_option, read_cmdline_option): Take location_t
3191         parameters.
3192         (handle_option, enable_warning_as_error): Remove.
3193         * toplev.c (toplev_main): Update call to decode_options.
3194
3195 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
3196
3197         * graphite-cloog-util.c (oppose_constraint,
3198         cloog_matrix_to_ppl_constraint,
3199         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
3200         CLooG isl uses unsigned integers.  This triggered a warning.
3201
3202 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3203
3204         PR target/46438
3205         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
3206         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
3207         (xtensa_function_arg_1): De-constify cum.
3208         (xtensa_expand_prologue): Use add_reg_note.
3209
3210         PR target/46435
3211         * config/cris/cris.c (saved_regs_mentioned): Delete.
3212         (cris_reload_address_legitimized): Cast itype to enum reload_type.
3213         Remove unused variable op0p.
3214         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
3215         (cris_emit_movem_store): Use add_reg_note.
3216
3217         PR bootstrap/46456
3218         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
3219
3220 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3221
3222         * function.c (expand_function_end): Set the locator of the prologue on
3223         the stack checking insns.
3224
3225 2010-11-12  Richard Henderson  <rth@redhat.com>
3226
3227         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
3228         * config/xtensa/xtensa.opt (mfused-madd): Remove.
3229         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
3230         MASK_FUSED_MADD.
3231         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
3232         (fnmasf4): Rename from mulsubsf3; use fma.
3233
3234 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3235             Richard Henderson  <rth@redhat.com>
3236
3237         PR target/46428
3238         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
3239         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
3240         comparison.
3241
3242 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
3243
3244         * opts-common.c (decode_cmdline_option): Initialize separate_args.
3245
3246 2010-11-12  Jan Hubicka  <jh@suse.cz>
3247
3248         * doc/invoke.texi (early-inlining-insns): Update default.
3249         * params.def (early-inlining-insns): Default to 10.
3250
3251 2010-11-12  Olivier Hainque  <hainque@adacore.com>
3252
3253         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
3254
3255 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3256
3257         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
3258         (SUPPORTS_INIT_PRIORITY): Define.
3259
3260 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3261
3262         PR target/46430
3263         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
3264         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
3265         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
3266         (avr_device_to_devicelib): Likewise.
3267         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
3268         into block.
3269         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
3270         (zero_extendhidi2, zero_extendsidi2): Likewise.
3271         * config/avr/avr.c (avr_num_arg_regs): Constify type.
3272         (avr_return_addr_rtx): De-constify tem.
3273         (avr_rotate_bytes): Move declarations to start of block.
3274         Don't use variable length array.  Put nested if/else into block.
3275
3276         PR rtl-optimization/46433
3277         * var-tracking.c: Include tm_p.h .
3278
3279         PR bootstrap/44756
3280         PR build/44767
3281         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
3282         should be unsigned.
3283         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
3284         * doc/tm.texi: Regenerate.
3285
3286         PR target/46412
3287         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
3288         * config/bfin/bfin.c: Include sel-sched.h .
3289         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
3290         (expand_interrupt_handler_prologue): Remove unused variable insn.
3291         (bfin_load_pic_reg): Likewise.
3292         (bfin_rtx_costs): Make code / outer_code variables of type
3293         enum rtx_code, copied from re-named parameters.
3294         (bfin_local_alignment): Change align argument and return type
3295         to unsigned.
3296         (bfin_adjust_cost): Remove unused variable insn_type.
3297         Declare variables at start of block.
3298         (struct loop_info): Rename to...
3299         (struct loop_info_d).
3300         (workaround_rts_anomaly): Change type of icode to int.
3301         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
3302         with int-typed variable.
3303         (note_np_check_stores): Likewise.
3304         (trapping_loads_p): Remove unused variable pat.
3305         (bfin_expand_binop_builtin): Use expand_normal.
3306         (bfin_expand_unop_builtin): Likewise.
3307         (bfin_expand_builtin): Likewise.  Set tmode before use.
3308
3309         PR middle-end/44769
3310         * final.c (split_double): Don't use BITS_PER_WORD directly in
3311         shift count.
3312
3313         PR target/46431
3314         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
3315         assignment.
3316
3317         PR target/46450
3318         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
3319         Use add_reg_note.
3320         (xstormy16_function_arg): Dereference cum.
3321         (xstormy16_expand_builtin): Use expand_normal.
3322         Change type of omode to enum machine_mode.
3323         (combine_bnp): Rename and to and_insn.
3324
3325         PR target/46437
3326         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
3327         localreg.
3328
3329 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3330
3331         PR debug/46375
3332         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
3333
3334 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
3335
3336         PR lto/46376
3337         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
3338
3339 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
3340
3341         PR c/44782
3342         * common.opt (fmax-errors=): New option.
3343         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
3344         * diagnostic.h (struct diagnostic_context): Add max_errors field.
3345         * diagnostic.c (diagnostic_initialize): Initialize it.
3346         (diagnostic_action_after_output): Exit if more than max_errors
3347         have been output.
3348         * doc/invoke.texi (Warning Options): Add -fmax-errors.
3349         (-fmax-errors): Document.
3350
3351 2010-11-11  Richard Henderson  <rth@redhat.com>
3352
3353         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
3354
3355 2010-11-11  Richard Henderson  <rth@redhat.com>
3356
3357         * config/fused-madd.opt: New file.
3358         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
3359         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
3360         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
3361         * config/i386/i386.opt (mfused-madd): Remove.
3362         * config/i386/sse.md (split_fma): Remove.
3363         (split_fms, split_fnma, split_fnms): Remove.
3364
3365 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
3366
3367         PR target/46088
3368         * config/i386/i386.md (*ashl<mode>3_cconly,
3369         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
3370         change nonimmediate_operand predicate to register_operand.
3371
3372 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
3373
3374         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
3375
3376 2010-11-11  Jan Hubicka  <jh@suse.cz>
3377
3378         * opts.c (finish_options): Do not error on -flto-partition alone.
3379
3380         * doc/invoke.texi (-fwhopr): Merge into -flto section.
3381         (-flto-partition): Document none.
3382         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
3383         * lto-wrapper.c: Update comment.
3384         (run_gcc): Update LTO option parsing.
3385         * opts.c (finish_options): add support -flto-partition=none
3386         (common_handle_option): Remove fwhopr.
3387         * common.opt: Turn fwhopr into flto.
3388         * collect2.c (main): Update option handling.
3389         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
3390         * ipa-split.c (execute_split_functions): Remove flag_whopr.
3391         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
3392         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
3393         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
3394
3395 2010-11-11  Jan Hubicka  <jh@suse.cz>
3396
3397         PR tree-optimize/40436
3398         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
3399         (eliminated_by_inlining_prob): ... this one; return 50% probability
3400         for SRA.
3401         (estimate_function_body_sizes): Update use of
3402         eliminated_by_inlining_prob; estimate static function size
3403         for 2 instructions.
3404
3405 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
3406
3407         PR target/44749
3408         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
3409         declare.  Change type of argument four to type int.
3410         (mep_secondary_input_reload_class): Returns enum reg_class.
3411         (mep_secondary_output_reload_class): Likewise.
3412         (mep_function_value): Change types of arguments to cont_tree.
3413         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
3414         argument four to type int.
3415         (mep_secondary_input_reload_class): Returns enum reg_class.
3416         (mep_secondary_output_reload_class): Likewise.
3417         (mep_function_value): Change types of arguments to cont_tree.
3418         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
3419         mep_regno_reg_class to enum reg_class.
3420
3421 2010-11-11  Richard Henderson  <rth@redhat.com>
3422
3423         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
3424         that the target has the exact fma operation that we matched.
3425
3426 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3427
3428         * reginfo.c (fix_register): Avoid inserting English word in
3429         diagnostic sentence.  Use %qs for quoting and %'.
3430
3431 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
3432
3433         * config/i386/driver-i386.c (host_detect_local_cpu): Support
3434         Intel processor family 6, model 0x2c.
3435
3436 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3437
3438         * opts.c (warning_as_error_callback,
3439         register_warning_as_error_callback): Remove.
3440         (enable_warning_as_error): Don't use warning_as_error_callback.
3441         * opts.h (register_warning_as_error_callback): Remove.
3442
3443 2010-11-11  Richard Henderson  <rth@redhat.com>
3444
3445         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
3446         in between the MULT and the PLUS/MINUS.
3447
3448 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3449
3450         PR middle-end/46388
3451         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
3452         BLKmode mode for it.
3453         (expand_expr_real_1): Similarly for op0.
3454
3455 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3456
3457         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
3458         Document optional target selector.
3459
3460 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
3461
3462         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
3463         assembling high and low parts of size if not using 32-bit HWINT; else
3464         use DECL_SIZE_UNITS, not DECL_SIZE.
3465
3466 2010-11-11  Martin Jambor  <mjambor@suse.cz>
3467
3468         PR tree-optimization/46383
3469         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
3470         offsets.
3471         (compute_complex_ancestor_jump_func): Likewise.
3472         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
3473
3474 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3475
3476         PR debug/46150
3477         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
3478         true if expr1->hash != expr2->hash.
3479
3480 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3481
3482         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
3483         diagnostics with lowercase letters.
3484         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
3485         lowercase letters.
3486         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
3487         diagnostic.
3488         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3489         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
3490         lowercase letters.
3491         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3492         Remove trailing ' ' from diagnostic.
3493         * config/avr/avr.c (print_operand_address): Start diagnostic with
3494         a lowercase letter and remove trailing '.'.
3495         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
3496         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
3497         with lowercase letters.  Use %' in diagnostics.  Remove trailing
3498         '.' from diagnostics.
3499         (bfin_handle_longcall_attribute): Use %' in diagnostic.
3500         * config/cris/cris.c (cris_split_movdx,
3501         cris_expand_pic_call_address): Start diagnostics with lowercase
3502         letters.
3503         (cris_asm_output_label_ref): Use %' in diagnostic.
3504         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
3505         letter.
3506         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
3507         lowercase letter.
3508         * config/darwin-c.c (version_as_macro): Start diagnostic with a
3509         lowercase letter.
3510         * config/darwin-driver.c (darwin_default_min_version): Use %' in
3511         diagnostic.
3512         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
3513         diagnostic.
3514         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3515         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
3516         diagnostics.
3517         * config/i386/i386.c (ix86_option_override_internal): Write
3518         diagnostic as a single sentence without trailing '.'.  Use %' in
3519         diagnostics.
3520         (ix86_function_sseregparm, classify_argument): Start diagnostics
3521         with lowercase letters.
3522         (ix86_expand_prologue): Use %' in diagnostic.
3523         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
3524         diagnostic.
3525         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
3526         lowercase letter.
3527         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
3528         diagnostic.
3529         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3530         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
3531         '`' in help text.
3532         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
3533         lowercase letter.
3534         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
3535         lowercase letters.
3536         * config/microblaze/microblaze.c (microblaze_handle_option):
3537         Remove trailing '.' from diagnostic.
3538         (print_operand): Start diagnostic with a lowercase letter.
3539         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
3540         lowercase letters.  Avoid '`' in diagnostics.
3541         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
3542         lowercase letters.  Avoid '`' in diagnostics.
3543         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
3544         lowercase letters.  Avoid '`' in diagnostics.
3545         * config/picochip/picochip.c (picochip_option_override,
3546         picochip_emit_save_register, picochip_function_arg,
3547         picochip_output_label, picochip_output_internal_label,
3548         picochip_asm_output_opcode, picochip_output_cbranch,
3549         picochip_output_compare, picochip_output_branch,
3550         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
3551         diagnostics. Start diagnostics with lowercase letters.  Use %' in
3552         diagnostics.
3553         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
3554         "SPE" capitalization.  Start diagnostic with a lowercase letter.
3555         (rs6000_handle_option): Start diagnostics with lowercase letters.
3556         (def_builtin): Remove trailing '.' from diagnostic.
3557         (rs6000_savres_routine_name): Start diagnostic with a lowercase
3558         letter.
3559         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
3560         diagnostic.
3561         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
3562         lowercase letter.
3563         * config/s390/s390.c (s390_option_override) Start diagnostics with
3564         lowercase letters.  Use %' in diagnostic.
3565         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
3566         lowercase letters.
3567         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
3568         diagnostic.
3569         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
3570         diagnostic.
3571         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
3572         diagnostic.
3573         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3574         * config/spu/spu.c (spu_option_override): Start diagnostics with
3575         lowercase letters.  Use %qs for quoting in diagnostics.
3576         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
3577         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
3578         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
3579         from diagnostic.
3580         * convert.c (convert_to_integer, convert_to_vector): Use %' in
3581         diagnostics.
3582         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
3583         letter and use "cannot" spelling.
3584         * expmed.c (extract_fixed_bit_field): Start diagnostic with
3585         lowercase letter and format as a single sentence without '.'.
3586         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
3587         Use %' in diagnostics.
3588         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3589         Use %' in diagnostics.
3590         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3591         Use %' in diagnostics.
3592         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
3593         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
3594         with lowercase letters and remove tailing '.' and '\n'.
3595         * lto-cgraph.c (input_profile_summary): Start diagnostic with
3596         lowercase letter and remove trailing '.'.
3597         (input_cgraph): Start diagnostics with lowercase letters and
3598         remove trailing '\n'.
3599         * opts.c (finish_options, common_handle_option): Start diagnostics
3600         with lowercase letters and remove trailing '.'.  Fix typo in
3601         diagnostic.
3602         * passes.c (position_pass): Start diagnostic with lowercase letter.
3603         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
3604         register_callback, try_init_one_plugin): Start diagnostics with
3605         lowercase letters.
3606         * reload1.c (spill_failure): Use %' in diagnostic.
3607         (gen_reload): Start diagnostic with a lowercase letter.
3608         * stor-layout.c (place_field): Start diagnostic with a lowercase
3609         letter.
3610         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
3611         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
3612         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
3613         Start diagnostics with lowercase letters, remove trailing '.' and
3614         use %' in diagnostics.
3615         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
3616         (verify_ssa): Don't split diagnostic across two error calls.
3617         Spell out "number" and use %' in diagnostic.
3618         * value-prof.c (visit_hist, check_counter): Start diagnostics with
3619         lowercase letters.
3620
3621 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
3622
3623         PR middle-end/46419
3624         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
3625         (_mm_cvtpu16_ps): Ditto.
3626
3627 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3628
3629         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
3630         warn_larger_than, larger_than_size, warn_frame_larger_than,
3631         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
3632         default_visibility, flag_tls_default): New Variable declarations.
3633         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
3634         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
3635         (v): Declare as Common and document here.
3636         * flags.h (default_visibility, flag_generate_lto,
3637         warn_larger_than, larger_than_size, warn_frame_larger_than,
3638         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
3639         flag_shlib, flag_excess_precision_cmdline): Remove.
3640         (set_Wstrict_aliasing): Update prototype.
3641         * gcc.c (verbose_flag): Remove.
3642         (driver_handle_option): Add diagnostic_context parameter.  Don't
3643         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
3644         incrementing it.
3645         * opts-common.c (handle_option): Pass dc to handler.
3646         * opts.c (warn_larger_than, larger_than_size,
3647         warn_frame_larger_than, frame_larger_than_size,
3648         default_visibility): Remove.
3649         (common_handle_option): Add diagnostic_context parameter.
3650         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
3651         gcc_options parameters.
3652         (lang_handle_option, target_handle_option, read_cmdline_options,
3653         decode_options): Add diagnostic_context parameters.
3654         (finish_options): Access option state through opts pointer where
3655         possible.
3656         (common_handle_option): Access option state through opts pointer
3657         where possible.  Do not set local static variable verbose.  Do not
3658         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
3659         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
3660         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
3661         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
3662         OPT_fwhopr_.  Do not explicitly set .opt file variables for
3663         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
3664         (set_Wstrict_aliasing): Add gcc_options parameter.
3665         * opts.h (struct cl_option_handler_func): Add diagnostic_context
3666         parameter to handler.
3667         (decode_options): Add diagnostic_context parameter.
3668         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
3669         asm_file_name, flag_generate_lto, flag_gen_aux_info,
3670         aux_info_file_name, flag_shlib, flag_tls_default,
3671         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
3672         (toplev_main): Pass global_dc to decode_options.
3673         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
3674         aux_info_file_name, asm_file_name): Remove.
3675         * tree.h (flag_tls_default): Remove.
3676
3677 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
3678
3679         PR target/45986
3680         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
3681         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
3682
3683 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3684
3685         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
3686         (x86_64-*-*): Likewise.
3687         * config/i386/cpuid.h: Define TBM bit.
3688         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3689         and set has_tbm.
3690         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3691         isa_flag for TBM.
3692         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
3693         (OPTION_MASK_ISA_TBM_UNSET): New.
3694         (ix86_handle_option): Handle -mtbm.
3695         (isa_opts): Add -mtbm.
3696         (enum pta_flags): Add PTA_TBM.
3697         (ix86_option_override_internal): Add TBM support.
3698         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
3699         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
3700         (IX86_BUILTIN_BEXTRI64): Likewise.
3701         (bdesc_args): Add TBM intrinsics.
3702         (ix86_expand_builtin): Add TBM specific case.
3703         * config/i386/i386.h (TARGET_TBM): New for TBM.
3704         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
3705         (tbm_bextri_<mode>): Likewise.
3706         (*tbm_blcfill_<mode>): Likewise.
3707         (*tbm_blci_<mode>): Likewise.
3708         (*tbm_blcic_<mode>): Likewise.
3709         (*tbm_blcmsk_<mode>): Likewise.
3710         (*tbm_blcs_<mode>): Likewise.
3711         (*tbm_blsfill_<mode>): Likewise.
3712         (*tbm_blsic_<mode>): Likewise.
3713         (*tbm_t1mskc_<mode>): Likewise.
3714         (*tbm_tzmsk_<mode>): Likewise.
3715         * config/i386/i386.opt: Add -mtbm.
3716         * config/i386/tbmintrin.h (__bextri_u32): New.
3717         (__blcfill_u32): Likewise.
3718         (__blci_u32): Likewise.
3719         (__blcic_u32): Likewise.
3720         (__blcmsk_u32): Likewise.
3721         (__blcs_u32): Likewise.
3722         (__blsfill_u32): Likewise.
3723         (__blsic_u32): Likewise.
3724         (__t1mskc_u32): Likewise.
3725         (__tzmsk_u32): Likewise.
3726         (__bextri_u64): Likewise.
3727         (__blcfill_u64): Likewise.
3728         (__blci_u64): Likewise.
3729         (__blcic_u64): Likewise.
3730         (__blcmsk_u64): Likewise.
3731         (__blcs_u64): Likewise.
3732         (__blsfill_u64): Likewise.
3733         (__blsic_u64): Likewise.
3734         (__t1mskc_u64): Likewise.
3735         (__tzmsk_u64): Likewise.
3736         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
3737         * doc/invoke.texi: Document -mtbm.
3738         * doc/extend.texi: Document TBM built-in functions.
3739
3740 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3741
3742         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
3743         (x86_64-*-*): Likewise.
3744         * config/i386/cpuid.h: Define BMI bit.
3745         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3746         and set has_bmi.
3747         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3748         isa_flag for BMI.
3749         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
3750         (OPTION_MASK_ISA_BMI_UNSET): New.
3751         (ix86_handle_option): Handle -mbmi.
3752         (isa_opts): Add -mbmi.
3753         (enum pta_flags): Add PTA_BMI.
3754         (ix86_option_override_internal): Add BMI support.
3755         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
3756         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
3757         (IX86_BUILTIN_BEXTR64): Likewise.
3758         (IX86_BUILTIN_CTZS): Likewise.
3759         (bdesc_args): Add BMI intrinsics.
3760         (ix86_expand_args_builtin): Add BMI specific cases.
3761         * config/i386/i386.h (TARGET_BMI): New for BMI.
3762         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
3763         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
3764         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
3765         (UNSPEC_TZCNT): Likewise.
3766         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
3767         (bmi_andn_<mode>): New for BMI.
3768         (bmi_bextr_<mode>): Likewise.
3769         (bmi_blsi_<mode>): Likewise.
3770         (bmi_blsmsk_<mode>): Likewise.
3771         (bmi_blsr_<mode>): Likewise.
3772         * config/i386/i386.opt: Add -mbmi.
3773         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
3774         * config/i386/bmiintrin.h (__lzcnt_u16): New.
3775         (__tzcnt_u16): Likewise.
3776         (__andn_u32): Likewise.
3777         (__bextr_u32): Likewise.
3778         (__blsi_u32): Likewise.
3779         (__blsmsk_u32): Likewise.
3780         (__blsr_u32): Likewise.
3781         (__lzcnt_u32): Likewise.
3782         (__tzcnt_u32): Likewise.
3783         (__andn_u64): Likewise.
3784         (__bextr_u64): Likewise.
3785         (__blsi_u64): Likewise.
3786         (__blsmsk_u64): Likewise.
3787         (__blsr_u64): Likewise.
3788         (__lzcnt_u64): Likewise.
3789         (__tzcnt_u64): Likewise.
3790         * doc/invoke.texi: Document -mbmi and -mno-bmi.
3791         * doc/extend.texi: Document BMI built-in functions.
3792
3793 2010-11-10  Jan Hubicka  <jh@suse.cz>
3794
3795         PR tree-optimize/46228
3796         * doc/invoke.texi (comdat-sharing-probability): Document.
3797         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
3798         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
3799
3800 2010-11-10  Jan Hubicka  <jh@suse.cz>
3801
3802         PR tree-optimize/46228
3803         * cgraph.c (cgraph_propagate_frequency): Fix typo.
3804
3805 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
3806
3807         PR tree-optimization/46414
3808         * tree-inline.c (estimate_move_cost): Check preferred vector
3809         mode for vector type.
3810
3811 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3812
3813         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
3814
3815 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
3816
3817         PR tree-optimization/45971
3818         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
3819         for phi nodes analyzable by scev.
3820
3821 2010-11-10  Richard Guenther  <rguenther@suse.de>
3822
3823         PR tree-optimization/44964
3824         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
3825
3826 2010-11-10  Martin Jambor  <mjambor@suse.cz>
3827
3828         PR tree-optimization/46351
3829         PR tree-optimization/46377
3830         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
3831         aggregate bit-fields.
3832
3833 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3834
3835         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3836         * doc/tm.texi: Regenerate.
3837         * opts-common.c (tm.h): Don't include.
3838         (target_option_translations): Remove.
3839         (decode_cmdline_options_to_array): Don't handle translating options.
3840         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
3841         * config/darwin-driver.c: Don't condition includes on
3842         CROSS_DIRECTORY_STRUCTURE.
3843         (darwin_default_min_version): Make static.
3844         (darwin_driver_init): New.  Call darwin_default_min_version if not
3845         CROSS_DIRECTORY_STRUCTURE.
3846         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3847         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
3848         (ASM_SPEC): Add %{static}.
3849         (darwin_default_min_version): Don't declare.
3850         (darwin_driver_init): Declare.
3851         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
3852         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
3853         * config/darwin.opt (all_load, allowable_client,
3854         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
3855         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
3856         exported_symbols_list, filelist, findirect-virtual-calls,
3857         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
3858         framework, fterminated-vtables, gfull, gused, image_base, init,
3859         install_name, multi_module, multiply_defined,
3860         multiply_defined_unused, no_dead_strip_inits_and_terms,
3861         seg_addr_table, seg_addr_table_filename, segaddr,
3862         segs_read_only_addr, segs_read_write_addr, single_module,
3863         umbrella, unexported_symbols_list, weak_reference_mismatches,
3864         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
3865         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
3866         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
3867         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
3868         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
3869         (ASM_SPEC): Add %{static}.
3870         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3871         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3872         (DRIVER_SELF_SPECS): Handle options formerly in
3873         TARGET_OPTION_TRANSLATE_TABLE.
3874         * config/mep/mep.opt (mfar): New.
3875         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3876         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
3877         TARGET_OPTION_TRANSLATE_TABLE.
3878         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
3879         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3880         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
3881         ffix-and-continue, findirect-data): New.
3882         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3883         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
3884         (mnofpu): Define mask and use Report here.
3885
3886 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3887
3888         * config/s390/s390.c (s390_emit_prologue): Report the stack
3889         size if -fstack-usage is used.
3890
3891 2010-11-10  Richard Guenther  <rguenther@suse.de>
3892
3893         PR tree-optimization/46398
3894         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
3895
3896 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
3897
3898         PR target/44760
3899         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
3900         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
3901         GP_REG_OR_PSEUDO_STRICT_P.
3902         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
3903         unexpected alternative.
3904         (*movsf_internal): Likewise.
3905         (indirect_jump): Replace call to non-existant function with call to
3906         internal_error.
3907         (tablejump): Likewise.
3908         * config/iq2000/iq2000.c: Include df.h .
3909         (iq2000_function_arg_advance): Use CONST_CAST2.
3910         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
3911         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
3912         a non-zero function address.
3913         (iq2000_initial_elimination_offset): Add gcc_unreachable for
3914         unexpected value of FROM.
3915         (symbolic_expression_p): Delete.
3916         (iq2000_function_value): Constify func.
3917         (expand_one_builtin): Use expand_normal.
3918         (iq2000_print_operand): Don't print VALUE if calculating it failed.
3919
3920         PR rtl-optimization/44764
3921         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
3922
3923         PR target/46407
3924         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
3925         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
3926         with ATTRIBUTE_UNUSED.
3927         (valid_psw_flag): Constify parameter which.
3928         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
3929
3930         PR target/46415
3931         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
3932         (mmix_dbx_register_number): Likewise.
3933         * config/mmix/mmix.c: Include df.h .
3934         (mmix_local_alignment): Change argument basic_align and return type
3935         to unsigned.
3936         (mmix_dbx_register_number): Change argument and return type to
3937         unsigned.
3938         (mmix_expand_prologue): Use add_reg_note.
3939
3940         PR target/46417
3941         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
3942         (spu_split_store): Use aform.
3943         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
3944
3945 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3946
3947         PR/46268
3948         * doc/gty.texi (GTY Options): Clarify that variable_size produces
3949         allocators taking size in bytes, compare with length option.  Add
3950         size calculation example.
3951         (Invoking the garbage collector): Ensure that sentences are
3952         followed by two spaces.  Describe that pointer fields must be
3953         initialized at ggc_collect call.
3954         (Troubleshooting): New section.
3955
3956 2010-11-09  Jan Hubicka  <jh@suse.cz>
3957
3958         PR tree-optimization/40436
3959         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
3960         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
3961         normal instructions; be sure bultin is not implemented in this file;
3962         compute non-zero return cost.
3963         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
3964         * tree-inline.h (eni_weights_d): Add return cost.
3965
3966 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
3967
3968         * c-parser.c (c_parser_struct_declaration): Handle declaration
3969         specifiers followed by CPP_CLOSE_BRACE.
3970
3971 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3972
3973         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
3974         split occurs before reload, and we allocate memory at the time of
3975         the split, not during expansion.  Add attributes.
3976         (floatsi<mode>2_lfiwax_mem): Ditto.
3977         (floatunssi<mode>2_lfiwzx): Ditto.
3978         (floatunssi<mode>2_lfiwzx_mem): Ditto.
3979         (floatsidf2): Ditto.
3980         (floatunssisf2): Ditto.
3981         (floatunssidf2): Ditto.
3982         (fix_trunc<mode>si2): Ditto.
3983         (fix_trunc<mode>si2_stfiwx): Ditto.
3984         (fix_trunc<mode>si2_internal): Ditto.
3985         (fix_trunc<mode>si2): Ditto.
3986         (fix_trunc<mode>di2): Ditto.
3987         (fixuns_trunc<mode>si2_stfiwx): Ditto.
3988         (floatsisf2): Ditto.
3989         (floatdidf2_mem): Ditto.
3990         (floatunsdidf2_mem): Ditto.
3991         (floatunsdidf2): Ditto.
3992         (floatdisf2_internal1): Ditto.
3993         (floatdisf2_mem): Ditto.
3994         (floatunsdisf2_mem): Ditto.
3995         (floatsi<mode>2_lfiwax_mem2): Delete.
3996         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
3997         (fix_trunc<mode>si2_mem): Ditto.
3998         (fixuns_trunc<mode>si2_mem): Ditto.
3999         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
4000         type operations to reduce copying the values to multiple memory slots.
4001         (roundu32<mode>2_fprs): Ditto.
4002
4003         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
4004         PRE_INC, PRE_DEC, PRE_MODIFY.
4005         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
4006
4007         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
4008         Delete prototype.
4009
4010 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4011
4012         PR target/43808
4013         * cfgexpand.c (partition_stack_vars): Call
4014         update_alias_info_with_stack_vars unconditionally.
4015         (update_alias_info_with_stack_vars): Allow unused
4016         unreferenced vars when not optimizing.
4017
4018 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
4019
4020         PR tree-optimization/46036
4021         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
4022         add_to_dst_predicate_list.
4023
4024 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4025
4026         PR debug/46171
4027         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
4028         earlier.
4029         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
4030         argument, call dead_debug_reset when adding REG_UNUSED note.
4031         (dead_debug_reset): New function.
4032         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
4033         df_create_unused_note callers.
4034
4035 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
4036
4037         * config/fr30/fr30.c: Include "df.h".
4038
4039 2010-11-09  Richard Guenther  <rguenther@suse.de>
4040
4041         PR tree-optimization/46355
4042         * tree-loop-distribution.c (tree_loop_distribution): Do not
4043         distribute loops without a single exit.
4044
4045 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4046
4047         PR rtl-optimization/46237
4048         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
4049         saved hard regs if they might get partially clobbered.
4050
4051 2010-11-09  Paul Koning  <ni1d@arrl.net>
4052
4053         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
4054
4055 2010-11-09  Richard Guenther  <rguenther@suse.de>
4056
4057         PR tree-optimization/46177
4058         * tree-loop-distribution.c (prop_phis): Remove.
4059         (generate_builtin): Re-use the old loop exit edge to avoid
4060         needing to update PHI nodes.
4061
4062 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
4063
4064         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
4065         type of args_size to unsigned HOST_WIDE_INT.
4066
4067         PR target/44755
4068         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
4069         * config/t-pnt16-warn: New file.
4070         * config/picochip/picochip.c (picochip_emit_stack_allocate):
4071         Use add_reg_note.
4072         (picochip_emit_save_register): Likewise.
4073         (picochip_emit_restore_register): Remove variable insn.
4074         (picochip_legitimize_address): Don't use C++ style comments.
4075         (picochip_legitimize_reload_address): Likewise.
4076         (reorder_var_tracking_notes): Remove variable vliw_start.
4077         (picochip_reorg): Cast first arguemnt to emit_note_after to
4078         enum insn_note.
4079         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
4080         (picochip_expand_builtin_3op): Likewise.
4081         (picochip_expand_builtin_2opvoid): Likewise.
4082         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
4083         (picochip_expand_array_testport): Likewise.
4084         (picochip_init_builtins): Remove unused variables.
4085         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
4086         to unsigned long, and output it as such.
4087         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
4088         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
4089         (schedType): Cast result of picochip_schedule_type to
4090         enum attr_schedType.
4091
4092         PR target/44759
4093         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
4094         conditional to type of S.
4095         (mn10300_function_arg): Remove unused variable align.
4096         (mn10300_arg_partial_bytes): Likewise.
4097         * config/mn10300/mn10300.md (attribute cpu): Cast value to
4098         enum attr_cpu.
4099
4100 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
4101
4102         PR bootstrap/46392
4103         * gengtype-parse.c (type): Call get_input_file_name to get file name.
4104
4105 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4106
4107         * tree.h (contains_placeholder_p): Fix comment.
4108         (type_contains_placeholder_p): Adjust comment.
4109         * tree.c (contains_placeholder_p): Fix comment.
4110         (type_contains_placeholder_1): Do not recurse on pointed-to types and
4111         adjust comment.
4112         (type_contains_placeholder_p): Add comment.
4113
4114 2010-11-09  Paul Koning  <ni1d@arrl.net>
4115
4116         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
4117         output of byte values.
4118
4119 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4120
4121         PR middle-end/46360
4122         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
4123         not in SSA mode.
4124
4125 2010-11-09  Richard Guenther  <rguenther@suse.de>
4126
4127         PR middle-end/46221
4128         * varasm.c (compute_visible_aliases): New function.
4129         (remove_unreachable_alias_pairs): Aliases make a target available
4130         even though we reclaimed the cgraph node.
4131         (finish_aliases_1): Likewise.
4132         * Makefile.in (varasm.o): Add pointer-set.h dependency.
4133
4134 2010-11-09  Nick Clifton  <nickc@redhat.com>
4135
4136         * config/mn10300/mn10300-modes.def: New file.
4137
4138 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
4139             Jeremie Salvucci  <jeremie.salvucci@free.fr>
4140
4141         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
4142         (plugin_files, get_file_basename, get_file_realbasename)
4143         (get_file_langdir, error_at_line, gt_files, this_file)
4144         (system_h_file, read_input_list, create_field_all)
4145         (get_file_srcdir_relative_path, get_file_basename)
4146         (get_file_langdir, get_file_gtfilename)
4147         (get_output_file_with_visibility, get_output_file_name)
4148         (struct flist, put_mangled_filename, walk_type)
4149         (put_mangled_filename, finish_root_table, write_roots): Use
4150         input_file-s.
4151         (lang_dir_names, num_lang_dirs): Remove static.
4152         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
4153         (main): Use input_file-s.
4154
4155         * gengtype.h: (struct input_file_st, input_file): New type.
4156         (struct fileloc): Use it.
4157         (gt_files, num_gt_files, this_file, system_h_file)
4158         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
4159         (get_input_file_name): New function.
4160         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
4161         use input_file.
4162         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
4163         (get_output_file_name): Ditto.
4164
4165         * gengtype-lex.l (yybegin): Use input_file.
4166
4167         * gengtype-parse.c (parse_error): Use input_file.
4168
4169 2010-11-08  Xinliang David Li  <davidxl@google.com>
4170
4171         PR tree-optimization/46316
4172         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
4173         * double-int.h (double_int_mul_with_sign): New function.
4174         * double-int.c (double_int_mul_with_sign): New function.
4175
4176 2010-11-08  Paul Koning  <ni1d@arrl.net>
4177
4178         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
4179
4180 2010-11-08  Paul Koning  <ni1d@arrl.net>
4181
4182         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
4183
4184 2010-11-08  Paul Koning  <ni1d@arrl.net>
4185
4186         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
4187         to 8 bits.
4188
4189 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
4190
4191         PR target/46378
4192         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
4193         turn on ISA 2.04 rounding instructions for power5.
4194
4195         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
4196         not ISA 2.02.
4197
4198         PR target/45585
4199         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
4200         in FPR registers.
4201         (movdi_low_st): Ditto.
4202
4203 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4204             Richard Henderson  <rth@redhat.com>
4205
4206         PR target/44758
4207         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
4208         (attribute acc_group): Cast value to enum attr_acc_group.
4209         (*movdi_nodouble+6): Use gen_int_mode.
4210         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
4211         if RTX_CODE is defined or not.
4212         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
4213         struct frv_io.
4214         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
4215         (frv_frame_access, frv_expand_prologue): Remove unused variables.
4216         (frv_expand_block_clear): Likewise.
4217         (frv_trampoline_init): Use LCT_NORMAL.
4218         (struct frv_packet_group): New struct, broken out of type of
4219         frv_packet.
4220         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
4221         use cast in loop counter increment.
4222         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
4223         assigning to io->type.
4224         (bdesc_set): Use rtx_code UNKNOWN in initializer.
4225         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
4226         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
4227         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
4228         (frv_read_argument): Use expand_normal.
4229
4230         PR target/44757
4231         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
4232         lm32_legitimate_constant_p.
4233         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
4234         * config/lm32/lm32.c (gen_int_relational): Make new block for
4235         LE / LT / LEU / LTU case.  Declare variables at start of block.
4236         (lm32_block_move_inline): Use XALLOCAVEC.
4237
4238 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4239
4240         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
4241
4242 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4243
4244         * gengtype (get_output_file_for_structure): Ensure type is union
4245         or struct.
4246         (write_splay_tree_allocator_def): Use
4247         get_output_file_with_visibility.
4248
4249 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4250
4251         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
4252         to defined values in case of an error.
4253         (s390_option_override): Skip further processing if the -march
4254         parameter wasn't recognized.
4255
4256 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4257
4258         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
4259         assert that REG is a hard register number before using it as an index.
4260
4261         PR bootstrap/46358
4262         * config/i386/i386.c (ix86_expand_split_stack_prologue):
4263         Avoid warnings when HOST_WIDE_INT is 32 bit.
4264
4265 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
4266
4267         PR target/46208
4268         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
4269         (sparc_promote_prototypes): Likewise.
4270         (sparc_promote_function_mode): Promote in 32-bit mode as well.
4271         (sparc_return_in_memory): Remove superfluous parentheses.
4272         (sparc_struct_value_rtx): Fix long lines.
4273         (sparc_function_value_1): Promote in 32-bit mode as well.
4274
4275 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
4276
4277         PR rtl-optimization/45352
4278         * sel-sched.c (find_best_expr): Do not set pneed_stall when
4279         the variable_issue hook is not implemented.
4280         (fill_insns): Remove dead variable stall_iterations.
4281         (init_seqno_1): Force EBB start for resetting sched cycles on any
4282         successor blocks of the rescheduled region.
4283         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
4284         (reset_sched_cycles_in_current_ebb): Add debug printing.
4285         New variable issued_insns.  Advance state when we have issued
4286         issue_rate insns.
4287
4288 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4289
4290         * gengtype (main): Get here's position using POS_HERE macro for
4291         do*typedef calls.
4292
4293 2010-11-07  Ian Lance Taylor  <iant@google.com>
4294
4295         PR target/46089
4296         * config/i386/i386.c (split_stack_fn_large): New static variable.
4297         (ix86_expand_split_stack_prologue): Handle large model.
4298
4299 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
4300
4301         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
4302         all possible addressing modes.
4303
4304 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
4305
4306         PR tree-optimization/46346
4307         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
4308
4309 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4310
4311         * config/mips/mips.c: Revert previous patch.
4312         * config/mips/mips.md: Likewise.
4313
4314 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4315
4316         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
4317         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
4318         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
4319         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
4320         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
4321         to use FMA.
4322         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
4323         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
4324         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
4325         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
4326
4327 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
4328
4329         PR c/43384
4330         * c-decl.c (lookup_label): Labels can only be referenced in a
4331         function's scope.
4332         (store_parm_decls_oldstyle): Skip erroneous parameters.
4333
4334 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
4335
4336         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
4337         LIBCALL_VALUE): Remove macros.
4338         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4339         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4340         (fr30_function_value_regno_p, fr30_function_value,
4341         fr30_libcall_value): New functions.
4342
4343 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
4344
4345         PR middle-end/46314
4346         * target.def (generate_internal_label): New asm_out hook.
4347         * output.h (default_generate_internal_label): Declare.
4348         * varasm.c (default_generate_internal_label): Define.
4349
4350 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
4351
4352         PR target/44981
4353         * doc/extend.tex (format): Document NSString extension.
4354         (format_arg): Likewise.
4355         (Darwin Format Checks): New section.
4356         * doc/tm.texi: Document string object hooks (generated).
4357         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
4358         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4359         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4360         * target.def (objc_construct_string_object): Rename, amend
4361         documentation.
4362         (string_object_ref_type_p): New hook.
4363         (check_string_object_format_arg): New hook.
4364         * c-parser.c (c_parser_attributes): Allow objective-c class names as
4365         attribute identifiers.
4366         * config/darwin-c.c (darwin_cfstring_ref_p): New.
4367         (darwin_check_cfstring_format_arg): New.
4368         (darwin_additional_format_types): New.
4369         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
4370         (darwin_check_cfstring_format_arg): New.
4371         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
4372         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4373         (TARGET_N_FORMAT_TYPES): New.
4374         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4375
4376 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
4377             Pascal Obry  <obry@adacore.com>
4378
4379         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
4380         in 64-bit mode and 17 otherwise.
4381
4382 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4383
4384         PR debug/45939
4385         * var-tracking.c (emit_note_insn_var_location): Make sure that
4386         call related var location notes come before the normal ones.
4387
4388 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4389
4390         PR target/46326
4391         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
4392         in the last change.
4393
4394 2010-11-05  Ian Lance Taylor  <iant@google.com>
4395
4396         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
4397
4398 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4399
4400         PR c/44772
4401         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
4402         pointer_set_contains if DECL_NAME is NULL.
4403
4404 2010-11-05  Ian Lance Taylor  <iant@google.com>
4405
4406         PR target/46084
4407         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
4408         request enough additional space for alignment, and force alignment.
4409
4410 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
4411
4412         * config/i386/i386.c (legitimate_pic_address_disp_p):
4413         Handle UNSPEC_PCREL.
4414         (ix86_legitimate_address_p): Likewise.
4415         (legitimize_pic_address): Likewise.
4416         (output_pic_addr_const): Likewise.
4417         (ix86_delegitimize_address): Likewise.
4418         (ix86_find_base_term): Likewise.
4419         (memory_address_length): Likewise.
4420         (x86_output_mi_thunk): Handle special case x64
4421         for non local binding.
4422         * config/i386/i386.md (UNSPEC_PCREL): New.
4423         * config/i386/winnt.c (i386_pe_binds_local_p):
4424         Allow weak symbol for x64 windows with non-local binding.
4425
4426 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4427
4428         PR target/45670
4429         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
4430         instead of EXPAND_NORMAL for base expansion.
4431
4432 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
4433
4434         * config.gcc: Support --with-fpmath=avx for x86.
4435         * config/i386/avxmath.h: New.
4436         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
4437
4438 2010-11-05  Ian Lance Taylor  <iant@google.com>
4439
4440         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
4441         * gengtype.c (walk_type): Don't recognize descbits option.
4442
4443 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
4444
4445         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
4446         WORD_SWITCH_TAKES_ARG): Remove.
4447         * doc/options.texi (Args): Document.
4448         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
4449         * doc/tm.texi: Regenerate.
4450         * opt-functions.awk (switch_flags): Handle Args.
4451         * opts-common.c: Update comment on tm.h include.
4452         (decode_cmdline_option): Handle options with multiple arguments.
4453         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
4454         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
4455         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
4456         CL_COMMON): Update values.
4457         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
4458         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
4459         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
4460         sectobjectsymbols, sectorder, segcreate, segprot): New.
4461
4462 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4463             Uros Bizjak  <ubizjak@gmail.com>
4464
4465         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
4466         256bit AVX register is used.
4467         (ix86_expand_vector_move_misalign): Likewise.
4468         (ix86_expand_vector_move): Replace use_avx256_p with
4469         VALID_AVX256_REG_MODE.
4470
4471 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
4472
4473          PR target/44750
4474         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
4475         change.  Set $@-warn.o to -Wno-error.
4476
4477         PR bootstrap/44756
4478         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
4479         comparing it to a signed value.
4480
4481         PR middle-end/44766
4482         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
4483         PR bootstrap/44770
4484         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
4485         to i.
4486
4487         PR target/44754
4488         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
4489         (m32c_function_arg).  Add comma between arguments two and three.
4490         (m32c_promote_prototypes): Remove declaration.
4491         (current_function_special_page_vector): Likewise.
4492         (m32c_regno_reg_class): Change return type to enum reg_class.
4493         (m32c_pushm_popm): Use add_reg_note.
4494         (m32c_push_rounding): Change return type to unsigned int.
4495         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
4496         enum reload_type.
4497         (m32c_insert_attributes): Constify variable name.
4498         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
4499         (m32c_prepare_shift): Remove variable lref.
4500         (m32c_expand_movcc): Remove variable cmp.
4501         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
4502         (m32c_compare_redundant): Remove variable op2.
4503         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
4504         (m32c_pragma_memregs): Assign the number to target_memregs.
4505         (m32c_pragma_address): Remove variable var_str.
4506         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
4507         enum reg_class.
4508         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
4509         * config/m32c/bitops.md (andsi3): Add default case to switch.
4510         (iorsi3, xorsi3): Likewise.
4511         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
4512         * config/m32c/jump.md (call, call_value): Likewise.
4513         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
4514         (m32c_regno_reg_class): Likewise.
4515         (current_function_special_page_vector): Declare.
4516
4517 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4518
4519         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
4520
4521         PR tree-optimization/46099
4522         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
4523         if it is NULL and uid wasn't found in the hash table.  Just fold the
4524         result if it is NULL otherwise.  Insert other potentially needed
4525         stmts right before current stmt instead of on the entry edge.
4526         (struct elv_data): Add gsi and reset fields.
4527         (eliminate_local_variables_1): Adjust caller.  If take_address_of
4528         failed for debug stmt, set dta->reset and return.
4529         (eliminate_local_variables_stmt): Change STMT argument for GSI,
4530         pass GSI through to the callback, handle resetting of debug stmts.
4531         (eliminate_local_variables): Adjust caller.  Process debug stmts
4532         in second phase.
4533
4534         PR middle-end/43690
4535         * gimplify.c (gimplify_asm_expr): If a "m" input is a
4536         {pre,post}{in,de}crement, fail.
4537
4538         PR debug/46307
4539         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
4540         * tree-pretty-print.c (dump_generic_node): Likewise.
4541         (op_code_prio): Likewise.
4542         * cfgexpand.c (expand_debug_expr): Likewise.
4543
4544 2010-11-04  Paul Koning  <ni1d@arrl.net>
4545
4546         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
4547         constraints.
4548
4549 2010-11-04  Chao-ying Fu  <fu@mips.com>
4550
4551         * configure.ac: Test assembler support for DSP Rev1 mult.
4552         * configure: Regenerate.
4553         * config.in: Regenerate.
4554         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
4555         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
4556         (CODE_FOR_mips_multu): New define.
4557         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
4558         dspr2_32 to dsp_32.
4559         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
4560         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
4561         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
4562         New define_expand patterns.
4563         * config/mips/constraints.md (ka): Update the constraint to test
4564         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
4565         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
4566         mips_multu): Delete.
4567         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
4568         Change target constraint to "ka".
4569         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
4570         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
4571         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4572         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
4573         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4574         (<u>maddsidi4): Likewise.
4575         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
4576         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
4577
4578 2010-11-04  Paul Koning  <ni1d@arrl.net>
4579
4580         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
4581
4582 2010-11-04  Paul Koning  <ni1d@arrl.net>
4583
4584         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
4585
4586 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
4587
4588         Fixed using the Objective-C 2.0 dot-syntax with class names.
4589         * c-parser.c (c_parser_next_token_starts_declspecs): In
4590         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
4591         (c_parser_next_token_starts_declaration): Same.
4592         (c_parser_postfix_expression): Parse the Objective-C 2.0
4593         dot-syntax with a class name.
4594
4595 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
4596
4597         * final.c (compute_alignments): Compute/free loop info all the time.
4598         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
4599         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
4600         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
4601         * config/rs6000/rs6000.c (cfgloop.h): Include.
4602         (can_override_loop_align): New.
4603         (rs6000_option_override_internal): Set it.
4604         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
4605         (rs6000_loop_align): New function.
4606         (rs6000_loop_align_max_skip): Likewise.
4607
4608 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4609
4610         PR driver/45703
4611         * collect2.c (main): Print --help output to stdout.  Do not
4612         exit right away, so ld --help is appended.  Add empty lines
4613         to separate output suitably.
4614
4615 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
4616
4617         PR tree-optimization/46233
4618         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
4619         after calling analyze_function, not before.
4620
4621         PR target/46234
4622         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
4623         instead of build_va_arg_indirect_ref.
4624         * config/spu/spu.c (spu_va_start): Likewise.
4625         * config/s390/s390.c (s390_va_start): Likewise.
4626
4627 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
4628
4629         PR middle-end/46292
4630         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
4631         if the innermode is not vector mode, determine the mode of a subreg
4632         by using mode_for_size of inner_size.
4633
4634 2010-11-04  Richard Guenther  <rguenther@suse.de>
4635
4636         PR rtl-optimization/46183
4637         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
4638         (execute_rtl_pre): Likewise.
4639         (execute_rtl_hoist): Likewise.
4640
4641 2010-11-04  Richard Guenther  <rguenther@suse.de>
4642
4643         PR tree-optimization/46068
4644         * ipa-split.c (consider_split): Remove gcc_unreachable.
4645
4646 2010-11-04  Richard Guenther  <rguenther@suse.de>
4647
4648         * tree-nested.c (build_addr): Use build_fold_addr_expr.
4649
4650 2010-11-04  Richard Guenther  <rguenther@suse.de>
4651
4652         PR tree-optimization/45991
4653         * gimplify.c (force_gimple_operand_1): Use the provded test
4654         function in the initial test.
4655
4656 2010-11-04  Jeff Law  <law@redhat.com>
4657
4658         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
4659         of readonly memory equivalances for const/pure calls.
4660
4661 2010-11-04  Richard Guenther  <rguenther@suse.de>
4662
4663         PR tree-optimization/45733
4664         * tree-vect-stmts.c (reverse_vec_elements): Honor the
4665         permute builtins function return type.
4666
4667 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
4668
4669         PR middle-end/44765
4670         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
4671         as an index, check it is not INVALID_REGNUM.
4672
4673         PR bootstrap/44756
4674         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
4675         unsignedp.
4676         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
4677
4678         PR bootstrap/44756
4679         * function.c (thread_prologue_and_epilogue_insns): Add
4680         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
4681
4682         PR bootstrap/44756
4683         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
4684
4685         PR target/44750
4686         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
4687         (pdp11_preferred_reload_class): Rename class to rclass.
4688         (pdp11_preferred_output_reload_class): Likewise.
4689         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
4690         ALL_COMPILERFLAGS .
4691         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
4692
4693         PR bootstrap/44756
4694         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
4695         iteration variables to enum machine_mode.
4696
4697         PR target/44751
4698         * config/h8300/h8300.c: Include df.h.
4699         (push, pop): Use add_reg_note.
4700         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
4701         (compute_a_shift_cc): Likewise.
4702         (expand_a_shift): Argument code has type enum rtx_code.
4703         (struct shift_insn): Member cc_valid has type enum attr_cc.
4704         (struct shift_info) <cc_inline, cc_special>: Likewise.
4705         enum attr_cc.
4706         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
4707         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
4708
4709 2010-11-04  Ira Rosen  <irar@il.ibm.com>
4710
4711         PR tree-optimization/46213
4712         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
4713         MINUS_EXPR only if the first operand is reduction operand.
4714
4715 2010-11-04  Richard Guenther  <rguenther@suse.de>
4716             Richard Henderson  <rth@redhat.com>
4717
4718         * tree.def (FMA_EXPR): New tree code.
4719         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
4720         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
4721         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
4722         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
4723         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
4724         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
4725         (execute_optimize_widening_mul): Call it.  Reorganize to allow
4726         dead stmt removal.  Move TODO flags ...
4727         (pass_optimize_widening_mul): ... here.
4728         * flag-types.h (enum fp_contract_mode): New enum.
4729         * common.opt (flag_fp_contract_mode): New variable.
4730         (-ffp-contract): New option.
4731         * opts.c (common_handle_option): Handle it.
4732         * doc/invoke.texi (-ffp-contract): Document.
4733         * tree.h (fold_fma): Declare.
4734         * builtins.c (fold_fma): New function.
4735         (fold_builtin_fma): Likewise.
4736         (fold_builtin_3): Call it for fma.
4737         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
4738         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
4739         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
4740         New expanders.
4741         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
4742         named patterns.
4743         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
4744         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
4745         (fms_optab, fnma_optab, fnms_optab): New defines.
4746         * gimplify.c (gimplify_expr): Handle binary truth expressions
4747         explicitly.  Handle FMA_EXPR.
4748         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
4749         operations.
4750
4751 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4752             Richard Guenther  <rguenther@suse.de>
4753
4754         * passes.c (init_optimization_passes): Move veclower after SSA.
4755         * tree-vect-generic.c (uniform_vector_p): New function.
4756         (expand_vector_operations_1): Handle conversion.
4757         (pass_lower_vector): Update SSA form.
4758
4759 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
4760
4761         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
4762         plugin capabilities.
4763         * configure: Regenerate.
4764
4765 2010-11-03  Xinliang David Li  <davidxl@google.com>
4766
4767         PR target/46200
4768         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
4769         Adjust cbase if the use stmt is after iv update.
4770
4771 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4772
4773         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
4774
4775 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4776
4777         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
4778         comment.  Pass true to the last argument of output_stack_adjust.
4779
4780 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4781
4782         PR target/46295
4783         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
4784         if 256bit AVX register is used.
4785
4786 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
4787
4788         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
4789         xsmindp/xsmaxdp on VSX for single precision min/max.
4790         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
4791         (vsx_sminsf3): Ditto.
4792
4793 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4794
4795         * combine.c (try_combine): Fix formatting issues, improve comments and
4796         fix a pasto.
4797
4798 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4799
4800         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
4801         of the result before building binary expressions.
4802
4803 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4804
4805         PR rtl-optimization/45865
4806         * Makefile.in (df-problems.o): Revert revision 164552.
4807         * basic-block.h (enum bb_flags): Likewise.
4808         * cfgcleanup.c (block_was_dirty): Likewise.
4809         (try_forward_edges): Likewise.
4810         (try_crossjump_bb): Likewise.
4811         (try_head_merge_bb): Likewise.
4812         (try_optimize_cfg): Likewise.
4813         (cleanup_cfg): Likewise.
4814         * df-core.c (df_set_bb_dirty): Likewise.
4815         * df-problems.c: Likewise.
4816         (df_simulate_find_uses): Likewise.
4817         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
4818         (find_memory, find_memory_store): Likewise.
4819         (can_move_insns_across): Likewise.
4820         * df.h (can_move_insns_across): Likewise.
4821         * ifcvt.c (find_memory): Likewise.
4822         (dead_or_predicable): Likewise.
4823
4824 2010-11-03  Richard Guenther  <rguenther@suse.de>
4825
4826         PR middle-end/46288
4827         * predict.c (strip_predict_hints): Simply DCE builtin expect if
4828         the result is unused.
4829
4830 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4831
4832         PR tree-optimization/46009
4833         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
4834         cond_if_else_store_replacement if bb1 and bb2 have the same
4835         single successor.
4836         (cond_store_replacement): Use gimple_assign_single_p, don't
4837         check if rhs is SSA_NAME or invariant.  Call release_defs for
4838         assign.
4839         (cond_if_else_store_replacement): New function.
4840
4841 2010-11-03  Richard Guenther  <rguenther@suse.de>
4842
4843         * opts.c (finish_options): Properly check for all WHOPR
4844         flags before complaining about -flto-partition.
4845
4846 2010-11-04  Alan Modra  <amodra@gmail.com>
4847
4848         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
4849         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
4850         TARGET_SECURE_PLT.
4851         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
4852         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
4853         on input, "r" on output.
4854
4855 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
4856
4857         Implemented -fobjc-std=objc1 flag.
4858         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
4859         option.
4860         * doc/standards.texi (Standards): Updated the section on
4861         Objective-C; mention support for Objective-C 2.0 features and the
4862         new -fstd-objc=objc1 flag to disable them.
4863
4864 2010-11-03  Richard Guenther  <rguenther@suse.de>
4865
4866         PR middle-end/46241
4867         * dwarf2out.c (scope_die_for): Properly detect global scope.
4868
4869 2010-11-03  Richard Guenther  <rguenther@suse.de>
4870
4871         PR tree-optimization/46190
4872         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4873         Properly compute peel iterations.
4874
4875 2010-11-03  Richard Guenther  <rguenther@suse.de>
4876
4877         PR tree-optimization/46286
4878         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
4879         re-allocated vector data.
4880
4881 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4882
4883         PR target/46285
4884         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
4885         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
4886         is completed.
4887
4888 2010-11-03  Richard Guenther  <rguenther@suse.de>
4889
4890         PR tree-optimization/46217
4891         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
4892         flag matches.
4893         (execute_update_addresses_taken): Likewise.
4894
4895 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
4896
4897         PR bootstrap/44335
4898         * targhooks.c (targhook_words_big_endian): New function.
4899         (targhook_float_words_big_endian): Likewise.
4900         * targhooks.h (targhook_words_big_endian): Declare.
4901         (targhook_float_words_big_endian): Likewise.
4902         * target.def (words_big_endian, float_words_big_endian): New hooks.
4903
4904 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4905
4906         PR tree-optimization/46165
4907         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
4908         a normal call into noreturn call.
4909
4910 2010-11-03  Richard Guenther  <rguenther@suse.de>
4911
4912         PR middle-end/46251
4913         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
4914         not INDIRECT_REFs.
4915
4916 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4917
4918         PR tree-optimization/46107
4919         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
4920         if cfg_hook_duplicate_loop_to_header_edge failed.
4921
4922 2010-11-03  Ian Lance Taylor  <iant@google.com>
4923
4924         PR lto/46273
4925         * config.gcc: Don't set lto_binary_reader.
4926         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
4927         (Configuration): Mention --disable-lto.  Remove --with-libelf
4928         paragraph.
4929
4930 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4931
4932         PR debug/46252
4933         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
4934         prev_real_insn.
4935         * gcse.c (insert_insn_end_basic_block): Likewise.
4936
4937         PR rtl-optimization/46034
4938         PR rtl-optimization/46212
4939         PR rtl-optimization/46248
4940         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
4941         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
4942         before i0dest -> i0src substitution and pass 1 instead of 0 as last
4943         argument to subst on i2pat.
4944
4945 2010-11-02  Ian Lance Taylor  <iant@google.com>
4946
4947         * configure.ac: Use AC_SYS_LARGEFILE.
4948         * configure: Rebuild.
4949         * config.in: Rebuild.
4950
4951 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
4952
4953         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
4954         fold_convert.
4955         * c-typeck.c (build_function_call_vec): Likewise.
4956         * cfgexpand.c (expand_debug_expr): Likewise.
4957         * cgraphunit.c (assemble_thunk): Likewise.
4958         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
4959         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
4960         (fold_binary_loc, fold_ternary_loc): Likewise.
4961         * gimple-fold.c (get_symbol_constant_value): Likewise.
4962         * gimple-low.c (lower_builtin_setjmp): Likewise.
4963         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
4964         * gimplify.c (gimplify_init_constructor): Likewise.
4965         * lambda.h (build_linear_expr): Likewise.
4966         * omp-low.c (omp_reduction_init): Likewise.
4967         * tree-inline.c (remap_ssa_name): Likewise.
4968         * tree-object-size.c (compute_object_sizes): Likewise.
4969         * tree-sra.c (init_subtree_with_zero): Likewise.
4970         (sra_ipa_modify_assign): Likewise.
4971         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
4972         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
4973         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
4974         (undistribute_ops_list): Likewise.
4975         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
4976         * tree-vect-stmts.c (vectorizable_call): Likewise.
4977         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
4978         (build_zero_cst): Handle more cases directly.  Update comment.
4979
4980 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4981
4982         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
4983         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
4984
4985         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
4986         and call ix86_split_call_vzeroupper instead of
4987         ix86_split_call_pop_vzeroupper.
4988         (*call_pop_1_vzeroupper): Likewise.
4989         (*sibcall_pop_1_vzeroupper): Likewise.
4990         (*call_value_pop_0_vzeroupper): Likewise.
4991         (*call_value_pop_1_vzeroupper): Likewise.
4992         (*sibcall_value_pop_1_vzeroupper): Likewise.
4993
4994 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4995
4996         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
4997
4998 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
4999
5000         * basic-block.h (insert_insn_end_bb_new): Delete.
5001         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
5002
5003 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
5004             H.J. Lu  <hongjiu.lu@intel.com>
5005
5006         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
5007         (ix86_split_call_pop_vzeroupper): Likewise.
5008
5009         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
5010         (ix86_expand_call): Conditionally decorate calls with
5011         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
5012         (ix86_split_call_vzeroupper): New.
5013         (ix86_split_call_pop_vzeroupper): Likewise.
5014
5015         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
5016         (*call_pop_0_vzeroupper): New insn_and_split pattern.
5017         (*call_pop_1_vzeroupper): Likewise.
5018         (*sibcall_pop_1_vzeroupper): Likewise.
5019         (*call_0_vzeroupper): Likewise.
5020         (*call_1_vzeroupper): Likewise.
5021         (*sibcall_1_vzeroupper): Likewise.
5022         (*call_1_rex64_vzeroupper): Likewise.
5023         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
5024         (*call_1_rex64_large_vzeroupper): Likewise.
5025         (*sibcall_1_rex64_vzeroupper): Likewise.
5026         (*call_value_pop_0_vzeroupper): Likewise.
5027         (*call_value_pop_1_vzeroupper): Likewise.
5028         (*sibcall_value_pop_1_vzeroupper): Likewise.
5029         (*call_value_0_vzeroupper): Likewise.
5030         (*call_value_0_rex64_vzeroupper): Likewise.
5031         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
5032         (*call_value_1_vzeroupper): Likewise.
5033         (*sibcall_value_1_vzeroupper): Likewise.
5034         (*call_value_1_rex64_vzeroupper): Likewise.
5035         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
5036         (*call_value_1_rex64_large_vzeroupper): Likewise.
5037         (*sibcall_value_1_rex64_vzeroupper): Likewise.
5038
5039 2010-11-02  Ian Lance Taylor  <iant@google.com>
5040
5041         PR lto/46273
5042         * config.gcc: Revert last patch: set lto_binary_reader.
5043
5044 2010-11-02  Richard Guenther  <rguenther@suse.de>
5045
5046         PR tree-optimization/46149
5047         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
5048         non-indirect MEM_REF variants.
5049
5050 2010-11-02  Richard Guenther  <rguenther@suse.de>
5051
5052         PR tree-optimization/46216
5053         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5054         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
5055
5056 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5057
5058         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
5059         (*-*-osf*): Likewise.
5060         * configure: Regenerate.
5061
5062 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
5063
5064         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
5065         for Intel Core 2 and Core i7.
5066
5067 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
5068
5069         Model decoder of Core 2/i7 for multipass scheduling.
5070
5071         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
5072         New type to hold target-specific data for multipass scheduling.
5073         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5074         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
5075         Core 2/i7.
5076         (core2i7_secondary_decoder_max_insn_size,)
5077         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
5078         New static variables.
5079         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
5080         ([_]ix86_first_cycle_multipass_data): New static variable.
5081         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
5082         Implement targetm.sched hooks.
5083         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
5084         of ...
5085         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
5086         Implement new targetm.sched hooks.
5087         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
5088         targetm.sched hook to install multipass scheduling hooks on demand.
5089
5090         * doc/tm.texi.in: Document new targetm.sched hooks.
5091         * doc/tm.texi: Regenerate.
5092
5093         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5094         (first_cycle_multipass_data_t): New typedef.
5095         (struct choice_entry: target_data): New field.
5096         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
5097         to allow target model restrictions not represented in DFA.
5098         (choose_ready, schedule_block): Update.
5099         (sched_extend_ready_list, sched_finish_ready_list): Call new target
5100         hooks to initialize target-specific data for multipass scheduling.
5101         * sched-int.h (max_issue): Update declaration.
5102         * sel-sched.c (choose_best_insn): Update.
5103         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
5104         (first_cycle_multipass_{init, fini}): Define and document new
5105         targetm.sched hooks.
5106
5107 2010-11-02  Richard Guenther  <rguenther@suse.de>
5108
5109         PR tree-optimization/46184
5110         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
5111         input vector type from the reduction operand as well.
5112
5113 2010-11-02  Richard Guenther  <rguenther@suse.de>
5114
5115         PR tree-optimization/46177
5116         * tree-loop-distribution.c (prop_phis): Use
5117         mark_virtual_phi_result_for_renaming.
5118
5119 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5120
5121         PR middle-end/46120
5122         * tree.c (get_binfo_at_offset): Bail out on artificial
5123         fields.  Identify primary bases according to their offsets.
5124
5125 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5126
5127         PR tree-optimization/45875
5128         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
5129         (gimple_get_relevant_ref_binfo): Detect primary bases according to
5130         their field offset.
5131
5132 2010-11-02  Ian Lance Taylor  <iant@google.com>
5133
5134         * doc/install.texi (Configuration): Note in two places that Java
5135         is not enabled by default.
5136
5137 2010-11-02  Ian Lance Taylor  <iant@google.com>
5138
5139         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
5140         (Configuration): Mention --disable-lto.  Remove --with-libelf
5141         paragraph.
5142
5143 2010-11-02  Ian Lance Taylor  <iant@google.com>
5144
5145         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
5146         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
5147         LIBELFINC.  Remove HAVE_libelf.
5148         * config.gcc: Don't set lto_binary_reader.
5149         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
5150         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
5151         (LIBS): Remove $(LIBELFLIBS).
5152         (INCLUDES): Remove $(LIBELFINC).
5153         * configure: Rebuild.
5154         * config.in: Rebuild.
5155
5156 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
5157
5158         * config/microblaze/microblaze-protos.h (function_arg): Delete.
5159         (function_arg_advance): Delete.
5160         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
5161         (FUNCTION_ARG): Delete.
5162         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
5163         (microblaze_function_arg_advance): ...this.  Make static.  Take a
5164         const_tree and a bool.
5165         (function-arg): Rename to...
5166         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
5167         and a bool.
5168         (microblaze_expand_prologue): Call targetm.calls.function_arg and
5169         targetm.calls.function_arg_advance.
5170         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5171
5172 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5173
5174         Merge from FSF "apple/trunk" branch.
5175
5176         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
5177         * config/darwin.opt: .. to here.
5178         (matt-stubs): New option.
5179         * config/i386/darwin.opt: Delete.
5180         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
5181         (MACHO_DYNAMIC_NO_PIC_P): New.
5182         (MACHOPIC_INDIRECT): New.
5183         (MACHOPIC_PURE): New.
5184         * config/i386/darwin.h (DARWIN_X86) Define to 1.
5185         (MACHOPIC_ATT_STUB): New.
5186         (CC1_SPEC): Do not remove mdynamic-no-pic.
5187         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5188         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5189         (FUNCTION_PROFILER): Correct over-length line.
5190         (SUBTARGET_OVERRIDE_OPTIONS): New.
5191         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5192         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
5193         (legitimate_constant_p): Handle mdynamic-no-pic.
5194         (ix86_legitimate_address_p): Likewise.
5195         (ix86_legitimize_address): Likewise.
5196         (ix86_expand_move): Likewise.
5197         (machopic_output_stub): Update for ATT-style stubs and
5198         mdynamic-no-pic.
5199         * config/darwin-protos.h (machopic_symbol_defined_p): New.
5200         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
5201         TARGET_DYNAMIC_NO_PIC: Remove.
5202         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5203         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5204         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
5205         Remove handling of mdynamic-no-pic.
5206         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
5207         Define if required.
5208         (machopic_symbol_defined_p): Do not try to use current_function_decl
5209         when generating _get_pc thunks within stubs.
5210         (machopic_indirect_data_reference): Rework for direct conditionals
5211         rather than #ifdefs, add x86 mdynamic-no-pic
5212         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
5213         defined value.
5214         (darwin_override_options): Handle mdynamic-no-pic here.
5215         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
5216         (machopic_lazy_symbol_ptr3_section): New.
5217         (machopic_picsymbol_stub2_section): New.
5218         (machopic_picsymbol_stub3_section): New.
5219         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
5220         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5221         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
5222         Moved common definition from x86 and rs6000.
5223         (MACHO_DYNAMIC_NO_PIC_P): Override value.
5224         (MACHOPIC_INDIRECT): Likewise.
5225         (MACHOPIC_PURE): Likewise.
5226         * config.gcc (x86-darwin-*): Remove darwin.opt.
5227
5228 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
5229
5230         PR debug/46255
5231         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
5232         instead of gsi_last_bb.
5233
5234 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5235             Maxim Kuvyrkov  <maxim@codesourcery.com>
5236
5237         * config/i386/i386.c (cpu_names): Add "corei7".
5238         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
5239
5240 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5241             Maxim Kuvyrkov  <maxim@codesourcery.com>
5242
5243         Tune alignment for Intel Core i7
5244
5245         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
5246         (enum processor_type): Update comment.  Add entries for Core i7.
5247         * config/i386-c.c (ix86_target_macros_internal): Update.
5248         * config/i386.c (m_COREI7{_32,_64}): New macros.
5249         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
5250         (processor_target_table): Tune alignment for Core i7.
5251         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
5252
5253         * doc/invoke.texi: Document "corei7" option value.
5254
5255 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5256             Maxim Kuvyrkov  <maxim@codesourcery.com>
5257             H.J. Lu  <hjl.tools@gmail.com>
5258
5259         Basic support for Intel Core i7
5260
5261         * i386.c (ix86_option_override_internal): Add entry for corei7, use
5262         generic tuning.  Use generic32 when compiling for 32-bit ABI.
5263
5264 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5265
5266         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
5267         sections and call darwin_asm_dwarf_section() to handle them.
5268         (darwin_asm_dwarf_section): New.
5269         (darwin_file_start): Remove code emitting dwarf section symbols.
5270
5271 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
5272
5273         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
5274         explicitly disable stack protection when building libgcc.
5275         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
5276
5277 2010-11-01  Jason Merrill  <jason@redhat.com>
5278
5279         * fold-const.c (fold_indirect_ref_1): Handle folding
5280         POINTER_PLUS_EXPR to ARRAY_REF.
5281
5282 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
5283
5284         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
5285         (sh_delegitimize_address): New function.
5286
5287 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5288
5289         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
5290         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
5291         (CC1_SPEC): Don't handle -target.
5292         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
5293         options.
5294         * config/darwin.opt (Zallowable_client, Zbundle_loader,
5295         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
5296         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
5297         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
5298         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
5299         Zweak_reference_mismatches, client_name, compatibility_version,
5300         current_version, dylinker_install_name, pagezero_size,
5301         read_only_relocs, seg1addr, segs_read_only_addr,
5302         segs_read_write_addr, sub_library, sub_umbrella): New.
5303         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
5304         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
5305         * config/freebsd.opt: New.
5306         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
5307         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
5308         * config/rpath.opt: New.
5309         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
5310         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
5311         Use rpath.opt.
5312
5313 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5314
5315         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
5316         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
5317         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
5318         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
5319         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
5320         Document that options in .opt files do not need to be included.
5321         * doc/tm.texi: Regenerate.
5322         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
5323         * opts-common.c: Update comment on tm.h include.
5324         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
5325         * system.h (SWITCH_TAKES_ARG): Poison.
5326         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
5327         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
5328         in darwin.opt.
5329         (LINK_COMMAND_SPEC_A): Don't include %{x}.
5330         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5331         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
5332         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
5333         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5334         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
5335         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
5336         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
5337         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
5338         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5339         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
5340         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
5341         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
5342         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
5343         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
5344         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
5345         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
5346         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
5347         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
5348         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
5349         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
5350         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
5351         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
5352         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5353
5354 2010-11-01  Paul Koning  <ni1d@arrl.net>
5355
5356         * config/pdp11/pdp11.md: Use iterators.
5357         (addqi3, subqi3, iorsi3, xorsi3): Delete.
5358
5359 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
5360
5361         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
5362         GCC_INSN_FLAGS_H.
5363         * libgcov.c (__gcov_indirect_call_profiler): Set
5364         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
5365         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
5366
5367 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5368
5369         PR tree-optimization/46259
5370
5371         Revert:
5372         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5373         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
5374         build_vector_from_val.
5375
5376 2010-11-01  DJ Delorie  <dj@redhat.com>
5377
5378         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
5379         as well as an assertion.
5380
5381 2010-11-01  Paul Koning  <ni1d@arrl.net>
5382
5383         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
5384         complex modes in memory.
5385
5386 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5387
5388         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
5389
5390 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
5391
5392         PR target/45250
5393         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
5394         (cfa_base_offset): New variable.
5395         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
5396         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
5397         is NULL.
5398         (vt_init_cfa_base): Initialize cfa_base_offset.
5399
5400 2010-11-01  Alan Modra  <amodra@gmail.com>
5401
5402         PR target/46030
5403         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
5404         and savres_strategy.
5405         (stack_info): New file scope var.
5406         (rs6000_init_machine_status): Init stack_info.
5407         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
5408         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
5409         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
5410         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
5411         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
5412         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
5413         (rs6000_savres_strategy): Rewrite.
5414         (rs6000_stack_info): Use "stack_info" in place of local "info".
5415         Return cached stack info when reload_completed unless ENABLE_CHECKING
5416         in which case confirm newly calculated stack info matches old info.
5417         Delay calculation of lr_save_p, set it for out of line gp save/restore
5418         as well as fp.  Call rs6000_savres_strategy from here..
5419         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
5420         (rs6000_output_function_prologue): Use info->savres_strategy to
5421         determine whether fp save/restore externs need to be emitted.
5422
5423 2010-10-31  Jason Merrill  <jason@redhat.com>
5424
5425         * tree.h (EXPR_LOC_OR_HERE): New macro.
5426         * builtins.c (c_strlen): Use it.
5427         * c-decl.c (build_enumerator): Likewise.
5428         * gimplify.c (internal_get_tmp_var): Likewise.
5429         (shortcut_cond_expr): Likewise.
5430         (gimplify_one_sizepos): Likewise.
5431
5432 2010-10-31  Richard Henderson  <rth@redhat.com>
5433
5434         * config/i386/cygming.h (TARGET_SEH): New.
5435         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
5436         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
5437         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
5438         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
5439         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
5440         (ASM_DECLARE_FUNCTION_SIZE): New.
5441         * config/i386/i386-protos.h: Update.
5442         * config/i386/i386.c (ix86_option_override_internal): Enable
5443         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
5444         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
5445         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
5446         (ix86_compute_frame_layout): For SEH, disable
5447         use_fast_prologue_epilogue, move frame pointer to the end of
5448         the frame.  Initialize hfp_save_offset.
5449         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
5450         at end of prologue for SEH.
5451         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
5452         emit blockage at beginning of epilogue.
5453         (ix86_expand_binary_operator): After reload, emit LEA if needed.
5454         (ix86_output_call_insn): New.
5455         * config/i386/i386.h (TARGET_SEH): New.
5456         (struct machine_function): Add member seh.
5457         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
5458         * config/i386/winnt.c (struct seh_frame_state): New.
5459         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
5460         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
5461         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
5462         i386_pe_start_function, i386_pe_end_function): New.
5463
5464         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
5465         as CFA_STORE in rules 12 and 13.
5466
5467 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
5468
5469         PR tree-optimization/46142
5470         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
5471         accommodate third function argument.
5472
5473 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5474
5475         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
5476
5477 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5478
5479         * fold-const.c (build_zero_vector): Use build_vector_from_val.
5480         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
5481         (get_initial_def_for_reduction): Likewise.
5482         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
5483         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
5484         * tree.c (build_one_cst): Likewise.
5485         (build_vector_from_val): Use types_compatible_p for assert.
5486
5487 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5488
5489         * emit-rtl.c (mark_used_flags): New function.
5490         (set_used_flags, reset_used_flags): Call it.
5491
5492 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
5493
5494         PR middle-end/44569
5495         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
5496         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
5497
5498 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
5499
5500         PR target/46195
5501         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
5502         (ix86_compat_aligned_value_p): This.
5503         (ix86_old_function_arg_boundary): Renamed to ...
5504         (ix86_compat_function_arg_boundary): This.  Updated.
5505         (ix86_contains_aligned_value_p): New.
5506         (ix86_function_arg_boundary): Align long double parameters on
5507         stack to 4byte in 32bit.
5508
5509 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
5510
5511         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
5512         * c-parser.c (c_parser_objc_at_property_declaration): Removed
5513         parsing of RID_COPIES and RID_IVAR.  Updated call to
5514         objc_add_property_declaration.
5515         * c-typecheck.c (build_component_ref): Call
5516         objc_maybe_build_component_ref instead of objc_build_setter_call.
5517         Use objc_is_property_ref to improve Objective-C checks.
5518         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
5519         of objc_build_getter_call.
5520
5521 2010-10-29  Paul Koning  <ni1d@arrl.net>
5522
5523         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5524         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
5525         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
5526         (REG_OK_STRICT): Move description.
5527
5528 2010-10-29  Paul Koning  <ni1d@arrl.net>
5529
5530         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
5531
5532 2010-10-29  Paul Koning  <ni1d@arrl.net>
5533
5534         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
5535
5536 2010-10-29  Paul Koning  <ni1d@arrl.net>
5537
5538         PR/41822
5539         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
5540
5541 2010-10-29  Richard Henderson  <rth@redhat.com>
5542
5543         PR rtl-opt/46226
5544         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
5545         for asm goto.
5546
5547 2010-10-29  Paul Koning  <ni1d@arrl.net>
5548
5549         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
5550         register to register move.
5551
5552 2010-10-29  Paul Koning  <ni1d@arrl.net>
5553
5554         * config/pdp11/pdp11.c (print_operand_address): Correct handling
5555         of integer constant addresses, delete vax-only logic.
5556
5557 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
5558
5559         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
5560         a conditional expression.
5561
5562 2010-10-29  Paul Koning  <ni1d@arrl.net>
5563
5564         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
5565         instruction encoding.
5566
5567 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5568             Andrew Pinski  <pinskia@gmail.com>
5569
5570         * tree.h (build_vector_from_val): Declare.
5571         * tree.c (build_vector_from_val): New function.
5572         * c-typeck.c (build_binary_op): Handle vector shifting.
5573         * doc/extend.texi: Description of the vector shifting operation.
5574
5575 2010-10-29  Paul Koning  <pkoning@equallogic.com>
5576
5577         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
5578         pdp11_secondary_memory_needed): Declare.
5579         * config/pdp11/predicates.md (float_operand): New predicate.
5580         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
5581         (cbranchdf4, movdf): Change predicate.
5582         (movsf): Handle FPU register case.
5583         (truncdfsf2, extendsfdf2): Add FPU register case.
5584         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
5585         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
5586         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5587         (pdp11_register_move_cost): Update cost matrix.
5588         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
5589         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
5590         pdp11_secondary_memory_needed): New function.
5591         (pdp11_return_in_memory): Add other float types.
5592         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
5593         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
5594         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
5595         REGISTER_MOVE_COST): Delete.
5596         (BASE_RETURN_VALUE_REG): Add other float types.
5597
5598 2010-10-29  Nick Clifton  <nickc@redhat.com>
5599
5600         * doc/invoke.texi: Document -mam34 and -mtune options.
5601         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
5602         (mn10300_tune_cpu): New variable.
5603         (mn10300_handle_option): Handle -mam34 and -mtune options.
5604         (mn10300_option_override): Convert tune string into tune cpu variable.
5605         (mn10300_legitimate_constant_p): Delete unused local variable.
5606         (is_load_insn): New function.
5607         (is_store_insn): New function.
5608         (mn10300_adjust_schedule_cost): New function.
5609         (TARGET_SCHED_ADJUST_COST): Define.
5610         * config/mn10300/mn10300.opt (mam34): New option.
5611         (mtune): New option.
5612         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
5613         (enum processor_type): Add AM34.
5614         (TARGET_AM34): Define.
5615         * config/mn10300/mn10300.md (attr cpu): Add am34.
5616         Add pipeline description.
5617         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
5618         Remove unneeded alternatives.  Add timing attribute.
5619         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
5620         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
5621         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
5622         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
5623         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
5624         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
5625         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
5626         float_conditional_branch, jump, indirect_jump, tablejump,
5627         call_internal, call_value_internal, zero_extendqisi2_am33,
5628         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
5629         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
5630         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
5631         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
5632         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
5633         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
5634         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
5635         return_internal_regs, store_movm, return, call_next_insn):
5636         Add timing attribute.
5637         (am33_subsi3): Add missing clobber of CC_REG.
5638         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
5639         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
5640         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
5641         extendqisi2): Fix predicates.
5642         (call_internal, call_internal_value): Separate alternatives.
5643         * config/mn10300/t-mn10300: Add AM34 multilib.
5644
5645 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
5646
5647         * config/sh/sh.c (sh_promote_function_mode): Use
5648         default_promote_function_mode if !sh_promote_prototypes.
5649
5650 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
5651
5652         * recog.c (split_all_insns): Remove dead code.
5653
5654 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5655
5656         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5657
5658 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5659
5660         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5661         (FUNCTION_ARG_ADVANCE): Delete.
5662         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
5663         functions.
5664         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
5665         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5666         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5667
5668 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5669
5670         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
5671         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5672         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5673         Take a const_tree and a bool.
5674         (mcore_function_arg_advance): New function.
5675         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5676
5677 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5678
5679         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
5680         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5681         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5682         Take a const_tree and a bool.
5683         (mcore_function_arg_advance): New function.
5684         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5685
5686 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5687
5688         * config/h8300/h8300-protos.h (function_arg): Delete.
5689         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5690         * config/h8300/h8300.c (function_arg): Rename to...
5691         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
5692         a bool.
5693         (h8300_function_arg_advance): New function.
5694         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5695
5696 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5697
5698         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
5699         to...
5700         * config/arc/arc.c (arc_function_arg): ...here and...
5701         (arc_function_arg_advance): ...here.  New functions.
5702         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5703
5704 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5705
5706         * config/crx/crx-protos.h (crx_function_arg): Delete.
5707         (crx_function_arg_advance): Delete.
5708         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5709         * config/crx/crx.c (crx_function_arg): Make static.  Take a
5710         const_tree and a bool.
5711         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
5712         (enough_regs_for_param): Take a const_tree.
5713         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5714
5715 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5716
5717         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
5718         (m68hc11_function_arg_advance): Delete.
5719         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
5720         (FUNCTION_ARG_ADVANCE): Delete.
5721         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
5722         Take a const_tree and a bool.
5723         (m68hc11_function_arg_advance): Likewise.
5724         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5725
5726 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5727
5728         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
5729         (xstormy16_function_arg_advance): Delete.
5730         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
5731         (FUNCTION_ARG_ADVANCE): Delete.
5732         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
5733         Take a const_tree and a bool.
5734         (xstormy16_function_arg_advance): Likewise.  Return void, updating
5735         the CUM parameter instead.
5736         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5737
5738 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5739
5740         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
5741         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5742         (MOXIE_FUNCTION_ARG_SIZE): Move to...
5743         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
5744         (moxie_function_arg): Make static.  Take a const_tree and a bool.
5745         (moxie_function_arg_advance): New function.
5746         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5747
5748 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5749
5750         * config/mn10300/mn10300-protos.h (function_arg): Delete.
5751         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
5752         (FUNCTION_ARG_ADVANCE): Delete.
5753         * config/mn10300/mn10300.c (function_arg): Rename to...
5754         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
5755         and a bool.
5756         (mn10300_function_arg_advance): New function.
5757         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5758
5759 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5760
5761         * config/iq2000/iq2000-protos.h (function_arg): Delete.
5762         (function_arg_advance): Delete.
5763         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5764         * config/iq2000/iq2000.c (function_arg): Rename to...
5765         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
5766         a bool.
5767         (function_arg_advance): Rename to...
5768         (iq2000_function_arg_advance): ...this.  Make static.  Take a
5769         const_tree and a bool.
5770         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
5771         iq2000_function_arg.
5772         (iq2000_pass_by_reference): Call iq2000_function_arg).
5773         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5774
5775 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5776
5777         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
5778         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5779         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
5780         const_tree.
5781         (fr30_function_arg): New function.
5782         (fr30_function_arg_advance): New function.
5783         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5784
5785 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5786
5787         * config/frv/frv-protos.h (frv_function_arg): Delete.
5788         (frv_function_arg_advance): Delete.
5789         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5790         * config/frv/frv.c (frv_function_arg): Rename to...
5791         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
5792         (frv_function_arg, frv_function_incoming_arg): New functions.
5793         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
5794         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5795         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5796
5797 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
5798
5799         PR target/46153
5800         * config/i386/sse.md (sse_movhlps_exp): Use destination
5801         returned from ix86_fixup_binary_operands to expand insn.
5802         (sse_movlhps_exp): Ditto.
5803         (sse_loadhps_exp): Ditto.
5804         (sse_loadlps_exp): Ditto.
5805         (sse2_loadhpd_exp): Ditto.
5806         (sse2_loadlpd_exp): Ditto.
5807
5808 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
5809
5810         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
5811         constants in thumb2.
5812
5813 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
5814
5815         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
5816         arithmetics in masking operations.
5817         (contains_muldiv): Likewise.
5818         (try_combine): Likewise.
5819         (find_split_point): Likewise.
5820         (combine_simplify_rtx): Likewise.
5821         (simplify_if_then_else): Likewise.
5822         (simplify_set): Likewise.
5823         (expand_compound_operation): Likewise.
5824         (expand_field_assignment): Likewise.
5825         (make_extraction): Likewise.
5826         (extract_left_shift): Likewise.
5827         (make_compound_operation): Likewise.
5828         (force_to_mode): Likewise.
5829         (make_field_assignment): Likewise.
5830         (reg_nonzero_bits_for_combine): Likewise.
5831         (simplify_shift_const_1): Likewise.
5832         (simplify_comparison): Likewise.
5833
5834 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
5835
5836         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
5837         (ia64_function_arg_advance): Delete.
5838         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5839         (FUNCTION_ARG_ADVANCE): Delete.
5840         * config/ia64/ia64.c (ia64_function_arg): Rename to...
5841         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
5842         bool arguments.
5843         (ia64_function_arg, ia64_function_incoming_arg): New functions.
5844         (ia64_function_arg_advance): Make static.  Take a const_tree and
5845         a bool.
5846         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5847         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5848
5849 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
5850
5851         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
5852         (TARGET_GET_RAW_ARG_MODE): New.
5853         * doc/tm.texi: Regenerate.
5854         * target.def (get_raw_result_mode): New.
5855         (get_raw_arg_mode): New.
5856         * targhooks.c (default_get_reg_raw_mode): New.
5857         * targhooks.h (default_get_reg_raw_mode): New.
5858         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
5859         (apply_result_size): Ditto.
5860         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
5861         (TARGET_GET_RAW_RESULT_MODE): Define.
5862         (TARGET_GET_RAW_ARG_MODE): Ditto.
5863
5864 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5865
5866         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
5867         for newer Solaris 10 release.
5868         (sparc_fallback_frame_state): Likewise.
5869
5870 2010-10-27  Jason Merrill  <jason@redhat.com>
5871
5872         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
5873         variables sooner.
5874
5875 2010-10-27  Jie Zhang  <jie@codesourcery.com>
5876             Maxim Kuvyrkov  <maxim@codesourcery.com>
5877
5878         * haifa-sched.c (ISSUE_POINTS): Remove.
5879         (max_issue): Don't issue more than issue_rate instructions.
5880
5881 2010-10-27  Ian Lance Taylor  <iant@google.com>
5882
5883         PR target/46197
5884         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
5885         (split_stack_return): Replace UNSPEC_STACK_CHECK with
5886         UNSPECV_SPLIT_STACK_RETURN.
5887
5888 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
5889
5890         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
5891
5892         * config/i386/i386.c (block_info): New.
5893         (BLOCK_INFO): Likewise.
5894         (call_avx256_state): Likewise.
5895         (check_avx256_stores): Likewise.
5896         (move_or_delete_vzeroupper_2): Likewise.
5897         (move_or_delete_vzeroupper_1): Likewise.
5898         (move_or_delete_vzeroupper): Likewise.
5899         (use_avx256_p): Likewise.
5900         (function_pass_avx256_p): Likewise.
5901         (flag_opts): Add -mvzeroupper.
5902         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
5903         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
5904         is disabled.
5905         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
5906         generate vzeroupper.
5907         (init_cumulative_args): Add an int to indicate caller.  Set
5908         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
5909         based on return type.
5910         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
5911         caller_pass_avx256_p based on argument type.
5912         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
5913         is used, but not returned by caller.
5914         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
5915         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
5916         is used.
5917         (ix86_minimum_alignment): Likewise.
5918         (ix86_expand_special_args_builtin): Set target to
5919         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
5920         (ix86_reorg): Run the vzeroupper optimization if needed.
5921
5922         * config/i386/i386.h (ix86_args): Add caller.
5923         (INIT_CUMULATIVE_ARGS): Updated.
5924         (machine_function): Add use_vzeroupper_p, use_avx256_p,
5925         caller_pass_avx256_p, caller_return_avx256_p,
5926         callee_pass_avx256_p and callee_return_avx256_p.
5927
5928         * config/i386/i386.opt (-mvzeroupper): New.
5929
5930         * config/i386/predicates.md (vzeroupper_operation): Removed.
5931
5932         * config/i386/sse.md (avx_vzeroupper): Removed.
5933         (*avx_vzeroupper): Removed.
5934         (avx_vzeroupper): New.
5935
5936         * doc/invoke.texi: Document -mvzeroupper.
5937
5938 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5939
5940         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
5941         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
5942         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
5943
5944 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5945             Olivier Hainque  <hainque@adacore.com>
5946
5947         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
5948         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
5949         fs->signal_frame instead.
5950
5951 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5952
5953         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
5954         parsing of RID_COPIES and RID_IVAR.
5955
5956 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5957
5958         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
5959         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
5960         Do not use objc_set_property_attr, but use local variables
5961         instead.  Detect repeated usage of setter, getter and ivar
5962         attributes.  Improved error processing when a setter name does not
5963         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
5964         that the token is a keyword.  Updated call to
5965         objc_add_property_declaration.
5966
5967 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5968
5969         * c-parser.c (c_parser_objc_at_property): Renamed to
5970         c_parser_objc_at_property_declaration.  Updated calls to
5971         objc_add_property_variable, now objc_add_property_declaration.
5972         Code rewritten to be much more robust in recovering from syntax
5973         errors.  Added comments.
5974         (c_parser_objc_property_attrlist): Removed.
5975         (c_parser_external_declaration): Updated calls to
5976         c_parser_objc_at_property, now
5977         c_parser_objc_at_property_declaration.
5978         (c_parser_objc_methodprotolist): Same change.
5979
5980 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5981
5982         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
5983
5984 2010-10-26  Jan Hubicka  <jh@suse.cz>
5985
5986         * ipa.c (process_references): Enqueue all referenced nodes;
5987         mark as reachable only non-external nodes.
5988         (cgraph_remove_unreachable_nodes): All referenced nodes should
5989         be enqueued; remove bogues node->needed check.
5990
5991 2010-10-26  Jan Hubicka  <jh@suse.cz>
5992
5993         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
5994         to represent OMP.
5995
5996 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5997
5998         * config/i386/i386.md (split_stack_return): Replace
5999         unspec_volatile with unspec.
6000
6001 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
6002
6003         * doc/install.texi: Fix typo in --with-sysroot description.
6004
6005 2010-10-26  Jan Hubicka  <jh@suse.cz>
6006
6007         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
6008         Use info provided by linker plugin.
6009
6010 2010-10-26  Jason Merrill  <jason@redhat.com>
6011
6012         * varasm.c (constructor_static_from_elts_p): Don't require a
6013         CONSTRUCTOR to have elements to be suitable for static
6014         initialization.  Allow ARRAY_TYPE as well.
6015
6016 2010-10-26  Jan Hubicka  <jh@suse.cz>
6017
6018         PR middle-end/45736
6019         * cgraph.c (cgraph_set_readonly_flag): Rename to...
6020         (cgraph_set_const_flags) ... this one; get also looping argument;
6021         clear constructor/destructor flags.
6022         (cgraph_set_pure_flag): Likewise.
6023         (cgraph_set_looping_const_or_pure_flag): Remove.
6024         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
6025         to optimize away static ctors/dtors; it does not work on inline clones;
6026         external functions can always be rmeoved.
6027         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
6028         inline clones; in LTO external functions always can go.
6029         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
6030         (cgraph_mark_address_taken_node): Assert that we are not taking
6031         address of inline clone.
6032         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
6033         external functions.
6034         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
6035         address taken.
6036         (ipcp_initialize_node_lattices): Only local functions can be
6037         handled without cloning.
6038         * cgraph.h (cgraph_set_readonly_flag,
6039         cgraph_set_looping_const_or_pure_flag): Remove.
6040         (cgraph_set_const_flag): Declare.
6041         (cgraph_set_pure_flag): Update.
6042         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
6043         flags setting code.
6044         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
6045         look at inline clones; fix handling of external definitions.
6046         (cgraph_postorder): Do not look at inline clones in the first pass.
6047         (function_and_variable_visibility): Drop constructors/destructor
6048         flags at pure and const functions.
6049         * tree-profile.c (tree_profiling): Update.
6050         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
6051         address taken; external functions do not account to whole program size.
6052         (cgraph_decide_inlining): Likewise; do not try to inline
6053         functions already inlined.
6054
6055 2010-10-26  Jie Zhang  <jie@codesourcery.com>
6056
6057         * doc/invoke.texi: Improve documentation of
6058         -fstrict-volatile-bitfields.
6059
6060 2010-10-26  Ira Rosen  <irar@il.ibm.com>
6061
6062         PR tree-optimization/46167
6063         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
6064         is basic block for the statement.
6065
6066 2010-10-26  Paul Koning  <ni1d@arrl.net>
6067
6068         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
6069         current definition of struct_real_format.
6070
6071 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6072
6073         PR target/44948
6074         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
6075         (ix86_function_arg_boundary): Always align parameters on stack
6076         in 64bit and align parameters with alignment >= 16byte on stack
6077         in 32bit.  Warn alignment change.
6078
6079 2010-10-26  Ian Lance Taylor  <iant@google.com>
6080
6081         PR middle-end/45687
6082         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
6083         offset.
6084
6085 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
6086
6087         Implement opaque-enum-specifiesr for C++0x
6088         * tree.h (ENUM_IS_OPAQUE): New.
6089         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
6090
6091 2010-10-26  Jie Zhang  <jie@codesourcery.com>
6092
6093         * stor-layout.c (layout_decl): Use the field's type to
6094         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
6095         * config/arm/arm.c (arm_override_options): Default to
6096         -fstrict-volatile-bitfields.
6097
6098 2010-10-25  Paul Koning  <ni1d@arrl.net>
6099
6100         * config/pdp11/pdp11.md: Add define_constants for register
6101         numbers, branch offset limits.
6102         * config/pdp11/pdp11.c: Use named constants instead of numbers.
6103         * config/pdp11.pdp11.h: Ditto.
6104
6105 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6106
6107         * configure.ac: Use $cpu_type instead of $target to define the nop.
6108         * configure: Regenerate.
6109
6110 2010-10-25  Jie Zhang  <jie@codesourcery.com>
6111
6112         * combine.c (try_combine): If insns need to be kept around, check that
6113         they can be copied in the merged instruction.
6114
6115 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6116
6117         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
6118         has been modified.
6119         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
6120         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
6121         it has been modified.
6122
6123 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6124
6125         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
6126
6127 2010-10-24  Paul Koning  <ni1d@arrl.net>
6128
6129         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
6130         * config/pdp11/pdp11.c (output_jump): Ditto.
6131
6132 2010-10-24  Ian Lance Taylor  <iant@google.com>
6133
6134         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
6135
6136 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6137
6138         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
6139         least one insn with a locus corresponding to an edge's goto_locus,
6140         disregard non-fallthru edges to the exit block and merge the blocks
6141         created for the same goto_locus.
6142
6143 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
6144
6145         * gcc.c (n_switches_alloc_debug_check): New.
6146         (set_option_handlers): New.
6147         (process_command): Use set_option_handlers.
6148         (do_self_spec): Pass spec-generated options through option handlers.
6149         (main): Also save and restore n_switches_alloc when swapping
6150         switch arrays.
6151
6152 2010-10-23  Richard Henderson  <rth@redhat.com>
6153
6154         PR target/46144
6155         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
6156         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
6157         Honor matching operands when splitting to XOR.
6158
6159 2010-10-23  Ian Lance Taylor  <iant@google.com>
6160
6161         * tree-vrp.c (extract_range_from_binary_expr): If
6162         flag_non_call_exceptions don't eliminate division by zero.
6163         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
6164
6165 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
6166
6167         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
6168         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
6169         __ORDER_PDP_ENDIAN__.
6170         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6171         (struct DWstruct): Define based on __BYTE_ORDER__.
6172         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6173         (struct INTstruct): Define based on __BYTE_ORDER__.
6174         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6175         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
6176         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
6177         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6178         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6179         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6180         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6181         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6182         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6183         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6184         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6185         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6186         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6187         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6188         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6189         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6190         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6191         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6192         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6193         * doc/tm.texi: Regenerate.
6194         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
6195         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
6196
6197 2010-10-23  Jie Zhang  <jie@codesourcery.com>
6198
6199         PR rtl-optimization/37360
6200         * config/mips/mips.c (cached_can_issue_more): New local variable.
6201         (mips_sched_reorder_1): New.
6202         (mips_sched_reorder): Use mips_sched_reorder_1.
6203         (mips_sched_reorder2): New.
6204         (mips_variable_issue): Set cached_can_issue_more.
6205         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
6206         instead of mips_sched_reorder.
6207
6208         Revert:
6209         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
6210         PR rtl-optimization/37360
6211         * haifa-sched.c (max_issue): Do not assert that we never issue more
6212         insns than issue_rate.  Add comment.
6213
6214 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
6215
6216         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
6217         location info of the expression.
6218
6219 2010-10-22  DJ Delorie  <dj@redhat.com>
6220
6221         * doc/extend.texi (Named Address Spaces): Document the M32C named
6222         address space.
6223
6224         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
6225         __far address space.
6226         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
6227         "__far" address space for R8C and M16C processor variants.
6228         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
6229         (far_addr_space_p): New.
6230         (encode_pattern_1): Add sign and zero extend support.
6231         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
6232         (m32c_extra_constraint_p2): Add SF constraint.
6233         (m32c_legitimate_address_p): Support __far addresses.
6234         (m32c_addr_space_pointer_mode): New.
6235         (m32c_addr_space_address_mode): New.
6236         (m32c_addr_space_legitimate_address_p): New.
6237         (m32c_addr_space_legitimize_address): New.
6238         (m32c_addr_space_subset_p): New.
6239         (m32c_addr_space_convert): New.
6240         (conversions): Add __far operand patterns.
6241         (m32c_prepare_move): Force constants into registers for __far moves.
6242         (m32c_split_move): __far moves are always split.
6243         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
6244         * config/m32c/mov.md (mov<mode>_far_op1): New.
6245         (mov<mode>_far_op2): New.
6246         (movqi_op): Add __far (SF) support.
6247         (movhi_op): Likewise.
6248         (movsi_splittable): Split A1A0 also.
6249
6250 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6251             Andrew Pinski  <pinskia@gmail.com>
6252
6253         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
6254         * doc/extend.texi: New paragraph
6255
6256 2010-10-22  Paul Koning  <ni1d@arrl.net>
6257
6258         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
6259
6260 2010-10-22  DJ Delorie  <dj@redhat.com>
6261
6262         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
6263
6264 2010-10-22  Paul Koning  <ni1d@arrl.net>
6265
6266         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
6267
6268 2010-10-22  Richard Henderson  <rth@redhat.com>
6269
6270         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
6271         cases for __builtin_fma and __builtin_fmaf.
6272
6273 2010-10-22  Richard Henderson  <rth@redhat.com>
6274
6275         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
6276         NEG+USE for vectors as well.
6277         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
6278         and splitter.
6279
6280 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6281
6282         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
6283         SWITCH_CURTAILS_COMPILATION): Remove.
6284         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
6285         * doc/tm.texi: Regenerate.
6286         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
6287
6288 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6289
6290         * config/i386/bdver1.md: New file.
6291         * config/i386/i386.md (include "bdver1.md"): Invoke the
6292         pipeline description for bdver1.
6293         (x86_sahf_1): Add "bdver1_decode" attribute.
6294         (*cmpfp_i_mixed): Likewise.
6295         (*cmpfp_i_sse): Likewise.
6296         (*cmpfp_i_i387): Likewise.
6297         (*cmpfp_iu_mixed): Likewise.
6298         (*cmpfp_iu_sse): Likewise.
6299         (*cmpfp_iu_387): Likewise.
6300         (*swap<mode>,*swap<mode>_1): Likewise.
6301         (fixuns_trunc<mode>hi2): Likewise.
6302         (fix_trunc<mode>si_sse): Likewise.
6303         (x86_fnstcw_1): Likewise.
6304         (x86_fldcw_1): Likewise.
6305         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
6306         (*floatsi<mode>2_vector_mixed): Likewise.
6307         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
6308         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
6309         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
6310         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
6311         (*floatsi<mode>2_vector_sse): Likewise.
6312         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
6313         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
6314         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
6315         (*mul<mode>3_1): Likewise.
6316         (*mulsi3_1_zext): Likewise.
6317         (*mulhi3_1): Likewise.
6318         (*mulqi3_1): Likewise.
6319         (*<u>mul<mode><dwi>3_1): Likewise.
6320         (*<u>mulqihi3_1): Likewise.
6321         (*<s>muldi3_highpart_1): Likewise.
6322         (*<s>mulsi3_highpart_1): Likewise.
6323         (*<s>mulsi3_highpart_zext): Likewise.
6324         (x86_64_shld): Likewise.
6325         (x86_shld): Likewise.
6326         (x86_64_shrd): Likewise.
6327         (x86_shrd): Likewise.
6328         (sqrtxf2): Likewise.
6329         (sqrt_extend<mode>xf2_i387): Likewise.
6330         (*sqrt<mode>2_sse): Likewise.
6331         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
6332         (sse_cvtsi2ssq): Likewise.
6333         (sse_cvtss2si): Likewise.
6334         (sse_cvtss2si_2): Likewise.
6335         (sse_cvtss2siq): Likewise.
6336         (sse_cvtss2siq_2): Likewise.
6337         (sse_cvttss2si): Likewise.
6338         (sse_cvttss2siq): Likewise.
6339         (sse2_cvtpi2pd): Likewise.
6340         (sse2_cvttpd2pi): Likewise.
6341         (sse2_cvtsi2sd): Likewise.
6342         (sse2_cvtsi2sdq): Likewise.
6343         (sse2_cvtsd2si): Likewise.
6344         (sse2_cvtsd2si_2): Likewise.
6345         (sse2_cvtsd2siq): Likewise.
6346         (sse2_cvtsd2siq_2): Likewise.
6347         (sse2_cvttsd2si): Likewise.
6348         (sse2_cvttsd2siq): Likewise.
6349         (*sse2_cvtpd2dq): Likewise.
6350         (*sse2_cvttpd2dq): Likewise.
6351         (sse2_cvtsd2ss): Likewise.
6352         (sse2_cvtss2sd): Likewise.
6353         (*sse2_cvtpd2ps): Likewise.
6354         (sse2_cvtps2pd): Likewise.
6355
6356 2010-10-22  Richard Guenther  <rguenther@suse.de>
6357
6358         PR middle-end/46137
6359         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
6360         remove the virtual operands if they are not needed.
6361
6362 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6363
6364         * config/i386/i386.c (processor_costs bdver1_cost): Update
6365         insn costs and architectural parameters for bdver1.
6366
6367 2010-10-22  Richard Guenther  <rguenther@suse.de>
6368
6369         * gimple.h (gimple_register_canonical_type): Declare.
6370         * gimple.c (gimple_canonical_types): New global hashtable.
6371         (struct gimple_type_leader_entry_s): New type.
6372         (gimple_type_leader): New global cache.
6373         (gimple_lookup_type_leader): New function.
6374         (gtc_visit): Query the proper cache.
6375         (gimple_types_compatible_p): Likewise.
6376         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
6377         (gimple_canonical_type_eq): New function.
6378         (gimple_register_canonical_type): Likewise.
6379         (print_gimple_types_stats): Adjust for gimple_canonical_types.
6380         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
6381         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
6382         gimple_types_compatible_p for LTO.
6383
6384 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
6385
6386         PR target/46098
6387         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
6388         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
6389         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
6390         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
6391         (<sse>_movu<ssemodesuffix>): New expander.
6392         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
6393         (avx_movdqu<avxmodesuffix>): New expander.
6394         (*sse2_movdqu): Rename from sse2_movdqu.
6395         (sse2_movdqu): New expander.
6396
6397 2010-10-22  Richard Guenther  <rguenther@suse.de>
6398
6399         PR tree-optimization/45720
6400         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
6401         Handle negative step.
6402         (vect_enhance_data_refs_alignment): Likewise.
6403         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
6404         (vect_create_cond_for_align_checks): Likewise.
6405         (vect_create_cond_for_alias_checks): Likewise.
6406
6407 2010-10-22  Ira Rosen  <irar@il.ibm.com>
6408
6409         PR tree-optimization/46126
6410         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
6411         vectorizable_shift in case of basic block vectorization.
6412
6413 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6414
6415         * target.h (enum opt_levels, struct default_options): New.
6416         * target.def (handle_ofast): Remove hook.
6417         (target_option.optimization): Change to
6418         target_option.optimization_table.
6419         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
6420         TARGET_OPTION_OPTIMIZATION_TABLE.
6421         (CAN_DEBUG_WITHOUT_FP): Remove.
6422         * doc/tm.texi: Regenerate.
6423         * opts.c (maybe_default_option, maybe_default_options,
6424         default_options_table): New.
6425         (default_options_optimization): Take extra parameters.  Don't
6426         assert that global_options and global_options_set are in use.  Use
6427         maybe_default_options.
6428         (decode_options): Pass extra parameters to
6429         default_options_optimization.
6430         * common.opt (falign-loops): Use value 0 with Var.
6431         (frerun-cse-after-loop, ftree-ter): Remove Init.
6432         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
6433         TARGET_OPTION_OPTIMIZATION): Remove.
6434         * targhooks.c (empty_optimization_table): New.
6435         * targhooks.h (empty_optimization_table): Declare.
6436         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
6437         * config/alpha/alpha.c (alpha_option_optimization_table,
6438         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6439         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
6440         * config/arm/arm.c (arm_option_optimization: Change to
6441         arm_option_optimization_table.
6442         (TARGET_OPTION_OPTIMIZATION): Change to
6443         TARGET_OPTION_OPTIMIZATION_TABLE.
6444         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
6445         * config/avr/avr.c (avr_option_optimization_table,
6446         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6447         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
6448         * config/cris/cris.c (cris_option_optimization): Change to
6449         cris_option_optimization_table.
6450         (TARGET_OPTION_OPTIMIZATION): Change to
6451         TARGET_OPTION_OPTIMIZATION_TABLE.
6452         * config/crx/crx.c (crx_option_optimization): Change to
6453         crx_option_optimization_table.
6454         (TARGET_OPTION_OPTIMIZATION): Change to
6455         TARGET_OPTION_OPTIMIZATION_TABLE.
6456         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6457         * config/fr30/fr30.c (fr30_option_optimization_table,
6458         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6459         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
6460         * config/frv/frv.c (frv_option_optimization_table,
6461         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6462         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
6463         * config/h8300/h8300.c (h8300_option_optimization): Change to
6464         h8300_option_optimization_table.
6465         (TARGET_OPTION_OPTIMIZATION): Change to
6466         TARGET_OPTION_OPTIMIZATION_TABLE.
6467         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6468         * config/i386/i386.c (ix86_option_optimization): Change to
6469         ix86_option_optimization_table.
6470         (TARGET_OPTION_OPTIMIZATION): Change to
6471         TARGET_OPTION_OPTIMIZATION_TABLE.
6472         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
6473         as initializer.
6474         * config/ia64/ia64.c (ia64_option_optimization): Change to
6475         ia64_option_optimization_table.
6476         (TARGET_OPTION_OPTIMIZATION): Change to
6477         TARGET_OPTION_OPTIMIZATION_TABLE.
6478         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
6479         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
6480         initializer.
6481         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
6482         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6483         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6484         * config/lm32/lm32.c (lm32_option_optimization_table,
6485         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6486         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
6487         * config/m32r/m32r.c (m32r_option_optimization): Change to
6488         m32r_option_optimization_table.
6489         (TARGET_OPTION_OPTIMIZATION): Change to
6490         TARGET_OPTION_OPTIMIZATION_TABLE.
6491         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
6492         CAN_DEBUG_WITHOUT_FP): Remove.
6493         * config/mcore/mcore.c (mcore_option_optimization): Change to
6494         mcore_option_optimization_table.
6495         (TARGET_OPTION_OPTIMIZATION): Change to
6496         TARGET_OPTION_OPTIMIZATION_TABLE.
6497         * config/mep/mep.c (mep_option_optimization): Change to
6498         mep_option_optimization_table.
6499         (TARGET_OPTION_OPTIMIZATION): Change to
6500         TARGET_OPTION_OPTIMIZATION_TABLE.
6501         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
6502         * config/microblaze/microblaze.c
6503         (microblaze_option_optimization_table,
6504         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6505         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
6506         * config/mips/mips.c (mips_option_optimization_table,
6507         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6508         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
6509         * config/mmix/mmix.c (mmix_option_optimization): Change to
6510         mmix_option_optimization_table.
6511         (TARGET_OPTION_OPTIMIZATION): Change to
6512         TARGET_OPTION_OPTIMIZATION_TABLE.
6513         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
6514         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
6515         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6516         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6517         * config/pa/pa.c (pa_option_optimization_table,
6518         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6519         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6520         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
6521         pdp11_option_optimization_table.
6522         (TARGET_OPTION_OPTIMIZATION): Change to
6523         TARGET_OPTION_OPTIMIZATION_TABLE.
6524         * config/picochip/picochip.c (picochip_option_optimization_table,
6525         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6526         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
6527         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
6528         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6529         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6530         * config/rx/rx.c (rx_option_optimization_table,
6531         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6532         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6533         * config/s390/s390.c (s390_option_optimization): Change to
6534         s390_option_optimization_table.
6535         (s390_option_override): Update comment.
6536         (TARGET_OPTION_OPTIMIZATION): Change to
6537         TARGET_OPTION_OPTIMIZATION_TABLE.
6538         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
6539         * config/score/score.c (score_option_optimization_table,
6540         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6541         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
6542         * config/sh/sh.c (sh_option_optimization): Change to
6543         sh_option_optimization_table.
6544         (TARGET_OPTION_OPTIMIZATION): Change to
6545         TARGET_OPTION_OPTIMIZATION_TABLE.
6546         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
6547         (sh_option_override, expand_block_move, multcosts, find_barrier,
6548         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
6549         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
6550         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
6551         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
6552         instead of TARGET_SMALLCODE.
6553         * config/sh/sh.opt (mspace): Make into an alias for -Os.
6554         * config/sparc/sparc.c (sparc_option_optimization_table,
6555         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6556         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
6557         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
6558         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6559         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
6560         * config/v850/v850.c (v850_option_optimization): Change to
6561         v850_option_optimization_table.
6562         (TARGET_OPTION_OPTIMIZATION): Change to
6563         TARGET_OPTION_OPTIMIZATION_TABLE.
6564         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
6565         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
6566         xtensa_option_optimization_table.
6567         (TARGET_OPTION_OPTIMIZATION): Change to
6568         TARGET_OPTION_OPTIMIZATION_TABLE.
6569         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6570
6571 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
6572
6573         Based on the CFString implementation in FSF apple/trunk branch.
6574
6575         * target.def (objc_construct_string): New Hook.
6576         * doc/tm.texi (objc_construct_string): Document.
6577         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
6578         * config/t-darwin: Amend build rules for darwin.o.
6579         * config/darwin.opt: Add cfstrings flags.
6580         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
6581         (darwin_objc_construct_string): New.
6582         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
6583         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
6584         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
6585         (darwin_fold_builtin): Likewise.
6586         (darwin_build_constant_cfstring): Likewise.
6587         (darwin_objc_construct_string): Likewise.
6588         (darwin_cfstring_p): Likewise.
6589         (darwin_enter_string_into_cfstring_table): Likewise.
6590         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
6591         * config/darwin.c (darwin_running_cxx): New var.
6592         (machopic_select_section): Return cfstring_constant_object_section.
6593         (darwin_override_options): Set darwin_running_cxx.
6594         (add_builtin_field_decl): New.
6595         (darwin_init_cfstring_builtins): New.
6596         (darwin_build_constant_cfstring): New.
6597         (darwin_fold_builtin): New.
6598         (cfstring_hash): New.
6599         (cfstring_eq): New.
6600         (darwin_enter_string_into_cfstring_table): New.
6601         * config/darwin-sections.def (cfstring_constant_object_section): New.
6602         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
6603         (TARGET_OBJC_CONSTRUCT_STRING): Define.
6604
6605 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6606
6607         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
6608         TYPE_STUB_DECL instead of TREE_CHAIN.
6609         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
6610         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
6611         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
6612         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
6613         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
6614         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
6615         Likewise.
6616         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
6617
6618 2010-10-22  Jie Zhang  <jie@codesourcery.com>
6619
6620         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
6621         (copy_blkmode_from_reg): Likewise.
6622         (read_complex_part): Likewise.
6623         (expand_expr_real_1): Calculate packedp and pass it to
6624         extract_bit_field.
6625         * expr.h (extract_bit_field): Update declaration.
6626         * calls.c (store_unaligned_arguments_into_pseudos): Update call
6627         to extract_bit_field.
6628         * expmed.c (extract_fixed_bit_field): Update calls to
6629         extract_fixed_bit_field.
6630         (store_split_bit_field): Likewise.
6631         (extract_bit_field_1): Add new argument packedp.
6632         (extract_bit_field): Add new argument packedp.
6633         (extract_fixed_bit_field): Add new argument packedp and let
6634         packed attribute override volatile.
6635         * stmt.c (expand_return): Update call to extract_bit_field.
6636
6637 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6638
6639         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
6640
6641 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6642
6643         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
6644         of gcc_checking_assert.
6645         * sel-sched.c (code_motion_process_successors): Likewise.
6646
6647 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
6648
6649         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
6650         when stopping because of a different locus on edge or insn.
6651         (try_optimize_cfg): Add comment.
6652         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
6653         block is a forwarder block, propagate locus on the edge.
6654         (cfg_layout_merge_blocks): Likewise.
6655
6656 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
6657
6658         PR target/45946
6659         * config/i386/i386.md (*pushti2): New insn pattern.
6660         (pushti2 splitter): New insn splitter.
6661         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
6662         DWI mode iterator.
6663
6664 2010-10-21  Paul Koning  <ni1d@arrl.net>
6665
6666         * config/pdp11/pdp11-protos.md (arith_operand,
6667         const_immediate_operand, expand_shift_operand,
6668         immediate15_operand): Delete
6669         * config/pdp11/pdp11.c: Ditto.
6670         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
6671         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
6672         EXTRA_CONSTRAINT): Delete.
6673         * config/pdp11/pdp11.md (various): Use standard constraints
6674         instead of removed ones.
6675         * config/pdp11/constraints.md: New file.
6676         * config/pdp11/predicates.md: New file.
6677
6678 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
6679
6680         PR c/45834
6681         * alias.c (true_dependence_1): Remove obsolete check for QImode.
6682         (may_alias_p): Ditto.
6683
6684 2010-10-21  Martin Jambor  <mjambor@suse.cz>
6685
6686         PR tree-optimization/45875
6687         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
6688
6689 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6690
6691         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
6692         variables.
6693         (create_new_def_for): Likewise.
6694
6695 2010-10-21  Nick Clifton  <nickc@redhat.com>
6696
6697         * config/mn10300/mn10300.c: Fold code to 80-character width.
6698         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6699         MEM, CONST_INT and CONST_DOUBLE.
6700         (targetm): Move initialization to end of file.
6701         (print_operand): Rename to mn10300_print_operand.
6702         (print_operand_address): Rename to mn10300_print_operand_address.
6703         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
6704         (expand_prologue): Rename to mn10300_expand_prologue.
6705         (expand_epilogue): Rename to mn10300_expand_epilogue.
6706         (initial_offset): Rename to mn10300_initial_offset.
6707         (function_arg): Rename to mn10300_function_arg.
6708         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
6709         (symbolic_operand): Rename to mn10300_symbolic_operand.
6710         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
6711         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
6712         * config/mn10300/mn10300-protos.h: Update prototypes.
6713         * config/mn10300/mn10300.h: Fold code to 80-character width.
6714         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6715         MEM, CONST_INT and CONST_DOUBLE.
6716         (CPP_SPEC): Move to...
6717         (TARGET_CPU_CPP_BUILTINS): ... here.
6718         * config/mn10300/mn10300.md: Fold code to 80-character width.
6719         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6720         MEM, CONST_INT and CONST_DOUBLE.
6721
6722 2010-10-21  Ira Rosen  <irar@il.ibm.com>
6723
6724         PR tree-optimization/46049
6725         PR tree-optimization/46052
6726         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
6727         (vect_get_slp_defs): Add arguments.
6728         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
6729         operands to vect_get_slp_defs.
6730         (vectorizable_reduction): Fix comment, pass scalar operands to
6731         vect_get_slp_defs.
6732         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
6733         type to determine number of units in the created vector.
6734         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
6735         (vectorizable_conversion): Fix comment.
6736         (vectorizable_shift): New function.
6737         (vectorizable_operation): Move code that handles shifts to
6738         vectorizable_shift.
6739         (vectorizable_type_demotion): Fix comment, pass scalar operands to
6740         vect_get_slp_defs.
6741         (vectorizable_type_promotion, vectorizable_store): Likewise.
6742         (vectorizable_condition): Fix comment.
6743         (vect_analyze_stmt): Call vectorizable_shift.
6744         (vect_transform_stmt): Likewise.
6745         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
6746         Use it as the operand to create vectors for, except reduction
6747         initial definition and store.  Use operands type.
6748         (vect_get_slp_defs): Add new arguments.  Pass them to
6749          vect_get_constant_vectors.
6750
6751 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6752
6753         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
6754         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
6755         * cfghooks.c (fixup_reorder_chain): Likewise.
6756         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
6757         * cgraph.c (cgraph_add_thunk): Likewise.
6758         (cgraph_create_edge_1): Likewise.
6759         (cgraph_create_virtual_clone): Likewise.
6760         * ddg.c (add_cross_iteration_register_deps): Likewise.
6761         * dwarf2out.c (modified_type_die): Likewise.
6762         * emit-rtl.c (set_mem_alias_set): Likewise.
6763         * ggc-zone.c (zone_allocate_marks): Likewise.
6764         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
6765         * gimple.c (iterative_hash_gimple_type): Likewise.
6766         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
6767         (create_single_exit_edge): Likewise.
6768         * haifa-sched.c (choose_ready): Likewise.
6769         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6770         * passes.c (execute_todo): Likewise.
6771         * sched-ebb.c (begin_schedule_ready): Likewise.
6772         * sel-sched.c (code_motion_process_successors): Likewise.
6773         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
6774         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
6775         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
6776         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
6777         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
6778         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
6779         (ssa_conflicts_add): Likewise.
6780         * tree-ssa-copy.c (replace_exp): Likewise.
6781         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
6782         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
6783         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
6784         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
6785         (compute_antic): Likewise.
6786         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
6787         (add_dependence): Likewise.
6788         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
6789         * tree-vrp.c (supports_overflow_infinity): Likewise.
6790         (make_overflow_infinity, negative_overflow_infinity): Likewise.
6791         (avoid_overflow_infinity, register_new_assert_for): Likewise.
6792         (process_assert_insertions_for): Likewise.
6793         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
6794         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
6795         (intersect_loc_chains, variable_merge_over_cur): Likewise.
6796
6797 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6798
6799         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
6800         * reload1.c (has_nonexceptional_receiver): Likewise.
6801         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
6802         (create_new_def_for): Likewise.
6803         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
6804         (merge_phi_nodes): Likewise.
6805         (has_abnormal_incoming_edge_p): Delete.
6806
6807 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
6808
6809         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
6810
6811 2010-10-21  Richard Guenther  <rguenther@suse.de>
6812             Michael Matz  <matz@suse.de>
6813
6814         PR tree-optimization/45764
6815         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
6816         Adjust initial misalignment for negative DR_STEP.
6817         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
6818         do not have the same alignment over the whole iteration domain.
6819
6820 2010-10-21  Richard Guenther  <rguenther@suse.de>
6821
6822         PR tree-optimization/46111
6823         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
6824
6825 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6826
6827         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
6828
6829 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6830
6831         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
6832         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
6833
6834 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6835
6836         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
6837         signal_frame.
6838         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
6839
6840 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6841
6842         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
6843         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
6844
6845 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6846
6847         * basic-block.h (find_fallthru_edge): Define.
6848         * cfgcleanup.c (merge_blocks_move): Use it.
6849         (try_crossjump_bb): Likewise.
6850         * cfglayout.c (fixup_reorder_chains): Likewise.
6851         (fixup_fallthru_exit_predecessor): Likewise.
6852         * cfgrtl.c (rtl_split_edge): Likewise.
6853         (rtl_verify_flow_info): Likewise.
6854         * function.c (thread_prologue_and_epilogue_insns): Likewise.
6855         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
6856         * ifcvt.c (block_fallthru): Likewise.
6857         * reload1.c (fixup_abnormal_edges): Likewise.
6858         * sched-ebb.c (being_schedule_ready): Likewise.
6859         (schedule_ebb): Likwise.
6860         * sched-rgn.c (find_single_block_region): Likewise.
6861         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
6862         * tree-complex.c (expand_complex_move): Likewise.
6863         * sched-int.h (find_fallthru_edge): Rename to...
6864         (find_fallthru_edge_from): ...this.
6865         * haifa-sched.c (find_fallthru_edge): Rename to...
6866         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
6867         (init_before_recovery): Call find_fallthru_edge_from.
6868         * sel-sched-ir.c (merge_fences): Likewise.
6869         * sel-sched.c (in_fallthru_bb_p): Likewise.
6870         (move_cond_jump): Likewise.
6871
6872 2010-10-20  Paul Koning  <ni1d@arrl.net>
6873
6874         * config/pdp11/pdp11.md (various): Fix conditions on a number of
6875         insn to check for target 11/40 or higher.
6876
6877 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6878
6879         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
6880         bool instead of a tree.
6881         (c_parser_objc_method_decl): Added bool argument.  Updated call to
6882         objc_build_method_signature.
6883         (c_parser_objc_method_definition): Do not call
6884         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
6885         c_parser_objc_method_decl and objc_start_method_definition.
6886         (c_parser_objc_methodproto): Do not call objc_set_method_type.
6887         Updated calls to c_parser_objc_method_type,
6888         c_parser_objc_method_decl and objc_add_method_declaration.
6889
6890 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
6891
6892         PR tree-optimization/45919
6893         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
6894         array members.
6895
6896         PR tree-optimization/46066
6897         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
6898         instead of gsi_last_bb.
6899
6900 2010-10-20  DJ Delorie  <dj@redhat.com>
6901
6902         * config/m32c/m32c.c (m32c_option_override): Always disable
6903         function-cse in 16-bit mode.  Indirect calls are always worse than
6904         direct calls as there is no 16-bit indirect call opcode.
6905         (m32c_override_options_after_change): New, likewise.
6906
6907 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6908
6909         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
6910         emitting the conditional move in the inner mode of the SUBREG.
6911
6912 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
6913
6914         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
6915         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
6916         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6917         (ia64_preferred_reload_class): Make static.  Change rclass argument
6918         and result types from enum reg_class to reg_class_t.
6919
6920 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
6921
6922         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
6923         call for single operand expression.
6924
6925 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6926
6927         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
6928         if there is a call statement to pure or const function in the block.
6929
6930 2010-10-20  Paul Koning  <pkoning@equallogic.com>
6931
6932         Fix several build errors for pdp11 target.
6933         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
6934         (cbranchdf4): Conditional on TARGET_FPU.
6935         (movdf): Ditto; correct alternatives check.
6936         (movmemhi): Fix predicate and constraint.
6937         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
6938
6939 2010-10-20  Richard Guenther  <rguenther@suse.de>
6940
6941         PR lto/45667
6942         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
6943         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
6944         (verify_gimple_assign_single): Disable ADDR_EXPR type check
6945         when in LTO.
6946
6947 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
6948
6949         PR fortran/42169
6950         * ira-emit.c (store_can_be_removed_p): Return false instead of
6951         gcc_unreachable.
6952
6953 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
6954
6955         * fold-const.c (fold_binary_loc): New transformation.
6956
6957 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
6958
6959         PR target/46085
6960         * config/i386/sse.md (reduc_splus_v8sf): Updated.
6961         (reduc_splus_v4df): Likewise.
6962
6963 2010-10-20  Richard Guenther  <rguenther@suse.de>
6964
6965         PR tree-optimization/45860
6966         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
6967         conditional store replacement for non-register type stores.
6968
6969 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6970
6971         * stor-layout.c (skip_simple_constant_arithmetic): New function.
6972         (self_referential_size): Use it instead of skip_simple_arithmetic.
6973
6974 2010-10-20  Olivier Hainque  <hainque@adacore.com>
6975
6976         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
6977         If the current function calls eh_return, claim live all registers
6978         that we need to check for liveness otherwise.
6979
6980 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6981
6982         * c-decl.c (c_write_global_declarations): Call
6983         objc_write_global_declarations when compiling Objective-C.
6984         * c-lang.c (finish_file): Removed.
6985
6986 2010-10-19  DJ Delorie  <dj@redhat.com>
6987
6988         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
6989         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
6990         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
6991         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
6992         * doc/tm.texi: Regenerate.
6993         * targhooks.h (default_label_align_after_barrier_max_skip,
6994         default_loop_align_max_skip, default_label_align_max_skip,
6995         default_jump_align_max_skip): Declare.
6996         * target.def (label_align_after_barrier_max_skip): New.
6997         (loop_align_max_skip): New.
6998         (label_align_max_skip): New.
6999         (jump_align_max_skip): New.
7000         * system.h (poison): Add those macros to the list.
7001         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
7002         (LOOP_ALIGN_MAX_SKIP): Remove.
7003         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
7004         (JUMP_ALIGN_MAX_SKIP): Remove.
7005         (default_label_align_after_barrier_max_skip): New.
7006         (default_loop_align_max_skip): New.
7007         (default_label_align_max_skip): New.
7008         (default_jump_align_max_skip): New.
7009         (compute_alignments): Use the new hooks.
7010         (shorten_branches): Likewise.
7011
7012 2010-10-19  Richard Henderson  <rth@redhat.com>
7013
7014         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
7015         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
7016         (fma4i_fmadd_<mode>): New.
7017         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
7018         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
7019         standard fma patterns.
7020         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
7021         enable for FMA.
7022         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
7023         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
7024         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
7025
7026 2010-10-19  Paul Koning  <pkoning@equallogic.com>
7027
7028         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
7029         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
7030
7031 2010-10-19  Richard Henderson  <rth@redhat.com>
7032
7033         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
7034         (fmadf4, *fmsdf4, *nfmadf4): New.
7035         (fmaxf4, *fmsxf4, *nfmaxf4): New.
7036
7037 2010-10-19  Michael Eager  <eager@eagercon.com>
7038
7039         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
7040         Use sjlj unwind info for exceptions.
7041
7042 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
7043
7044         PR fortran/43414
7045         * dwarf2out.c (add_calling_convention_attribute): Flag main
7046         Fortran subroutine with DW_AT_main_subprogram.
7047
7048 2010-10-19  Nick Clifton  <nickc@redhat.com>
7049
7050         * config/rx/rx.c (rx_function_value): Small integer types are
7051         promoted to SImode.
7052         (rx_promote_function_mode): New function.
7053         (TARGET_PROMOTE_FUNCTION_MODE): Define.
7054
7055 2010-10-19  Nick Clifton  <nickc@redhat.com>
7056
7057         * config/mep/mep.c (mep_print_operand): Use
7058         targetm.strip_name_encoding.
7059         (mep_output_aligned_common): Likewise.
7060
7061 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
7062
7063         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
7064
7065 2010-10-18  Richard Henderson  <rth@redhat.com>
7066
7067         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
7068         (fma (neg a) (neg b) c) and (fma a (neg b) c).
7069
7070 2010-10-18  Richard Henderson  <rth@redhat.com>
7071
7072         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
7073         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
7074         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
7075         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
7076         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
7077         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
7078         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
7079         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
7080         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
7081         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
7082         (bdesc_multi_arg): Remove the corresponding builtins.
7083         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
7084         (UNSPEC_FMA4_FMSUBADD): Remove.
7085         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
7086         * config/i386/sse.md (FMA4MODEF4): Remove.
7087         (FMAMODE): Add.
7088         (fma<mode>4): New expander.
7089         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
7090         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
7091         (*fma4i_fmsub_<mode>): Similarly.
7092         (*fma4i_fnmadd_<mode>): Similarly.
7093         (*fma4i_fnmsub_<mode>): Similarly.
7094         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
7095         with the first operand.
7096         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
7097         of explicit arithmetic.  Macroize with AVXMODEF2P.
7098         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
7099         (xop_frcz<mode>2): Macroize with FMAMODE.
7100         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
7101         the first operand.
7102         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
7103         extra negations.
7104         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
7105         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
7106         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
7107         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
7108         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
7109         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
7110         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
7111         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
7112
7113 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
7114
7115         PR rtl-optimization/45966
7116         * combine.c (try_combine): If added_sets_2, deal with the case
7117         where i0 feeds i1 and i1 feeds i2.
7118
7119 2010-10-18  Jan Hubicka  <jh@suse.cz>
7120
7121         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
7122         preserve flags before trying to guess on visibility.
7123         (varpool_externally_visible_p): New function.
7124         (function_and_variable_visibility): Use it.
7125
7126 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7127
7128         Implemented parsing @synthesize and @dynamic for Objective-C.
7129         * c-parser.c (c_parser_external_declaration): Recognize
7130         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
7131         (c_parser_objc_at_synthesize_declaration): New.
7132         (c_parser_objc_at_dynamic_declaration): New.
7133
7134 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7135
7136         * c-parser.c (c_parser_objc_class_declaration): After finding an
7137         error, parse the whole declaration then reset parser->error.
7138
7139 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7140
7141         PR target/46041
7142         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
7143         * builtins.c (mode_has_fma): Ditto.
7144
7145 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
7146
7147         PR target/36898
7148         PR middle-end/43760
7149         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
7150
7151 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
7152
7153         * config/i386/i386.c (ix86_option_override_internal): Define and
7154         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
7155         default.
7156         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7157         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
7158
7159 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7160
7161         Merge from 'apple/trunk' branch on FSF servers.
7162         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
7163         following Objective-C change:
7164
7165         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
7166
7167         Radar 4301047
7168         * c-parse.in (objc_quals): Build objc qualifier list same way
7169         as gcc-3.3
7170
7171 2010-10-18  Jan Hubicka  <jh@suse.cz>
7172
7173         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
7174         function_and_variable_visibility): Revert accidental commit.
7175
7176 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7177
7178         Merge from 'apple/trunk' branch on FSF servers.
7179         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
7180         the following Objective-C change:
7181
7182         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
7183
7184         Radar 4204796
7185         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
7186         'volatilized' type used in a typeof operator.
7187
7188 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
7189
7190         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
7191         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
7192         rewrite modelled on gimple_purge_dead_eh_edges.
7193         (gimple_purge_all_dead_abnormal_call_edges): New function.
7194         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
7195         directly instead of through gimple_purge_dead_abnormal_call_edges.
7196         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
7197         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
7198         removed AB side-effects from one of its statements.
7199         (init_pre): Initialize need_ab_cleanup.
7200         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
7201         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
7202
7203 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7204
7205         PR c/46015
7206         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
7207         on computed goto argument.
7208
7209 2010-10-18  Richard Guenther  <rguenther@suse.de>
7210
7211         PR tree-optimization/45967
7212         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
7213         (could_have_pointers): Likewise.
7214         (handle_rhs_call, handle_const_call, handle_pure_call,
7215         find_func_aliases, intra_create_variable_infos): Remove calls to them.
7216         (struct fieldoff): Add must_have_pointers field.
7217         (type_must_have_pointers): New function.
7218         (field_must_have_pointers): Likewise.
7219         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
7220         Adjust field merging.
7221         (create_function_info_for): May-have-pointers of varinfo is
7222         almost always true.
7223         (create_variable_info_for_1): Likewise.
7224
7225 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
7226
7227         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
7228         of operands to vec_concat.
7229
7230 2010-10-18  Richard Guenther  <rguenther@suse.de>
7231
7232         PR lto/44950
7233         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
7234         also clear references to entries of it.
7235
7236 2010-10-18  Andi Kleen  <ak@linux.intel.com>
7237
7238         PR other/43448
7239         * gccbug.in: Remove.
7240         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
7241         (doc, distclean, install-common): Remove reference to gccbug.
7242         * configure: Regenerate.
7243         * configure.ac (all_outputs): Remove gccbug.
7244         * doc/configfiles.texi: Remove references to gccbug.
7245         * doc/sourcebuild.texi: Dito.
7246
7247 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7248
7249         PR middle-end/46019
7250         * fold-const.c (fold_binary_loc): If integer_pow2p has
7251         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
7252
7253 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7254             Jeremie Salvucci  <jeremie.salvucci@free.fr>
7255
7256         * gengtype.c (verbosity_level): Add variable.
7257         (set_gc_used): Count variables for verbosity.
7258         (close_output_files): Backing up files, counting written ones
7259         verbosily.
7260         (write_types): Count emitted functions for verbosity. Added
7261         debug messages.
7262         (write_enum_defn): Count structures for verbosity. Added debug
7263         messages.
7264         (gengtype_long_options): Add "verbose" & "backupdir".
7265         (print_usage): Ditto.
7266         (main): Verbose display of parsed files.
7267
7268         * gengtype.h (verbosity_level): Add declaration.
7269
7270 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7271
7272         * gengtype.c (parse_program_options): Add allocation of
7273         plugin_files, and correct test on nb_plugin_files.
7274
7275 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7276
7277         Merge from 'apple/trunk' branch on FSF servers.
7278
7279         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
7280
7281         Radar 4133425
7282         * c-decl.c (undeclared_variable): Issue diagnostic on
7283         private 'ivar' access.
7284
7285 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7286
7287         PR target/46051
7288         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
7289         generated sequence to match *avx_vperm2f128<mode>_nozero.
7290         (vec_interleave_lowv4df): Ditto.
7291         (vec_interleave_highv8sf): Ditto.
7292         (vec_interleave_lowv8sf): Ditto.
7293
7294 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
7295
7296         * libgcov.c (create_file_directory): Enable it for win32 case.
7297         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
7298         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
7299         (GCOV_PREFIX_SKIP): Likewise.
7300
7301 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7302
7303         * doc/objc.texi (GNU Objective-C runtime API): New section.
7304         (Modern GNU Objective-C runtime API): New section.
7305         (Traditional GNU Objective-C runtime API): New section.
7306         (Executing code before main): Mention that this section is
7307         specific to the GNU Objective-C runtime.
7308         (Garbage Collection): Same.
7309
7310 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7311
7312         * c-parser.c (c_parser_for_statement): Move initialization of
7313         cond and incr before if.
7314
7315 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
7316
7317         * target.def (preferred_output_reload_class): New hook.
7318         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
7319         * doc/tm.texi: Regenerate.
7320         * targhooks.c (default_preferred_output_reload_class): New function.
7321         * targhooks.h (default_preferred_output_reload_class): Declare.
7322         * reload.c (find_dummy_reload): Change rclass argument type from
7323         enum reg_class to reg_class_t. Change this_alternative array type
7324         from enum reg_class to reg_class_t.
7325         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7326         (push_reload): Change preferred_class variable type to reg_class_t.
7327         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7328         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
7329         argument type from enum reg_class to reg_class_t. Use
7330         HARD_REGISTER_NUM_P predicate.
7331         * recog.h (reg_fits_class_p): Update prototype.
7332
7333         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7334         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
7335         Remove.
7336         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
7337         static. Change regclass argument and result types from enum reg_class
7338         to reg_class_t.
7339         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7340
7341 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
7342
7343         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
7344         visibility enum, and handle @package.
7345
7346 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7347
7348         * doc/objc.texi (What you can and what you cannot do in +load):
7349         Document that sending messages to constant string objects in +load
7350         is not guaranteed to work.
7351
7352 2010-10-16  Jan Hubicka  <jh@suse.cz>
7353
7354         PR middle-end/44206
7355         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
7356         existence of refrences before removing the function.
7357
7358 2010-10-16  Jan Hubicka  <jh@suse.cz>
7359
7360         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
7361         only_called_at_startup and only_called_at_exit.
7362         (cgraph_propagate_frequency): Compute only_called_at_startup and
7363         only_called_at_exit.
7364         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
7365         only_called_at_exit.
7366         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
7367         flags.
7368         * predict.c (compute_function_frequency): Initialize the new flags.
7369
7370 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
7371
7372         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
7373         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
7374         on the bounds of its domain.
7375         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
7376
7377 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
7378
7379         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
7380         * config/avr/avr-protos.h (preferred_reload_class): Remove.
7381         * config/avr/avr.c (preferred_reload_class): Remove.
7382         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
7383         * config/pa/pa.c (emit_move_sequence): Update comment
7384         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
7385         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
7386         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
7387         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
7388         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
7389         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
7390         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
7391         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
7392         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
7393         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
7394         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
7395         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
7396         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
7397
7398 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7399
7400         * opts.c (set_fast_math_flags,
7401         set_unsafe_math_optimizations_flags): Make static.
7402         * toplev.h (set_fast_math_flags,
7403         set_unsafe_math_optimizations_flags): Remove prototypes.
7404
7405 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7406
7407         * config/arm/arm.c (arm_option_optimization): Set
7408         flag_section_anchors to 1 not 2.
7409         * config/i386/i386.c (ix86_option_override_internal): Check
7410         global_options_set.x_flag_zee and
7411         global_options_set.x_flag_omit_frame_pointer.
7412         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
7413         flag_zee to 2.
7414         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
7415         global_options_set.x_flag_omit_frame_pointer.
7416         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
7417         opts->x_flag_section_anchors to 1 not 2.
7418         * config/sh/sh.c (sh_option_optimization): Don't set
7419         flag_schedule_insns to 2.
7420         (sh_option_override): Check
7421         global_options_set.x_flag_schedule_insns.
7422         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
7423
7424 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
7425
7426         * configure.ac: Make sure inhibit_libc remains false for mingw targets
7427         as cross.
7428         * configure: Regenerated.
7429
7430 2010-10-15  Xinliang David Li  <davidxl@google.com>
7431
7432         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
7433         function.
7434         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
7435         into a recursive function.
7436
7437 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
7438
7439         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
7440         (*movdfcc_1): ditto.
7441
7442 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7443
7444         * target.def (target_option.init_struct): New hook.
7445         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
7446         * doc/tm.texi: Regenerate.
7447         * hooks.c (hook_void_gcc_optionsp): New.
7448         * hooks.h (hook_void_gcc_optionsp): Declare.
7449         * langhooks-def.h (lhd_init_options_struct): Remove.
7450         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
7451         * langhooks.c (lhd_init_options_struct): Remove.
7452         * opts.c (init_options_struct): Also call
7453         targetm.target_option.init_struct.
7454         * config/i386/i386.c (ix86_option_init_struct,
7455         TARGET_OPTION_INIT_STRUCT): New.
7456         (ix86_option_optimization): Move some settings to
7457         ix86_option_init_struct.
7458         * config/pdp11/pdp11.c (pdp11_option_init_struct,
7459         TARGET_OPTION_INIT_STRUCT): New.
7460         (pdp11_option_optimization): Move some settings to
7461         pdp11_option_init_struct.
7462         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
7463         rs6000_option_init_struct.  Use options structure pointer.
7464         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7465         * config/s390/s390.c (s390_option_init_struct,
7466         TARGET_OPTION_INIT_STRUCT): New.
7467         (s390_option_optimization): Don't set
7468         flag_asynchronous_unwind_tables here.
7469         * config/sh/sh.c (sh_option_init_struct,
7470         TARGET_OPTION_INIT_STRUCT): New.
7471         (sh_option_optimization): Don't set flag_finite_math_only here.
7472         * config/spu/spu.c (spu_option_optimization): Replace by
7473         spu_option_optimization.  Use options structure pointer.
7474         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7475
7476 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7477
7478         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
7479
7480         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
7481         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
7482         (Standard names): Document fma.
7483
7484         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
7485         __FP_FAST_FMAF, __FP_FAST_FMAL.
7486
7487         * builitns.c (expand_builtin_mathfn_ternary): New function for
7488         expanding ternary math functions, like fma.
7489         (expand_builtin): Call it for the fma builtins.
7490
7491         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
7492         ops at present.
7493
7494         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
7495         vectorizable functions to support vectorizing fma.
7496
7497         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7498         Handle fma builtins.
7499
7500         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
7501         (UNSPEC_VSX_MSUB): Ditto.
7502         (UNSPEC_VSX_NMADD): Ditto.
7503         (UNSPEC_VSX_NMSUB): Ditto.
7504         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
7505         of UNSPEC. Renumber combiner patterns.
7506         (vsx_fmsub<mode>4*): Ditto.
7507         (vsx_fnmadd<mode>4*): Ditto.
7508         (vsx_fnmsub<mode>4*): Ditto.
7509
7510         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
7511         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
7512         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
7513         (altivec_vmaddfp_1): Ditto.
7514         (altivec_vmaddfp_2): Ditto.
7515         (atlivec_mulv4sf3): Ditto.
7516         (altivec_vnmsubfp): Ditto.
7517         (altivec_vnmsubfp_1): Ditto.
7518         (altivec_vnmsubfp_2): Ditto.
7519         (altivec_vnmsubfp_3): Delete.
7520
7521         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
7522         (fmasf4_fpr): Ditto.
7523         (fmssf4_fpr): Ditto.
7524         (fnmasf4_fpr): Ditto.
7525         (fnmssf4_fpr): Ditto.
7526         (fmadf4): Ditto.
7527         (fmadf4_fpr): Ditto.
7528         (fmsdf4_fpr): Ditto.
7529         (fnmadf4_fpr): Ditto.
7530         (fnmsdf4_fpr): Ditto.
7531
7532         * optabs.h (OTI_fma): Add fma optab.
7533         (fma_optab): Ditto.
7534
7535         * genopinit.c (optabs): Set fma optab.
7536
7537         * rtl.def (FMA): Add FMA rtl.
7538
7539         * tree.h (mode_has_fma): New function to return if MODE supports a
7540         fast multiply and add instruction.
7541         * builtins.c (mode_has_fma): Ditto.
7542
7543 2010-10-15  Jan Hubicka  <jh@suse.cz>
7544
7545         * lto-streamer-out.c (write_symbol): Use pointer set of seen
7546         objects instead of bitmap.
7547         (produce_symtab): Likewise; output defined symbols first.
7548
7549 2010-10-15  Jie Zhang  <jie@codesourcery.com>
7550
7551         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
7552         Option Summary and Index.
7553
7554 2010-10-15  Richard Guenther  <rguenther@suse.de>
7555
7556         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
7557         for automatic variables again.
7558
7559 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7560
7561         * doc/extend.texi (Variable Length): Don't refer to VLAs not
7562         conforming to C99.
7563
7564 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7565
7566         * config/rx/rx.c (rx_option_optimization): Change to
7567         rx_override_options_after_change.  Don't change
7568         flag_lto_compression_level.  Don't check for changes to whether
7569         FPU instructions can be used.  Check and set only
7570         flag_finite_math_only, not other fast-math flags.
7571         (rx_option_override): Call rx_override_options_after_change.
7572         (TARGET_OPTION_OPTIMIZATION): Remove.
7573         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
7574
7575 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7576
7577         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
7578         disable section anchors for lang_hooks.name[4] != 'O'.
7579
7580 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7581
7582         * config/frv/frv.c (frv_option_optimization,
7583         TARGET_OPTION_OPTIMIZATION): Remove.
7584         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
7585
7586 2010-10-15  Michael Matz  <matz@suse.de>
7587
7588         * cgraphunit.c (clone_of_p): Define unconditionally.
7589
7590 2010-10-15  Richard Guenther  <rguenther@suse.de>
7591
7592         PR lto/45957
7593         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
7594
7595 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
7596
7597         * ifcvt.c (find_active_insn_before): New function.
7598         (find_active_insn_after): New function.
7599         (cond_exec_process_if_block): Use new functions to replace
7600         prev_active_insn() and next_active_insn().
7601
7602 2010-10-14  Yao Qi  <yao@codesourcery.com>
7603
7604         PR target/45447
7605         * config/arm/arm.c (arm_build_builtin_va_list): Assign
7606         va_list_name to TYPE_STUB_DECL (va_list_type).
7607
7608 2010-10-14  Jan Hubicka  <jh@suse.cz>
7609
7610         PR middle-end/45621
7611         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
7612         redirected to clone, be happy.
7613         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
7614         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
7615         former_clone_of unconditionally.
7616
7617 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7618
7619         Merge from FSF apple 'trunk' branch.
7620         2006 Fariborz Jahanian  <fjahanian@apple.com>
7621
7622         Radars 4436866, 4505126, 4506903, 4517826
7623         * c-parser.c (c_parser, objc_property_attr_context) New flag.
7624         (c_lex_one_token): Handle property attributes.
7625         (c_parser_external_declaration): Handle @property.
7626         (c_parser_declaration_or_fndef): Warn on invalid attributes before
7627         @alias, @class, @end and @property objc keywords.
7628         (c_parser_objc_methodprotolist): Handle @property.
7629         (c_parser_objc_property_attrlist): New.
7630         (c_parser_objc_at_property): New.
7631         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
7632         (build_modify_expr): Likewise.
7633
7634 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7635
7636         PR tree-optimization/46008
7637         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
7638
7639 2010-10-14  Richard Guenther  <rguenther@suse.de>
7640
7641         PR tree-optimization/44913
7642         * tree-data-ref.c (disjoint_objects_p): Remove.
7643         (dr_may_alias_p): Simplify.  Only hand the base object to
7644         the alias-oracle.
7645         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
7646         some more trees, bail out instead of asserting.
7647         (ptr_derefs_may_alias_p): Likewise.  Export.
7648         (refs_may_alias_p_1): Handle STRING_CSTs.
7649         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
7650
7651 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7652
7653         PR c/45969
7654         * c-typeck.c (build_binary_op): Don't try to compute a semantic
7655         type with excess precision for boolean operations.
7656
7657 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
7658             Basile Starynkevitch  <basile@starynkevitch.net>
7659
7660         * gengtype.c:  Include getopt.h and version.h.
7661
7662         (lang_bitmap, struct outf, outf_p)
7663         (get_output_file_with_visibility, oprintf): Definitions moved to
7664         gengtype.h
7665         (output_files, header_file, srcdir, srcdir_len, this_file)
7666         (do_dump): No more static variables.
7667         (do_debug): New.
7668         (dbgprint_count_type_at): Added new function.
7669         (gengtype_long_options): New.
7670         (print_usage, print_version, parse_program_options): New.
7671         (main): Call parse_program_options, and removed old option
7672         handling code.  Added some debug output.
7673
7674         * gengtype.h:  Updated copyright year.
7675         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
7676         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
7677         Moved from gengtype.c to here.
7678         (do_debug, read_state_filename, write_state_filename): New variables.
7679         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
7680
7681         * Makefile.in:
7682         (REVISION): Always defined.
7683         (version.o): Removed ifdef REVISION_c.
7684         (s-gtype): Pass arguments to build/gengtype program.
7685         (build/version.o): Added building rule.
7686         (build/gengtype$(build_exeext)): Added build/version.o.
7687
7688 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7689
7690         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
7691         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
7692         __strong macros.
7693
7694 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
7695
7696         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
7697         may_trap_or_fault_p instead of may_trap_p predicate.
7698         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
7699         (substitute_placeholder_in_expr): Likewise.
7700         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
7701         flag on MEM_REF nodes.
7702         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
7703         flags on INDIRECT_REF nodes.
7704
7705 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
7706
7707         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
7708         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
7709         (arm*-*-eabi*) <tm_file>: Likewise.
7710         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
7711         (frv-*-*linux*) <tm_file>: Likewise.
7712         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
7713         and associated helper macros.
7714         * config/frv/frv-abi.h: Delete.
7715
7716 2010-10-14  Richard Guenther  <rguenther@suse.de>
7717
7718         PR lto/44561
7719         * tree.def (NULLPTR_TYPE): New tree code.
7720         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
7721         * dwarf2out.c (is_base_type): Likewise.
7722         (gen_type_die_with_usage): Likewise.
7723         * sdbout.c (plain_type_1): Likewise.
7724         * tree.c (build_int_cst_wide): Likewise.
7725         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
7726
7727 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7728
7729         * params.c (params_finished): New.
7730         (add_params): Assert !params_finished.
7731         (finish_params): New.
7732         (set_param_value_internal): Take params and params_set
7733         parameters.  Assert params_finished.
7734         (set_param_value, maybe_set_param_value): Take params and
7735         params_set parameters.  Update calls to set_param_value_internal.
7736         (set_default_param_value): Assert !params_finished.  Don't use
7737         set_param_value_internal.
7738         (default_param_value, init_param_values): New.
7739         * params.h (struct param_info): Change value to default_value.
7740         Remove set.
7741         (set_param_value, maybe_set_param_value): Add params and
7742         params_set parameters.
7743         (PARAM_VALUE): Get parameters from global_options.
7744         (PARAM_SET_P): Remove.
7745         (finish_params, default_param_value, init_param_values): New.
7746         * common.opt (param_values): New Variable.
7747         * config/arm/arm.c (arm_option_override): Pass extra arguments to
7748         maybe_set_param_value.
7749         * config/i386/i386.c (ix86_option_override_internal): Pass extra
7750         arguments to maybe_set_param_value.
7751         * config/picochip/picochip.c (picochip_option_override): Pass
7752         extra arguments to maybe_set_param_value.
7753         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
7754         extra arguments to maybe_set_param_value.
7755         * config/s390/s390.c (s390_option_override): Use
7756         maybe_set_param_value instead of set_param_value.  Pass extra
7757         arguments to maybe_set_param_value.
7758         * config/sparc/sparc.c (sparc_option_override): Pass extra
7759         arguments to maybe_set_param_value.
7760         * config/spu/spu.c (spu_option_override): Pass extra arguments to
7761         maybe_set_param_value.
7762         * opts.c (handle_param): Take opts and opts_set parameters.
7763         Update call to set_param_value.
7764         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
7765         initial_loop_invariant_max_bbs_in_loop): Remove.
7766         (init_options_once): Don't set them.
7767         (init_options_struct): Initialize parameters structures.
7768         (default_options_optimization): Use default_param_value when
7769         restoring defaults.  Update calls to maybe_set_param_value.
7770         (finish_options): Update calls to maybe_set_param_value.
7771         (common_handle_option): Update calls to handle_param and
7772         set_param_value.
7773         * toplev.c (DEFPARAM): Update definition for changes to param_info.
7774         (general_init): Call finish_params.
7775
7776 2010-10-14  Nick Clifton  <nickc@redhat.com>
7777
7778         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
7779         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
7780         (FIRST_PSEUDO_REGISTER): Increase by one.
7781         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
7782         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
7783         (MODES_TIEABLE): Call mn10300_modes_tieable.
7784         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
7785         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
7786         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
7787         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
7788         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
7789         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
7790         (mn10300_cc_status_mdep): Delete.
7791         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
7792         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
7793         the combine-stack-adjust pass.
7794         (print_operand): Use the mode of the comparison operation to
7795         select the comparison suffix.
7796         (notice_update_cc): Delete.
7797         (mn10300_secondary_reload_class): Remove test for stack pointer
7798         based arithmetic.
7799         (output_tst): Rename to mn10300_output_cmp.
7800         (impossible_plus_operand): Move into predicates.md.
7801         (mn10300_legitimize_address): Make static.
7802         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
7803         constant pic operands.
7804         (mn10300_legitimate_constant_p): New function.
7805         (mn10300_case_values_threshold): Make static.
7806         (mn10300_hard_regno_mode_ok): New function.
7807         (mn10300_modes_tieable): New function.
7808         (mn10300_select_cc_mode): New function.
7809         * config/mn10300/predicates.md (impossible_plus_operand): Define.
7810         * config/mn10300/mn10300-protos.h: Tidy.
7811         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
7812         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
7813         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
7814         with clobbers or sets of CC_REG.
7815         (CC_REG): Define.
7816         (mov*): Remove use of CLR instruction.
7817         (cbranch_si4_<code>): New pattern/split.
7818         (integer_conditional_branch): New pattern.
7819         (cbranch_sf4_<code>): New pattern/split.
7820         (float_conditional_branch): New pattern.
7821         (casesi): Use addsi3 pattern instead of movsi pattern to add and
7822         move a value at the same time.
7823         (cc0 peepholes): Remove.
7824
7825 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7826
7827         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
7828         on RTX_FRAME_RELATED_P insns and the insn to which
7829         NOTE_INSN_EPILOGUE_BEG is attached.
7830         * sched-vis.c (print_value): Allow NULL value.
7831
7832 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7833
7834         PR rtl-optimization/45570
7835         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
7836         assert that we are pipelining outer loops.  Allow returning
7837         zero predecessors.
7838
7839 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7840
7841         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
7842         (tidy_control_flow): Tidy vertical space.
7843         (sel_remove_bb): New variable idx.  Use it to remember the basic
7844         block index before deleting the block.
7845         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
7846         (sel_merge_blocks): ... here.
7847         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
7848
7849 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7850
7851         * cse.c (is_dead_reg): Change into inline function that is not
7852         called through for_each_rtx.
7853         (set_live_p): Adjust caller.
7854         (insn_live_p): Don't reset DEBUG_INSNs here.
7855         (struct dead_debug_insn_data): New data.
7856         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
7857         (delete_trivially_dead_insns): If there is just one setter for the
7858         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
7859         and add DEBUG_INSN for it right before the removed setter and
7860         use the DEBUG_EXPR instead of the dead pseudo.
7861
7862 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
7863
7864         * et-forest.c (et_nca): Return NULL immediately when
7865         the dominance forest has disjoint components.
7866
7867 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
7868
7869         * ira.c (setup_class_hard_regs): Fix typo in indexing
7870         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
7871
7872 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
7873
7874         * graph.c (inbb): New variable.
7875         (start_bb): Set inbb to 1 if output is inside of a building block.
7876         (end_bb): Check if output is inside of a building block.
7877
7878 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7879
7880         PR rtl-optimization/45912
7881         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
7882         regno of registers instead of their index to compute the alignment.
7883
7884 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
7885
7886         * config/i386/i386.c (ix86_build_const_vector): Check vector
7887         mode instead of scalar mode.
7888         (ix86_build_signbit_mask): Likewise.
7889         (ix86_expand_fp_absneg_operator): Updated.
7890         (ix86_expand_copysign): Likewise.
7891         (ix86_expand_int_vcond): Likewise.
7892         (ix86_emit_swdivsf): Likewise.
7893         (ix86_sse_copysign_to_positive): Likewise.
7894         (ix86_expand_sse_fabs): Likewise.
7895         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
7896         * config/i386/sse.md (copysign<mode>3): Likewise.
7897         (sse2_cvtudq2ps): Likewise.
7898         (vec_unpacku_float_hi_v4si): Likewise.
7899         (vec_unpacku_float_lo_v4si): Likewise.
7900
7901         * config/i386/i386.c (ix86_builtins): Add
7902         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
7903         (bdesc_args): Likewise.
7904         (ix86_builtin_vectorized_function): Support
7905         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
7906         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
7907         and IX86_BUILTIN_CVTPS2DQ256.
7908         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
7909
7910         * config/i386/sse.md (STORENT_MODE): New.
7911         (VEC_FLOAT_MODE): Likewise.
7912         (VEC_EXTRACT_MODE): Likewise.
7913         (*avx_cvtdq2pd256_2): Likewise.
7914         (vec_pack_trunc_v4df): Likewise.
7915         (vec_interleave_highv8sf): Likewise.
7916         (vec_interleave_lowv8sf): Likewise.
7917         (storent<mode>): Macroized.
7918         (<code><mode>2: absneg): Likewise.
7919         (copysign<mode>3): Likewise.
7920         (vec_extract<mode>): Likewise.
7921
7922         PR target/44180
7923         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
7924         for V8SFmode.
7925
7926 2010-10-13  Richard Guenther  <rguenther@suse.de>
7927             H.J. Lu  <hongjiu.lu@intel.com>
7928
7929         * config/i386/sse.md (reduc_splus_v8sf): Add.
7930         (reduc_splus_v4df): Likewise.
7931         (vec_unpacks_hi_v8sf): Likewise.
7932         (vec_unpacks_lo_v8sf): Likewise.
7933         (*avx_cvtps2pd256_2): Likewise.
7934         (vec_unpacks_float_hi_v8si): Likewise.
7935         (vec_unpacks_float_lo_v8si): Likewise.
7936         (vec_interleave_highv4df): Likewise.
7937         (vec_interleave_lowv4df): Likewise.
7938
7939 2010-10-13  Richard Guenther  <rguenther@suse.de>
7940
7941         PR objc/45878
7942         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
7943         alone if there are no virtual methods.
7944
7945 2010-10-13  Richard Henderson  <rth@redhat.com>
7946
7947         * expr.c (build_personality_function): Take parameter LANG instead
7948         of parameter NAME.  Build the name based on the lang prefix and the
7949         unwind method in use.
7950         * tree.c (lhd_gcc_personality): Update call to
7951         build_personality_function.
7952
7953 2010-10-13  Richard Guenther  <rguenther@suse.de>
7954
7955         PR objc/45878
7956         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
7957
7958 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7959
7960         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
7961         Canonicalize input operands of ASM_OPERANDS insns.
7962
7963 2010-10-13  Richard Guenther  <rguenther@suse.de>
7964
7965         PR tree-optimization/45788
7966         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
7967         EH update until fixup-cfg.
7968
7969 2010-10-13  Julian Brown  <julian@codesourcery.com>
7970
7971         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
7972         from CORE_REGS and GENERAL_REGS classes.
7973         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
7974         final constraint for register preferencing.
7975
7976 2010-10-13  Richard Guenther  <rguenther@suse.de>
7977
7978         PR tree-optimization/45970
7979         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
7980         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
7981         (stmt_kills_ref_p): Likewise.
7982         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
7983
7984 2010-10-13  Richard Guenther  <rguenther@suse.de>
7985
7986         PR tree-optimization/45982
7987         * tree-ssa-structalias.c (make_constraints_to): New function.
7988         (make_constraint_to): Implement in terms of make_constraints_to.
7989         (find_func_aliases): Properly make return values of pure/const
7990         functions escape if they assign to sth that is not a pointer.
7991
7992 2010-10-13  Richard Guenther  <rguenther@suse.de>
7993
7994         PR middle-end/45874
7995         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
7996         Fixup the CFG when EH was fixed up.
7997
7998 2010-10-13  Ira Rosen  <irar@il.ibm.com>
7999
8000         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
8001         Use operand's type for POINTER_PLUS_EXPR.
8002
8003 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
8004
8005         * c-parser.c (c_parser_for_statement): Initialize incr.
8006
8007 2010-10-12  Xinliang David Li  <davidxl@google.com>
8008
8009         PR tree-optimization/45972
8010         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
8011         with too many arguments.
8012
8013 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8014
8015         PR fortran/45636
8016         * tree-ssa-forwprop.c: Include expr.h.
8017         (constant_pointer_difference, simplify_builtin_call): New functions.
8018         (tree_ssa_forward_propagate_single_use_vars): Call
8019         simplify_builtin_call on builtin calls.
8020
8021 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
8022
8023         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
8024         (*adddi3_extend_sp32): Likewise.
8025         (*subdi3_insn_sp32): Likewise.
8026         (*subdi3_extend_sp32): Likewise.
8027         (*negdi2_sp32): Use negative test for consistency.
8028
8029 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
8030
8031         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
8032         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8033         * config/fixed-bit.h: Likewise.
8034         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8035         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8036         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
8037         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
8038         (DF_SIZE): Likewise.
8039         * doc/tm.texi: Regenerate.
8040
8041 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
8042
8043         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
8044         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
8045         (*isel_reversed_unsigned_<mode>): New.
8046         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
8047         as valid comparisons and adjust operands and output appropriately.
8048         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
8049
8050 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
8051
8052         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
8053         DATA_ALIGNMENT and add COND parameter. Update comments above.
8054         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
8055         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
8056
8057 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
8058
8059         PR bootstrap/45958
8060         * exec-tool.in: Support '-plugin' as the second option to the linker.
8061
8062 2010-10-12  Richard Henderson  <rth@redhat.com>
8063
8064         PR middle-end/45962
8065         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
8066         (expand_stack_vars): Assert large base allocated when used.
8067
8068 2010-10-12  Richard Guenther  <rguenther@suse.de>
8069
8070         * tree-ssa-structalias.c (get_constraint_for_1): Constants
8071         only point to nonlocal, not anything.
8072
8073 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8074
8075         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
8076         unwind info for exceptions.
8077
8078 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8079
8080         PR testsuite/45851
8081         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
8082         Document optional target selector.
8083
8084 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
8085
8086         * flag-types.h: New.
8087         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
8088         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
8089         options.h.
8090         (OPTIONS_H): Define.
8091         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
8092         of options.h.
8093         * configure.ac (tm_include_list): Include options.h not flags.h.
8094         * configure: Regenerate.
8095         * flags.h: Include flag-types.h.  Include options.h at top of file
8096         again.
8097         (enum debug_info_type, enum debug_info_level, enum
8098         debug_info_usage, enum symbol_visibility, struct visibility_flags,
8099         enum ira_algorithm, enum ira_region, enum excess_precision, enum
8100         graph_dump_types, enum stack_check_type,
8101         enum warn_strict_overflow_code): Move to flag-types.h
8102         * opth-gen.awk: Include flag-types.h in options.h.
8103
8104 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8105
8106         * expr.c (store_expr): Share code for STRING_CST and
8107         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
8108         check if target is a MEM.
8109
8110         * rtl.h: Include hashtab.h.
8111         (iterative_hash_rtx): New prototype.
8112         * rtl.c (iterative_hash_rtx): New function.
8113         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
8114         (output_loc_list): Return immediately if emitted is set, set it.
8115         (hash_loc_operands, hash_locs, hash_loc_list,
8116         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
8117         optimize_location_lists_1, optimize_location_lists): New function.
8118         (dwarf2out_finish): Call optimize_location_lists.
8119         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
8120
8121 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8122
8123         PR testsuite/45974
8124         Revert:
8125         * Makefile.in ($(lang_checks_parallel))
8126         ($(lang_checks_parallelized)): Use single quotes for
8127         $(RUNTESTFLAGS), to allow passing quoted content.
8128
8129 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8130
8131         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
8132         actual_oldval.  Use __builtin_expect.
8133         (SUBWORD_VAL_CAS): Likewise.
8134
8135 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8136
8137         * recog.c (nonmemory_operand): Call immediate_operand for
8138         CONSTANT_P operands.
8139
8140 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
8141
8142         * config/i386/i386.md (movmem<mode>): Macroize expander from
8143         movmem{si,di} using SWI48 mode iterator.
8144         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
8145         *strmovsi_rex_1 using P mode iterator.
8146         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
8147         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
8148         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
8149         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
8150         (setmem<mode>): Macroize expander from setmem{si,di} using
8151         SWI48 mode iterator.
8152         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
8153         *strsetsi_rex_1 using P mode iterator.
8154         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
8155         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
8156         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
8157         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
8158         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
8159         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
8160         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
8161         mode iterator.
8162         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
8163         *strlenqi_rex_1 using P mode iterator.
8164
8165 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
8166
8167         PR bootstrap/45445
8168         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
8169         static functions.
8170         (mark_ref_live, mark_ref_dead): Use them.
8171         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
8172         Save the original reg, and use the new functions.
8173         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
8174         changed.
8175         (check_and_make_def_conflict): Save the original reg.
8176
8177 2010-10-11  Martin Jambor  <mjambor@suse.cz>
8178
8179         PR middle-end/45699
8180         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
8181         thunks.
8182
8183 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8184
8185         * Makefile.in ($(lang_checks_parallel))
8186         ($(lang_checks_parallelized)): Use single quotes for
8187         $(RUNTESTFLAGS), to allow passing quoted content.
8188
8189         PR bootstrap/35855
8190         * opt-functions.awk (BEGIN): New section.
8191         (lower, upper, digit, alnum): New variables.
8192         (static_var, opt_sanitized_name): Use alnum instead of character
8193         classes, for non-C locale.
8194         * optc-gen.awk: Likewise.
8195         * opth-gen.awk: Likewise.
8196
8197 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
8198
8199         * target.def (preferred_reload_class): New hook.
8200         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
8201         * doc/tm.texi: Regenerate.
8202         * targhooks.c (default_preferred_reload_class): New function.
8203         * targhooks.h (default_preferred_reload_class): Declare.
8204         * reload.c (find_dummy_reload): Change preferred_class variable type
8205         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
8206         target hook.
8207         (find_reloads): Change goal_alternative array type from int to
8208         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
8209         (push_reload, find_reloads_address_part): Use
8210         TARGET_PREFERRED_RELOAD_CLASS target hook.
8211         * reload1.c (emit_input_reload_insns): Ditto.
8212         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
8213         hook. Change rclass argument and secondary_class variable types from
8214         'enum reg_class' to reg_class_t.
8215
8216         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
8217         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
8218         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
8219         Change regclass argument and result types from enum reg_class to
8220         reg_class_t.
8221         (TARGET_PREFERRED_RELOAD_CLASS): Define.
8222
8223 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
8224
8225         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
8226         in masking operations.
8227         (simplify_const_unary_operation): Likewise.
8228         (simplify_binary_operation_1): Likewise.
8229         (simplify_const_binary_operation): Likewise.
8230         (simplify_const_relational_operation): Likewise.
8231         (simplify_ternary_operation): Likewise.
8232         (simplify_immed_subreg): Likewise.
8233
8234 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8235
8236         PR middle-end/45862
8237         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
8238         (TARGET_SUPPORTS_WEAK): New.
8239         * doc/tm.texi: Regenerate.
8240         * defaults.h (SUPPORTS_WEAK): Update comment.
8241         (TARGET_SUPPORTS_WEAK): New.
8242         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
8243         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
8244         SUPPORTS_WEAK.
8245         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
8246         make_decl_one_only): Likewise.
8247         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
8248         TARGET_SUPPORTS_WEAK.
8249         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
8250         instead of SUPPORTS_WEAK.
8251
8252 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8253
8254         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
8255
8256 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8257
8258         * vec.h (VEC_qsort): Define.
8259         * dbxout.c (output_used_types): Use it.
8260         * df-scan.c (df_sort_and_compress_refs): Likewise.
8261         (df_sort_and_compress_mws): Likewise.
8262         * genautomata.c (uniq_sort_alt_states): Likewise.
8263         (evaluate_equiv_classes): Likewise.
8264         (output_trans_table): Likewise.
8265         (output_state): Likewise.
8266         * gimplify.c (compare_case_labels): Likewise.
8267         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
8268         * ipa.c (build_cdtor_fns): Likewise.
8269         * lto.c (lto_wpa_write_files): Likewise.
8270         * sel-sched.c (fill_vec_av_set): Likewise.
8271         * tree-predcom.c (determine_roots_comp): Likewise.
8272         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
8273         (splice_param_accesses): Likewise.
8274         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
8275         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
8276         (reassociate_bb): Likewise.
8277         * tree-ssa-sccvn.c (sort_scc): Likewise.
8278         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
8279
8280 2010-10-11  Ian Lance Taylor  <iant@google.com>
8281
8282         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
8283         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
8284         TREE_THIS_NOTRAP when appropriate.
8285         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
8286         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
8287         newly created MEM_REF.
8288
8289 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8290
8291         Nathan Froyds patch to hooks FUNCTION_ARG etc.
8292         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
8293         (picochip_incoming_function_arg): Delete.
8294         (picochip_arg_advance): Delete.
8295         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
8296         (FUNCTION_INCOMING_ARG): Delete.
8297         (FUNCTION_ARG_ADVANCE): Delete.
8298         * config/picochip/picochip.c (picochip_function_arg): Take a
8299         const_tree and a bool.
8300         (picochip_incoming_function_arg): Likewise.
8301         (picochip_arg_advance): Likewise.
8302         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8303         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8304
8305 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8306
8307         PR middle-end/45955
8308         * ipa.c (build_cdtor): Delete endless loop.
8309
8310 2010-10-07  Andi Kleen  <ak@linux.intel.com>
8311
8312         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
8313         checksum-options.
8314         (checksum-options): Add.
8315         (cc1-dummy): Remove.
8316         (cc1-checksum): Change to run checksum over object files
8317         and options only.
8318         * dummy-checksum.c: Remove.
8319         * genchecksum.c: Update copyright.
8320         (usage): Allow multiple arguments.
8321         (BLOCKSIZE): Add.
8322         (dosum): Change for incremental checksum. Remove C output.
8323         (main): Iterate over all argument files. Add C output.
8324
8325 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
8326
8327         * params.c (set_param_value_internal): New.
8328         (set_param_value): Use set_param_value_internal.
8329         (maybe_set_param_value, set_default_param_value): New.
8330         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
8331         (maybe_set_param_value, set_default_param_value): Declare.
8332         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
8333         * config/i386/i386.c (ix86_option_override_internal): Use
8334         maybe_set_param_value.
8335         * config/ia64/ia64.c (ia64_option_default_params,
8336         TARGET_OPTION_DEFAULT_PARAMS): New.
8337         (ia64_option_optimization): Move some code to
8338         ia64_option_default_params.
8339         * config/picochip/picochip.c (picochip_option_override): Use
8340         maybe_set_param_value.
8341         * config/rs6000/rs6000.c (rs6000_option_default_params,
8342         TARGET_OPTION_DEFAULT_PARAMS): New.
8343         (rs6000_option_override_internal): Use maybe_set_param_value.
8344         (rs6000_option_optimization): Move some code to
8345         rs6000_option_default_params.
8346         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
8347         * config/sh/sh.c (sh_option_default_params,
8348         TARGET_OPTION_DEFAULT_PARAMS): New.
8349         (sh_option_optimization): Move some code to sh_option_default_params.
8350         * config/sparc/sparc.c (sparc_option_override): Use
8351         maybe_set_param_value.
8352         * config/spu/spu.c (spu_option_default_params,
8353         TARGET_OPTION_DEFAULT_PARAMS): New.
8354         (spu_option_optimization): Move some code to spu_option_default_params.
8355         (spu_option_override): Use maybe_set_param_value.
8356         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
8357         * doc/tm.texi: Regenerate.
8358         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
8359         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
8360         compiler_params.
8361         (default_options_optimization): Use maybe_set_param_value.
8362         (finish_options): Use maybe_set_param_value.
8363         * target.def (target_option.default_params): New hook.
8364         * toplev.c (general_init): Call targetm.target_option.default_params.
8365
8366 2010-10-11  Ira Rosen  <irar@il.ibm.com>
8367
8368         PR tree-optimization/45902
8369         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
8370         vector type for constants, unless it's a pointer.
8371
8372 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8373
8374         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
8375
8376 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
8377
8378         PR target/45870
8379         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
8380         (ix86_delegitimize_address): Use it.
8381
8382 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
8383
8384         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
8385
8386 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
8387
8388         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
8389         to cum struct in the call to function_arg_advance.
8390         (alpha_function_arg_advance): Mark named as unused.
8391
8392 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
8393
8394         * config/mips/mips.c (mips_handle_option): Make "value" with
8395         ATTRIBUTE_UNUSED.
8396
8397 2010-10-09  Richard Henderson  <rth@redhat.com>
8398
8399         PR rtl-opt/33721
8400         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
8401         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
8402         required_align, tidy the code a bit.  Emit split_stack code in the
8403         right place.  Mark the return value with the alignment properly.
8404         * expr.h (allocate_dynamic_stack_space): Update decl.
8405         * builtins.c (expand_builtin_apply): Update call to
8406         allocate_dynamic_stack_space.
8407         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
8408         * calls.c (initialize_argument_information): Update call to
8409         allocate_dynamic_stack_space.
8410         (expand_call): Likewise.
8411
8412         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
8413         Don't update_stack_alignment here.
8414         (alloc_stack_frame_space): Make ALIGN unsigned.
8415         (stack_var_cmp): Sort by alignment too.
8416         (partition_stack_vars): Don't merge large and small alignment vars.
8417         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
8418         Take care when BASE is not virtual_stack_vars_rtx.
8419         (expand_stack_vars): Allocate dynamic stack space for large
8420         alignment variables.
8421         (expand_one_stack_var): Update all to expand_one_stack_var_at.
8422         (defer_stack_allocation): True for large alignment vars.
8423         (update_stack_alignment): Merge into ...
8424         (expand_one_var): ... here.
8425         (gimple_expand_cfg): Place code from expand_stack_vars.
8426
8427 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8428
8429         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8430         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
8431         (pdp11_function_arg_advance): New function.
8432         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8433
8434 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8435
8436         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
8437         * libgcc2.c: Likewise.
8438
8439 2010-10-09  Richard Guenther  <rguenther@suse.de>
8440
8441         PR lto/45956
8442         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
8443         Properly check if a decl is an automatic var.
8444
8445 2010-10-09  Richard Guenther  <rguenther@suse.de>
8446
8447         PR lto/45947
8448         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
8449
8450 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8451
8452         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
8453         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8454         * config/mmix/mmix.c (mmix_function_arg): Rename to...
8455         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
8456         bool arguments.
8457         (mmix_function_arg): New function.
8458         (mmix_function_incoming_arg): New function.
8459         (mmix_function_arg_advance): New function.
8460         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8461         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8462
8463 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8464
8465         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8466         * config/vax/vax.c (vax_function_arg): New function.
8467         (vax_function_arg_advance): New function.
8468         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8469
8470 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8471
8472         * config/pa/pa-protos.h (function_arg): Delete.
8473         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8474         * config/pa/pa.c (function_arg): Rename to...
8475         (pa_function_arg): ...this.  Make static.  Take a const_tree and
8476         a bool.
8477         (pa_function_arg_advance): New function.
8478         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8479
8480 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8481
8482         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8483         * config/m68k/m68k.c (m68k_function_arg): New function.
8484         (m68k_function_arg_advance): New function.
8485         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8486
8487 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8488
8489         * config/avr/avr-protos.h (function_arg): Delete.
8490         (function_arg_advance): Delete.
8491         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8492         * config/avr/avr.c (function_arg): Rename to...
8493         (avr_function_arg): ...this.  Make static.  Take a const_tree and
8494         a bool.
8495         (function_arg_advance): Rename to...
8496         (avr_function_arg_advance): ...this.  Make static.  Take a
8497         const_tree and a bool.
8498         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8499
8500 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8501
8502         * config/alpha/alpha-protos.h (function_arg): Delete.
8503         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8504         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
8505         * config/alpha/alpha.c (function_arg): Rename to...
8506         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
8507         a bool.  Delete TARGET_ABI_UNICOSMK code.
8508         (alpha_function_arg_advance): New function.
8509         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8510
8511 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8512
8513         * config/mep/mep-protos.h (mep_function_arg): Delete.
8514         (mep_function_arg_advance): Delete.
8515         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8516         * config/mep/mep.c (mep_function_arg): Make static.  Take a
8517         const_tree and a bool.
8518         (mep_function_arg_advance): Likewise.
8519         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8520
8521 2010-10-09  Richard Guenther  <rguenther@suse.de>
8522
8523         PR tree-optimization/45945
8524         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
8525
8526 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
8527
8528         PR tree-optimization/45612
8529         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
8530         Test LABEL_DECLs as well.  Fix formatting issues.
8531         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
8532         whose label is present in NON_SSA_VARS.
8533         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
8534         as well.  Fix formatting issues.
8535         (visit_bb): Fix typos and formatting issue.
8536
8537 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8538
8539         PR tree-optimization/45950
8540         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
8541         before initializing vno->op.
8542
8543 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
8544
8545         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
8546         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
8547
8548 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
8549
8550         PR target/45913
8551         * config/i386/i386.c (ix86_binary_operator_ok): Support
8552         "andhi/andsi/anddi" as a zero-extending move.
8553
8554 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8555
8556         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
8557         into a temporary array.
8558
8559 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
8560
8561         PR tree-optimization/45903
8562         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
8563         of {A,L}SHIFTRT of MEM.
8564
8565 2010-10-08  Richard Guenther  <rguenther@suse.de>
8566
8567         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
8568         Re-construct BLOCK_VARS.
8569         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
8570         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
8571         * tree.c (free_lang_data_in_block): Remove.
8572         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
8573         Do not touch the BLOCK tree.
8574         * expr.c (expand_expr_real_1): Allow externals.
8575
8576 2010-10-08  Richard Guenther  <rguenther@suse.de>
8577
8578         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
8579         Do not output BLOCK_SUBBLOCKS.
8580         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
8581         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
8582         Re-construct BLOCK_SUBBLOCKS of parent block.
8583         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
8584         for BINFO_BASE_ACCESSES.
8585
8586 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
8587
8588         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
8589         (TREE_H): Include $(FLAGS_H) instead of options.h.
8590         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
8591         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8592         * common.opt (flag_complex_method, flag_evaluation_order,
8593         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
8594         Variable declarations.
8595         * configure.ac (tm_include_list): Include flags.h instead of options.h.
8596         * configure: Regenerate.
8597         * flags.h: Condition out contents for target libraries.  Include
8598         options.h at end of file.
8599         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
8600         flag_evaluation_order, flag_warn_unused_result): Remove.
8601         * gcc.c (main): Intialize global_options with global_options_init.
8602         * langhooks-def.h (lhd_init_options_struct): Declare.
8603         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8604         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
8605         * langhooks.c (lhd_init_options_struct): New.
8606         * langhooks.h (struct lang_hooks): Add init_options_struct.
8607         Update comment on init_options.
8608         * optc-gen.awk: Generate initializer for global_options_init, not
8609         global_options.
8610         * opth-gen.awk: Condition out structure declarations for target
8611         libraries.  Declare global_options_init.
8612         * opts-common.c: Include flags.h instead of options.h.
8613         * opts.c (flag_warn_unused_result): Remove.
8614         (read_cmdline_options): Take gcc_options parameters.  Pass them to
8615         read_cmdline_option.
8616         (initial_lang_mask, initial_min_crossjump_insns,
8617         initial_max_fields_for_field_sensitive,
8618         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
8619         (init_options_once): New.  Split out of decode_options.
8620         (init_options_struct): New.  Split out of decode_options.
8621         (decode_cmdline_options_to_array_default_mask): New.
8622         (default_options_optimization): New.  Split out of decode_options.
8623         (decode_options): Move most code to other functions.  Update call
8624         to read_cmdline_options.
8625         (finish_options): New.  Split out of decode_options.
8626         * opts.h (decode_options): Add gcc_options parameters.
8627         (init_options_once, init_options_struct,
8628         decode_cmdline_options_to_array_default_mask): New.
8629         * toplev.c (flag_complex_method, flag_ira_algorithm,
8630         flag_ira_region, flag_evaluation_order): Remove.
8631         (general_init): Use global_options_init for initial flag values
8632         for global_dc.
8633         (toplev_main): Call init_options_once, init_options_struct,
8634         lang_hooks.init_options_struct,
8635         decode_cmdline_options_to_array_default_mask and
8636         lang_hooks.init_option before decode_options.  Update arguments to
8637         decode_options.
8638         * tree.h: Include flags.h instead of options.h.
8639
8640 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8641
8642         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8643
8644 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8645
8646         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
8647         Delete.
8648         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
8649         (FUNCTION_INCOMING_ARG): Delete.
8650         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
8651         (function_arg_slotno): Likewise.  Take bool arguments.
8652         (sparc_arg_partial_bytes): Update call to it.
8653         (function_arg): Rename to...
8654         (sparc_function_arg_1): ...this.  Take bool arguments.
8655         (sparc_function_arg, sparc_function_incoming_arg): New functions.
8656         (function_arg_advance): Rename to...
8657         (sparc_function_arg_advance): ...this.  Take bool argument.
8658         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
8659         (TARGET_FUNCTION_INCOMING_ARG): Define.
8660
8661 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8662
8663         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
8664         Delete.
8665         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8666         * config/bfin/bfin.c (function_arg_advance): Rename to...
8667         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
8668         and bool arguments.
8669         (function_arg): Rename to...
8670         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
8671         arguments.
8672         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8673
8674 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8675
8676         * config/score/score-protos.h (score_function_arg): Delete.
8677         (score_function_arg_advance): Delete.
8678         * config/score/score3.h (score3_function_arg_advance): Take a
8679         const_tree and a bool.
8680         (score3_function_arg): Likewise.
8681         * config/score/score7.h (score7_function_arg_advance): Likewise.
8682         (score7_function_arg): Likewise.
8683         * config/score/score3.c (score3_classify_arg): Likewise.
8684         (score3_function_arg_advance, score3_function_arg): Likewise.
8685         * config/score/score7.c (score7_classify_arg): Likewise.
8686         (score7_function_arg_advance, score7_function_arg): Likewise.
8687         * config/score/score.c (score_function_arg_advance): Likewise.
8688         (score_function_arg): Likewise.  De-const-ify `cum' argument.
8689         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8690
8691 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8692
8693         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
8694         (s390_function_arg): Delete.
8695         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8696         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
8697         (s390_function_arg_integer): Likewise.
8698         (s390_function_arg_advance): Make static.  Take a const_tree and
8699         a bool.
8700         (s390_function_arg): Likewise.
8701         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8702
8703 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8704
8705         * config/spu/spu-protos.h (spu_function_arg): Delete.
8706         * config/spu/spu.h (FUNCTION_ARG): Delete.
8707         (FUNCTION_ARG_ADVANCE): Move code to ...
8708         * config/spu/spu.c (spu_function_arg_advance): New function.
8709         (spu_function_arg): Make static.  Take a const_tree and a bool.
8710         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
8711         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8712
8713 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8714
8715         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8716
8717 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8718
8719         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
8720         (init_vn_nary_op_from_op): New function.
8721         (init_vn_nary_op_from_stmt): New function.
8722         (vn_nary_op_lookup_1): New function.
8723         (sizeof_vn_nary_op): New function.
8724         (alloc_vn_nary_op_noinit): New function.
8725         (alloc_vn_nary_op): New function.
8726         (vn_nary_op_insert_into): New function.
8727         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
8728         (vn_nary_op_lookup): Likewise.
8729         (vn_nary_op_lookup_stmt): Likewise.
8730         (vn_nary_op_insert_pieces): Likewise.
8731         (vn_nary_op_insert): Likewise.
8732         (vn_nary_op_insert_stmt): Likewise.
8733         (copy_nary): Likewise.
8734         (set_value_id_for_result): New function.
8735         (set_hashtable_value_ids): Call it.
8736
8737 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8738
8739         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8740         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
8741
8742 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8743
8744         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
8745         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8746
8747 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8748
8749         PR debug/45656
8750         * cse.c (cse_extended_basic_block): Preserve cc0 info across
8751         debug isnsn.  Skip them when searching for cc0 setter.
8752         (set_live_p): Skip debug insns when searching for cc0 user.
8753
8754 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8755
8756         PR debug/45673
8757         PR debug/45604
8758         PR debug/45419
8759         PR debug/45408
8760         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
8761         type of MEM_REFs to INTEGER_CSTs.
8762
8763 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8764
8765         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
8766         m68hc11_print_operand_address.
8767
8768 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8769
8770         * builtins.c (rewrite_call_expr): Move code to...
8771         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
8772         (rewrite_call_expr_array): New function.
8773         (fold_builtin_sprintf_chk_1): New function.
8774         (fold_builtin_sprintf_chk): Call it.
8775         (gimple_fold_builtin_sprintf_chk): Likewise.
8776         (fold_builtin_snprintf_chk_1): New function.
8777         (fold_builtin_snprintf_chk): Call it.
8778         (gimple_fold_builtin_snprintf_chk): Likewise.
8779         (gimple_rewrite_call_expr): Delete.
8780
8781 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8782
8783         * config.host: Update copyright year.
8784
8785 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8786
8787         * config.host (host_lto_plugin_soname): New shell variable.
8788         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
8789         * config.in: Regenerate.
8790         * configure: Regenerate.
8791         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
8792         LTO plugin shared library.
8793
8794 2010-10-07  Richard Henderson  <rth@redhat.com>
8795
8796         * target.h (enum unwind_info_type): Move ...
8797         * coretypes.h: ... here.
8798
8799 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
8800
8801         * doc/objc.texi (Fast enumeration protocol): Mention that
8802         'unsigned int' can also be used instead of 'unsigned long' in
8803         countByEnumeratingWithState:objects:count:.
8804
8805 2010-10-07  Martin Jambor  <mjambor@suse.cz>
8806
8807         * tree-sra.c (struct access): New field grp_assignment_write.
8808         (dump_access): Dump grp_assignment_write.
8809         (build_accesses_from_assign): Set grp_assignment_write.
8810         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
8811         (mark_read_status): Renamed to mark_rw_status, individual values
8812         renamed too.
8813         (analyze_access_subtree): Changed type of mark_write to
8814         mark_read_status.  Fixed propagating of mark_read and
8815         mark_write.  Changed benefit estimate.  Updated comment.
8816
8817 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8818
8819         PR Tree-Vect/45847
8820         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
8821         check for vectype_out returned by get_vectype_for_scalar_type().
8822
8823 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8824
8825         PR target/45805
8826         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
8827         constraint, add register specifier in instruction template.
8828         (neon_vec_pack_trunc_<mode>): Likewise.
8829         (neon_vec_<US>mult_<mode>): Add register specifier to
8830         instruction template.
8831
8832 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8833
8834         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
8835         cygwin2.o.
8836         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
8837         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
8838         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
8839         (cygwin2.o): Likewise.
8840         * config/i386/cygwin1.c: Delete file.
8841         * config/i386/cygwin2.c: Likewise.
8842         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
8843         make all {%!mno-cygwin} ones unconditional.
8844         (STARTFILE_SPEC): Likewise.
8845         (REAL_LIBGCC_SPEC): Likewise.
8846         (LIB_SPEC): Likewise.
8847         (CXX_WRAP_SPEC): Likewise.
8848         (LINK_SPEC): Likewise.
8849         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
8850         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
8851         (cygwin_gplusplus_include_dir): Delete now-unused array.
8852         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
8853         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
8854         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
8855         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
8856         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
8857         (cygwin_local_include_dir): Delete now-unused array.
8858         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
8859         (cygwin_cross_include_dir): Delete now-unused array.
8860         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
8861         (cygwin_tool_include_dir): Delete now-unused array.
8862         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
8863         (cygwin_standard_include_dir): Delete now-unused array.
8864         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
8865         (GEN_CVT_ARRAY): Delete now-unused macro definition.
8866         (cvt_to_mingw): Delete now-unused array.
8867         (mingw_scan): Remove prototype of deleted function.
8868         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
8869         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
8870         * doc/invoke.texi (-mcygwin): Don't document removed option.
8871         (-mno-cygwin): Likewise.
8872
8873 2010-10-07  Richard Guenther  <rguenther@suse.de>
8874
8875         * machmode.h (mode_for_vector): Declare.
8876         * stor-layout.c (mode_for_vector): New function, split out from ...
8877         (layout_type): ... here.
8878         * tree-vectorizer.h (current_vector_size): Declare.
8879         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
8880         mask vector type is available.
8881         (get_vectype_for_scalar_type): Rename to ...
8882         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
8883         size argument.
8884         (get_vectype_for_scalar_type): New wrapper around
8885         get_vectype_for_scalar_type_and_size using current_vector_size.
8886         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
8887         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
8888         of vect_analyze_loop here.
8889         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
8890         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
8891         to autodetect.
8892         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
8893         V8SF to V8SI conversion builtin.
8894
8895 2010-10-07  Richard Guenther  <rguenther@suse.de>
8896
8897         * target.def (autovectorize_vector_sizes): New target hook.
8898         * targhooks.c (default_autovectorize_vector_sizes): New function.
8899         * targhooks.h (default_autovectorize_vector_sizes): Declare.
8900         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
8901         Document.
8902         * doc/tm.texi: Update.
8903         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
8904         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8905
8906 2010-10-07  Richard Guenther  <rguenther@suse.de>
8907
8908         * target.def (units_per_simd_word): Rename to ...
8909         (preferred_simd_mode): ... this.  Return mode instead of size.
8910         * targhooks.c (default_units_per_simd_word): Rename to ...
8911         (default_preferred_simd_mode): ... this.  Return word_mode.
8912         * targhooks.h (default_preferred_simd_mode): Declare.
8913         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
8914         (arm_preferred_simd_mode): ... this.  Re-implement.
8915         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
8916         (ix86_preferred_simd_mode): ... this.  Re-implement.
8917         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
8918         (sparc_preferred_simd_mode): ... this.  Re-implement.
8919         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
8920         (mips_preferred_simd_mode): ... this.  Re-implement.
8921         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
8922         (rs6000_preferred_simd_mode): ... this.  Re-implement.
8923         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
8924         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
8925         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
8926         * doc/tm.texi: Update.
8927
8928 2010-10-07  Richard Guenther  <rguenther@suse.de>
8929
8930         PR middle-end/45869
8931         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
8932         of pointers.
8933
8934 2010-10-07  Alan Modra  <amodra@gmail.com>
8935
8936         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
8937         rather than sign extension by hand.
8938
8939 2010-10-07  Jan Hubicka  <jh@suse.cz>
8940
8941         PR middle-end/45926
8942         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
8943
8944 2010-10-07  Richard Guenther  <rguenther@suse.de>
8945
8946         PR bootstrap/45914
8947         * configure.ac: Fix typo.
8948         * configure: Regenerated.
8949
8950 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8951
8952         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
8953         define_builtin_std where it's unnecessary.
8954         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
8955
8956 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
8957
8958         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
8959         * doc/tm.texi.in: Regenerate.
8960         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
8961         * targhooks.c (default_class_likely_spilled_p): Don't use the
8962         CLASS_LIKELY_SPILLED_P macro.
8963
8964         * config/arm/arm.md: Update comment.
8965
8966 2010-10-06  Jan Hubicka  <jh@suse.cz>
8967
8968         * ipa.c (cgraph_remove_unreachable_nodes): External references can
8969         always be removed.
8970         (cgraph_externally_visible_p): We can not bring local comdats that
8971         are known to linker; fix handling of internal visibility.
8972         (function_and_variable_visibility): Likewise.
8973
8974 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
8975
8976         PR rtl-optimization/45394
8977         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
8978         (struct rtx_subst_pair): Remove AFTER field.
8979         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
8980         (propagate_for_debug): Remove MOVE parameter and adjust.
8981         (try_combine): In the special case where I2 is a PARALLEL, combine only
8982         destinations of SETs and set I2SRC to the I2 source.
8983         Adjust calls to propagate_for_debug throughout.
8984         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
8985         insns.
8986
8987 2010-10-06  Olivier Hainque  <hainque@adacore.com>
8988
8989         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
8990         switch on insn codes as sequence of ifs.
8991
8992 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
8993
8994         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
8995         be UI_NONE for picochip.
8996         (picochip_option_override): Do not disable exception flags.
8997         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
8998         Declare.
8999
9000 2010-10-06  Richard Guenther  <rguenther@suse.de>
9001
9002         * Makefile.in (regmove.o): Depend on $(TARGET_H).
9003
9004 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
9005
9006         Implemented fast enumeration for Objective-C.
9007         * c-parser.c (objc_could_be_foreach_context): New.
9008         (c_lex_one_token): Recognize RID_IN keyword in a potential
9009         Objective-C foreach context.
9010         (c_parser_declaration_or_fndef): Added parameter.  Accept
9011         Objective-C RID_IN keyword as terminating a declaration; in that
9012         case, return the declaration in the new parameter.
9013         (c_parser_extenral_declaration): Updated calls to
9014         c_parser_declaration_or_fndef.
9015         (c_parser_declaration_or_fndef): Same change.
9016         (c_parser_compound_statement_nostart): Same change.
9017         (c_parser_label): Same change.
9018         (c_parser_objc_methodprotolist): Same change.
9019         (c_parser_omp_for_loop): Same change.
9020         (c_parser_for_statement): Detect and parse Objective-C foreach
9021         statements.
9022         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
9023         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
9024         fast enumeration parsing code to turn off the c99 error but still
9025         perform checks on the loop declarations.
9026         * c-tree.h (check_for_loop_decls): Updated declaration.
9027         * doc/objc.texi: Document fast enumeration.
9028
9029 2010-10-06  Nick Clifton  <nickc@redhat.com>
9030
9031         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
9032         (MDR_REGNUM): Define.
9033         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
9034         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
9035         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
9036         (REGISTER_NAMES): Add MDR.
9037         (DWARF2_DEBUGGING_INFO): Define to 1.
9038         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9039         (F): New function.  Sets RTX_FRAME_RELATED_P.
9040         (mn10300_gen_multiple_store): Use F.
9041         (expand_prologue): Use F.  Use gen_movsf() to push floating
9042         point registers.
9043         (expand_epilogue): Use gen_movsf() to pop floating point registers.
9044         (mn10300_option_override): Disable combine stack adjust pass.
9045
9046 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
9047
9048         PR target/45901
9049         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
9050         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
9051
9052 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
9053
9054         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
9055         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
9056         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
9057         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
9058         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
9059         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
9060         BUILT_IN_TOUPPER): Mark as leaf.
9061
9062         PR middle-end/45838
9063         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
9064         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
9065         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
9066         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
9067         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
9068         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
9069         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
9070
9071 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
9072
9073         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
9074         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9075         (m68hc11_class_likely_spilled_p): New function.
9076
9077 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
9078
9079         * c-parser.c (c_parser_objc_method_definition): Updated comment.
9080
9081 2010-10-05  Jan Hubicka  <jh@suse.cz>
9082
9083         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
9084         Document.
9085         * opts.c (decode_options): Handle lto partitions.
9086         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
9087         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
9088
9089 2010-10-05  Jan Hubicka  <jh@suse.cz>
9090
9091         * cgraphunit.c (assemble_function): Output thunks and aliases before
9092         the function itself.
9093
9094 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
9095
9096         * config/picochip/picochip.c (picochip_option_override): Disable
9097         exception flags for picochip.
9098
9099 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
9100
9101         * opts-common.c (handle_option, handle_generated_option,
9102         read_cmdline_option, set_option): Add diagnostic_context
9103         parameter.  Update calls among these functions.
9104         (set_option): Don't use global_dc.
9105         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
9106         (decode_options): Pass global_dc to enable_warning_as_error.
9107         (common_handle_option): Pass global_dc to enable_warning_as_error.
9108         (enable_warning_as_error): Add diagnostic_context parameter.
9109         Document parameters.  Don't use global_dc.  Pass
9110         diagnostic_context parameter to handle_generated_option.
9111         * opts.h (set_option, handle_option, handle_generated_option,
9112         read_cmdline_option, enable_warning_as_error): Add
9113         diagnostic_context parameter.
9114         * Makefile.in (lto-opts.o): Update dependencies.
9115         * coretypes.h (struct diagnostic_context, diagnostic_context):
9116         Declare here.
9117         * diagnostic.h (diagnostic_context): Don't declare typedef here.
9118         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
9119         * langhooks-def.h (struct diagnostic_context): Don't declare here.
9120         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
9121         using diagnostic_context typedef.
9122         * langhooks.c (lhd_initialize_diagnostics): Declare using
9123         diagnostic_context typedef.
9124         * langhooks.h (struct diagnostic_context): Don't declare here.
9125         (initialize_diagnostics, print_error_function): Declare using
9126         diagnostic_context typedef.
9127         * lto-opts.c: Include diagnostic.h.
9128         (lto_reissue_options): Pass global_dc to set_option.  Pass
9129         DK_UNSPECIFIED not 0.
9130         * plugin.c (plugins_internal_error_function): Declare using
9131         diagnostic_context typedef.
9132         * plugin.h (struct diagnostic_context): Don't declare here.
9133         (plugins_internal_error_function): Declare using
9134         diagnostic_context typedef.
9135
9136 2010-10-05  Olivier Hainque  <hainque@adacore.com>
9137             Nicolas Roche  <roche@adacore.com>
9138
9139         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
9140         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
9141
9142 2010-10-05  Ira Rosen  <irar@il.ibm.com>
9143
9144         PR tree-optimization/45752
9145         * tree-vect-slp.c (vect_get_mask_element): Remove static
9146         variables, make them function arguments.
9147         (vect_transform_slp_perm_load): Pass new arguments to
9148         vect_get_mask_element.
9149
9150 2010-10-05  Richard Guenther  <rguenther@suse.de>
9151
9152         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
9153         (gimple_mod_pow2): Likewise.
9154         (gimple_mod_subtract): Likewise.
9155         (gimple_ic): Likewise.
9156         (gimple_stringop_fixed_value): Likewise.
9157         * tree-profile.c (tree_init_edge_profiler): Mark profile
9158         functions nothrow and leaf.
9159         (add_abnormal_goto_call_edges): Remove.
9160         (tree_gen_edge_profiler): Work on SSA form.
9161         (tree_gen_ic_profiler): Likewise.  Simplify.
9162         (do_tree_profiling): Update SSA form.
9163         (pass_tree_profile): Remove.
9164         (do_tree_profiling): Likewise.
9165         (gate_tree_profile_ipa): New function.
9166         (pass_ipa_tree_profile): New.
9167         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
9168         state of instrumented functions.
9169         * passes.c (init_optimization_passes): Remove early non-SSA
9170         inlining.  Move profiling after early optimizations.
9171         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
9172         (pass_ipa_early_inline): Likewise.
9173         * tree-pass.h (pass_ipa_early_inline): Remove.
9174         (pass_tree_profile): Likewise.
9175         (pass_ipa_tree_profile): Declare.
9176
9177 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9178             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
9179
9180         * config/s390/s390.c (z196_cost): New.
9181         (s390_handle_arch_option): Add -march=z196.
9182         (s390_option_override): Use the new cost function and use the z10
9183         defaults also for z196.
9184         (legitimate_reload_constant_p): Adjust comment.
9185         (legitimate_reload_fp_constant_p): New function.
9186         (s390_preferred_reload_class): Distingiush between FP and Int constants.
9187         (preferred_la_operand_p): Avoid la with index on z196.
9188         (s390_adjust_priority): Trigger also for z196.
9189         (s390_issue_rate): Issue rate for z196 is 3.
9190         (s390_z10_fix_long_loop_prediction): Rename to ...
9191         (s390_fix_long_loop_prediction): ... this.
9192         (s390_reorg): Apply the z10 adjustments also for z196.
9193         (s390_loop_unroll_adjust): Do this also for z196.
9194         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
9195         (enum processor_flags): Add PF_Z196.
9196         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
9197         (TARGET_CPU_Z196, TARGET_Z196): New macros.
9198         * config.gcc: Enable z196 for --with-arch.
9199         * config/s390/2817.md: New file.
9200         * config/s390/2084.md: New type for multiply and add.
9201         * config/s390/2097.md: Likewise.
9202         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
9203         (UNSPECV_ATOMIC_OP): New constants.
9204         (fmadddf, fmaddsf): New values for type attribute.
9205         (z196prop): New insn attribute.
9206         (cpu, cpu_facility): Add z196.
9207         (ATOMIC_Z196): New code iterator.
9208         (noxa): New code attribute.
9209         (gk): New mode attribute.
9210         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
9211         Support load zero for fp constants.
9212         (fixuns_truncdddi2, fixuns_trunctddi2)
9213         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
9214         for z196.
9215         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
9216         (popcounthi2, popcountqi2): New expander.
9217         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
9218         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
9219         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
9220         insn definition.
9221         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
9222         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
9223         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
9224         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
9225         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
9226         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
9227         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
9228         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
9229         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
9230         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
9231         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
9232         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
9233         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
9234         Support new z196 instructions.
9235
9236 2010-10-05  Richard Guenther  <rguenther@suse.de>
9237
9238         PR middle-end/45877
9239         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
9240         case where gimplification optimizes away the stmt.
9241
9242 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9243
9244         PR debug/45849
9245         * var-tracking.c (strip_pointer_flags): New function.
9246         (emit_note_insn_var_location): If rtx_equal_p check failed,
9247         retry on locations simplified with simplify_replace_fn_rtx
9248         and strip_pointer_flags as its callback.
9249
9250 2010-10-04  Jan Hubicka  <jh@suse.cz>
9251
9252         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
9253         (can_refer_decl_in_current_unit_p): ... this one; reverse return
9254         value; handle comdats too.
9255         (canonicalize_constructor_val): Use it; handle function_decls
9256         correctly.
9257         (gimple_fold_obj_type_ref_known_binfo): Likewise.
9258         * gimple.c (get_base_address): Accept all kinds of decls.
9259
9260 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9261
9262         * flags.h (g_switch_value, g_switch_set): Remove.
9263         * opts.c (g_switch_value, g_switch_set): Remove.
9264         * config/g.opt (G): Add Var(g_switch_value).
9265         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
9266         (alpha_option_override): Check global_options_set.x_g_switch_value
9267         instead of g_switch_set.
9268         (alpha_in_small_data_p): Remove cast in comparison with
9269         g_switch_value.
9270         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
9271         g_switch_value to unsigned HOST_WIDE_INT.
9272         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
9273         with g_switch_value.
9274         (frv_handle_option): Don't handle -G here.
9275         (frv_option_override): Check global_options_set.x_g_switch_value
9276         instead of g_switch_set.  Don't modify g_switch_set.
9277         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
9278         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
9279         g_switch_value to unsigned HOST_WIDE_INT.
9280         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
9281         (ia64_option_override): Check global_options_set.x_g_switch_value
9282         instead of g_switch_set.
9283         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
9284         Remove.
9285         (lm32_in_small_data_p): Remove cast in comparison with
9286         g_switch_value.
9287         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
9288         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
9289         HOST_WIDE_INT.
9290         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
9291         (m32r_init): Check global_options_set.x_g_switch_value instead of
9292         g_switch_set.
9293         (m32r_in_small_data_p): Remove cast in comparison with
9294         g_switch_value.
9295         (m32r_file_start): Format g_switch_value with %d.
9296         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
9297         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
9298         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
9299         handle -G here.
9300         (microblaze_option_override): Check
9301         global_options_set.x_g_switch_value instead of g_switch_set.
9302         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
9303         (mips_option_override): Check global_options_set.x_g_switch_value
9304         instead of g_switch_set.
9305         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
9306         (rs6000_file_start): Format g_switch_value with %d.
9307         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
9308         comparisons with g_switch_value.
9309         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
9310         global_options_set.x_g_switch_value instead of g_switch_set.
9311         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9312         global_options_set.x_g_switch_value instead of g_switch_set.
9313         * config/score/score.c (score_handle_option): Don't handle -G here.
9314         * config/score/score3.c (score3_option_override): Check
9315         global_options_set.x_g_switch_value instead of g_switch_set.
9316         * config/score/score7.c (score7_option_override): Check
9317         global_options_set.x_g_switch_value instead of g_switch_set.
9318
9319 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
9320
9321         * common.opt (fira-coalesce): Remove.
9322
9323         * doc/invoke.texi (flag_ira_coalesce): Remove.
9324
9325         * ira-color.c (allocno_coalesced_p): Move before
9326         copy_freq_compare_func.
9327         processed_coalesced_allocno_bitmap): Ditto.
9328         (update_conflict_hard_regno_costs): Don't use
9329         ALLOCNO_FIRST_COALESCED_ALLOCNO.
9330         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
9331         (assign_hard_reg): Assume no coalesced allocnos.
9332         (get_coalesced_allocnos_attributes): Remove.
9333         (bucket_allocno_compare_func): Assume no coalesced allocnos.
9334         (push_allocno_to_stack): Ditto.
9335         (remove_allocno_from_bucket_and_push): Use
9336         ira_print_expanded_allocno instead of print_coalesced_allocno.
9337         (push_allocnos_to_stack): Assume uncoalesced allocnos.
9338         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
9339         all_conflicting_hard_regs.
9340         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
9341         (setup_allocno_left_conflicts_size): Ditto.
9342         (put_allocno_into_bucket): Ditto.
9343         (copy_freq_compare_func): Remove.
9344         (copy_freq_compare_func, merge_allocnos): Move before
9345         coalesced_pseudo_reg_freq_compare.
9346         coalesced_allocno_conflict_p): Ditto.
9347         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
9348         parameter.  Assume it true.
9349         (color_allocnos): Assume uncoalesced allocnos.  Use
9350         ira_print_expanded_allocno instead of print_coalesced_allocno.
9351         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
9352         parameter.
9353
9354         * ira.c: Remove comment about coalescing.
9355
9356 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9357
9358         * config/mips/mips.h (target_flags_explicit): Declare for
9359         GENERATOR_FILE.
9360
9361 2010-10-04  Andi Kleen  <ak@linux.intel.com>
9362
9363         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
9364         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
9365
9366 2010-10-04  Matthias Klose  <doko@ubuntu.com>
9367
9368         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
9369         multilib osdirname if it exists.
9370         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
9371
9372 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9373
9374         PR middle-end/45876
9375         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
9376         arg0's type or its unsigned counterpart as utype.  Convert
9377         arg1 to utype unconditionally.
9378
9379 2010-10-04  Julian Brown  <julian@codesourcery.com>
9380
9381         * expr.c (expand_assignment): Add assertion to prevent emitting
9382         null rtx for movmisalign pattern.
9383         (expand_expr_real_1): Likewise.
9384         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
9385         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
9386         (arm_vector_alignment_reachable): New.
9387         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
9388         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
9389         (arm_print_operand): Include alignment qualifier in %A.
9390         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
9391         (movmisalign<mode>): New expander.
9392         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
9393         insn patterns.
9394
9395 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9396
9397         * optc-gen.awk: Define global_options_set.  Don't define
9398         target_flags_explicit.
9399         * opth-gen.awk: Declare global_options_set.  Define
9400         target_flags_explicit as macro.
9401         * opts-common.c (handle_option): Take opts_set and generated_p
9402         parameters.
9403         (handle_generated_option, read_cmdline_option, set_option): Take
9404         opts_set parameter.
9405         (set_option): Use opts_set instead of hardcoding target_flags and
9406         target_flags_explicit.
9407         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
9408         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
9409         flag_value_profile_transformations_set, flag_peel_loops_set,
9410         flag_branch_probabilities_set, flag_inline_functions_set,
9411         flag_ipa_cp_set, flag_ipa_cp_clone_set,
9412         flag_predictive_commoning_set, flag_unswitch_loops_set,
9413         flag_gcse_after_reload_set): Remove.
9414         (common_handle_option, lang_handle_option, target_handle_option):
9415         Take opts_set parameter.  Assert that it is &global_options_set.
9416         (common_handle_option): Don't set _set variables.  Check opts_set
9417         instead of such variables.
9418         (enable_warning_as_error): Pass &global_options_set to
9419         handle_generated_option.
9420         * opts.h (cl_option_handler_func.handler, set_option,
9421         handle_option, handle_generated_option, read_cmdline_option): Add
9422         opts_set parameters.
9423         (handle_option): Add generated_p parameter.
9424         * config/i386/i386.c (ix86_function_specific_save,
9425         ix86_function_specific_restore): Updat for renaming of
9426         target_flags_explicit field.
9427         * config/i386/i386.opt (target_flags_explicit): Rename to
9428         ix86_target_flags_explicit.
9429         * config/ia64/ia64.c (ia64_override_options_after_change): Check
9430         global_options_set.x_flag_selective_scheduling and
9431         global_options_set.x_flag_selective_scheduling2, not
9432         sel_sched_switch_set.
9433         * flags.h (sel_sched_switch_set,
9434         flag_speculative_prefetching_set): Remove.
9435         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
9436         that it is &global_options_set.
9437         (process_command): Pass &global_options_set to read_cmdline_option.
9438         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
9439         set_option.
9440         * toplev.c (target_flags_explicit): Remove.
9441
9442 2010-10-04  Jan Hubicka  <jh@suse.cz>
9443
9444         PR middle-end/45871
9445         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
9446         use get_ref_base_and_offset to handle references.
9447         (fold_const_aggregate_ref): Update.
9448
9449 2010-10-04  Martin Jambor  <mjambor@suse.cz>
9450
9451         PR tree-optimization/45572
9452         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
9453         ipa_check_create_node_params.
9454         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
9455
9456 2010-10-04  Yao Qi  <yao@codesourcery.com>
9457
9458         * doc/passes.texi: Clean up.
9459
9460 2010-10-03  Ian Lance Taylor  <iant@google.com>
9461
9462         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
9463         referring to a field using a typedef name.
9464         (find_anonymous_field_with_type): New static function.
9465         (convert_to_anonymous_field): New static function.
9466         (convert_for_assignment): If -fplan9-extensions, permit converting
9467         pointer to struct to pointer to anonymous field.
9468         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
9469         (is_duplicate_field): New static function.
9470         (detect_field_duplicates_hash): If -fplan9-extensions, check for
9471         typedef names duplicating field names.
9472         (detect_field_duplicates): Likewise.
9473         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
9474         (C Dialect Options): Document -fplan9-extensions.
9475         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
9476
9477 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
9478
9479         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
9480         revision 164914.
9481         (vect_create_data_ref_ptr): Likewise.
9482         * tree-vect-stmts.c (vectorizable_store): Likewise.
9483         (perm_mask_for_reverse): Likewise.
9484         (reverse_vec_elements): Likewise.
9485         (vectorizable_load): Likewise.
9486
9487 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9488
9489         * cppbuiltin.c: New file.
9490         * cppbuiltin.h: New file.
9491         * Makefile.in: Take into account cppbuiltin.{h,c}.
9492
9493 2010-10-03  Andi Kleen  <ak@linux.intel.com>
9494
9495         * lto-cgraph.c (input_cgraph): Check for missing sections.
9496
9497 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
9498
9499         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
9500         to nonimmediate_operand.  Force operand 2 to register when allowed.
9501         (*<shiftrt_insn><mode>3_mask): Ditto.
9502         (*<rotate_insn><mode>3_mask): Ditto.
9503
9504 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
9505
9506         PR tree-optimization/45720
9507         PR tree-optimization/45764
9508         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
9509         Don't accept backwards consecutive accesses.
9510         (vect_create_data_ref_ptr): Disallow negative steps.
9511
9512         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
9513         (perm_mask_for_reverse): Removed.
9514         (reverse_vec_elements): Likewise.
9515         (vectorizable_load): Don't handle negative steps.
9516
9517 2010-10-02  Jan Hubicka  <jh@suse.cz>
9518
9519         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
9520         call destination is known.
9521
9522 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9523
9524         PR target/45820
9525         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
9526         earlier.
9527
9528 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9529
9530         * doc/install.texi (Configuration): Document build_configargs,
9531         host_configargs, target_configargs.
9532
9533 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
9534
9535         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
9536         (*<shiftrt_insn><mode>3_mask): Ditto.
9537         (*<rotate_insn><mode>3_mask): Ditto.
9538
9539 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
9540
9541         PR tree-optimization/44716
9542         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
9543         (HOT_TEXT_SECTION_NAME): Define.
9544
9545 2010-10-01  Nick Clifton  <nickc@redhat.com>
9546
9547         * common.opt: Add -fcombine-stack-adjustments.
9548         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
9549         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
9550         flag_combine_stack_adjustments.
9551         * doc/invoke.texi: Document the new option.
9552
9553 2010-10-01  Richard Guenther  <rguenther@suse.de>
9554
9555         PR tree-optimization/45854
9556         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
9557
9558 2010-10-01  Anthony Green  <green@moxielogic.com>
9559
9560         * config.gcc: Fix moxie-*-rtems* configuration.
9561
9562 2010-10-01  Richard Guenther  <rguenther@suse.de>
9563
9564         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
9565         (gen_decl_die): Likewise.
9566
9567 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9568
9569         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
9570         to the function code for SPU MD builtins.
9571         (spu_expand_builtin): Update.
9572         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
9573
9574 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9575
9576         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
9577         sjlj_except_unwind_info.
9578
9579 2010-10-01  Tristan Gingold  <gingold@adacore.com>
9580
9581         * configure.ac: Define the nop insn for avr*-*-*
9582         * configure: Regenerate.
9583
9584 2010-10-01  Alan Modra  <amodra@gmail.com>
9585
9586         PR target/45807
9587         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
9588         extend toc_restore_insn.
9589
9590 2010-09-30  Richard Guenther  <rguenther@suse.de>
9591
9592         PR tree-optimization/43959
9593         * function.c (gimplify_parameters): Use create_tmp_reg instead of
9594         create_tmp_var.
9595
9596 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
9597
9598         * config/sh/sh.c (sh_expand_prologue): Set
9599         current_function_static_stack_size.
9600
9601 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9602
9603         * configure.ac: Check for Solaris 8 ld with .hidden support.
9604         * configure: Regenerate.
9605
9606 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9607
9608         PR middle-end/45758
9609         * graphite.c (graphite_initialize): Call scev_reset.
9610
9611 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9612
9613         * sese.h (scev_analyzable_p): Return false for real or floating
9614         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
9615
9616 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9617
9618         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
9619         and ps.
9620         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
9621         domain.
9622         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
9623         Do not allocate ub_expr, it is passed in initialized.
9624
9625 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9626
9627         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
9628         (build_cloog_prog): Dump CLooG input file when
9629         flag_graphite_dump_cloog is set.  This is disabled on trunk.
9630         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
9631
9632 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9633
9634         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
9635         verify_dominators for CDI_POST_DOMINATORS.
9636         * sese.h: Remove comment about CDI_POST_DOMINATORS.
9637         (recompute_all_dominators): Remove call to free_dominance_info
9638         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
9639         for CDI_POST_DOMINATORS.
9640
9641 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9642
9643         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
9644         over pbb_dim_iter_domain.
9645
9646 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9647
9648         * graphite-flattening.c: Fix comments.
9649
9650 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9651
9652         * Makefile.in (OBJS-common): Add graphite-flattening.o.
9653         (graphite-flattening.o): New rule.
9654         * common.opt (floop-flatten): New flag.
9655         * doc/invoke.texi (-floop-flatten): Documented.
9656         * graphite-flattening.c: New.
9657         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
9658         * graphite-poly.h (flatten_all_loops): Declared.
9659         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
9660         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
9661         is set, also set flag_graphite.
9662
9663 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9664
9665         * graphite-poly.c (cloog_checksum): New.
9666         * graphite-poly.h (cloog_checksum): Declared.
9667
9668 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9669
9670         * graphite-poly.c (pbb_number_of_iterations): Removed.
9671         (pbb_number_of_iterations_at_time): Correctly compute the number
9672         of iterations in the transformed loop.
9673         * graphite-poly.h (pbb_number_of_iterations): Removed.
9674
9675 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9676
9677         * graphite-poly.h (lst_update_scattering_seq): Removed.
9678         (lst_update_scattering): Correctly handle outermost loop dewey
9679         renumbering.
9680
9681 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9682
9683         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
9684         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
9685         * graphite-poly.h (lst_niter_for_loop): New.
9686
9687 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9688
9689         * graphite-poly.c (apply_poly_transforms): Do not abort when the
9690         transform read from disk is not legal.  Call fatal_error instead.
9691
9692 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9693
9694         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
9695         (print_scop_header): Removed.  Inlined in the only call place...
9696         (print_scop): ... here.
9697
9698 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9699
9700         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
9701
9702 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9703
9704         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
9705
9706 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9707
9708         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
9709         (dot_deps_stmt): Same.
9710         * graphite-poly.c (dot_lst): Same.
9711
9712 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9713
9714         * graphite-blocking.c (scop_do_strip_mine): Do not call
9715         graphite_legal_transform.
9716         (scop_do_block): Same.
9717
9718 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9719
9720         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
9721         description.
9722
9723 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9724
9725         * tree-scalar-evolution.c (instantiate_array_ref): New.
9726         (instantiate_scev_r): Also handle ARRAY_REFs.
9727
9728 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9729
9730         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
9731         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
9732         RESULT_DECL, and FIELD_DECL.  Return false for an
9733         SSA_NAME_IS_DEFAULT_DEF.
9734         (compute_scalar_evolution_in_loop): Do not further analyze the
9735         scalar evolution when no_evolution_in_loop_p returns true.
9736
9737 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9738
9739         * tree-chrec.h (evolution_function_is_affine_p): Do not check
9740         whether CHREC_LEFT is invariant.  A function is affine when
9741         CHREC_RIGHT is invariant.
9742
9743 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9744
9745         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
9746         is_gimple_reg.
9747         (rewrite_degenerate_phi): Same.
9748         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
9749
9750 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9751
9752         * graphite-scop-detection.c (graphite_can_represent_scev,
9753         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
9754         graphite_can_represent_loop): Remove outermost_loop.
9755
9756 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9757
9758         PR middle-end/45229
9759         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
9760         handle GIMPLE_CALLs with no LHS.
9761
9762 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9763
9764         * graphite-poly.c (init_graphite_out_file): New.
9765         (init_graphite_in_file): New.
9766         (apply_poly_transforms): Updated to enable reading and writing of
9767         multiple scop files.
9768
9769 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
9770
9771         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
9772         redundant checks.
9773
9774 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9775
9776         * graphite-clast-to-gimple.c (precision_for_value): Adjust
9777         computation of precision by 1.
9778
9779 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9780
9781         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
9782         (openscop_read_polyhedron_matrix): New.
9783         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
9784         (openscop_read_N_int): Same.
9785         * graphite-poly.c (openscop_read_N_int): New.
9786         (openscop_read_one_int): New.
9787         (openscop_read_N_string): New.
9788         (openscop_read_one_string): New.
9789         (openscop_read_powerset_matrix): New.
9790         (graphite_read_transforms): Remove.
9791         (graphite_read_scatt): New.
9792         (graphite_read_scop_file): New.
9793         (apply_poly_transforms): Updated to call graphite_read_scop_file.
9794
9795 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9796
9797         * graphite-poly.c: Change include order.
9798
9799 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9800
9801         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
9802         (cloog_matrix_nrows): New.
9803
9804 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9805
9806         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
9807         from matrix lines.
9808         * graphite-poly.c (openscop_print_scattering_function_1): Same.
9809         (print_scattering_function_1): Same.
9810         (openscop_print_pbb_domain): Same.
9811         (openscop_print_scop_context): Same.
9812         (print_scop_context): Same.
9813
9814 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
9815
9816         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
9817         (openscop_print_pdr_polyhedron): Print pph.
9818
9819 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9820
9821         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
9822         priority signed types.
9823
9824 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9825
9826         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
9827         the call to lang_hooks.types.type_for_size.  Call
9828         build_nonstandard_integer_type.
9829
9830 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9831
9832         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
9833         (openscop_print_polyhedron_matrix): New.
9834         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
9835         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
9836         (openscop_print_pdr_powerset): New.
9837         (openscop_print_powerset_matrix): New.
9838         (openscop_print_scattering_function_1): New.
9839         (print_scattering_function): Add support for scattering names and
9840         OpenScop format.
9841         (graphite_write_transforms): Remove.
9842         (print_pdr_access_layout): Updated to support OpenScop format.
9843         (print_pdr): Same.
9844         (openscop_print_pbb_domain): New.
9845         (print_pbb_body): Added a parameter to allow indicating that pbb_body
9846         is not provided.
9847         (print_pbb): Updated to call the new print_pbb_body.
9848         (openscop_print_scop_context): New.
9849         (print_scop_header): New.
9850         (print_scop): Updated to call print_scop_header.
9851         * graphite-poly.h: Document OpenScop format.
9852
9853 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
9854
9855         * config/cris/m32c.c (cris_memory_move_cost): New.
9856         (cris_register_move_cost): Make static. Change arguments type from
9857         enum reg_class to reg_class_t.
9858         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
9859         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9860         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
9861
9862 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9863
9864         PR target/45843
9865         * config/i386/i386.c (ix86_gimplify_va_arg): Use
9866         INTVAL (XEXP (slot, 1)) as prev_size.
9867
9868 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
9869
9870         PR target/45837
9871         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
9872         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
9873         defined.
9874         * config/rs6000/option-defaults.h (toplevel): Change #if
9875         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
9876         global option changes.
9877
9878 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9879
9880         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
9881
9882         PR tree-optimization/31261
9883         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
9884         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
9885
9886 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9887
9888         PR bootstrap/45796
9889         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
9890         special-casing for generators and turn into ...
9891         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
9892         rule, for better error messages in case of toplevel dependency errors.
9893         (genprog): Add hooks, rename to ...
9894         (genprogerr): ... this, and let genprog also contain check,
9895         checksum, condmd.
9896         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
9897         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
9898         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
9899
9900 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
9901             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9902
9903         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
9904         for GMP, MPFR and MPC.
9905
9906 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9907
9908         * config/sparc/sparc.opt (mimpure-text): Move ...
9909         * config/sol2.opt: ... here.  Correct description.
9910         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
9911         * doc/invoke.texi (Option Summary, SPARC Options): Move
9912         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
9913         (Option Summary, Solaris 2 Options): ... here.
9914         (Submodel Options, Solaris 2 Options): New menu entry.
9915         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
9916         (Solaris 2 Options): ... here.
9917
9918 2010-09-30  Michael Eager  <eager@eagercon.com>
9919
9920         * extend.texi (interrupt_handler): Add MicroBlaze to list.
9921         (save_volatiles): Describe option for MicroBlaze.
9922         * invoke.texi: Add MicroBlaze Options.
9923         * contrib.texi: Add acknowledgment.
9924         * md.texi: Add MicroBlaze d and z constraints.
9925         * install.texi: Add microblaze-*-elf.
9926         * configure.ac: Add microblaze-*-* to target list.
9927         * configure: Regenerate.
9928         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
9929         * config/microblaze/microblaze-protos.h: New.
9930         * config/microblaze/crti.s: New.
9931         * config/microblaze/predicates.md: New.
9932         * config/microblaze/linux.h: New.
9933         * config/microblaze/microblaze.md: New.
9934         * config/microblaze/constraints.md: New.
9935         * config/microblaze/crtn.s: New.
9936         * config/microblaze/microblaze.opt: New.
9937         * config/microblaze/microblaze-c.c: New.
9938         * config/microblaze/t-microblaze: New.
9939         * config/microblaze/microblaze.c: New.
9940         * config/microblaze/microblaze.h: New.
9941
9942 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
9943
9944         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
9945         parse @optional/@required and set the flags as appropriate.
9946
9947 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
9948
9949         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
9950
9951 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
9952
9953         * opt-functions.awk (static_var): Update comment.
9954         (var_ref): Return offsetof expression or -1, not variable address.
9955         * optc-gen.awk: Generate structure field initializers instead of
9956         static variables.  Expect -1 for missing variables instead of null
9957         pointer.  Add gcc_options parameters to generated functions.
9958         * opth-gen.awk: Generate structure fields for static variables.
9959         Add gcc_options parameters to generated functions.
9960         * common.opt (optimize, optimize_size): Add variables.
9961         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
9962         &global_options to cl_target_option_restore.
9963         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
9964         &global_options to cl_optimization_restore, cl_target_option_save
9965         and cl_target_option_restore.
9966         (ix86_set_current_function): Pass &global_options to
9967         cl_target_option_restore.
9968         * config/pdp11/pdp11.h (optimize): Remove.
9969         * config/rs6000/rs6000.h (optimize): Remove.
9970         * config/sh/sh.h (optimize): Remove.
9971         * config/xtensa/xtensa.h (optimize): Remove.
9972         * coretypes.h (struct gcc_options): Declare.
9973         * diagnostic.c (diagnostic_initialize): Initialize
9974         context->option_state.
9975         (diagnostic_report_diagnostic): Pass option_state to
9976         option_enabled hook.
9977         * diagnostic.h (diagnostic_context.option_enabled): Add void *
9978         parameter.
9979         (diagnostic_context.option_state): New field.
9980         * final.c (final_start_function, final, final_scan_insn): Rename
9981         optimize parameter to optimize_p.
9982         * flags.h (optimize, optimize_size): Remove.
9983         * function.c (invoke_set_current_function_hook): Pass
9984         &global_options to cl_optimization_restore.
9985         * gcc.c (driver_handle_option): Take gcc_options parameter.
9986         Assert that it is &global_options.
9987         (process_command): Pass &global_options to read_cmdline_option.
9988         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
9989         option_enabled.
9990         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
9991         &global_options to set_option.
9992         * opts-common.c (handle_option, handle_generated_option,
9993         read_cmdline_option, set_option): Take explicit gcc_options
9994         parameters.  Use option_flag_var.
9995         (option_flag_var): New.
9996         * opts.c (common_handle_option, lang_handle_option,
9997         target_handle_option): Take gcc_options parameter.  Assert that it
9998         is &global_options.
9999         (read_cmdline_options): Pass &global_options to read_cmdline_option.
10000         (print_filtered_help): Use option_flag_var.  Pass &global_options
10001         to option_enabled.
10002         (common_handle_option): Use option_flag_var.
10003         (option_enabled): Take opts parameter.  Use option_flag_var.
10004         (get_option_state): Take gcc_options parameter.  Use
10005         option_flag_var.  Pass gcc_options parameter to option_enabled.
10006         (enable_warning_as_error): Pass &global_options to
10007         handle_generated_option.
10008         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
10009         (cl_option_handler_func.handler): Take gcc_options parameter.
10010         (option_enabled, get_option_state, set_option, handle_option,
10011         handle_generated_option, read_cmdline_option): Take gcc_options
10012         parameters.
10013         * toplev.c (optimize, optimize_size): Remove.
10014         (print_switch_values): Pass &global_options to option_enabled.
10015         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
10016         to get_option_state.
10017         (general_init): Initialize global_dc->option_state.
10018         * tree.c (build_optimization_node): Pass &global_options to
10019         cl_optimization_save.
10020         (build_target_option_node): Pass &global_options to
10021         cl_target_option_save.
10022
10023 2010-09-30  Martin Jambor  <mjambor@suse.cz>
10024
10025         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
10026         zero sized bit-fields.
10027
10028 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
10029
10030         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
10031         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
10032         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
10033         (c_parser_objc_class_declaration): Same change.
10034         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
10035         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
10036         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
10037         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
10038         and RID_AT_PUBLIC instead of RID_PUBLIC.
10039         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
10040         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
10041
10042 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
10043
10044         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
10045         Add links to current providers of packages for Solaris and IRIX.
10046
10047 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10048
10049         Merge from 'apple/trunk' branch on FSF servers.
10050         * c-parser.c: Applied change originally in c-parse.in.
10051
10052         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
10053
10054         Radar 4281748
10055         * c-decl.c (start_decl): Check for redeclaration of class name.
10056         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
10057
10058 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
10059
10060         * config/ia64/ia64.c (ia64_builtin_decl): New.
10061         (TARGET_BUILTIN_DECL): Define.
10062         (ia64_builtins): New.
10063         (ia64_init_builtins): Save decls in ia64_builtins.
10064
10065 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
10066
10067         PR target/40457
10068         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
10069         (move2add_use_add3_insn): Likewise.
10070         (reload_cse_move2add): Likewise.
10071         * rtlanal.c (get_full_rtx_cost): New function.
10072         * rtl.h (struct full_rtx_costs): New.
10073         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
10074         costs_add_n_insns): New inline functions.
10075         (get_full_rtx_cost): Declare.
10076
10077         PR c/45054
10078         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
10079         invariants.  Check for reg_equiv_invariant.
10080         (reload): Assert that spilled_pseudos is empty when returning.
10081
10082 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
10083
10084         * config/i386/mingw32.h (TARGET_64BIT): replaced by
10085         TARGET_64BIT_DEFAULT in #if check.
10086
10087 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
10088
10089         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
10090
10091 2010-09-29  Mike Stump  <mikestump@comcast.net>
10092
10093         * config/darwin.h (flag_mkernel): Remove.
10094         (flag_apple_kext): Likewise.
10095
10096 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10097             Jack Howarth  <howarth@bromo.med.uc.edu>
10098
10099         * config/darwin.opt (undefined): Add.
10100
10101 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
10102
10103         PR testsuite/45664
10104         * configure.ac: Add --enable-indirect-function option.
10105         * config.gcc: Add default_gnu_indirect_function.
10106         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
10107         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
10108         * varasm.c (do_assemble_alias): Adjust for macro name change.
10109         * configure: Rebuilt.
10110         * doc/install.texi: Document --enable-indirect-function.
10111
10112 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10113
10114         * doc/options.texi (Variable, Var, Init): Update documentation
10115         without reference to VarExists.
10116         (VarExists): Remove.
10117         * common.opt, config/i386/i386.opt, config/linux.opt,
10118         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
10119         Don't use VarExists.
10120
10121 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10122
10123         * optc-gen.awk: Generate global_options initializer instead of
10124         individual variables.  Add x_ prefix to names of structure members.
10125         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
10126         names of structure members.
10127         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10128         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
10129         * doc/tm.texi: Regenerate.
10130         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10131         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10132         * c-parser.c (disable_extension_diagnostics,
10133         restore_extension_diagnostics): Update names of cpp_options members.
10134         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10135         * common.opt (fcompare-debug-second): Don't use Var.
10136         * config/alpha/alpha.h (target_flags): Remove.
10137         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10138         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10139         * config/bfin/bfin.h (target_flags): Remove.
10140         * config/cris/cris.h (target_flags): Remove.
10141         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
10142         cl_target_option members.
10143         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
10144         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
10145         ix86_can_inline_p): Update names of cl_target_option members.
10146         * config/i386/i386.h (ix86_isa_flags): Remove.
10147         * config/lm32/lm32.h (target_flags): Remove.
10148         * config/mcore/mcore.h (mcore_stack_increment): Remove.
10149         * config/mcore/mcore.md (addsi3): Remove extern declaration of
10150         flag_omit_frame_pointer.
10151         * config/mep/mep.h (target_flags): Remove.
10152         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10153         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10154         * config/mmix/mmix.h (target_flags): Remove.
10155         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
10156         flag_expensive_optimizations): Remove.
10157         * config/s390/s390.h (flag_pic): Remove.
10158         * config/score/score-conv.h (target_flags): Remove.
10159         * config/sh/sh.h (sh_fixed_range_str): Remove.
10160         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
10161         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10162         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10163         * diagnostic.c (diagnostic_initialize): Update names of
10164         diagnostic_context members.
10165         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
10166         warn_system_headers.
10167         (diagnostic_report_warnings_p): Update for new names.
10168         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10169         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
10170         HARD_FRAME_POINTER_IS_ARG_POINTER.
10171         * flags.h (flag_compare_debug): Declare.
10172         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10173         * opts.c (flag_compare_debug): Define.
10174         (common_handle_option): Update names of diagnostic_context
10175         members.  Handle -fcompare-debug-second.
10176         (fast_math_flags_struct_set_p): Update names of cl_optimization
10177         members.
10178         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10179         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10180         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10181         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10182         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10183         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10184         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
10185         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10186         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10187
10188 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
10189
10190         * config/picochip/picochip.c (picochip_output_internal_label):
10191         This function can now be called for debug CFI labels, which can come
10192         in the middle of a vliw instruction.  Postpone until end of vliw.
10193
10194 2010-09-29  Richard Guenther  <rguenther@suse.de>
10195
10196         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
10197         (DECL_FILE_SCOPE_P): Use it.
10198         (TYPE_FILE_SCOPE_P): New macro.
10199
10200 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10201
10202         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
10203         a CPP_NAME which is a reserved word, clearly separate cases for
10204         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
10205
10206 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10207
10208         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
10209         token->value with the canonical spelling.  Do exactly like C and
10210         C++ and leave it as it is.
10211
10212 2010-09-28  Richard Henderson  <rth@redhat.com>
10213
10214         * config/alpha/alpha.c (alpha_builtins): New.
10215         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
10216         (alpha_builtin_function): New.
10217         (alpha_add_builtins, alpha_init_builtins): Use it.
10218
10219 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
10220
10221         * doc/standards.texi (Standards): Expanded the section on
10222         Objective-C and Objective-C++.
10223
10224 2010-09-28  DJ Delorie  <dj@redhat.com>
10225
10226         PR target/45800
10227         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
10228         volatile MEMs.
10229
10230 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10231
10232         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
10233         attributes on methods.
10234          (c_parser_objc_method_definition): Handle attributes.
10235         (c_parser_objc_methodproto): Likewise.
10236         (c_parser_objc_maybe_method_attributes): New.
10237         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
10238         missing definition, similar to that in ObjC++.
10239
10240 2010-09-28  Richard Henderson  <rth@redhat.com>
10241
10242         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
10243         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10244         (CONFIG_SJLJ_EXCEPTIONS): Remove.
10245         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
10246         (STACK_CHECK_PROTECT): Likewise.
10247         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
10248         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
10249         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
10250         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
10251         (dwarf2out_assembly_start): Likewise.
10252         * except.c (init_eh): Use targetm.except_unwind_info.
10253         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
10254         (output_one_function_exception_table): Likewise.
10255         * final.c: Unconditionally include dwarf2out.h.
10256         (final_start_function): Unconditionally call dwarf2out routines.
10257         (final_end_function, final_scan_insn): Likewise.
10258         * function.c (expand_function_end): Use targetm.except_unwind_info.
10259         * opts.c (decode_options): Use targetm.except_unwind_info.
10260         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
10261         * target.def (debug_unwind_info, except_unwind_info): New.
10262         * target.h (enum unwind_info_type): New.
10263         * targhooks.c (default_debug_unwind_info): New.
10264         (default_except_unwind_info): New.
10265         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
10266         * targhooks.h: Declare them.
10267         * tree-tailcall.c: Include "target.h"
10268         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
10269         * Makefile.in (tree-tailcall.o): Update.
10270         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
10271         (lhd_gcc_personality): Likewise.
10272
10273         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
10274         (TARGET_EXCEPT_UNWIND_INFO): New.
10275         (DWARF2_UNWIND_INFO): Update.
10276         (TARGET_DEBUG_UNWIND_INFO): New.
10277         * doc/tm.texi: Rebuild.
10278
10279         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
10280         targetm.except_unwind_info.
10281
10282         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
10283         (arm_except_unwind_info): New.
10284         (arm_compute_func_type): Use it.
10285         (arm_expand_prologue, thumb_pushpop): Likewise.
10286         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
10287         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
10288         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
10289         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
10290         (DWARF2_UNWIND_INFO): Remove.
10291         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10292         (ARM_EABI_UNWIND_TABLES): Remove.
10293
10294         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
10295         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
10296         (ia64_except_unwind_info): New.
10297         (ia64_output_function_prologue): Use it.
10298         (ia64_add_bundle_selector_before): Likewise.
10299         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
10300         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
10301         (TARGET_UNWIND_INFO): Remove.
10302
10303         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
10304
10305 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10306
10307         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
10308         (c_parser_objc_protocol_definition): Likewise.
10309         (c_parser_external_declaration): Provide dummy attribute arguments.
10310         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
10311         (c_parser_objc_class_definition): Handle attributes.
10312         (c_parser_objc_protocol_definition): Likewise.
10313
10314 2010-09-28  Tobias Burnus  <burnus@net-b.de>
10315
10316         PR fortran/40569
10317         PR fortran/40568
10318         * toplev.h (save_decoded_options, save_decoded_options_count):
10319         New global variables.
10320         * toplev.c (save_decoded_options, save_decoded_options_count):
10321         Export variables.
10322
10323 2010-09-28  Ian Lance Taylor  <iant@google.com>
10324
10325         * config/i386/i386.c (ix86_supports_split_stack): Test
10326         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
10327
10328 2010-09-28  Ian Lance Taylor  <iant@google.com>
10329
10330         PR target/45815
10331         * opts.c (decode_options): Don't test whether the target supports
10332         split stack if flag_split_stack == 0.
10333
10334 2010-09-28  Jan Hubicka  <jh@suse.cz>
10335
10336         * builtin-attrs.def (ATTR_LEAF): New attribute.
10337         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
10338         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
10339         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
10340         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
10341         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
10342         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
10343         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
10344         * sync-builtins.def: Annotate all builtins by leaf.
10345         * omp-builtins.def: Annotate all builtins by leaf.
10346         * builtins.def: Annotate relevant builtins with leaf attribute.
10347         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
10348         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
10349         leaf.
10350
10351 2010-09-28  Jan Hubicka  <jh@suse.cz>
10352
10353         * tree-ssa-ccp.c (fold_ctor_reference): New function.
10354         (fold_const_aggregate_ref): Use it.
10355         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
10356         into external static.
10357
10358 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10359
10360         PR target/44452
10361         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
10362         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
10363         (ix86_solaris_return_in_memory): Remove.
10364         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
10365         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10366         (TARGET_SUBTARGET_DEFAULT): Redefine.
10367         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
10368         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10369         (TARGET_SUBTARGET_DEFAULT): Redefine.
10370         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
10371         -mvect8-ret-in-mem.
10372         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
10373
10374 2010-09-29  Alan Modra  <amodra@gmail.com>
10375
10376         PR target/45807
10377         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
10378         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
10379         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
10380         Delete.
10381         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
10382         (rs6000_emit_prologue): Don't just create frame save info for r2,
10383         actually save r2.
10384
10385 2010-09-28  Richard Henderson  <rth@redhat.com>
10386
10387         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
10388         when 8 bytes are requested.
10389
10390 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10391
10392         * config/avr/avr.c (expand_prologue): Set
10393         current_function_static_stack_size.
10394
10395 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10396
10397         * config/alpha/alpha.md: Change the initial condition of the
10398         probing loop.
10399
10400 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
10401
10402         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
10403         Split from *avx_<maxmin:code><mode>3.
10404         (*avx_<smaxmin:code><mode>3): Ditto.
10405         * config/i386/i386.md (maxmin): Remove code iterator.
10406
10407 2010-09-27  Ian Lance Taylor  <iant@google.com>
10408
10409         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
10410         requires assembler support for CFI directives.
10411
10412 2010-09-27  Richard Henderson  <rth@redhat.com>
10413
10414         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
10415
10416 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10417
10418         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
10419         that AFTER is not in the range FROM..TO, inclusive.
10420
10421 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10422             Bernd Schmidt  <bernds@codesourcery.com>
10423
10424         PR rtl-optimization/45792
10425         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
10426         If not all insns are to be merged, for each edge, stash the
10427         next candidate after the to-be-merged insns before doing the
10428         merge, and use them for the retry at the new insertion point.
10429         Handle CC0 targets when retrying.
10430
10431 2010-09-27  Ian Lance Taylor  <iant@google.com>
10432
10433         * common.opt (fsplit-stack): New option.
10434         * opts.c (decode_options): Set flag_split_stack to final value.
10435         * target.def (supports_split_stack): New hook.
10436         * gcc.c (STACK_SPLIT_SPEC): Define.
10437         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
10438         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
10439         (Code Gen Options): Document -fsplit-stack.
10440         * doc/extend.texi (Function Attributes): Mention no_split_stack.
10441         (Function Attributes): Document no_split_stack.
10442         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
10443         TARGET_SUPPORTS_SPLIT_STACK.
10444         * doc/tm.texi: Rebuild.
10445         * function.c (thread_prologue_and_epilogue_insns): If
10446         flag_split_stack, add split stack prologue.
10447         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
10448         * varasm.c (saw_no_split_stack): New static variable.
10449         (assemble_start_function): Set saw_no_split_stack if the function
10450         has the no_split_stack attribute.
10451         (file_end_indicate_split_stack): New function.
10452         * output.h (file_end_indicate_split_stack): Declare.
10453         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
10454         and function.
10455         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
10456         routines.
10457         * config/i386/i386.c (ix86_option_override_internal): Don't set
10458         expand_builtin_va_start to NULL if -fsplit-stack.
10459         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
10460         -fsplit-stack.
10461         (ix86_va_start): If -fsplit-stack, get overflow pointer from
10462         scratch register set by prologue.
10463         (ix86_code_end): If -fsplit-stack, call
10464         file_end_indicate_split_stack.
10465         (ix86_supports_split_stack): New static function.
10466         (SPLIT_STACK_AVAILABLE): Define.
10467         (split_stack_prologue_scratch_regno): New static function.
10468         (split_stack_fn): New static variable.
10469         (ix86_expand_split_stack_prologue): New function.
10470         (ix86_live_on_entry): New static function.
10471         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
10472         (output_pic_addr_const): Likewise.
10473         (i386_asm_output_addr_const_extra): Likewise.
10474         (ix86_expand_call): Change return type to rtx.  Return the new
10475         call instruction.
10476         (TARGET_SUPPORTS_SPLIT_STACK): Define.
10477         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
10478         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
10479         (split_stack_prologue, split_stack_return): New insns.
10480         (split_stack_space_check): New insn.
10481         * config/i386/i386.h (struct machine_function): Add
10482         split_stack_varargs_pointer field.
10483         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
10484         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10485         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
10486         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10487         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
10488         Declare.
10489         (ix86_expand_call): Update declaration.
10490
10491 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10492
10493         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
10494         code.  Added byref, which was missing in the list of codes.
10495         Explain that enumeration values are encoded as the integer type
10496         that the compiler uses to store them.  Explain and make examples
10497         of how 'const' interacts with pointers, and the complication of
10498         the encoding of 'const char *'.
10499         (Legacy type encoding): New subsection, explaining that GCC emits
10500         incorrect type encodings for the NeXT runtime for compatibility
10501         reasons.
10502         (@@encode): New subsection, explaining @encode and particularly
10503         that protocol qualifiers are not recognized inside an @encode()
10504         expression.
10505         (Method signatures): New subsection, explaining how method
10506         signatures are encoded.
10507
10508 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10509
10510         Merge from 'apple/trunk' branch on FSF servers.  Removed small
10511         change in build_conditional_expr that had been added when fixing
10512         PR objc/27377 and which did the same check in a less complete way.
10513
10514         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
10515
10516         Radar 4229905
10517         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
10518         looking for objective-c common pointer types.
10519
10520         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
10521
10522         Radar 4154928
10523         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
10524         use their ObjC common type.
10525
10526 2010-09-27  Richard Guenther  <rguenther@suse.de>
10527
10528         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
10529
10530 2010-09-27  Jie Zhang  <jie@codesourcery.com>
10531
10532         * print-tree.c (print_node): Print in-constant-pool.
10533
10534 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
10535
10536         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
10537         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
10538         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
10539         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
10540
10541 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10542
10543         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
10544         from pro_epilogue_adjust_stack_<mode>_{1,2}.
10545         (pro_epilogue_adjust_stack_<mode>_add): Rename from
10546         pro_epilogue_adjust_stack_<mode>_3.
10547         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
10548         renamed pro_epilogue_adjust_stack_{si,di}_add.
10549         (ix86_expand_prologue): Use indirect functions.  Update for renamed
10550         pro_epilogue_adjust_stack_{si,di}_sub.
10551
10552 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10553
10554         * config/i386/i386.md (movmsk_df): New insn.
10555         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
10556         sequence for TARGET_SSE_MATH.
10557
10558 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
10559
10560         * config/mips/mips.c (mips_builtin_decls): Declare.
10561         (mips_init_builtins): Store function declarations in
10562         mips_builtin_decls.
10563         (mips_builtin_decl): New function.
10564         (TARGET_BUILTIN_DECL): Define.
10565
10566 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
10567             Richard Henderson  <rth@redhat.com>
10568
10569         * config/i386/cygwin.asm: Include auto-host.h.
10570         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
10571         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
10572         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
10573         alignment code from the 64-bit path.  Use gas local labels.
10574         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
10575         from _di_2.  Remove the useless constant integer argument.
10576         (pro_epilogue_adjust_stack_<mode>_3): New.
10577         (allocate_stack_worker_probe_<mode>): Macroize from
10578         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
10579         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
10580         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
10581         (__chkstk_ms): New function.
10582         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
10583         * config/i386/t-interix: Likewise.
10584         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
10585         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
10586         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
10587         * configure, config.in: Rebuild.
10588
10589 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
10590
10591         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
10592         statements because of the return slot optimization.
10593
10594 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
10595
10596         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
10597         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
10598         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10599         (class_likely_spilled_p): Rename to...
10600         (avr_class_likely_spilled_p): ...this. Make static. Change argument
10601         type to reg_class_t.
10602
10603 2010-09-24  Jan Hubicka  <jh@suse.cz>
10604
10605         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
10606         (lto_symtab_resolve_symbols): Set it.
10607         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
10608         store resolution field in cgraph/varpool.
10609         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
10610         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
10611         (cgraph_dump_node): Drop used_from_object_file.
10612         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
10613         (cgraph_function_body_availability): Use decl_replaceable_p.
10614         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
10615         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
10616         cgraph_used_from_object_file_p.
10617         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
10618         cgraph_used_from_object_file_p.
10619         (resolution_used_from_other_file_p): New functoin.
10620         (cgraph_used_from_object_file_p): New predicate.
10621         * cgraph.h: Include plugin-api.h
10622         (struct cgraph_local_info): Remove used_from_object_file.
10623         (struct cgraph_node): Add resolution field.
10624         (struct varpool_node): Likewise; remove used_from_object_file;
10625         reove const_value_known.
10626         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
10627         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
10628         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
10629         varpool_used_from_object_file_p): Declare.
10630         (varpool_get_node, varpool_extra_name_alias): Update prototype.
10631         * tree.h (DECL_REPLACEABLE_P): Remove.
10632         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
10633         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
10634         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
10635         input_overwrite_node, input_node, input_varpool_node): Stream
10636         resolution.
10637         * expr.c (expand_expr_real_1): Use const_value_known_p
10638         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
10639         const_value_known.
10640         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
10641         (function_and_variable_visibility): Set resolution for local vars
10642         and functions; use varpool_used_from_object_file_p.
10643         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
10644         static functions.
10645         (default_binds_local_p_1): Use resolutoin info.
10646         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
10647         * varpool.c (varpool_get_node): Constify.
10648         (const_value_known_p): Do not use vnode->const_value_known;
10649         use decl_replaceable_p.
10650         (varpool_finalize_decl): Do not set const_value_known.
10651         (cgraph_variable_initializer_availability): Use decl_replaceable_p
10652         (varpool_extra_name_alias): Return new node.
10653         (varpool_used_from_object_file_p): New function.
10654
10655 2010-09-24  Richard Henderson  <rth@redhat.com>
10656
10657         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
10658         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
10659         (do_spill): Use REG_CFA_OFFSET.
10660         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
10661         as appropriate.
10662         (ia64_expand_epilogue): Likewise.
10663         (process_set): Split into ...
10664         (process_cfa_adjust_cfa): this,
10665         (process_cfa_register): this,
10666         (process_cfa_offset): and this new function.
10667         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
10668         instead of REG_FRAME_RELATED_EXPR.
10669
10670 2010-09-24  Olivier Hainque  <hainque@adacore.com>
10671
10672         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
10673
10674 2010-09-24  Jan Hubicka  <jh@suse.cz>
10675
10676         * doc/extend.texi: (attribute leaf): Document.
10677         * tree.c (local_define_builtin): Handle ECF_LEAF.
10678         (build_common_builtin_nodes): Set ECF_LEAF where needed.
10679         * tree.h (ECF_LEAF): New.
10680         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
10681         overwrittable and unavailable functions.
10682         (ipa_init): Put all_module_statics into optimization_summary_obstack.
10683         (copy_global_bitmap): Do not copy all_module_statics.
10684         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
10685         (propagate): Handle overwritable and unavailable leaf functions;
10686         initialize global info for overwritable and unavailable leaf functions;
10687         do not free all module statics.
10688         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
10689         local statics.
10690         * calls.c (flags_from_decl_or_type): Handle leaf.
10691         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
10692         abnormal gotos.
10693
10694 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
10695
10696         * gengtype.c: Reindented.
10697         * gengtype.h: Reindented.
10698         * gengtype-parse.c: Reindented.
10699
10700 2010-09-24  Jan Hubicka  <jh@suse.cz>
10701
10702         PR tree-optimization/45738
10703         PR tree-optimization/45741
10704         * expr.c (string_constant): Allow CONST_DECL too;
10705         check that DECL_INITIAL is set.
10706         * varpool.c (const_value_known_p): Only look into VAR_DECL
10707         and CONST_DECL.
10708
10709 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
10710
10711         * common.opt (undef): New.
10712
10713 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
10714
10715         PR middle-end/45234
10716         * rtl.h (enum global_rtl_index): Add
10717         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
10718         (LAST_VIRTUAL_POINTER_REGISTER): Define.
10719         (virtual_preferred_stack_boundary_rtx,
10720         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
10721         (LAST_VIRTUAL_REGISTER): Increase by one.
10722         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
10723         instead of LAST_VIRTUAL_REGISTER.
10724         * function.c (instantiate_new_reg): Handle
10725         virtual_preferred_stack_boundary_rtx.
10726         * emit-rtl.c (init_virtual_regs): Handle
10727         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10728         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
10729         * explow.c (round_push): If crtl->preferred_stack_boundary
10730         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
10731         virtual_preferred_stack_boundary_rtx alignment instead of
10732         crtl->preferred_stack_boundary alignment.
10733         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
10734         macros.  Never decrease crtl->preferred_stack_boundary,
10735         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
10736         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
10737         stack_pointer_delta in dynamic allocation, even when size
10738         is constant.
10739         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
10740         macro.
10741         * print-rtl.c (print_rtx): Handle
10742         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10743         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
10744         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
10745         * config/frv/frv.c (frv_emit_movsi): Likewise.
10746         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
10747         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
10748         Likewise.
10749
10750         Revert:
10751         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10752
10753         PR middle-end/45234
10754         * calls.c (expand_call): Make sure that all variable sized
10755         adjustments are multiple of preferred stack boundary after
10756         stack alignment.
10757
10758 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
10759             Dominique Dhumieres  <dominiq@lps.ens.fr>
10760
10761         PR bootstrap/45751
10762         * config/darwin-driver.c (darwin_default_min_version):
10763         Adjust size passed to memcpy in two places.
10764
10765 2010-09-24  Richard Guenther  <rguenther@suse.de>
10766
10767         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
10768         Make sure to not call set_type_context with error_mark_node.
10769         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
10770
10771 2010-09-24  Richard Guenther  <rguenther@suse.de>
10772
10773         * Makefile.in (OBJS-onestep): Remove.
10774         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
10775         (libbackend.a): Remove onestep support.
10776         (libbackend.o): Remove.
10777         * configure.ac (--enable-intermodule): Remove.
10778         * configure: Regenerate.
10779
10780 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
10781
10782         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
10783         reaching the end of a block if it occurs at a DEBUG_INSN.
10784
10785 2010-09-09  Tristan Gingold  <gingold@adacore.com>
10786
10787         PR target/44242
10788         * config/vms/vms-crt0-64.c: Removed.
10789         * config/vms/vms-crt0.c: Removed.
10790         * config/vms/vms-psxcrt0-64.c: Removed.
10791         * config/vms/vms-psxcrt0.c: Removed.
10792         * config/vms/vms-ucrt0.c: New file.
10793         * config/vms/t-vms64: Removed.
10794         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
10795         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
10796         * config.gcc (alpha-dec-vms): Use t-vms.
10797
10798 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10799
10800         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
10801         underfull hbox in DVI output.
10802         (-fobjc-class-cxx-cdtors): Same change.
10803         (-fobjc-exceptions): Tidied up documentation.  Explain what the
10804         option does, but moved the (lenghty) description of the exception
10805         syntax into objc.texi.
10806         (-fobjc-gc): Explain that the option is not useful with the GNU
10807         runtime.
10808         (-fzero-link): Explain that the GNU runtime always works in
10809         "zero-link" mode.
10810         * doc/objc.texi: All sections: simplified @node declarations
10811         removing specification of next, previous, up node.
10812         (Objective-C): Updated introduction.
10813         (Garbage Collection): Updated.  The bohem-gc library is now
10814         included in gcc itself.  Mention that this section only applies to
10815         the GNU Objective-C runtime.
10816         (compatibility_alias): Small tidy up.
10817         (Exceptions): New section mostly containing text previously in the
10818         description of the -fobjc-exception command-line option.
10819         (Synchronization): Same.
10820
10821 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
10822
10823         * config/i386/i386.md (ix86_code_end): Move the initialization of
10824         xops array near the consumer.  Use AX_REG and SP_REG instead of
10825         numerical constants.
10826
10827 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10828
10829         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
10830         method [methodname]' for an Objective-C method instead of the less
10831         satisfactory 'too many arguments to function' (with no method name).
10832
10833 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
10834
10835         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
10836         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
10837         (execute_update_addresses_taken): Remove parameter.  Execute the
10838         optimization unconditionally.
10839         * passes.c (execute_function_todo): Call execute_update_addresses_taken
10840         unconditionally if TODO_rebuild_alias is set, else only when optimizing
10841         if TODO_update_address_taken is set.
10842
10843 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
10844
10845         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10846         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
10847         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10848         (arm_output_addr_const_extra): Make static.
10849
10850 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
10851
10852         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
10853         define as unspec_volatile.
10854         ("nops"): Define as unspec_volatile. Use fputs to write to
10855         asm_out_file directly.  Output NOPs on separate lines using while loop.
10856         * config/i386/i386.c (ix86_code_end): Use fputs to write to
10857         asm_out_file directly.  Output NOPs on separate lines using while loop.
10858
10859 2010-09-23  Richard Guenther  <rguenther@suse.de>
10860
10861         PR tree-optimization/45565
10862         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
10863         Make sure to adjust the fndecl before replacing the stmt.
10864
10865 2010-09-23  Richard Guenther  <rguenther@suse.de>
10866
10867         PR middle-end/45750
10868         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
10869         gimplifying MEM_REF.
10870
10871 2010-09-23  Alan Modra  <amodra@gmail.com>
10872
10873         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
10874         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
10875
10876 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
10877
10878         PR rtl-optimization/44374
10879         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
10880         * df-core.c (df_set_bb_dirty): Set it.
10881         * ifcvt.c (find_memory): Remove function.
10882         (dead_or_predicable): Use can_move_insns_across.
10883         * df.h (can_move_insns_across): Declare function.
10884         * cfgcleanup.c (block_was_dirty): New static variable.
10885         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
10886         than df_get_bb_dirty.
10887         (try_head_merge_bb): New static function.
10888         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
10889         is set.
10890         * df-problems.c: Include "target.h"
10891         (df_simulate_find_uses): New static function.
10892         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
10893         (find_memory, find_memory_store): New static functions.
10894         (can_move_insns_across): New function.
10895         * Makefile.in (df-problems.o): Update dependencies.
10896
10897 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10898
10899         PR java/44095
10900         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
10901         is specified and the suffix of the file isn't ".c".
10902         * config/sparc/linux64.h (ASM_SPEC): Likewise.
10903
10904 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10905
10906         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
10907         * doc/cppopts.texi: Fix markup of index entry.
10908         * doc/extend.texi (Constructing Calls): Fix markup of
10909         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
10910         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
10911         (Vague Linkage, C++ Attributes): Fix markup of index entries and
10912         keywords.
10913         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
10914         avoid long lines.
10915         (C Dialect Options, C++ Dialect Options, Warning Options)
10916         (Debugging Options, Spec Files, Darwin Options)
10917         (i386 and x86-64 Options, MIPS Options)
10918         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
10919         index entries, avoid abbreviations, allow URLs to wrap, avoid
10920         long lines, avoid overlong pages from long @itemx lists.
10921         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
10922         * doc/standards.texi (Standards): Likewise.
10923         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
10924
10925 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10926
10927         * opts-common.c (prune_options): Make static.  Work with decoded
10928         options.
10929         (decode_cmdline_options_to_array): Call prune_options.  Don't
10930         resize option array here.
10931         * opts.h (prune_options): Remove prototype.
10932         * gcc.c (process_command): Take decoded options; don't call
10933         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
10934         (main): Call decode_cmdline_options_to_array here instead of
10935         prune_options.  Update call to process_command.
10936         * config/darwin-driver.c: Include opts.h.
10937         (darwin_default_min_version): Work with decoded options.  Don't
10938         handle -b or -V here.
10939         * config/darwin.h (darwin_default_min_version): Update prototype.
10940         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
10941         darwin_default_min_version.
10942         * config/i386/cygwin.h (mingw_scan): Update prototype.
10943         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
10944         * config/i386/cygwin1.c: Include opts.h.
10945         (mingw_scan): Work with decoded options.
10946         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
10947         * config/t-darwin (darwin-driver.o): Update dependencies.
10948
10949 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10950
10951         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
10952         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
10953         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
10954         -force-link, -force-link=, -language, -language=,
10955         -library-directory, -library-directory=, -no-canonical-prefixes,
10956         -no-standard-libraries, -no-warnings, -optimize, -output,
10957         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
10958         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
10959         -print-file-name=, -print-libgcc-file-name,
10960         -print-multi-directory, -print-multi-lib,
10961         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
10962         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
10963         -profile, -save-temps, -shared, -specs, -specs=, -static,
10964         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
10965         symbolic): New.
10966         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
10967         * gcc.c (A Short Introduction to Adding a Command-Line Option):
10968         Remove comment.
10969         (cc1_options): Correct specs for passing down --help,
10970         --target-help and --help=*.  Add spec for passing down --version.
10971         (struct option_map, option_map, target_option_translations,
10972         translate_options): Remove.
10973         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
10974         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
10975         OPT_fhelp_ and OPT_ftarget_help.
10976         (process_command): Don't call translate_options.  Call
10977         decode_cmdline_options_to_array before checking for
10978         -no-canonical-prefixes using decoded options.
10979         * opts-common.c (tm.h): Update comment on #include.
10980         (find_opt): Allow abbreviations of long options.
10981         (struct option_map, option_map): New.
10982         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
10983         and -mno handling.
10984         (target_option_translations): New.
10985         (decode_cmdline_options_to_array): Handle
10986         TARGET_OPTION_TRANSLATE_TABLE in driver.
10987         * opts.c (common_handle_option): Don't handle OPT_fhelp,
10988         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
10989
10990 2010-09-22  Richard Guenther  <rguenther@suse.de>
10991
10992         * tree-inline.c (optimize_inline_calls): Schedule cleanups
10993         only if we inlined something.  Block compaction and conditional
10994         folding are done by cfg cleanup.  Schedule update-address-taken.
10995         (tree_function_versioning): Remove redundant call to number_blocks.
10996         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
10997         folding is done by cfg cleanup.
10998         * passes.c (init_optimization_passes): Remove update-address-taken
10999         pass after IPA inlining.
11000
11001 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
11002
11003         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
11004         to update conditions. Fix reg_mode[] check.
11005
11006 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
11007
11008         * config/picochip/picochip.md (movhicc): Use expand to check whether
11009         movhicc is available and split it after reload.
11010
11011 2010-09-22  Richard Guenther  <rguenther@suse.de>
11012
11013         * tree-ssanames.c (release_dead_ssa_names): Do not remove
11014         callee edges here.
11015         * passes.c (init_optimization_passes): Remove early CFG cleanup.
11016         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
11017         (pass_cleanup_cfg): Likewise.
11018         (execute_fixup_cfg): Cleanup.
11019         * tree-pass.h (pass_cleanup_cfg): Remove.
11020
11021 2010-09-22  Martin Jambor  <mjambor@suse.cz>
11022
11023         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
11024         builtins if it is true.
11025         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
11026         parameter.
11027
11028 2010-09-22  Martin Jambor  <mjambor@suse.cz>
11029
11030         * tree-sra.c (struct access): New field grp_no_warning.
11031         (create_access_replacement): Set TREE_NO_WARNING according to
11032          grp_no_warning.
11033         (create_artificial_child_access): Use build_ref_for_model and set
11034         grp_no_warning if build_user_friendly_ref_for_offset fails.
11035         (propagate_subaccesses_across_link): Likewise.
11036
11037 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
11038
11039         PR target/35664
11040         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
11041         ('f'): Likewise.
11042
11043 2010-09-22  Tristan Gingold  <gingold@adacore.com>
11044
11045         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
11046
11047 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
11048
11049         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
11050         * config/i386/i386.c (decide_alg): Update for rename.
11051
11052 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
11053
11054         PR rtl-optimization/45739
11055         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
11056         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
11057
11058 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
11059
11060         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
11061         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
11062         Remove.
11063         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
11064         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11065
11066 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11067
11068         PR objc/23710
11069         * c-parser.c (c_parser_objc_method_definition): Check the return
11070         value of objc_start_method_definition and if false is returned,
11071         parse the method definition but emit no code.
11072
11073 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11074
11075         PR objc/25965
11076         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
11077         call objc_get_interface_ivars ().
11078
11079 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
11080
11081         PR target/45694
11082         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
11083         static chain-register is used for 64-bit.
11084
11085 2010-09-21  Richard Guenther  <rguenther@suse.de>
11086
11087         * dwarf2out.c (is_cu_die): New function.
11088         (add_pubtype): Use it.
11089         (gen_subprogram_die): Likewise.
11090         (gen_struct_or_union_type_die): Likewise.
11091         (dwarf2out_finish): Likewise.
11092         (comp_unit_die): Rename to ...
11093         (single_comp_unit_die): ... this.
11094         (comp_unit_die): New function lazily constructing and
11095         returning single_comp_unit_die.
11096         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
11097         base_type_die, subrange_type_die, modified_type_die,
11098         lower_bound_default, add_bound_info, add_prototyped_attribute,
11099         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
11100         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
11101         force_decl_die, gen_namespace_die, dwarf2out_decl,
11102         dwarf2out_start_source_file, dwarf2out_end_source_file,
11103         prune_unused_types, dwarf2out_finish): Use it.
11104         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
11105         the global list of translation-unit decls.
11106         (dwarf2out_init): Do not create single_comp_unit_die here.
11107         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
11108
11109 2010-09-21  Richard Guenther  <rguenther@suse.de>
11110
11111         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
11112         for bool for C++.
11113
11114 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
11115
11116         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
11117         (qhs_extenddi_cstr): Likewise.
11118         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
11119         them for the source operand.
11120
11121 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
11122
11123         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
11124         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
11125         (ix86_split_ashr): Ditto.
11126         (ix86_split_lshr): Ditto.
11127
11128 2010-09-21  Richard Guenther  <rguenther@suse.de>
11129
11130         PR tree-optimization/45580
11131         * tree-ssa-propagate.c (substitute_and_fold): Always replace
11132         regular uses.
11133         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
11134         virtuals fold the call into a regular indirect one.
11135
11136 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11137
11138         PR rtl-optimization/42775
11139         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
11140         scheduling is enabled.
11141
11142 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11143
11144         PR rtl-optimization/45728
11145         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
11146         gen_lowpart_common first and if that fails, force_reg first
11147         before calling gen_lowpart.
11148
11149         PR middle-end/45678
11150         * cfgexpand.c (expand_one_stack_var_at): Use
11151         crtl->max_used_stack_slot_alignment as max_align, instead
11152         of maximum of that and PREFERRED_STACK_BOUNDARY.
11153         Don't call update_stack_alignment.
11154
11155 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11156
11157         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
11158         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
11159         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
11160         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
11161         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
11162         (build_nonstandard_integer_type): Likewise.
11163         (build_range_type_1): New function, built from...
11164         (build_range_type): ...this.  Call build_range_type_1.
11165         (build_nonshared_range_type): New function.
11166         (build_array_type_1): New function, built from...
11167         (build_array_type: ...this.  Call build_array_type_1.
11168         (build_nonshared_array_type): New function.
11169         * tree.h (build_nonshared_range_type): Declare.
11170         (build_nonshared_array_type): Likewise.
11171
11172 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
11173
11174         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
11175         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11176         (arm_class_likely_spilled_p): New function.
11177
11178 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
11179
11180         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
11181         indirect functions.
11182         (ix86_split_ashl): Ditto.
11183         (ix86_split_ashr): Ditto.
11184         (ix86_split_lshr): Ditto.
11185         (ix86_adjust_counter): Ditto.
11186
11187 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
11188
11189         * c-family/c-common.h (constant_string_class): Documented with
11190         comment identical to the one already in c-common.c.
11191
11192 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11193
11194         * dwarf2out.c (any_cfis_emitted): New static variable.
11195         (add_fde_cfi): Set it.
11196         (dwarf2out_frame_debug): Clear it before processing,
11197         if it is set afterwards, flush any queued reg saves.
11198
11199         PR debug/45124
11200         * dwarf2out.c (add_accessibility_attribute): Assume
11201         DW_ACCESS_private as the default for dwarf_version > 2
11202         and DW_TAG_class_type parent.
11203         (gen_inheritance_die): Assume DW_ACCESS_public as the default
11204         for dwarf_version > 2 and parent other than DW_TAG_class_type.
11205
11206 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11207
11208         PR target/45726
11209         * arm.md (arm_movt): Only enable on machines with MOVT.
11210
11211 2010-09-20  Jie Zhang  <jie@codesourcery.com>
11212
11213         * config/arm/arm.c (arm_address_offset_is_imm): New.
11214         (arm_early_store_addr_dep): New.
11215         (arm_early_load_addr_dep): New.
11216         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
11217         (arm_early_load_addr_dep): Declare.
11218         (arm_address_offset_is_imm): Declare.
11219         * config/arm/cortex-m4.md: New file.
11220         * config/arm/cortex-m4-fpu.md: New file.
11221         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
11222         (attr generic_sched): Exclude cortexm4.
11223         (attr generic_vfp): Exclude cortexm4.
11224
11225 2010-09-20  Richard Guenther  <rguenther@suse.de>
11226
11227         PR middle-end/45704
11228         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
11229
11230 2010-09-20  Jan Hubicka  <jh@suse.cz>
11231
11232         PR tree-optimize/45605
11233         * cgraph.h (const_value_known_p): Declare.
11234         (varpool_decide_const_value_known): Remove.
11235         * tree-ssa-ccp.c (get_base_constructor): Use it.
11236         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
11237         * expr.c (string_constant): Likewise.
11238         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
11239         * ipa.c (ipa_discover_readonly_nonaddressable_var,
11240         function_and_variable_visibility): Likewise.
11241         * gimplify.c (gimplify_call_expr): Likewise.
11242         * gimple-fold.c (get_symbol_constant_value): Likewise.
11243         * varpool.c (varpool_decide_const_value_known): Replace by...
11244         (const_value_known_p): ... this one; handle other kinds of DECLs
11245         too and work for automatic vars.
11246         (varpool_finalize_decl): Use const_value_known_p.
11247
11248 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11249
11250         PR target/45726
11251         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
11252
11253 2010-09-20  Richard Guenther  <rguenther@suse.de>
11254
11255         PR tree-optimization/45705
11256         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
11257
11258 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11259
11260         PR rtl-optimization/45695
11261         * combine.c (try_combine): When splitting a two set pattern,
11262         make sure the pattern which will be put into i2 doesn't use REGs
11263         or MEMs set by insns in between i2 and i3.
11264
11265 2010-09-19  Jan Hubicka  <jh@suse.cz>
11266
11267         PR lto/44246
11268         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
11269         processing same node twice.
11270
11271 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
11272
11273         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
11274         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11275         (bfin_class_likely_spilled_p): New function
11276
11277 2010-09-19  Ira Rosen  <irar@il.ibm.com>
11278
11279         PR tree-optimization/45714
11280         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
11281         created in vectorizable_call instead of the original statement in
11282         def stmt updates.
11283
11284 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
11285
11286         * config/i386/i386-protos.h (split_double_mode): New prototype.
11287         (split_di, split_ti): Remove prototypes.
11288         * config/i386/i386.c (split_double_mode): New function.
11289         (split_di, split_ti): Remove.
11290         (ix86_expand_branch): Use split_double_mode.
11291         (ix86_split_to_parts): Ditto.
11292         (ix86_split_ashl): Ditto.
11293         (ix86_split_ashr): Ditto.
11294         (ix86_split_lshr): Ditto.
11295         (ix86_force_to_memory): Ditto.
11296         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
11297
11298 2010-09-18  Jan Hubicka  <jh@suse.cz>
11299
11300         PR tree-optimization/45453
11301         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
11302         virtual functions are reachable.
11303         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
11304         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
11305         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
11306         when modifying function.
11307
11308 2010-09-18  Jan Hubicka  <jh@suse.cz>
11309
11310         PR tree-optimization/45605
11311         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
11312         * gimple-fold.c (static_object_in_other_unit_p): New function.
11313         (canonicalize_constructor_val): Use it.
11314         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
11315         returning NULL.
11316         (gimple_fold_obj_type_ref_known_binfo): Use
11317         static_object_in_other_unit_p.
11318
11319 2010-09-18  Richard Guenther  <rguenther@suse.de>
11320
11321         PR tree-optimization/45709
11322         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
11323         insertions until after all PHI nodes of the block are processed.
11324
11325 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
11326
11327         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
11328
11329 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
11330
11331         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
11332
11333 2010-09-18  Richard Guenther  <rguenther@suse.de>
11334
11335         PR tree-optimization/45709
11336         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
11337
11338 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11339
11340         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
11341         (dot_deps_stmt): Same.
11342         * graphite-poly.c (dot_lst): Same.
11343         * graphite-scop-detection.c (dot_all_scops): Same.
11344         (dot_scop): Same.
11345
11346 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11347
11348         Revert:
11349         2009-12-16  Ben Elliston  <bje@au.ibm.com>
11350
11351         * tree-data-ref.c (dot_rdg_1): Added back.
11352         (dot_rdg): Same.  Added "#if 0" around system call.
11353
11354 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11355             Richard Henderson  <rth@redhat.com>
11356
11357         * config/i386/i386.c (initial_ix86_tune_features): Add
11358         X86_TUNE_PAD_SHORT_FUNCTION.
11359         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
11360         (ix86_count_insn): New.
11361         (ix86_pad_short_function): Likewise.
11362         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
11363
11364         * config/i386/i386.h (ix86_tune_indices): Add
11365         X86_TUNE_PAD_SHORT_FUNCTION.
11366         (TARGET_PAD_SHORT_FUNCTION): New.
11367
11368         * config/i386/i386.md (UNSPEC_NOPS): New.
11369         (nops): Likewise.
11370
11371 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11372
11373         PR middle-end/45234
11374         * calls.c (expand_call): Make sure that all variable sized
11375         adjustments are multiple of preferred stack boundary after
11376         stack alignment.
11377
11378 2010-09-17  DJ Delorie  <dj@redhat.com>
11379
11380         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
11381         passed an invalid value, print an error instead of ICEing.
11382         (valid_psw_flag): New.
11383         (rx_expand_builtin): Call it for setpsw/clrpsw.
11384         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
11385
11386         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
11387         (bitclr_in_memory): Likewise.
11388         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
11389
11390 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11391
11392         PR middle-end/45678
11393         * cfgexpand.c (update_stack_alignment): New.
11394         (get_decl_align_unit): Use it.
11395         (expand_one_stack_var_at): Call update_stack_alignment.
11396
11397 2010-09-17  Richard Guenther  <rguenther@suse.de>
11398
11399         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
11400         Properly copy the read string.
11401
11402 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
11403
11404         * doc/options.texi (Variable): Document.
11405         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
11406         generate target_flags declarations explicitly.  Don't define
11407         VarExists variables for the driver.
11408         * common.opt (target_flags): New Variable record.
11409         (flag_dump_unnumbered, flag_dump_unnumbered_links,
11410         flag_var_tracking, flag_var_tracking_assignments,
11411         flag_var_tracking_assignments_toggle): Don't mark variables with
11412         VarExists.
11413         * config/i386/i386.c (ix86_isa_flags): Don't define here.
11414         * config/i386/i386.opt (ix86_isa_flags): Define here.
11415         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
11416         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
11417         VarExists.
11418         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
11419         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
11420         Only define for generator programs.
11421         * rtlanal.c (target_flags): Remove.
11422         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
11423         flag_var_tracking_assignments_toggle): Remove.
11424
11425 2010-09-17  Michael Matz  <matz@suse.de>
11426
11427         PR tree-optimization/43432
11428         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
11429         Accept backwards consecutive accesses.
11430         (vect_create_data_ref_ptr): If step is negative generate
11431         decreasing IVs.
11432         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
11433         (perm_mask_for_reverse, reverse_vec_elements): New functions.
11434         (vectorizable_load): Handle loads with negative steps when easily
11435         possible.
11436
11437 2010-09-03  Jan Hubicka  <jh@suse.cz>
11438
11439         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
11440
11441 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
11442
11443         * config/v850/v850.c (v850_function_value_regno_p): Make static.
11444         Adjust comments. Declare.
11445         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
11446         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
11447
11448 2010-09-17  Richard Guenther  <rguenther@suse.de>
11449
11450         * common.opt (combine): Remove.
11451         * gcc.c (default_compilers): Remove specs testing combine.
11452         The C compilers no longer can combine.
11453         (option_map): Remove -combine.
11454         (display_help): Remove -combine.
11455         (driver_handle_option): Remove OPT_combine handling.
11456         (compile_input_file_p): Remove.
11457         (do_spec): Remove code concerning combine.
11458         (main): Likewise.
11459         * doc/invoke.texi: Remove traces of -combine.
11460         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
11461
11462 2010-09-17  Richard Guenther  <rguenther@suse.de>
11463
11464         PR middle-end/45678
11465         * builtins.c (fold_builtin_memory_op): Always properly adjust
11466         alignment of memory accesses.
11467
11468 2010-09-16  Jan Hubicka  <jh@suse.cz>
11469
11470         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
11471         processing clone.
11472
11473 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
11474
11475         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
11476
11477         * config/i386/i386.c (predict_jump): Add prototype.
11478         (flag_opts): Add -m8bit-idiv.
11479         (ix86_split_idivmod): New.
11480
11481         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
11482         Add 2 splitters for SI/DI mode divide.
11483         (divmod<mode>4_1): New pattern.
11484         (udivmod<mode>4_1): Likewise.
11485         (testdi_ccno_1): Likewise.
11486
11487         * config/i386/i386.opt (m8bit-idiv): New.
11488
11489         * doc/invoke.texi: Document -m8bit-idiv.
11490
11491 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
11492
11493         PR bootstrap/45680
11494         * config/i386/i386.c (min_insn_size): Moved out of the
11495         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
11496
11497 2010-09-16  Jan Hubicka  <jh@suse.cz>
11498
11499         * lto-cgraph.c (lto_output_node): Fix handling of clones.
11500         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
11501         unreachable clones with reachable clones.
11502         * tree-inline.c (copy_bb): Fix sanity checking when producing
11503         unreachable clone.
11504
11505 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
11506
11507         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
11508         (TARGET_MEMORY_MOVE_COST): Define.
11509         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
11510
11511 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
11512
11513         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
11514         maybe_tidy_empty_bb.
11515
11516         Revert:
11517         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
11518         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
11519
11520 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11521
11522         * target.def (target_option.optimization): New hook.
11523         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
11524         TARGET_OPTION_OPTIMIZATION hook.
11525         * doc/tm.texi: Regenerate.
11526         * hooks.c (hook_void_int_int): New.
11527         * hooks.h (hook_void_int_int): Declare.
11528         * opts.c: Don't include tm_p.h.
11529         (decode_options): Use targetm.target_option.optimization instead
11530         of OPTIMIZATION_OPTIONS.
11531         * system.h (OPTIMIZATION_OPTIONS): Poison.
11532         * config/arm/arm-protos.h (arm_optimization_options): Remove.
11533         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
11534         (arm_optimization_options): Rename to arm_option_optimization.
11535         Make static.
11536         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
11537         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
11538         (cris_option_optimization): New.
11539         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
11540         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
11541         (crx_option_optimization): New.
11542         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
11543         * config/frv/frv-protos.h (frv_optimization_options): Remove.
11544         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
11545         (frv_optimization_options): Rename to frv_option_optimization.
11546         Make static.
11547         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
11548         * config/h8300/h8300.c (h8300_option_optimization): New.
11549         (TARGET_OPTION_OPTIMIZATION): Define.
11550         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
11551         * config/i386/i386-protos.h (optimization_options): Remove.
11552         * config/i386/i386.c (optimization_options): Rename to
11553         ix86_option_optimization.  Make static.
11554         (TARGET_OPTION_OPTIMIZATION): Define.
11555         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
11556         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
11557         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
11558         (ia64_optimization_options): Rename to ia64_option_optimization.
11559         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
11560         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
11561         commented-out definition.
11562         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
11563         instead of OPTIMIZATION_OPTIONS.
11564         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
11565         (m32r_option_optimization): New.
11566         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
11567         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
11568         Remove.
11569         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
11570         (mcore_option_optimization): New.
11571         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
11572         * config/mep/mep-protos.h (mep_optimization_options): Remove.
11573         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
11574         (mep_optimization_options): Rename to mep_option_optimization.
11575         Make static.  Take unused level and size parameters.
11576         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
11577         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
11578         (mmix_option_optimization): New.
11579         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
11580         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
11581         (pdp11_option_optimization): New.
11582         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
11583         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
11584         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
11585         (optimization_options): Rename to rs6000_option_optimization.
11586         Make static.
11587         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
11588         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
11589         * config/rx/rx.c (rx_set_optimization_options): Rename to
11590         rx_option_optimization.  Make static.  Take unused level and size
11591         parameters.
11592         (TARGET_OPTION_OPTIMIZATION): Define.
11593         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
11594         * config/s390/s390-protos.h (optimization_options): Remove.
11595         * config/s390/s390.c (optimization_options): Rename to
11596         s390_option_optimization.  Make static.  Don't mark size parameter
11597         unused.
11598         (TARGET_OPTION_OPTIMIZATION): Define.
11599         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
11600         * config/sh/sh-protos.h (sh_optimization_options): Remove.
11601         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
11602         (sh_optimization_options): Rename to sh_option_optimization.  Make
11603         static.  Don't mark parameters unused.
11604         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
11605         * config/spu/spu-protos.h (spu_optimization_options): Remove.
11606         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
11607         (spu_optimization_options): Rename to spu_option_optimization.
11608         Make static.
11609         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
11610         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
11611         (v850_option_optimization): New.
11612         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
11613         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
11614         (xtensa_option_optimization): New.
11615         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
11616
11617 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11618
11619         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
11620         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
11621         * doc/tm.texi: Regenerate.
11622         * system.h (OVERRIDE_OPTIONS): Poison.
11623         * target.def (override): Default to hook_void_void.
11624         * targhooks.c (default_target_option_override): Remove.
11625         * genmodes.c, machmode.def: Update comments mentioning
11626         OVERRIDE_OPTIONS.
11627         * config/alpha/alpha-modes.def: Update comment mentioning
11628         alpha_override_options.
11629         * config/alpha/alpha-protos.h (override_options): Remove.
11630         * config/alpha/alpha.c (override_options): Rename to
11631         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
11632         (TARGET_OPTION_OVERRIDE): Define.
11633         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
11634         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
11635         of OVERRIDE_OPTIONS.
11636         * config/arc/arc-protos.h (arc_init): Remove.
11637         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
11638         (arc_init): Rename to arc_option_override.  Make static.
11639         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
11640         (OVERRIDE_OPTIONS): Remove.
11641         * config/arm/arm-protos.h (arm_override_options): Remove.
11642         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
11643         (arm_override_options): Rename to arm_option_override.  Make
11644         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11645         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
11646         * config/arm/arm.md: Update comment referring to arm_override_options.
11647         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11648         instead of OVERRIDE_OPTIONS.
11649         * config/avr/avr-protos.h (avr_override_options): Remove.
11650         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
11651         (avr_override_options): Rename to avr_option_override.  Make static.
11652         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
11653         * config/bfin/bfin-protos.h (override_options): Remove (twice).
11654         * config/bfin/bfin.c (override_options): Rename to
11655         bfin_option_override.  Make static.
11656         (TARGET_OPTION_OVERRIDE): Define.
11657         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
11658         * config/cris/cris-protos.h (cris_override_options): Remove.
11659         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
11660         (cris_override_options): Rename to cris_option_override.  Make static.
11661         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
11662         * config/frv/frv-protos.h (frv_override_options): Remove.
11663         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
11664         (frv_override_options): Rename to frv_option_override.  Make static.
11665         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
11666         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
11667         * config/h8300/h8300.c (h8300_init_once): Rename to
11668         h8300_option_override.  Make static.
11669         (TARGET_OPTION_OVERRIDE): Define.
11670         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
11671         * config/i386/i386-protos.h (override_options): Remove.
11672         * config/i386/i386.c (override_options): Rename to
11673         ix86_option_override_internal.  Make static.  Comments referring
11674         to this function and callers changed.
11675         (ix86_option_override): New.
11676         (TARGET_OPTION_OVERRIDE): Define.
11677         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
11678         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
11679         * config/ia64/ia64.c (ia64_file_start): Update comment referring
11680         to ia64_override_options.
11681         * config/iq2000/iq2000-protos.h (override_options): Remove.
11682         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
11683         (override_options): Rename to iq2000_option_override.  Make static.
11684         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
11685         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
11686         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
11687         (lm32_override_options): Rename to lm32_option_override.  Make static.
11688         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
11689         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
11690         (m32r_option_override): New.
11691         (m32r_init): Update comment.
11692         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
11693         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
11694         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
11695         (m68hc11_override_options): Rename to m68hc11_option_override.
11696         Make static.  Return void.
11697         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
11698         * config/m68k/m68k-protos.h (override_options): Remove.
11699         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
11700         (override_options): Rename to m68k_option_override.  Make static.
11701         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
11702         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
11703         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
11704         (mcore_override_options): Rename to mcore_option_override.  Make
11705         static.
11706         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
11707         * config/mep/mep-protos.h (mep_override_options): Remove.
11708         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
11709         (mep_override_options): Rename to mep_option_override.  Make static.
11710         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
11711         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
11712         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
11713         (mmix_override_options): Rename to mmix_option_override.  Make static.
11714         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
11715         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
11716         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
11717         (mn10300_override_options): Rename to mn10300_option_override.
11718         Make static.
11719         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
11720         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
11721         * config/moxie/moxie.c (moxie_override_options): Rename to
11722         moxie_option_override.  Make static.
11723         (TARGET_OPTION_OVERRIDE): Define.
11724         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
11725         * config/picochip/picochip-protos.h (picochip_override_options):
11726         Remove.  Update comment referring to picochip_override_options.
11727         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
11728         (picochip_override_options): Rename to picochip_option_override.
11729         Make static.  Update comment and definition of
11730         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
11731         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
11732         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11733         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11734         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11735         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11736         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11737         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
11738         instead of OVERRIDE_OPTIONS.
11739         * config/rs6000/rs6000-modes.def: Update comment referring to
11740         rs6000_override_options.
11741         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
11742         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
11743         (rs6000_override_options): Rename to
11744         rs6000_option_override_internal.  Make static.  Commented
11745         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
11746         (rs6000_option_override): New.
11747         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
11748         instead of OVERRIDE_OPTIONS.
11749         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11750         * config/s390/s390-protos.h (override_options): Remove.
11751         * config/s390/s390.c (override_options): Rename to
11752         s390_option_override.  Make static.
11753         (TARGET_OPTION_OVERRIDE): Define.
11754         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
11755         * config/score/score-protos.h (score_override_options): Remove.
11756         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
11757         (score_override_options): Rename to score_option_override.  Make
11758         static.
11759         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
11760         Update comment referring to override_options.
11761         * config/score/score3.c (score3_override_options): Rename to
11762         score3_option_override.
11763         * config/score/score3.h (score3_override_options): Rename to
11764         score3_option_override.
11765         * config/score/score7.c (score7_override_options): Rename to
11766         score7_option_override.
11767         * config/score/score7.h (score7_override_options): Rename to
11768         score7_option_override.
11769         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
11770         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
11771         (sparc_override_options): Rename to sparc_option_override.  Make
11772         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11773         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
11774         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11775         instead of OVERRIDE_OPTIONS.
11776         * config/spu/spu-protos.h (spu_override_options): Remove.
11777         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
11778         (spu_override_options): Rename to spu_option_override.  Make
11779         static.
11780         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
11781         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
11782         OVERRIDE_OPTIONS.
11783         * config/vax/vax-protos.h (override_options): Remove.
11784         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
11785         (override_options): Rename to vax_option_override.  Make static.
11786         Call SUBTARGET_OVERRIDE_OPTIONS.
11787         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
11788         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
11789         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
11790         * config/xtensa/xtensa-protos.h (override_options): Remove.
11791         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
11792         (override_options): Rename to xtensa_option_override.  Make static.
11793         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
11794
11795 2010-09-16  Richard Guenther  <rguenther@suse.de>
11796
11797         PR tree-optimization/45623
11798         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
11799         (get_constraint_for_component_ref): If computing a constraint
11800         for the rhs handle type punning through unions.
11801         (get_constraint_for_address_of): Adjust.
11802         (get_constraint_for_1): Likewise.
11803         (get_constraint_for): Likewise.
11804         (get_constraint_for_rhs): New function.
11805         (do_structure_copy): Adjust.
11806         (make_constraint_to): Likewise.
11807         (handle_const_call): Likewise.
11808         (find_func_aliases): Likewise.
11809         (process_ipa_clobber): Likewise.
11810         (create_variable_info_for): Likewise.
11811
11812 2010-09-16  Ira Rosen  <irar@il.ibm.com>
11813
11814         * tree-vectorizer.c: Fix documentation.
11815         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
11816         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
11817         is_pattern_stmt_p, is_loop_header_bb_p,
11818         stmt_vinfo_set_inside_of_loop_cost,
11819         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
11820         known_alignment_for_access_p): Likewise.
11821         * tree-vect-loop.c: Fix documentation.
11822         (vect_get_cost): Start function name from new line.
11823         * tree-vect-data-refs.c: Fix documentation.
11824         * tree-vect_stmts.c: Likewise.
11825         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
11826         (vectorizable_store): Free vec_oprnds if allocated.
11827         (vectorizable_condition): Initialize several variables to avoid
11828         warnings.
11829         * tree-vect-slp.c: Fix documentation.
11830
11831 2010-09-16  Richard Guenther  <rguenther@suse.de>
11832
11833         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
11834         is TS_TRANSLATION_UNIT_DECL.
11835         (initialize_tree_contains_struct): Adjust.
11836         (all_translation_units): New global vector.
11837         (build_translation_unit_decl): New function.
11838         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
11839         (struct tree_translation_unit_decl): New.
11840         (all_translation_units): Declare.
11841         (union tree_node): Add translation_unit_decl member.
11842         (build_translation_unit_decl): Declare.
11843         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
11844         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
11845         New function.
11846         (pack_value_fields): Call it.
11847         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
11848         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
11849         (lto_output_tree_pointers): Call it.
11850         * lto-streamer-in.c (lto_input_tree_ref): Handle references
11851         to TRANSLATION_UNIT_DECL.
11852         (unpack_ts_translation_unit_decl_value_fields): New function.
11853         (unpack_value_fields): Call it.
11854         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
11855         (lto_input_tree_pointers): Call it.
11856         * lto-streamer.c (check_handled_ts_structures): Adjust.
11857         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
11858         * c-decl.c (all_translation_units): Remove.
11859         (pop_scope): Use build_translation_unit_decl.
11860         (collect_all_refs): Adjust.
11861         (for_each_global_decl): Likewise.
11862         (c_write_global_declarations): Likewise.
11863
11864 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
11865
11866         PR bootstrap/45686
11867         * fold-const.c (fold_checksum_tree): Change slot from const void **
11868         to void **, use CONST_CAST_TREE to store into *slot.
11869
11870 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11871
11872         * config/i386/i386.md: Remove unneeded empty conditions and
11873         preparation statements from expanders.
11874         * config/i386/mmx.md: Ditto.
11875         * config/i386/sse.md: Ditto.
11876
11877 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11878
11879         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
11880
11881 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11882
11883         PR rtl-optimization/45593
11884         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
11885         insns that were in delay slots as stand-alone insns.
11886
11887 2010-09-15  Ian Lance Taylor  <iant@google.com>
11888
11889         * incpath.c (remove_duplicates): If name is not a directory, issue
11890         a warning rather than an error.
11891
11892 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11893
11894         PR middle-end/45644
11895         * tree-sra.c (create_access): Check for bit-fields directly.
11896
11897 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
11898
11899         PR tree-optimization/45633
11900         * tree-cfg.c (verify_gimple_assign_binary): Allow
11901         MINUS_EXPR with lhs and rhs1 pointer vector and
11902         rhs2 sizetype vector.
11903         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
11904         or vector pointer use TER to optimize pointer subtraction.
11905
11906 2010-09-15  Jie Zhang  <jie@codesourcery.com>
11907
11908         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
11909         fcmpd to fcmps.
11910
11911 2010-09-15  Ian Lance Taylor  <iant@google.com>
11912
11913         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
11914
11915 2010-09-15  Ian Lance Taylor  <iant@google.com>
11916
11917         * function.c (get_arg_pointer_save_area): Set
11918         arg_pointer_save_area_init to true.
11919
11920 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11921
11922         * tree-sra.c (generate_subtree_copies): Updated comment.
11923         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
11924         obtained from the statement iterator instead.
11925         (load_assign_lhs_subreplacements): Removed parameters lhs and
11926         right_offset, which is obtained from top_racc instead.  Parameter lacc
11927         is now expected to be the root of the processed tree rather than root's
11928         first child.  Updated all callers.
11929
11930 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
11931
11932         * config/pdp11/pdp11.c (register_move_cost): Rename to
11933         pdp11_register_move_cost.
11934         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
11935         pdp11_register_move_cost.
11936         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
11937         pdp11_register_move_cost instead of register_move_cost.
11938
11939 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
11940
11941         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
11942         pattern for vmovn. Expansion in case of non
11943         -mvectorize-with-neon-quad.
11944         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
11945         non- -mvectorize-with-neon-quad case.
11946         (move_lo_quad_<mode>): New expansion to vmov into low part.
11947         (move_hi_quad_<mode>): New expansion to vmov into high part.
11948         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
11949         (move_lo_quad_v4sf): Likewise.
11950         (move_lo_quad_v8hi): Likewise.
11951         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
11952         low part.
11953         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
11954         high part.
11955         * config/arm/iterators.md (ANY128): New mode iterator.
11956         (V_narrow_pack): New mode attribute.
11957         (V_HALF): Add attribute.
11958         (V_DOUBLE): Add attribute.
11959         (V_mode_nunits): Add attribute.
11960
11961 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11962
11963         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
11964         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
11965
11966 2010-09-15  Olivier Hainque  <hainque@adacore.com>
11967             Jose Ruiz  <ruiz@adacore.com>
11968
11969         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
11970         * config/alpha/osf5-unwind.h: New file.
11971
11972 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11973
11974         PR bootstrap/45672
11975         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
11976         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11977         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11978
11979 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11980
11981         * c-lang.h (struct lang_type): Add variable_size GTY option.
11982
11983 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11984
11985         PR bootstrap/45672
11986         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11987
11988 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11989
11990         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
11991         result isn't used in memory address.
11992
11993 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11994
11995         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
11996         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
11997         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
11998         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
11999         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
12000         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
12001
12002         * target.def: Add units_per_simd_word to vectorize.
12003
12004         * targhooks.c (default_units_per_simd_word): New.
12005         * targhooks.h (default_units_per_simd_word): Likewise.
12006         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
12007         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12008         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
12009         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12010         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
12011         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12012         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
12013         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12014
12015         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
12016         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
12017
12018         * tree-vect-stmts.c: Don't include "tm_p.h".
12019         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
12020         with targetm.vectorize.units_per_simd_word.
12021
12022         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
12023
12024         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
12025
12026         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
12027         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
12028
12029         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
12030         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
12031
12032         * doc/tm.texi: Regenerated.
12033
12034 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12035
12036         * tree-vect-stmts.c: Include "tm_p.h".
12037
12038         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
12039         out of RTX_CODE.
12040
12041 2010-09-14  Martin Jambor  <mjambor@suse.cz>
12042
12043         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
12044         location of generated statement.  Changed all callers.
12045         (build_ref_for_model): New parameter loc which used to set location of
12046         all generated expressions.  Changed all callers.
12047         (generate_subtree_copies): Likewise.
12048         (init_subtree_with_zero): Likewise.
12049         (sra_modify_expr): Set locations of all generated statements and
12050         expressions to the location the original statement.
12051         (handle_unscalarized_data_in_subtree): Likewise.
12052         (load_assign_lhs_subreplacements): Likewise.
12053         (sra_modify_constructor_assign): Likewise.
12054         (sra_modify_assign): Likewise.
12055
12056 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
12057
12058         PR target/45277
12059         PR target/45363
12060         PR target/45407
12061         * doc/install.texi (sparc*-*-*): New section.
12062         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
12063
12064 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
12065
12066         PR middle-end/45567
12067         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
12068         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
12069         (expand_builtin): Adjust caller.
12070         (expand_builtin_unop): Only use subtarget if it has the right mode.
12071
12072 2010-09-14  Tristan Gingold  <gingold@adacore.com>
12073
12074         * configure.ac (plugins): Fix typos.
12075         * configure: Regenerate.
12076
12077 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
12078
12079         PR debug/45660
12080         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
12081         gen_type_die for function/method return type.
12082
12083 2010-09-14  Ira Rosen  <irar@il.ibm.com>
12084
12085         PR tree-optimization/45470
12086         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12087         can throw an exception.
12088         * tree-vect-stmts.c (vectorizable_call): Likewise.
12089
12090 2010-09-14  DJ Delorie  <dj@redhat.com>
12091
12092         PR target/44749
12093         * config/mep/mep-protos.h (mep_save_register_info,
12094         mep_reinit_regs, mep_init_regs): Declare.
12095
12096         * config/mep/mep.c: Move all target definitions to the end of the
12097         file to avoid the need for duplicate declarations.
12098         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
12099         (mep_reorg_erepeat): Remove unused variables.
12100         (mep_expand_builtin): Likewise.
12101
12102         * config/mep/mep-pragma.c: Don't include rtl.h.
12103         (INVALID_REGNUM): New.
12104         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
12105         functions.
12106         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
12107         Avoid enum/integer math.
12108
12109 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
12110
12111         PR target/44749
12112         * config/mep/t-mep (GTM_H): Add insn-constants.h.
12113         * config/mep/mep.c (mep_conditional_register_usage): Take no
12114         parameters.
12115         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
12116         prototype.
12117         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
12118         call to mep_conditional_register_usage.
12119
12120 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
12121
12122         PR debug/43937
12123         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
12124         the DECL as well.
12125
12126 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
12127
12128         PR rtl-optimization/45617
12129         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
12130         even if low N bits of X aren't known to be zero.
12131
12132 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
12133
12134         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
12135
12136         * config/i386/i386.c (initial_ix86_tune_features): Add
12137         X86_TUNE_VECTORIZE_DOUBLE.
12138         (ix86_units_per_simd_word): New.
12139
12140         * config/i386/i386.h (ix86_tune_indices): Add
12141         X86_TUNE_VECTORIZE_DOUBLE.
12142         (TARGET_VECTORIZE_DOUBLE): New.
12143         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
12144
12145 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
12146
12147         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
12148         (new_temp_expr_table): Allocate call_cnt vector.
12149         (free_temp_expr_table): Free it.
12150         (process_replaceable): Add call_cnt parm and set in vector.
12151         (find_replaceable_in_bb): Skip replacement if def/use span a call.
12152         (debug_ter): Dump call_cnt value, remove stderr uses.
12153
12154 2010-09-13  Jan Hubicka  <jh@suse.cz>
12155
12156         * tree.c (build_zero_cst): New.
12157         * tree.h (build_zero_cst): Declare.
12158         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
12159         (get_base_constructor): Break out from ...
12160         (fold_const_aggregate_ref): Here; handle empty constructors.
12161
12162 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12163
12164         * config/arm/arm.md: (define_attr "conds"): Update comment.
12165         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
12166         conds attribute to clob.
12167         (arm_sync_compare_and_swapsi): Likewise.
12168         (arm_sync_compare_and_swap<mode>): Likewise.
12169         (arm_sync_lock_test_and_setsi): Likewise.
12170         (arm_sync_lock_test_and_set<mode>): Likewise.
12171         (arm_sync_new_<sync_optab>si): Likewise.
12172         (arm_sync_new_nandsi): Likewise.
12173         (arm_sync_new_<sync_optab><mode>): Likewise.
12174         (arm_sync_new_nand<mode>): Likewise.
12175         (arm_sync_old_<sync_optab>si): Likewise.
12176         (arm_sync_old_nandsi): Likewise.
12177         (arm_sync_old_<sync_optab><mode>): Likewise.
12178         (arm_sync_old_nand<mode>): Likewise.
12179
12180 2010-09-13  Olivier Hainque  <hainque@adacore.com>
12181
12182         * fwprop.c (forward_propagate_and_simplify): Only attach a
12183         REG_EQUAL note to an insn if the destination is a register.
12184         * gcse.c (try_replace_reg): Likewise.
12185
12186 2010-09-13  Richard Guenther  <rguenther@suse.de>
12187
12188         PR tree-optimization/45611
12189         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
12190         (copy_ref_info): Likewise.
12191
12192 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
12193
12194         PR debug/45604
12195         PR debug/45419
12196         PR debug/45408
12197         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12198         types of MEM_REF pointer types to the same type.
12199
12200 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
12201
12202         PR rtl-optimization/41087
12203         * ifcvt.c (noce_get_condition): Don't allow conditions with
12204         side-effects.
12205
12206 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
12207
12208         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12209         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
12210         * config/frv/frv.c (frv_register_move_cost): Make static. Change
12211         arguments type to reg_class_t. Add mode argument.
12212         (frv_memory_move_cost): New.
12213         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
12214
12215 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
12216
12217         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
12218         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
12219
12220 2010-09-10  Jan Hubicka  <jh@suse.cz>
12221
12222         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
12223
12224 2010-09-10  Richard Guenther  <rguenther@suse.de>
12225
12226         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
12227         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
12228         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
12229         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
12230         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
12231
12232 2010-09-10  Richard Guenther  <rguenther@suse.de>
12233
12234         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
12235         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
12236         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
12237         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
12238
12239 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
12240
12241         PR middle-end/45634
12242         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
12243         of string folding is of integral type.
12244
12245 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
12246
12247         * doc/invoke.texi (-x): Fix typo.
12248
12249 2010-09-10  Richard Guenther  <rguenther@suse.de>
12250
12251         PR debug/44115
12252         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
12253         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12254         Output DECL_DEBUG_EXPR.
12255         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12256         Input DECL_DEBUG_EXPR.
12257
12258 2010-09-10  Richard Guenther  <rguenther@suse.de>
12259
12260         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
12261         (build_index_type): Implement in terms of build_range_type.
12262         (build_range_type): Do not allow NULL_TREE type, improve
12263         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
12264         if we didn't hash.
12265         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
12266         create a distinct copy of the type.
12267
12268 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
12269
12270         * configure: Regenerated.
12271         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
12272
12273 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12274
12275         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
12276         * config/arm/cortex-a9-neon.md: New and partially generated.
12277         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
12278
12279 2010-09-10  Richard Guenther  <rguenther@suse.de>
12280
12281         * tree.h (build_index_2_type): Remove.
12282         * tree.c (build_index_2_type): Remove.
12283
12284 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
12285
12286         PR bootstrap/45630
12287         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
12288         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
12289         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
12290
12291 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12292
12293         PR tree-optimization/44972
12294         * tree-sra.c: Include toplev.h.
12295         (build_ref_for_offset): Entirely reimplemented.
12296         (build_ref_for_model): New function.
12297         (build_user_friendly_ref_for_offset): New function.
12298         (analyze_access_subtree): Removed build_ref_for_offset check.
12299         (propagate_subaccesses_across_link): Likewise.
12300         (create_artificial_child_access): Use
12301         build_user_friendly_ref_for_offset.
12302         (propagate_subaccesses_across_link): Likewise.
12303         (ref_expr_for_all_replacements_p): Removed.
12304         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
12305         (sra_modify_expr): Use build_ref_for_model.
12306         (load_assign_lhs_subreplacements): Likewise.
12307         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
12308         checks for return values of build_ref_for_offset.
12309         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
12310         build_ref_for_offset.
12311         * ipa-prop.h: Include gimple.h
12312         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
12313         (ipa_analyze_indirect_call_uses): Update comment.
12314         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
12315         (IPA_PROP_H): Likewise.
12316
12317 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12318
12319         PR tree-optimization/44972
12320         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
12321         calling build_ref_for_offset.
12322
12323 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12324
12325         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
12326         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
12327         * config/arm/arm-tune.md: Regenerate.
12328         * doc/invoke.texi (ARM Options): Document it.
12329
12330 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
12331
12332         * config/i386/i386.c: Include sched-int.h.
12333         (TARGET_SCHED_DISPATCH): Defined.
12334         (TARGET_SCHED_DISPATCH_DO): Defined.
12335         (DISPATCH_WINDOW_SIZE): Defined.
12336         (MAX_DISPATCH_WINDOWS): Defined.
12337         (MAX_INSN): Defined.
12338         (MAX_IMM): Defined.
12339         (MAX_IMM_SIZE): Defined.
12340         (MAX_IMM_32): Defined.
12341         (MAX_IMM_64): Defined.
12342         (MAX_LOAD): Defined.
12343         (MAX_STORE): Defined.
12344         (BIG): Defined.
12345         (dispatch_group): New.
12346         (num_allowable_groups): New.
12347         (group_name): New.
12348         (sched_insn_info_s): New.
12349         (dispatch_windows_s): New.
12350         (imm_info_s): New.
12351         (dispatch_window_list): New.
12352         (dispatch_window_list1): New.
12353         (get_mem_group): New.
12354         (is_cmp): New.
12355         (dispatch_violation): New.
12356         (is_branch): New.
12357         (is_prefetch): New.
12358         (init_window): New.
12359         (allocate_window): New.
12360         (init_dispatch_sched): New.
12361         (is_end_basic_block): New.
12362         (process_end_window): New.
12363         (allocate_next_window): New.
12364         (find_constant_1): New.
12365         (find_constant): New.
12366         (get_num_immediates): New.
12367         (has_immediate): New.
12368         (get_insn_path): New.
12369         (get_insn_group): New.
12370         (count_num_restricted): New.
12371         (fits_dispatch_window): New.
12372         (add_insn_window): New.
12373         (add_to_dispatch_window): New.
12374         (debug_dispatch_window_file): New.
12375         (debug_dispatch_window): New.
12376         (debug_insn_dispatch_info_file): New.
12377         (debug_ready_dispatch): New.
12378         (do_dispatch): New.
12379         (has_dispatch): New.
12380         * config/i386/i386.h (debug_ready_dispatch): Declared.
12381         (debug_dispatch_window): Declared.
12382         * config/i386/i386.opt (mdispatch-scheduler): New flag.
12383         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
12384         (TARGET_SCHED_DISPATCH_DO): New.
12385         * doc/tm.texi: Regererated.
12386         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
12387         ready_remove_first_dispatch
12388         (schedule_block): Call targetm.sched.dispatch and
12389         targetm.sched.dispatch_do.
12390         (sched_init): Call targetm.sched.dispatch and
12391         targetm.sched.dispatch_do.
12392         (ready_remove_first_dispatch): New.
12393         (number_in_ready): New.
12394         (get_ready_element): New.
12395         * hooks.c (hook_bool_rtx_int_false): New.
12396         (hook_void_rtx_int): New.
12397         * hooks.h (hook_bool_rtx_int_false): Declared.
12398         (hook_void_rtx_int): Declared.
12399         * sched-int.h (IS_DISPATCH_ON): Defined.
12400         (IS_CMP): Defined.
12401         (DISPATCH_VIOLATION): Defined.
12402         (FITS_DISPATCH_WINDOW): Defined.
12403         (DISPATCH_INIT): Defined.
12404         (ADD_TO_DISPATCH_WINDOW): Defined.
12405         (get_ready_element): Declared.
12406         (number_in_ready): Declared.
12407         * target.def (dispatch): Defined.
12408         (dispatch_do): Defined.
12409
12410 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12411
12412         PR middle-end/45312
12413         * reload1.c (merge_assigned_reloads): Remove.
12414         (reload_as_needed): Don't call it.
12415
12416 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
12417
12418         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
12419         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12420         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12421
12422 2010-09-09  Matthias Klose  <doko@ubuntu.com>
12423
12424         PR bootstrap/43847
12425         * configure.ac (--enable-plugin): Enhance for cross builds.
12426         * configure: Regenerate.
12427
12428 2010-09-09  Jan Hubicka  <jh@suse.cz>
12429
12430         PR tree-optimization/45598
12431         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
12432         string folding is of integral type.
12433
12434 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
12435
12436         * configure.ac (gnu_indirect_function): New test.
12437         * configure: Rebuilt.
12438         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
12439         * defaults.h (IFUNC_ASM_TYPE): Provide default.
12440
12441         * doc/extend.texi (Function Attributes): Document ifunc.
12442         * varasm.c (do_assemble_alias): Deal with ifuncs too.
12443
12444 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
12445
12446         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
12447         epilogue instruction move.
12448
12449 2010-09-09  Jan Hubicka  <jh@suse.cz>
12450
12451         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
12452         command line to allow more partitions than input files.
12453
12454 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12455
12456         PR middle-end/44554
12457         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
12458
12459 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12460
12461         PR middle-end/40386
12462         * ira.c (pseudo_for_reload_consideration_p): Don't use
12463         flag_ira_share_spill_slots.
12464
12465 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12466
12467         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
12468         point zero operands that fit into a single GPR.
12469         (s390_preferred_reload_class): Ensure we only return general-purpose
12470         register classes.
12471         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
12472         floating-point zero operands into GPRs.
12473         ("*mov<mode>_64"): Likewise.
12474         ("mov<mode>"): Likewise using lhi.
12475
12476 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12477
12478         * config/s390/s390.c (s390_symref_operand_p): Return false for
12479         literal pool references.
12480         (s390_check_qrst_address): Update caller.
12481
12482 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
12483
12484         * config/i386/predicates.md (ext_register_operand): Check that
12485         SUBREG_REG is really a register before looking for REGNO.
12486         (reg_not_xmm0_operand): Handle SUBREGs correctly.
12487         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
12488
12489 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
12490
12491         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
12492         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
12493         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
12494         * print-rtl.c (print_rtx): Likewise.
12495         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
12496         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
12497         for ADDR_EXPR with non-addressable object.
12498         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
12499         (struct dw_val_struct): Add v.val_decl_ref.
12500         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
12501         Handle DW_OP_GNU_implicit_pointer.
12502         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
12503         (get_ref_die_offset_label): New function.
12504         (implicit_ptr_descriptor): New function.
12505         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
12506         (loc_descriptor): Likewise.
12507         (gen_variable_die): Put even definitions into decl_die_table.
12508         (resolve_addr_in_expr): Resolve still unresolved
12509         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
12510         return false.
12511         (dwarf2out_finish): Call output_location_lists after outputting
12512         .debug_info and .debug_abbrev instead of before.
12513
12514 2010-09-09  Roland McGrath  <roland@redhat.com>
12515
12516         * dwarf2out.c (DWARF_REF_SIZE): Define.
12517         (size_of_loc_descr): Use it for DW_OP_call_ref.
12518
12519 2010-09-09  Alan Modra  <amodra@gmail.com>
12520
12521         * doc/invoke.text: Reinstate mcmodel=medium.
12522         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
12523         CMODEL_MEDIUM as default.
12524         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
12525         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
12526         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
12527         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
12528
12529 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12530
12531         PR target/45250
12532         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
12533         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
12534         (builtin_longjmp): Likewise.
12535         (allocate_stack): Use hard_frame_pointer_rtx instead of
12536         frame_pointer_rtx.
12537         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
12538         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
12539         (pa_can_eliminate): Likewise.
12540         (TARGET_INTERNAL_ARG_POINTER): Define.
12541         (TARGET_CAN_ELIMINATE): Define.
12542         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
12543         pointer.
12544         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
12545         (pa_internal_arg_pointer, pa_can_eliminate,
12546         pa_initial_elimination_offset): New.
12547         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
12548         (HARD_FRAME_POINTER_REGNUM): Set to register three.
12549         (INITIAL_FRAME_POINTER_OFFSET): Delete.
12550         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
12551         Define.
12552         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
12553         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
12554         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
12555         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
12556         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
12557         new soft frame pointer.
12558         * config/pa/pa64-regs.h: Likewise.
12559
12560 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12561
12562         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
12563         numerical constant.
12564         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
12565
12566 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12567
12568         PR debug/45531
12569         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
12570
12571 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12572
12573         PR debug/45419
12574         PR debug/45408
12575         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12576         qualifiers in otherwise equal MEM_REF pointer types.
12577         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
12578         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
12579
12580 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12581
12582         PR target/44392
12583         * config/arm/arm.md (bswapsi2): Handle condition correctly
12584         for armv6 and optimize_size.
12585
12586 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
12587
12588         PR other/18555
12589         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
12590
12591 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12592
12593         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
12594         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
12595         ix86_expand_strlen, legitimate_pic_address_disp_p,
12596         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
12597         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
12598         ix86_check_movabs, ix86_secondary_memory_needed): Change function
12599         prototype to bool.
12600         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
12601         return_in_memory_ms_64, ix86_check_movabs,
12602         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
12603         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
12604         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
12605         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
12606         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
12607         ix86_secondary_memory_needed): Change to bool.  Return
12608         "true" and "false" values.
12609         * config/i386/i386.md: Return "true" and "false" values.
12610
12611 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12612
12613         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12614         run_expensive_tests.
12615
12616 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12617
12618         * toplev.c (output_stack_usage): Use lbasename instead of basename.
12619
12620 2010-09-08  Martin Jambor  <mjambor@suse.cz>
12621
12622         PR other/45443
12623         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
12624         at -O3.
12625
12626 2010-09-08  Richard Guenther  <rguenther@suse.de>
12627
12628         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
12629         (visit): Adjust.
12630         (iterative_hash_gimple_type): Likewise.
12631         (gimple_type_hash): Likewise.
12632         (gimple_register_type): Likewise.
12633         (print_gimple_types_stats): Likewise.
12634         (free_gimple_type_tables): Likewise.
12635
12636 2010-09-08  Michael Matz  <matz@suse.de>
12637
12638         PR tree-optimization/43430
12639         * tree-vect-stmts.c (vectorizable_condition): Support multiple
12640         copies for conditional statements if it's not part of a reduction.
12641
12642 2010-09-08  Michael Matz  <matz@suse.de>
12643
12644         PR tree-optimization/33244
12645         * tree-ssa-sink.c (statement_sink_location): Don't sink into
12646         empty loop latches.
12647
12648 2010-09-08  Richard Guenther  <rguenther@suse.de>
12649
12650         PR tree-optimization/45578
12651         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
12652         Be more careful when transfering alignment information to
12653         the new induction variable.
12654         (copy_ref_info): Likewise.
12655
12656 2010-09-08  Richard Guenther  <rguenther@suse.de>
12657
12658         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
12659         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
12660
12661 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
12662
12663         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
12664         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
12665
12666 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
12667
12668         PR doc/45587
12669         * doc/md.texi: Fixed modes on several standard pattern names.
12670
12671 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
12672
12673         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
12674         (ashl<mode>3): ...this.
12675         (loongson_psra<V_suffix>): Rename to...
12676         (ashr<mode>3): ...this.
12677         (loongson_psrl<V_suffix>): Rename to...
12678         (lshr<mode>3): ...this.
12679         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
12680         (CODE_FOR_loongson_psllw): Define.
12681         (CODE_FOR_loongson_psrlh): Define.
12682         (CODE_FOR_loongson_psrlw): Define.
12683         (CODE_FOR_loongson_psrah): Define.
12684         (CODE_FOR_loongson_psraw): Define.
12685
12686 2010-09-07  Richard Henderson  <rth@redhat.com>
12687
12688         * tree-vect-data-refs.c: Include tm_p.h.
12689         * Makefile.in (tree-vect-data-refs.o): Update deps.
12690         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
12691         Move delarations outside #ifdef RTX_CODE.
12692
12693 2010-09-07  Richard Henderson  <rth@redhat.com>
12694
12695         * final.c (rest_of_handle_final): Unconditionally do
12696         output_function_exception_table before assemble_end_function.
12697
12698 2010-09-07  Jan Hubicka  <jh@suse.cz>
12699
12700         * tree-inline.c (tree_inlinable_function_p): Do not test
12701         DECL_REPLACEABLE_P.
12702         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
12703         update_callee_keys, cgraph_decide_inlining): Test function availability.
12704         * cif-code.def (OVERWRITABLE): New code.
12705
12706 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
12707             Jack Howarth  <howarth@bromo.med.uc.edu>
12708
12709         PR target/36502
12710         PR target/42313
12711         PR target/44651
12712         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
12713         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
12714         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
12715         MAX macro.
12716
12717 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12718
12719         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
12720         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
12721
12722 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12723
12724         * config.gcc: Don't append t-android for Android targets.
12725
12726         * config/t-android: Removed.
12727
12728 2010-09-07  Richard Henderson  <rth@redhat.com>
12729
12730         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
12731         * doc/tm.texi.in: Add doc marker.
12732         * doc/tm.texi: Rebuild.
12733         * except.c (switch_to_exception_section): Always build.
12734         (output_one_function_exception_table): Move section switch,
12735         personality output, and label output ...
12736         (output_function_exception_table): ... here.  Use the new
12737         personality hook.
12738
12739         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
12740         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
12741         TARGET_ASM_INIT_SECTIONS): New.
12742         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
12743         make static.
12744         (TARGET_ASM_UNWIND_EMIT): Update to match.
12745         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
12746
12747         * config/arm/arm.c (arm_asm_emit_except_personality): New.
12748         (arm_asm_init_sections): New.
12749         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
12750
12751 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12752
12753         * config/arm/arm.md: Remove unused variable.
12754
12755 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
12756
12757         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12758         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
12759         (m32r_memory_move_cost): New function.
12760
12761 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12762
12763         * config.gcc: Append t-android for Android targets.
12764
12765         * config/t-android: New.
12766
12767 2010-09-07  Richard Henderson  <rth@redhat.com>
12768
12769         * target.def (unwind_emit_before_insn): New hook.
12770         * doc/tm.texi.in: Add @hook marker for it.
12771         * doc/tm.texi: Rebuild.
12772         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
12773
12774 2010-09-07  Martin Jambor  <mjambor@suse.cz>
12775
12776         PR fortran/43665
12777         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
12778         are any type attributes.
12779
12780 2010-09-07  Jan Hubicka  <jh@suse.cz>
12781
12782         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
12783         array_ref_low_bound in string access folding.
12784
12785 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
12786
12787         PR target/45206
12788         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
12789         eh_return fixup sequence.
12790
12791 2010-09-07  Jan Hubicka  <jh@suse.cz>
12792
12793         * gimple-fold.c (maybe_fold_reference): Verify that operand is
12794         gimple_min_invariant.
12795
12796 2010-09-07  Richard Guenther  <rguenther@suse.de>
12797
12798         PR middle-end/45569
12799         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
12800         nor CONSTRUCTOR can trap.
12801         * tree-complex.c (update_complex_assignment): Update EH info.
12802
12803 2010-09-07  Richard Guenther  <rguenther@suse.de>
12804
12805         PR middle-end/45569
12806         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
12807         * passes.c (execute_function_todo): Do not verify anything if
12808         we saw errors.
12809
12810 2010-09-07  Richard Guenther  <rguenther@suse.de>
12811
12812         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
12813
12814 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
12815
12816         PR target/43137
12817         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
12818         New define_mode_attrs.
12819         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
12820         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
12821         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
12822         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
12823         Remove pool_range attribute.
12824         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
12825         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
12826         pool_range and neg_pool_range attributes.
12827         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
12828         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
12829         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
12830
12831 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12832
12833         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
12834         check glibc.
12835
12836 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12837
12838         PR target/22152
12839         * config/i386/mmx.md (*mov<mode>_internal_rex64,
12840         *mov<mode>_internal_avx, *mov<mode>_internal,
12841         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
12842         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
12843
12844 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
12845
12846         * c-typeck.c (do_warn_double_promotion): Remove.
12847         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
12848         Objective-C++ too.
12849
12850 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
12851
12852         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
12853         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
12854         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
12855         argument type to reg_class_t. Change result type to bool.
12856         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12857
12858 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
12859
12860         PR libobjc/19850
12861         * gthr-posix.h (__gthread_objc_thread_detach): Use
12862         _objc_thread_attribs when detaching a thread.
12863         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
12864
12865 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12866
12867         PR target/45524
12868         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
12869         * configure: Regenerated.
12870
12871 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12872
12873         * combine.c (try_combine): Set subst_low_luid to i0.
12874
12875 2010-09-06  Richard Guenther  <rguenther@suse.de>
12876
12877         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
12878         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
12879         (build_aligned_type): Declare.
12880         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
12881         (check_aligned_type): New function.
12882         (build_aligned_type): Likewise.
12883         * expr.c (expand_assignment): Handle misaligned stores via
12884         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
12885         (expand_expr_real_1): Likewise.
12886         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
12887         * tree-vect-stmts.c (vectorizable_store): Do not build
12888         MISALIGNED_INDIRECT_REF but initialize alignment information.
12889         (vectorizable_load): Likewise.
12890         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
12891         handling.
12892         * cfgexpand.c (expand_debug_expr): Likewise.
12893         * dwarf2out.c (loc_list_from_tree): Likewise.
12894         * fold-const.c (maybe_lvalue_p): Likewise.
12895         (operand_equal_p): Likewise.
12896         (build_fold_addr_expr_with_type_loc): Likewise.
12897         * gimplify.c (gimplify_addr_expr): Likewise.
12898         (gimplify_expr): Likewise.
12899         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
12900         (verify_gimple_assign_single): Likewise.
12901         * tree-dump.c (dequeue_and_dump): Likewise.
12902         (tree_could_trap_p): Likewise.
12903         * tree-predcom.c (ref_at_iteration): Likewise.
12904         * tree-pretty-print.c (dump_generic_node): Likewise.
12905         (op_code_prio): Likewise.
12906         (op_symbol_code): Likewise.
12907         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
12908         * tree-ssa-loop-im.c (for_each_index): Likewise.
12909         (gen_lsm_tmp_name): Likewise.
12910         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
12911         (find_interesting_uses_address): Likewise.
12912         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
12913         * tree-ssa-operands.c (get_expr_operands): Likewise.
12914         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
12915         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12916         (ao_ref_init_from_vn_reference): Likewise.
12917         * tree.c (staticp): Likewise.
12918         (build1_stat): Likewise.
12919         (reference_alias_ptr_type): Likewise.
12920         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
12921         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
12922         MISALIGNED_INDIRECT_REF handling.
12923
12924 2010-09-06  Richard Guenther  <rguenther@suse.de>
12925
12926         PR tree-optimization/45534
12927         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
12928         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
12929         on the target.
12930         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
12931         valid on the target.
12932
12933 2010-09-06  Andreas Schwab  <schwab@redhat.com>
12934
12935         * configure.ac: Quote argument of AC_MSG_WARN.
12936         * configure: Regenerate.
12937
12938 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
12939
12940         * sel-sched.c (move_cond_jump): Correct arguments to
12941         maybe_tidy_empty_bb.
12942         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
12943
12944 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
12945
12946         PR rtl-optimization/44919
12947         * sel-sched.c (move_cond_jump): Remove assert, check that
12948         the several blocks case can only happen with mutually exclusive
12949         insns instead.  Rewrite the movement code to support moving through
12950         several basic blocks.
12951
12952 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12953
12954         * config/i386/i386.md (iptrsize): New mode attribute.
12955         (tp_seg): Ditto.
12956         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
12957         mode iterator.
12958         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
12959         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
12960         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
12961         (stack_tls_protect_set_<mode>): Ditto from
12962         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
12963         of thread base pointer load.
12964         (stack_tls_protect_test_<mode>): Ditto from
12965         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
12966         of thread base pointer load.
12967         (stack_protect_set): Rewrite using indirect functions.
12968         (stack_protect_test): Ditto.
12969         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
12970         (ix86_print_operand): Handle '@'.
12971
12972 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
12973
12974         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
12975         MINUS_EXPR.
12976
12977 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
12978
12979         * doc/invoke.texi: Document -Wdouble-promotion.
12980         * c-typeck.c (convert_arguments): Check for implicit conversions
12981         from float to double.
12982         (do_warn_double_promotion): New function.
12983         (build_conditional_expr): Use it.
12984         (build_binary_op): Likewise.
12985
12986 2010-09-05  Richard Guenther  <rguenther@suse.de>
12987
12988         PR tree-optimization/45535
12989         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
12990         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
12991         dereferencing it.
12992         (indirect_refs_may_alias_p): Likewise.
12993
12994 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
12995
12996         * config/sh/sh.c (sh_option_override): Make static.
12997         Adjust comments.  Declare.
12998         (sh_function_value_regno_p): Likewise.
12999         (sh_register_move_cost): Modify the arguments, make static.
13000         Adjust comments.  Declare.
13001         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
13002         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13003         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
13004         REGISTER_MOVE_COST): Delete.
13005         * config/sh/sh-protos.h (sh_override_options): Delete.
13006         (sh_register_move_cost): Delete.
13007         (sh_function_value_regno_p): Delete.
13008
13009 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
13010
13011         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
13012         m32r_function_value_regno_p): New functions.
13013         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13014         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
13015         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
13016         FUNCTION_VALUE_REGNO_P): Remove.
13017
13018 2010-09-04  Jan Hubicka  <jh@suse.cz>
13019
13020         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
13021         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
13022         fold_read_from_constant_string.
13023
13024         * gimple.h (canonicalize_constructor_val): Declare.
13025         * gimple-fold.c (canonicalize_constructor_val): New function.
13026         (get_symbol_constant_value):Use it.
13027         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
13028
13029 2010-09-04  Jan Hubicka  <jh@suse.cz>
13030
13031         * tree-switch-conversion.c (build_one_array): Set constructor to be
13032         static.
13033         * varpool.c (varpool_finalize_decl): Compute const_value_known.
13034
13035 2010-09-04  Richard Guenther  <rguenther@suse.de>
13036
13037         PR bootstrap/45519
13038         * tree-flow.h (force_gimple_operand_1): Declare.
13039         (force_gimple_operand_gsi_1): Likewise.
13040         * gimplify.c (force_gimple_operand_1): New worker taking a
13041         gimple predicate for ...
13042         (force_gimple_operand): ... which now wraps it.
13043         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
13044         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
13045         last change.
13046         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
13047         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
13048         (create_mem_ref): Likewise.
13049
13050 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
13051
13052         * config/i386/predicates.md (sse_reg_operand): New predicate.
13053         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
13054         predicate for operand 1.
13055         (XFmode push splitter): Use fp_register_operand predicate
13056         for operand 1.
13057         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
13058         (SF-DF float_extend push splitter): Add reload_completed insn
13059         predicate.
13060         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
13061         MODEF mode macro.  Add reload_completed insn predicate.
13062
13063 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
13064
13065         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
13066         (struct df_extract_ref): Remove.
13067         (union df_ref_d): Remove extract_ref member.
13068         (df_ref_create): Remove last three arguments.
13069         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
13070         * df-scan.c (df_ref_record): Remove last three arguments, do not
13071         pass them to df_ref_create_structure.
13072         (df_uses_record): Remove first and last three arguments.  Replace
13073         first argument with DF_REF_REGULAR, adjust calls to remove the
13074         width, offset and mode.  Always call recursively on the second
13075         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
13076         (df_ref_create_structure): Remove first argument.
13077         (struct df_scan_problem_data): Remove ref_extract_pool.
13078         (df_scan_free_internal): Do not free it.
13079         (df_scan_alloc): Do not allocate it.
13080         (df_ref_create): Remove last three arguments, do not pass them to
13081         df_ref_create_structure.
13082         (df_free_ref): Remove DF_REF_EXTRACT case.
13083         (df_notes_rescan): Adjust call to df_uses_record.
13084         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
13085         Remove DF_REF_EXTRACT case.
13086         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
13087         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
13088         and SUBREG definitions.
13089         (df_get_conditional_uses): Remove references to width/offset/mode,
13090         adjust call to df_ref_create_structure.
13091         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
13092         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
13093         calls to df_uses_record and df_ref_record.
13094         * fwprop.c (update_df): Remove references to width/offset/mode,
13095         adjust call to df_ref_create.
13096
13097 2010-09-03  Jan Hubicka  <jh@suse.cz>
13098
13099         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
13100         (build_cdtor_fns): Update use of build_cdtor.
13101
13102 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
13103
13104         * doc/options.texi (SeparateAlias): Document.
13105         * opt-functions.awk (switch_flags): Handle SeparateAlias.
13106         * opth-gen.awk: Generate enumeration names for options marked
13107         SeparateAlias, but not for those marked Ignore.
13108         * opts-common.c (generate_canonical_option): Don't output separate
13109         argument for options marked CL_SEPARATE_ALIAS.
13110         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
13111         * opts.h (CL_SEPARATE_ALIAS): New.
13112         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
13113         CL_COMMON): Adjust definitions.
13114         * config/i386/darwin.opt, config/mips/sde.opt: New.
13115         * common.opt (fdump-final-insns): New.
13116         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
13117         i386/darwin.opt.
13118         (mips*-sde-elf*): Add mips/sde.opt.
13119         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
13120         -mno-data-in-code and -mcode-xonly here.
13121         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
13122         * gcc.c (option_map): Add "j" to --dump entry.
13123         (translate_options): Don't translate -d to -foutput-class-dir= here.
13124
13125 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
13126
13127         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
13128         DR_IS_WRITE.
13129         (compute_all_dependences): Same.
13130         (create_rdg_edge_for_ddr): Same.
13131         * tree-data-ref.h (DR_IS_WRITE): New.
13132         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
13133         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
13134         (write_memrefs_written_at_least_once): Same.
13135         * tree-predcom.c (suitable_component_p): Same.
13136         (determine_roots_comp): Same.
13137         (execute_load_motion): Same.
13138         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
13139         (vect_enhance_data_refs_alignment): Same.
13140         (vect_analyze_group_access): Same.
13141
13142 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
13143
13144         PR testsuite/42843
13145         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
13146         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
13147
13148 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
13149
13150         * dwarf2out.c (file scope): Remove #if0'd code.
13151         (gen_subprogram_die): Same.
13152
13153 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13154
13155         PR middle-end/45484
13156         * dwarf2out.c (flush_queued_reg_saves): Rename to...
13157         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
13158         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
13159         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
13160         * config/i386/i386.c (output_set_got): Call it.
13161
13162 2010-09-03  Michael Matz  <matz@suse.de>
13163
13164         PR middle-end/45415
13165         * tree-sra.c (sra_modify_assign): If we modify the statement,
13166         say so.
13167
13168         * tree-ssa.c (verify_ssa): Check number of operands and links
13169         per statement to agree.
13170
13171 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13172             Iain Sandoe  <iains@gcc.gnu.org>
13173
13174         PR target/45476
13175         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
13176         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
13177         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13178
13179 2010-09-03  Richard Guenther  <rguenther@suse.de>
13180
13181         * lto-streamer-out.c (output_function): Output function
13182         start and end loci.
13183         * lto-streamer-in.c (input_function): Input function start
13184         and end loci.
13185
13186 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13187
13188         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
13189         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
13190         * configure: Regenerate.
13191         * aclocal.m4: Regenerate.
13192
13193 2010-09-03  Jan Hubicka  <jh@suse.cz>
13194
13195         PR lto/44812
13196         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
13197         on functions/variables in other partition.
13198
13199 2010-09-03  Jan Hubicka  <jh@suse.cz>
13200
13201         * cgraph.h (struct varpool_node): Add const_value_known.
13202         (varpool_decide_const_value_known): Declare.
13203         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
13204         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
13205         (input_varpool_node): Restore const_value_known.
13206         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
13207         initializer folding.
13208         * ipa.c (ipa_discover_readonly_nonaddressable_var,
13209         function_and_variable_visibility): Compute const_value_known.
13210         * gimple-fold.c (get_symbol_constant_value): Use varpool for
13211         initializer folding.
13212         * varpool.c (varpool_decide_const_value_known): New function.
13213
13214 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13215
13216         * config/i386/i386.md: Remove empty preparation statements
13217         from splitters.
13218
13219 2010-09-03  Jan Hubicka  <jh@suse.cz>
13220
13221         * passes.c (rest_of_decl_compilation): Do not add local vars into
13222         varpool.
13223         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
13224         static or extern vars are in varpool.
13225         (varpool_finalize_decl): Sanity check that only static vars are
13226         finalized.
13227
13228 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13229
13230         PR debug/45500
13231         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
13232         not just generic vectors with BLKmode.
13233
13234 2010-09-03  Richard Guenther  <rguenther@suse.de>
13235
13236         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
13237         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
13238         * tree.h (TMR_SYMBOL): Remove.
13239         (TMR_BASE, TMR_OFFSET): Adjust.
13240         (TMR_INDEX2): New.
13241         * alias.c (ao_ref_from_mem): Use TMR_BASE.
13242         * builtins.c (get_object_alignment): Merge TMR_BASE and
13243         TMR_SYMBOL handling.
13244         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
13245         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
13246         handling.  Also allow TARGET_MEM_REF as base address.
13247         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
13248         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
13249         base.  Gimplify TMR_INDEX2.
13250         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
13251         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13252         (get_addr_base_and_unit_offset): Likewise.
13253         * tree-eh.c (tree_could_trap_p): Likewise.
13254         * tree-pretty-print.c (dump_generic_node): Likewise.
13255         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
13256         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
13257         base to index2.
13258         (get_address_description): Reconstruct addres description
13259         from merged TMR_BASE and TMR_INDEX2.
13260         (maybe_fold_tmr): Fold propagated addresses.
13261         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
13262         MEM_REF and TARGET_MEM_REF paths.
13263         (indirect_refs_may_alias_p): Likewise.
13264         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
13265         instead of TMR_SYMBOL.
13266         * tree-ssa-operands.c (get_tmr_operands): Simplify.
13267         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
13268         according to changes ...
13269         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
13270         Split TARGET_MEM_REF into two fields plus the base.
13271         * tree.c (mem_ref_offset): Simplify.
13272         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
13273         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
13274         Strip NOPs when folding MEM_REF addresses.
13275         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
13276         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
13277         (fold_gimple_assign): ... not here.
13278
13279 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
13280
13281         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
13282         * config/mips/mips.c (mips_shift_truncation_mask): New function.
13283         (TARGET_SHIFT_TRUNCATION_MASK): Define.
13284
13285 2010-09-02  Richard Henderson  <rth@redhat.com>
13286
13287         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
13288         instead of readelf in the test.
13289         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
13290         in the .debug_frame section for coff targets.
13291         * configure: Rebuild.
13292
13293 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13294
13295         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
13296         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
13297         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13298         (m32c_class_likely_spilled_p): Make static. Change argument type to
13299         reg_class_t. Change result type to bool.
13300
13301 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13302
13303         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
13304         to convert (double)(long) into a single FRIZ instruction or not
13305         when -ffast-math is used.
13306
13307         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
13308         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
13309         or FRIZ instruction if -ffast-math.
13310         * config/rs6000/rs6000.md (friz): Ditto.
13311
13312         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
13313
13314 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13315
13316         * opth-gen.awk (quote, comma): Remove unused variables.
13317
13318 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
13319
13320         * arm.c (arm_override_options): Correct fall-back code to use
13321         SUBTARGET_CPU_DEFAULT.
13322
13323 2010-09-02  Julian Brown  <julian@codesourcery.com>
13324
13325         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
13326         unspecs.
13327         (vcond<mode>, vcondu<mode>): New expanders.
13328         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
13329         comparisons with zero.
13330         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
13331         * config/arm/constraints.md (Dz): New constraint.
13332
13333 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13334
13335         * target.def (class_likely_spilled_p): New hook.
13336         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
13337         * doc/tm.texi: Regenerate.
13338         * targhooks.c (default_class_likely_spilled_p): New function.
13339         * targhooks.h (default_class_likely_spilled_p): Declare.
13340         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
13341         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
13342         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
13343         Use fixed_reg_set instead of fixed_regs.
13344         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13345         * calls.c (avoid_likely_spilled_reg): Ditto.
13346         * ira-conflicts.c (ira_build_conflicts): Ditto.
13347         * ira.c (update_equiv_regs): Ditto.
13348         * mode-switching.c (create_pre_exit): Ditto.
13349         * regmove.c (find_matches): Ditto.
13350         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13351         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
13352         (small_register_class_p): New inline function.
13353         (push_secondary_reload, find_reusable_reload, find_reloads): Use
13354         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
13355
13356         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
13357         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
13358         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13359
13360 2010-09-02  Richard Guenther  <rguenther@suse.de>
13361
13362         PR tree-optimization/44937
13363         PR tree-optimization/45412
13364         * ipa-split.c (split_function): Properly remove PHI nodes.
13365
13366 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13367
13368         * opts.h (struct cl_option): Add warn_message field.
13369         (struct cl_decoded_option): Add warn_message field.
13370         * doc/options.texi (Ignore, Warn): Document.
13371         * opt-functions.awk (needs_state_p): Don't consider aliases or
13372         ignored options to need state saved.
13373         * optc-gen.awk: Handle Warn and Ignore.
13374         * opth-gen.awk: Output OPT_SPECIAL_ignore.
13375         * opts-common.c (decode_cmdline_option): Set warn_message field.
13376         Handle ignored options.
13377         (decode_cmdline_options_to_array, generate_option,
13378         generate_option_input_file): Set warn_message field.
13379         (read_cmdline_option): Generate warnings from warn_message field.
13380         Handle ignored options.
13381         * common.opt (Wunreachable-code, fargument-alias,
13382         fargument-noalias, fargument-noalias-global,
13383         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
13384         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
13385         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
13386         ftree-salias): Mark Ignore.
13387         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
13388         -mintel-syntax and -mno-intel-syntax here.
13389         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
13390         using Warn.
13391         * opts.c (common_handle_option): Don't handle options marked as
13392         ignored.
13393         (enable_warning_as_error): Handle ignored options.
13394
13395 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13396
13397         PR driver/44076
13398         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
13399         alias_target fields.
13400         * opt-functions.awk (opt_sanitized_name): Don't handle
13401         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
13402         * optc-gen.awk: Generate alias fields.
13403         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
13404         Don't generate such constants for aliases.
13405         * opts-common.c (generate_canonical_option): New.
13406         (decode_cmdline_option): Handle aliases.  Use
13407         generate_canonical_option for known options instead of copying the
13408         input option text.
13409         * doc/options.texi (Alias): Document.
13410         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
13411         fstack-check, specs): Mark as aliases.
13412         * gcc.c (driver_handle_option): Canonicalize -L options to joined
13413         arguments.
13414         (driver_handle_option): Don't handle OPT_specs.
13415         * opts.c (common_handle_option): Don't handle options marked as
13416         aliases.
13417         (enable_warning_as_error): Handle aliases.
13418         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
13419         OPT_Wlarger_than_eq.
13420         * tree-optimize.c (tree_rest_of_compilation): Use
13421         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
13422
13423 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13424
13425         * config/i386/i386.md (nonmemory_operand): New mode attribute.
13426         (push memory peephole2): Macroize peepholes using SWI mode iterator.
13427         (move immediate to memory peephole2): Macroize peepholes using
13428         SWI124 mode iterator.
13429         (non-pairable NOT peephole2): Macroize peepholes using SWI124
13430         mode iterator.
13431         (simple lea add peephole2): Macroize peepholes using SWI48
13432         mode iterator.
13433         (simple lea mult peephole2): Ditto.
13434         (imul by 3,5,9 to lea peephole2): Ditto.
13435         (mov $-1, reg peephole2): Macroize peepholes using SWI248
13436         mode iterator.
13437         (imul $32bit_imm,mem,reg peephole2): Ditto.
13438         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
13439
13440 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
13441
13442         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
13443
13444 2010-09-02  Olivier Hainque  <hainque@adacore.com>
13445
13446         PR middle-end/44763
13447         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
13448         (allocno_priority_compare_func): Use it instead of a straight
13449         difference computation over priorities.
13450
13451 2010-09-02  Andi Kleen  <ak@linux.intel.com>
13452
13453         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
13454
13455 2010-09-02  Ira Rosen  <irar@il.ibm.com>
13456
13457         * tree-vectorizer.h (get_later_stmt): New function.
13458         (vect_analyze_data_ref_dependences): Add argument.
13459         * tree-vect-loop.c (vect_analyze_loop): Update call to
13460         vect_analyze_data_ref_dependences.
13461         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
13462         New function.
13463         (vect_analyze_data_ref_dependence): Add argument for basic block
13464         dependencies. Check dependencies in basic block vectorization.
13465         (vect_analyze_data_ref_dependences): Add argument and update call to
13466         vect_analyze_data_ref_dependences.
13467         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
13468         (vect_bb_vectorizable_with_dependencies): New.
13469         (vect_slp_analyze_bb): Check dependencies in basic block.
13470         (vect_schedule_slp_instance): Insert stores before the last store in
13471         SLP instance.
13472
13473 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13474
13475         PR target/45476
13476         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
13477         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13478
13479 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
13480
13481         PR middle-end/45458
13482         * bb-reorder.c (add_labels_and_missing_jumps): Treat
13483         bbs ending with throwing insns like blocks ending with a call.
13484         (fix_up_fall_thru_edges): Likewise.
13485
13486 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
13487
13488         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
13489         (m32c_function_arg_advance): Delete.
13490         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13491         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
13492         comments.  Take a const_tree and a bool.  Declare.
13493         (m32c_function_arg_advance): Likewise.
13494         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13495
13496 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13497
13498         PR target/45476
13499         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
13500         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
13501         * config/i386/mingw32.h: ... here.
13502
13503 2010-09-01  Andi Kleen  <ak@linux.intel.com>
13504
13505         PR lto/45475
13506         * lto-streamer-in.c (lto_input_ts_target_option): Add.
13507         (lto_input_tree_pointers): Call lto_input_ts_target_option.
13508         * lto-streamer-out (lto_output_ts_target_option): Add.
13509         (lto_output_tree_pointers): Call lto_output_ts_target_option.
13510
13511 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
13512
13513         PR/target 45452
13514         * config/i386/cygwin.h: Change order of specified import libraries.
13515         * config/i386/mingw32.h: Likewise.
13516         * config/i386/t-cygwin: Likewise.
13517         * config/i386/t-mingw32: Likewise.
13518         * config/i386/t-mingw-w32: Likewise.
13519         * config/i386/t-mingw-w64: Likewise.
13520
13521 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13522
13523         * config/arm/neon-schedgen.ml (core): New type.
13524         (allCores): List of supported cores.
13525         (availability_table): Add supported cores.
13526         (collate_bypasses): Accept core as a parameter.
13527         (worst_case_latencies_and_bypasses): Accept core as a parameter.
13528         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
13529         and coreStr to get tune attribute and prefix for functional units.
13530         (emit_bypasses): Accept core name and use it.
13531         (calculate_per_core_availability_table): New.
13532         (filter_core): New.
13533         (calculate_core_availability_table): New.
13534         (main): Use calculate_core_availablity_table.
13535         * config/arm/cortex-a8-neon.md: Update copyright year.
13536         Regenerated from ml file and merged in.
13537         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
13538         cortex_a8_neon_mrc.
13539
13540 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
13541
13542         * Makefile.in (tree-switch-conversion.o): Update dependencies.
13543
13544 2010-09-01  Richard Guenther  <rguenther@suse.de>
13545
13546         * alias.c (ao_ref_from_mem): Adjust.
13547         * builtins.c (get_object_alignment): Likewise.
13548         * cfgexpand.c (expand_debug_expr): Likewise.
13549         * gimple.c (get_base_address): Likewise.
13550         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13551         (get_addr_base_and_unit_offset): Likewise.  Fix for
13552         both TMR_SYMBOL and TMR_BASE being set.
13553         * tree-eh.c (tree_could_trap_p): Likewise.
13554         * gimplify.c (gimplify_expr): Do not attempt to gimplify
13555         TMR_SYMBOL.  Always gimplify TMR_BASE.
13556         * tree-cfg.c (verify_types_in_gimple_reference): Verify
13557         TMR_BASE if there is a TMR_SYMBOL.
13558         * tree-pretty-print.c (dump_generic_node): Adjust.
13559         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
13560         (tree_mem_ref_addr): Likewise.
13561         (create_mem_ref_raw): Likewise.
13562         (move_fixed_address_to_symbol): Likewise.
13563         (create_mem_ref): Likewise.
13564         (dump_mem_address): Likewise.
13565         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
13566         Fix for both TMR_SYMBOL and TMR_BASE being set.
13567         (indirect_refs_may_alias_p): Likewise.
13568         * tree-ssa-operands.c (get_tmr_operands): Adjust.
13569         * tree.def (TARGET_MEM_REF): Adjust documentation.
13570
13571 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13572
13573         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
13574         Rename from X86_TUNE_ADD_ESP_4.
13575         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
13576         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
13577         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
13578         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
13579         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
13580         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
13581         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
13582         * config/i386/i386.c (initial_ix86_tune_features)
13583         <X86_TUNE_SINGLE_POP>: Invert members.
13584         <X86_TUNE_DOUBLE_POP>: Ditto.
13585         <X86_TUNE_SINGLE_PUSH>: Ditto.
13586         <X86_TUNE_DOUBLE_PUSH>: Ditto.
13587         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
13588         No longer exported.
13589         (push peephole2 patterns): Macroize peepholes using P mode iterator.
13590         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
13591         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
13592         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
13593
13594 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
13595
13596         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
13597         a volatile LHS if the constructor has only one element.
13598
13599 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
13600
13601         PR bootstrap/45321
13602         * tree.c (stdarg_p): Make fntype parameter const.
13603         * tree.h (stdarg_p): Likewise.
13604         (function_args_iterator): Remove unused fntype field.
13605         (function_args_iter_init): Do not initialize fntype
13606         field.  Make fntype parameter const.
13607
13608 2010-09-01  Richard Guenther  <rguenther@suse.de>
13609
13610         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
13611         estimate.
13612         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
13613         (execute_vrp): Compute number of iteration estimates.
13614         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
13615         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
13616         * tree-data-ref.c (estimated_loop_iterations): Adjust.
13617         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
13618         Infer loop bounds from undefined behavior based on a new parameter.
13619         (estimate_numbers_of_iterations): Likewise.
13620         (scev_probably_wraps_p): Adjust.
13621         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
13622
13623 2010-09-01  Nick Clifton  <nickc@redhat.com>
13624
13625         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
13626         where appropriate.
13627         (xstormy16_legitimate_address_p): Use true and false instead of 1
13628         and 0.
13629         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
13630         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
13631         magic constant 2.
13632         (xstormy16_expand_call): Fix comment at start of function.
13633
13634 2010-09-01  Nick Clifton  <nickc@redhat.com>
13635
13636         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
13637         when pushing accumulator register.
13638         (rx_get_stack_layout): Always save call clobbered registers inside
13639         interrupt handlers.
13640         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
13641
13642 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13643
13644         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
13645         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
13646
13647         * libgcc-std.ver (GCC_4.6.0): Define version.
13648
13649 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13650
13651         * tree-nested.c (convert_all_function_calls): Iterate until after the
13652         sum of static chains in the nest doesn't change.
13653
13654 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
13655
13656         * config/m32c/m32c.c (classes_intersect): Remove.
13657         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
13658         reg_classes_intersect_p instead of classes_intersect.
13659         (class_can_hold_mode): Change arguments type from enum reg_class to
13660         reg_class_t.  Use reg_class_contents instead of class_contents.
13661         (m32c_register_move_cost): Make static. Change arguments type from
13662         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
13663         classes_intersect. Use reg_class_contents instead of class_contents.
13664         (m32c_memory_move_cost): Make static. Change arguments type from
13665         enum reg_class to reg_class_t.
13666         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13667         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13668         * config/m32c/m32c-protos.h (m32c_register_move_cost,
13669         m32c_memory_move_cost): Remove.
13670
13671 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13672
13673         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
13674         (arm_function_arg): Delete.
13675         (arm_needs_doubleword_align): Take a const_tree.
13676         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13677         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
13678         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
13679         (arm_function_arg): Make static.  Take a const_tree and a bool.
13680         (arm_function_arg_advance): Likewise.
13681         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13682
13683 2010-08-31  Andi Kleen  <ak@linux.intel.com>
13684
13685         * common.opt (fwhopr=): Update for -fwhopr=jobserver
13686         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
13687         * lto-wrapper.c (run_gcc): Add jobserver mode.
13688         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
13689         argument.
13690
13691 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
13692
13693         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
13694         (popsi1): Ditto.
13695         (*popdi1_epilogue): Ditto.
13696         (*popsi1_epilogue): Ditto.
13697         (popsi, popdi peephole2 patterns): Update peepholes for changed
13698         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
13699
13700         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
13701         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
13702
13703         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
13704         (override_options): Do not initialize removed ix86_gen_pop1.
13705         (gen_pop): New static function.
13706         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
13707         (release_scratch_register_on_entry): Ditto.
13708         (ix86_restore_reg_using_pop): Ditto.
13709         (ix86_expand_epilogue): Ditto.
13710
13711 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
13712
13713         PR middle-end/45461
13714         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
13715
13716 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13717
13718         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
13719         semicolons.
13720
13721 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13722
13723         * doc/extend.texi: Fix documentation of the return value of
13724         __builtin_choose_expr.
13725
13726 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13727
13728         * config/v850/v850-protos.h (function_arg): Delete.
13729         * config/v850/v850.h (FUNCTION_ARG): Delete.
13730         (FUNCTION_ARG_ADVANCE): Move code to...
13731         * config/v850/v850.c (v850_function_arg_advance): ...here.
13732         (v850_function_arg): Make static.  Take a const_tree and a bool.
13733         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13734
13735 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13736
13737         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
13738         these...
13739         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13740         ...and these...
13741         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
13742         ..to here..
13743         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13744         ...and here.
13745         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13746
13747 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13748
13749         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
13750         Delete.
13751         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13752         * config/rx/rx.c (rx_function_arg_size): Make static.
13753         (rx_function_arg): Likewise.
13754         (rx_function_arg_advance): New function.
13755         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13756
13757 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
13758
13759         * config/arm/arm.c (arm_override_options): Remove superfluous test.
13760         Fix indentation.
13761
13762 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13763
13764         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
13765         (dwarf2out_decl) <CONST_DECL>: Likewise.
13766
13767 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
13768
13769         Stack usage support
13770         * common.opt (-fstack-usage): New option.
13771         * doc/invoke.texi (Debugging options): Document it.
13772         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
13773         allocate_dynamic_stack_space.
13774         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
13775         and propagate it to allocate_dynamic_stack_space.
13776         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
13777         * calls.c (initialize_argument_information): Pass TRUE as 4th
13778         argument to allocate_dynamic_stack_space.
13779         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
13780         to 1 when pushing a variable-sized argument onto the stack.  Pass
13781         TRUE as 4th argument to allocate_dynamic_stack_space.
13782         Update current_function_pushed_stack_size.
13783         (emit_library_call_value_1): Likewise.
13784         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
13785         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
13786         attempt to find an upper bound.  Remove redundant code for the
13787         SETJMP_VIA_SAVE_AREA case.
13788         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
13789         * function.h (struct stack_usage): New structure.
13790         (current_function_static_stack_size): New macro.
13791         (current_function_dynamic_stack_size): Likewise.
13792         (current_function_pushed_stack_size): Likewise.
13793         (current_function_dynamic_alloc_count): Likewise.
13794         (current_function_has_unbounded_dynamic_stack_size): Likewise.
13795         (current_function_allocates_dynamic_stack_space): Likewise.
13796         (struct function): Add new field 'su'.
13797         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
13798         add the value of the dynamic offset to the dynamic stack usage.
13799         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
13800         for variable-sized objects.
13801         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
13802         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
13803         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
13804         BUILT_IN_ALLOCA for variable-sized objects.
13805         * output.h (output_stack_usage): Declare.
13806         * toplev.c (stack_usage_file): New file pointer.
13807         (output_stack_usage): New function.
13808         (open_auxiliary_file): Likewise.
13809         (lang_dependent_init): Open file if flag_stack_usage is set.
13810         (finalize): Close file if stack_usage_file is not null.
13811         * tree.h (ALLOCA_FOR_VAR_P): New macro.
13812         * config/alpha/alpha.c (compute_frame_size): New function.
13813         (alpha_expand_prologue): Use it.
13814         (alpha_start_function): Likewise.
13815         (alpha_expand_epilogue): Likewise.  Set stack usage info.
13816         * config/i386/i386.c (ix86_expand_prologue): Likewise.
13817         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
13818         * config/mips/mips.c (mips_expand_prologue): Likewise.
13819         * config/pa/pa.c (hppa_expand_prologue): Likewise.
13820         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
13821         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
13822
13823 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
13824
13825         PR tree-optimization/45427
13826         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
13827         Handle the case that the exit is never taken correctly.
13828         (number_of_iterations_ne): Pass exit_must_be_taken to
13829         number_of_iterations_ne_max.
13830
13831 2010-08-30  Catherine Moore  <clm@codesourcery.com>
13832
13833         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
13834         Infer -mdspr2 for the the 74K.
13835
13836 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
13837
13838         PR debug/45419
13839         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
13840
13841         PR middle-end/45423
13842         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
13843         and TRUTH_{AND,OR,XOR}_EXPR.
13844         * c-parser.c (c_parser_omp_atomic): Handle boolean
13845         {PRE,POST}_{INC,DEC}REMENT.
13846
13847 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
13848
13849         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
13850         (function_arg): Delete.
13851         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13852         (FUNCTION_INCOMING_ARG): Delete.
13853         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
13854         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
13855         and a bool.
13856         (function_arg): Rename to...
13857         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
13858         a bool.
13859         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
13860         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13861         (TARGET_FUNCTION_INCOMING_ARG): Define.
13862
13863 2010-08-30  Richard Guenther  <rguenther@suse.de>
13864
13865         PR tree-optimization/21602
13866         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
13867         using points-to information.
13868
13869 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
13870
13871         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
13872
13873 2010-08-30  Richard Guenther  <rguenther@suse.de>
13874
13875         PR tree-optimization/45449
13876         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
13877         variables.
13878
13879 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
13880
13881         * opts.h (CL_ERR_NEGATIVE): Define.
13882         * opts.c (unknown_option_callback): Don't postpone warnings for
13883         options marked with CL_ERR_NEGATIVE.
13884         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
13885         for negative versions of CL_REJECT_NEGATIVE options.
13886
13887 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
13888
13889         * config/i386/i386.md (zero_extendsidi2_1): Rename from
13890         zero_extendsidi2_32.
13891         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
13892         using SWI12 mode iterator.
13893         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
13894         to define_insn_and_split pattern.
13895         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
13896         using SWI24 mode iterator.
13897         (*zero_extendqi<mode>2_and): Macroize insn from
13898         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
13899         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
13900         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
13901         SWI24 mode iterator.
13902         (*zero_extendqi<mode>2_movzbl): Ditto from
13903         *zero_extendqi{hi,si}2_movzbl.
13904         (extendsidi2_1): Rename from extendsidi2_32.
13905         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
13906         SWI12 mode iterator.
13907
13908 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
13909
13910         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
13911         general purpose registers.
13912         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
13913         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
13914         with general purpose registers and memory operands.  Add associated
13915         CCImode post-reload splitter.
13916         * config/ia64/div.md: Change BImode to CCImode throughout.
13917
13918 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
13919
13920         * config/ia64/ia64.md (cstorebi4): Fix thinko.
13921
13922 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
13923
13924         * config/picochip/picochip.c (reorder_var_tracking_notes): This
13925         function was dropping debug insns which caused PR45299.
13926
13927 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
13928
13929         * config/i386/sse.md (extsuffix): New code attribute.
13930         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
13931         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
13932         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
13933         and sse4_1_zero_extendv4qiv4si2.
13934         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
13935         and sse4_1_zero_extendv2qiv2di2.
13936         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
13937         and sse4_1_zero_extendv4hiv4si2.
13938         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
13939         and sse4_1_zero_extendv2hiv2di2.
13940         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
13941         and sse4_1_zero_extendv2siv2di2
13942
13943         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
13944         using any_extend code iterator.
13945         (*avx_<s>mulv8hi3_highpart): Macroize insn from
13946         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
13947         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
13948
13949         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
13950         gen_sse4_1_sign_extend* functions.
13951         (struct builtin_description bdesc_args): Ditto.
13952
13953 2010-08-27  Xinliang David Li  <davidxl@google.com>
13954
13955         PR/45422
13956         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
13957         (iv_ca_set_no_cp): Update used inv expr count.
13958         (iv_ca_set_cp): Ditto.
13959         (iv_ca_new): Initialize new member.
13960         (iv_ca_free): Free memory.
13961
13962 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
13963
13964         * config/sh/sh-protos.h (sh_function_arg): Delete.
13965         (sh_function_arg_advance): Delete.
13966         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13967         (PASS_IN_REG_P): Eliminate cast.
13968         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
13969         const_tree and a bool.
13970         (sh_function_arg): Likewise.
13971         (sh_output_mi_thunk): Call sh_function_arg_advance) and
13972         sh_function_arg.
13973         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13974
13975 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
13976             Kaz Kojima  <kkojima@gcc.gnu.org>
13977
13978         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
13979         when possible.
13980         (sh_expand_epilogue): Likewise.
13981         * config/sh/sh.md (movml_push_banked): New insn.
13982         (movml_pop_banked): Likewise.
13983
13984 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
13985
13986         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
13987         gen_regexp_oneof, gen_regexp_sequence): Use the string found
13988         in vector element 0 rather than the original string when there's
13989         only one element.
13990         (gen_regexp): Remove extra semicolon.
13991
13992         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
13993         thumb2_movsf_vfp): Set attribute "insn".
13994         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
13995         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
13996         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
13997         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
13998         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
13999         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
14000         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
14001         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
14002         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
14003         if_not_arith, if_arith_not, cond_move_not): Likewise.
14004
14005 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
14006
14007         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
14008         New declaration.
14009         (rs6000_allocate_stack_temp): Ditto.
14010         (rs6000_expand_convert_si_to_sfdf): Ditto.
14011
14012         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
14013         line.  Update the options set if power6 or power7 server/embedded
14014         type options are used.  If we give a warning for no vsx under
14015         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
14016         (rs6000_allocate_stack_temp): New function to allocate a stack
14017         tempoary and adjust the address so it meets either REG+OFFSET or
14018         REG+REG addressing requirements.
14019         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
14020         that they can be used with the LFIWAX/LFIWZX instrucitons.
14021         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
14022         converting signed/unsigned SImode to either SFmode/DFmode.
14023
14024         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
14025         whether certain instructions can be generated.
14026         (TARGET_FCTIDZ): Ditto.
14027         (TARGET_STFIWX): Ditto.
14028         (TARGET_LFIWAX): Ditto.
14029         (TARGET_LFIWZX): Ditto.
14030         (TARGET_FCFIDS): Ditto.
14031         (TARGET_FCFIDU): Ditto.
14032         (TARGET_FCFIDUS): Ditto.
14033         (TARGET_FCTIDUZ): Ditto.
14034         (TARGET_FCTIWUZ): Ditto.
14035
14036         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
14037         (UNSPEC_FCTID): Ditto.
14038         (UNSPEC_LFIWAX): Ditto.
14039         (UNSPEC_LFIWZX): Ditto.
14040         (UNSPEC_FCTIWUZ): Ditto.
14041         (rreg): Use correct constraints.
14042         (SI_CONVERT_FP): New mode attribute for floating point conversion
14043         tests.
14044         (E500_CONVERT): Ditto.
14045         (lfiwax): New insns for converting from integer to floating point
14046         utilizing newer instructions.  Attempt to optimize conversions
14047         that come from memory so that we don't load the value into a GPR,
14048         spill it to the stack and reload it into a FPR.
14049         (floatsi<mode>2_lfiwax): Ditto.
14050         (floatsi<mode>2_lfiwax_mem): Ditto.
14051         (floatsi<mode>2_lfiwax_mem2): Ditto.
14052         (lfiwzx): Ditto.
14053         (floatunssi<mode>2_lfiwzx): Ditto.
14054         (floatunssi<mode>2_lfiwzx_mem): Ditto.
14055         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
14056         (floatdidf2_mem): Ditto.
14057         (floatunsdidf2_fcfidu): Ditto.
14058         (floatunsdidf2_mem): Ditto.
14059         (floatunsdisf2): Ditto.
14060         (floatunsdisf2_fcfidus): Ditto.
14061         (floatunsdisf2_mem): Ditto.
14062         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
14063         Use FCFID on 32-bit hosts that support it.
14064         (floatsidf2_internal): Ditto.
14065         (floatunssisf2): Ditto.
14066         (floatunssidf2): Ditto.
14067         (floatunssidf2_internal): Ditto.
14068         (floatsisf2): Ditto.
14069         (floatdidf2): Ditto.
14070         (floatdidf2_fpr): Ditto.
14071         (floatunsdidf2): Ditto.
14072         (floatdisf2): Ditto.
14073         (floatdisf2_fcfids): Ditto.
14074         (floatdisf2_internal1): Ditto.
14075         (fixuns_truncsfsi2): Delete, merge into common pattern for both
14076         SF/DF.  Add power7 support.
14077         (fix_truncsfsi2): Ditto.
14078         (fixuns_truncdfsi2): Ditto.
14079         (fixuns_truncdfdi2): Ditto.
14080         (fix_truncdfsi2): Ditto.
14081         (fix_truncdfsi2_internal): Ditto.
14082         (fix_truncdfsi2_internal_gfxopt): Ditto.
14083         (fix_truncdfsi2_mfpgpr): Ditto.
14084         (fctiwz): Ditto.
14085         (btruncdf2): Ditto.
14086         (btruncdf2_fpr): Ditto.
14087         (btructsf2): Ditto.
14088         (ceildf2): Ditto.
14089         (ceildf2_fpr): Ditto.
14090         (ceilsf2): Ditto.
14091         (floordf2): Ditto.
14092         (floordf2_fpr): Ditto.
14093         (floorsf2): Ditto.
14094         (rounddf2): Ditto.
14095         (rounddf2_fpr): Ditto.
14096         (roundsf2): Ditto.
14097         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
14098         (fix_trunc<mode>di2): Ditto.
14099         (fixuns_trunc<mode>si2): Ditto.
14100         (fixuns_trunc<mode>di2): Ditto.
14101         (fctiwz_<mode>): Ditto.
14102         (btrunc<mode>2): Ditto.
14103         (btrunc<mode>2_fpr): Ditto.
14104         (ceil<mode>2): Ditto.
14105         (ceil<mode>2_fpr): Ditto.
14106         (floor<mode>2): Ditto.
14107         (float<mode>2_fpr): Ditto.
14108         (round<mode>2): Ditto.
14109         (round<mode>2_fpr): Ditto.
14110         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
14111         (fixuns_trunc<mode>si2_stfiwx): Ditto.
14112         (fix_truncdfsi2_internal): Ditto.
14113         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
14114         converted value on stack, loaded into GPR, and then stored into
14115         the final destination.
14116         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
14117         FCTIDZ.
14118         (lrint<mode>di2): New insn, provide the lrint builtin functions.
14119         (ftruncdf2): Delete, unused.
14120         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
14121
14122         * config/rs6000/vsx.md (toplevel): Update copyright year.
14123         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
14124         (VSr3): Ditto.
14125
14126 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
14127             Jeremie Salvucci  <jeremie.salvucci@free.fr>
14128
14129         * gengtype.c (output_type_enum): Test the right union member.
14130
14131 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
14132
14133         PR target/41484
14134         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
14135         operands for operand 1.
14136         (sse4_1_extendv4qiv4si2): Ditto.
14137         (sse4_1_extendv2qiv2di2): Ditto.
14138         (sse4_1_extendv4hiv4si2): Ditto.
14139         (sse4_1_extendv2hiv2di2): Ditto.
14140         (sse4_1_extendv2siv2di2): Ditto.
14141         (sse4_1_zero_extendv8qiv8hi2): Ditto.
14142         (sse4_1_zero_extendv4qiv4si2): Ditto.
14143         (sse4_1_zero_extendv2qiv2di2): Ditto.
14144         (sse4_1_zero_extendv4hiv4si2): Ditto.
14145         (sse4_1_zero_extendv2hiv2di2): Ditto.
14146         (sse4_1_zero_extendv2siv2di2): Ditto.
14147         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
14148         (*sse4_1_extendv4qiv4si2): Ditto.
14149         (*sse4_1_extendv2qiv2di2): Ditto.
14150         (*sse4_1_extendv4hiv4si2): Ditto.
14151         (*sse4_1_extendv2hiv2di2): Ditto.
14152         (*sse4_1_extendv2siv2di2): Ditto.
14153         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
14154         (*sse4_1_zero_extendv4qiv4si2): Ditto.
14155         (*sse4_1_zero_extendv2qiv2di2): Ditto.
14156         (*sse4_1_zero_extendv4hiv4si2): Ditto.
14157         (*sse4_1_zero_extendv2hiv2di2): Ditto.
14158         (*sse4_1_zero_extendv2siv2di2): Ditto.
14159
14160 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14161
14162         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
14163         (mips_function_arg): Delete.
14164         (mips_function_arg_boundary): Take a const_tree.
14165         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
14166         (mips_arg_info): Likewise.
14167         (mips_setup_incoming_varargs): Call mips_function_arg_advance
14168         instead of FUNCTION_ARG_ADVANCE.
14169         (mips_function_arg_advance): Adjust prototype.  Make static.
14170         (mips_function_arg): Likewise.
14171         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14172         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
14173
14174 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14175
14176         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14177         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
14178         (function_arg): Delete.
14179         (function_arg_boundary): Take a const_tree.
14180         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
14181         (rs6000_spe_function_arg): Likewise.
14182         (rs6000_parm_start): Likewise.
14183         (rs6000_arg_size): Likewise.
14184         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
14185         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
14186         (rs6000_mixed_function_arg): Likewise.
14187         (function_arg): Rename to...
14188         (rs6000_function_arg): ...this.
14189         (function_arg_advance): Rename to...
14190         (rs6000_function_arg_advance_1): ...this
14191         (rs6000_function_arg_advance): New function.  Call it.
14192         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
14193         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
14194         (rs6000_function_value): Likewise.
14195         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14196
14197 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14198
14199         * config/arm/arm.md (enabled): Test the value of arch_enabled
14200         rather than just using it.
14201
14202 2010-08-27  Olivier Hainque  <hainque@adacore.com>
14203             Eric Botcazou  <ebotcazou@adacore.com>
14204
14205         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
14206         cover all the possible offsets from this base.
14207         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
14208
14209 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
14210
14211         PR tree-optimization/44485
14212         * calls.c (flags_from_decl_or_type): For const or pure
14213         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
14214         together with ECF_CONST resp. ECF_PURE.
14215         * builtins.c (expand_builtin): Use flags_from_decl_or_type
14216         instead of querying flags directly.
14217         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
14218         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
14219
14220 2010-08-26  Richard Guenther  <rguenther@suse.de>
14221
14222         PR tree-optimization/45255
14223         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
14224         and externals are also invariant.
14225
14226 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14227
14228         PR rtl-optimization/44858
14229         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
14230         newi2pat, make sure they don't affect newpat.
14231
14232         PR rtl-optimization/45400
14233         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
14234         SUBREG_REG if both modes are of MODE_INT class.
14235
14236 2010-08-25  Julian Brown  <julian@codesourcery.com>
14237
14238         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
14239         * config/arm/arm.md (generic_sched): No for Cortex-A5.
14240         (generic_vfp): Likewise.
14241         (cortex-a5.md): Include.
14242         * config/arm/cortex-a5.md: New.
14243
14244 2010-08-25  Richard Guenther  <rguenther@suse.de>
14245
14246         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
14247         * gimple.c (gimple_get_alias_set): Remove special handling
14248         for pointers.
14249
14250 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
14251
14252         PR middle-end/45355
14253         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
14254         dead_or_set_p when computing i0_feeds_i2_n.
14255
14256         * combine.c (find_split_point): Undo canonicalization of multiply-add
14257         to (minus x (mult)) when it seems likely that this will increase the
14258         chances of a split.
14259
14260 2010-08-25  Richard Guenther  <rguenther@suse.de>
14261
14262         PR lto/44562
14263         * lto-streamer.c (lto_record_common_node): Do not mess with
14264         TYPE_CANONICAL when not in lto.
14265         * gimple.c (gimple_register_type): Likewise.
14266
14267 2010-08-25  Richard Guenther  <rguenther@suse.de>
14268
14269         PR tree-optimization/45316
14270         * tree-ssa-pre.c (eliminate): Properly clean EH info.
14271
14272 2010-08-25  Richard Guenther  <rguenther@suse.de>
14273
14274         PR tree-optimization/45393
14275         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
14276         and clean EH info.  Avoid SSA update.
14277         (execute_cse_sincos): Cleanup the CFG if it has changed.
14278
14279 2010-08-25  Richard Guenther  <rguenther@suse.de>
14280
14281         PR middle-end/45379
14282         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
14283         TARGET_MEM_REF in alignment computation.
14284
14285 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14286
14287         PR tree-optimization/45059
14288         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
14289         type conversions from newop{1,2}.  Assert t is a comparison and
14290         newop{1,2} after the stripping are gimple vals.
14291
14292 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
14293
14294         * config/arm/iterators.md (VU, SE, V_widen_l): New.
14295         (V_unpack, US): New.
14296         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
14297         (vec_unpack<US>_lo_<mode>): Likewise.
14298         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
14299         (neon_vec_unpack<US>_lo_<mode>): Likewise.
14300         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
14301         (vec_widen_<US>mult_hi_<mode>): Likewise.
14302         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
14303         (neon_vec_<US>mult_hi_<mode>"): Likewise.
14304         (neon_unpack<US>_<mode>): Widening move intermediate step for
14305         vectorizing without -mvectorize-with-neon-quad.
14306         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
14307         for vectorizing without -mvectorize-with-neon-quad.
14308         * config/arm/predicates.md (vect_par_constant_high): Check for
14309         high-half lanes of a vector.
14310         (vect_par_constant_low): Check for low-half lanes of a vector.
14311
14312 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14313
14314         * tree-if-conv.c (struct ifc_dr): New.
14315         (IFC_DR): New.
14316         (DR_WRITTEN_AT_LEAST_ONCE): New.
14317         (DR_RW_UNCONDITIONALLY): New.
14318         (memref_read_or_written_unconditionally): Use the cached values
14319         when possible.
14320         (write_memref_written_at_least_once): Same.
14321         (if_convertible_loop_p): Initialize and free DR->aux fields.
14322
14323 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14324
14325         * gimple.c (gimple_could_trap_p_1): Not static anymore.
14326         Pass an extra bool parameter include_mem.
14327         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
14328         (gimple_assign_rhs_could_trap_p): Same.
14329         * gimple.h (gimple_could_trap_p_1): Declared.
14330         * tree-data-ref.h (same_data_refs_base_objects): New.
14331         (same_data_refs): New.
14332         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
14333         (write_memrefs_written_at_least_once): New.
14334         (ifcvt_memrefs_wont_trap): New.
14335         (operations_could_trap): New.
14336         (ifcvt_could_trap_p): New.
14337         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
14338         Gets a vector of data refs.
14339         (if_convertible_stmt_p): Same.
14340         (if_convertible_loop_p_1): New.
14341         (if_convertible_loop_p): Call if_convertible_loop_p_1.
14342
14343 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14344
14345         * common.opt (ftree-loop-if-convert-stores): New flag.
14346         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
14347         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
14348         the created statement before GSI.
14349         (if_convertible_phi_p): Allow virtual phi nodes when
14350         flag_loop_if_convert_stores is set.
14351         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
14352         Do not handle types that do not match is_gimple_reg_type.
14353         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
14354         when flag_loop_if_convert_stores is set, as LHS can contain
14355         memory refs.
14356         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
14357         to if_convertible_gimple_assign_stmt_p.
14358         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
14359         (replace_phi_with_cond_gimple_assign_stmt): Renamed
14360         predicate_scalar_phi.  Do not handle virtual phi nodes.
14361         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
14362         Call predicate_scalar_phi.
14363         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
14364         just after the labels for flag_loop_if_convert_stores, otherwise
14365         insert the predicate in the end of the BB.
14366         (predicate_mem_writes): New.
14367         (combine_blocks): Call predicate_all_scalar_phis.  When
14368         flag_loop_if_convert_stores is set, call predicate_mem_writes.
14369         (tree_if_conversion): Call mark_sym_for_renaming when
14370         flag_loop_if_convert_stores is set.
14371         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
14372         flag_loop_if_convert_stores is set.
14373
14374 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
14375
14376         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
14377         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
14378         (pa_function_value): Make static.
14379         (override_options): Rename to...
14380         (pa_option_override): ...this. Make static.
14381         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
14382         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
14383         TARGET_OPTION_OVERRIDE): Define.
14384         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
14385         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
14386         Remove.
14387         * config/pa/pa-protos.h (override_options): Remove.
14388
14389 2010-08-24  Richard Guenther  <rguenther@suse.de>
14390
14391         PR middle-end/45379
14392         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
14393         if addr->index is NULL or zero.
14394         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
14395         TARGET_MEM_REF more properly.
14396         (indirect_ref_may_alias_decl_p): Likewise.
14397         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
14398         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
14399
14400 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
14401
14402         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
14403         (m32c_override_options): Rename to...
14404         (m32c_option_override): ...this. Make static.
14405         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
14406         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
14407         Remove.
14408         * config/m32c/m32c-protos.h (m32c_override_options,
14409         m32c_function_value_regno_p): Remove.
14410
14411 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14412
14413         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
14414         Fix a typo in a previous commit.
14415
14416 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
14417
14418         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
14419         Pre-initialize innerloop_iters to one.
14420
14421 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14422
14423         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
14424         existing static function global.
14425
14426         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
14427         is changed to global.
14428
14429         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
14430         may_be_nonaddressable_p on base, and don't collect this reference
14431         if the address of the base could not be taken.
14432
14433 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
14434
14435         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
14436         enable the compiler to autovectorize mathmetical functions for
14437         power7 using the Mathematical Acceleration Subsystem library.
14438
14439         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
14440         handle which vector math library we have.
14441         (rs6000_override_options): Add -mveclibabi=mass support.
14442         (rs6000_builtin_vectorized_libmass): New function to handle auto
14443         vectorizing math functions that are in the MASS library.
14444         (rs6000_builtin_vectorized_function): Call it.
14445
14446         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
14447         -mveclibabi=mass.
14448
14449 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14450
14451         PR boehm-gc/34544
14452         * gthr-posix.h (__gthread_active_init): Delete.
14453         (__gthread_active_p): Do activity check here.
14454         Don't include errno.h on hppa-hpux.  Update comment.
14455         * gthr-posix95.h (__gthread_active_init): Delete.
14456         (__gthread_active_p): Do activity check here.
14457         Don't include errno.h on hppa-hpux.  Update comment.
14458         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
14459         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
14460         add -lpthread when -mt or -pthread is specified.
14461         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
14462         (LINK_GCC_C_SEQUENCE_SPEC): Define.
14463         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
14464         (stublib.c, pthread_default_stacksize_np-stub.o,
14465         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
14466         $(T)libgcc_stub.a): Add methods.
14467         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
14468         (stublib.c, pthread_default_stacksize_np-stub.o,
14469         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
14470         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
14471         pthread_mutex_unlock): New stubs.
14472
14473 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
14474
14475         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
14476         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
14477         options.
14478         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
14479         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
14480         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
14481         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
14482         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
14483         "-l".
14484         * cppspec.c: Include opts.h.
14485         (lang_specific_driver): Use cl_decoded_option structures.
14486         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
14487         * doc/tm.texi: Regenerate.
14488         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
14489         (driver_handle_option): Allow driver options needing no special
14490         processing.
14491         (process_command): Decode options before call to
14492         lang_specific_driver.  Pass decoded options to
14493         lang_specific_driver.
14494         * gcc.h (lang_specific_driver): Update prototype.
14495         * gccspec.c: Include opts.h.
14496         (lang_specific_driver): Use cl_decoded_option structures.
14497         * opts-common.c (option_ok_for_language, generate_option,
14498         generate_option_input_file): New.
14499         (decode_cmdline_option): Use option_ok_for_language.
14500         (decode_cmdline_options_to_array): Use generate_option_input_file.
14501         (handle_generated_option): Use generate_option.
14502         * opts.h (generate_option, generate_option_input_file): Declare.
14503
14504 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
14505
14506         * config/mips/mips.c (mips_override_options): Rename to...
14507         (mips_option_override): ...this. Make static.
14508         (TARGET_OPTION_OVERRIDE): Define.
14509         (mips_in_small_data_p): Update comment.
14510         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
14511         (FIXED_REGISTERS): Update comment.
14512         * config/mips/mips-protos.h (mips_override_options): Remove.
14513
14514 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14515
14516         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
14517
14518 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14519
14520         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
14521         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
14522
14523 2010-08-20  Jan Hubicka  <jh@suse.cz>
14524
14525         * tree-pass.h (pass_ipa_cdtor_merge): New function.
14526         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
14527         heap allocated.
14528         (record_cdtor_fn): Move to ipa.c; do not test for
14529         have_ctors_dtors.
14530         (build_cdtor): Move to ipa.c; add code avoiding construction
14531         when target have ctors/dtors and there is only one ctor/dtor at given
14532         priority.
14533         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
14534         sort; reverse order of constructors.
14535         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
14536         (cgraph_finalize_function): Do not call record_cdtor_fn.
14537         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
14538         (cgraph_build_static_cdtor): Move to ipa.c.
14539         * ipa.c: Include target.h and tree-iterator.h.
14540         (cgraph_build_static_cdtor, static_ctors, static_dtors,
14541         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
14542         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
14543         pass_ipa_cdtor_merge): New.
14544         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
14545         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
14546         bounds access.
14547
14548 2010-08-20  Jan Hubicka  <jh@suse.cz>
14549
14550         PR c++/45307
14551         PR c++/17736
14552         * cgraph.h (cgraph_only_called_directly_p,
14553         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
14554         static cdtors.
14555         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
14556         are not needed.
14557         (cgraph_finalize_function): Static cdtors are reachable.
14558         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
14559
14560 2010-08-20  Jan Hubicka  <jh@suse.cz>
14561
14562         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
14563         flag_wpa.
14564         * lto-streamer-out.c (lto_output): Likewise.
14565         * passes.c (ipa_write_optimization_summaries): Initialize statement
14566         uids.
14567
14568 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14569
14570         * tree.h (alias_diag_flags): New enum.
14571         (alias_pair): Add an 'emitted_diags' field.
14572         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
14573         (assemble_alias): Initialize emitted_diags of new pairs.
14574
14575 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
14576
14577         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
14578         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14579         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14580         (STACK_CHECK_PROTECT): Define.
14581         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
14582         (output_probe_stack_range): Likewise.
14583         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
14584         builtin stack checking is enabled.
14585         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
14586         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
14587         (probe_stack_range): New insn.
14588
14589 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
14590
14591         PR target/45336
14592         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
14593         short first.
14594
14595         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
14596         char first.
14597
14598 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14599
14600         PR target/45336
14601         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
14602         to cover zero extension into 64-bit register.
14603         (*sse2_pextrw): Likewise.
14604         (*sse4_1_pextrd_zext): New insn.
14605
14606 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14607
14608         revert r163410, partially revert r163267.
14609         * config/rs6000/darwin.h (LIB_SPEC): Remove.
14610         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
14611         Darwin versions.
14612
14613 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14614
14615         PR middle-end/44974
14616         * builtins.c (expand_builtin): Don't optimize away
14617         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
14618
14619 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
14620
14621         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
14622         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
14623         alternative 1 of operand 2.
14624
14625 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14626             Paolo Bonzini  <bonzini@gnu.org>
14627
14628         * simplify-rtx.c (simplify_unary_operation_1): Optimize
14629         (sign_extend (zero_extend (...)) and
14630         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
14631
14632 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14633
14634         PR rtl-optimization/45353
14635         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
14636         after bb_note is a BARRIER.
14637
14638 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14639
14640         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
14641         linking libgcc.a.
14642
14643 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14644             Michael Matz  <matz@suse.de>
14645
14646         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
14647
14648 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14649
14650         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
14651         (ggc_mark_roots): ...here.
14652
14653 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14654
14655         * vec.h (FOR_EACH_VEC_ELT): Define.
14656         * c-decl.c: Use it.
14657         * cfgloop.c: Likewise.
14658         * cfgloopmanip.c: Likewise.
14659         * cgraph.c: Likewise.
14660         * cgraphunit.c: Likewise.
14661         * combine.c: Likewise.
14662         * config/bfin/bfin.c: Likewise.
14663         * config/mips/mips.c: Likewise.
14664         * config/rs6000/rs6000.c: Likewise.
14665         * dbxout.c: Likewise.
14666         * df-scan.c: Likewise.
14667         * dominance.c: Likewise.
14668         * dse.c: Likewise.
14669         * dwarf2out.c: Likewise.
14670         * except.c: Likewise.
14671         * expr.c: Likewise.
14672         * function.c: Likewise.
14673         * gcse.c: Likewise.
14674         * genattr.c: Likewise.
14675         * ggc-common.c: Likewise.
14676         * gimplify.c: Likewise.
14677         * graphite-blocking.c: Likewise.
14678         * graphite-clast-to-gimple.c: Likewise.
14679         * graphite-dependences.c: Likewise.
14680         * graphite-interchange.c: Likewise.
14681         * graphite-poly.c: Likewise.
14682         * graphite-scop-detection.c: Likewise.
14683         * graphite-sese-to-poly.c: Likewise.
14684         * graphite.c: Likewise.
14685         * haifa-sched.c: Likewise.
14686         * ifcvt.c: Likewise.
14687         * implicit-zee.c: Likewise.
14688         * ipa-prop.c: Likewise.
14689         * ipa-struct-reorg.c: Likewise.
14690         * ipa.c: Likewise.
14691         * ira-build.c: Likewise.
14692         * ira-color.c: Likewise.
14693         * ira-emit.c: Likewise.
14694         * lambda-code.c: Likewise.
14695         * loop-invariant.c: Likewise.
14696         * loop-unroll.c: Likewise.
14697         * lower-subreg.c: Likewise.
14698         * lto-cgraph.c: Likewise.
14699         * lto-opts.c: Likewise.
14700         * lto-streamer-in.c: Likewise.
14701         * lto-streamer-out.c: Likewise.
14702         * lto-streamer.c: Likewise.
14703         * lto-symtab.c: Likewise.
14704         * matrix-reorg.c: Likewise.
14705         * opts.c: Likewise.
14706         * predict.c: Likewise.
14707         * print-tree.c: Likewise.
14708         * sdbout.c: Likewise.
14709         * sel-sched-dump.c: Likewise.
14710         * sel-sched-ir.c: Likewise.
14711         * sel-sched.c: Likewise.
14712         * sese.c: Likewise.
14713         * stor-layout.c: Likewise.
14714         * tree-cfg.c: Likewise.
14715         * tree-cfgcleanup.c: Likewise.
14716         * tree-chrec.c: Likewise.
14717         * tree-data-ref.c: Likewise.
14718         * tree-emutls.c: Likewise.
14719         * tree-inline.c: Likewise.
14720         * tree-into-ssa.c: Likewise.
14721         * tree-loop-distribution.c: Likewise.
14722         * tree-loop-linear.c: Likewise.
14723         * tree-mudflap.c: Likewise.
14724         * tree-outof-ssa.c: Likewise.
14725         * tree-parloops.c: Likewise.
14726         * tree-predcom.c: Likewise.
14727         * tree-pretty-print.c: Likewise.
14728         * tree-scalar-evolution.c: Likewise.
14729         * tree-ssa-live.c: Likewise.
14730         * tree-ssa-loop-im.c: Likewise.
14731         * tree-ssa-loop-ivcanon.c: Likewise.
14732         * tree-ssa-loop-ivopts.c: Likewise.
14733         * tree-ssa-loop-manip.c: Likewise.
14734         * tree-ssa-loop-niter.c: Likewise.
14735         * tree-ssa-loop-prefetch.c: Likewise.
14736         * tree-ssa-phiprop.c: Likewise.
14737         * tree-ssa-pre.c: Likewise.
14738         * tree-ssa-reassoc.c: Likewise.
14739         * tree-ssa-sccvn.c: Likewise.
14740         * tree-ssa-structalias.c: Likewise.
14741         * tree-ssa.c: Likewise.
14742         * tree-vect-data-refs.c: Likewise.
14743         * tree-vect-loop-manip.c: Likewise.
14744         * tree-vect-loop.c: Likewise.
14745         * tree-vect-patterns.c: Likewise.
14746         * tree-vect-slp.c: Likewise.
14747         * tree-vect-stmts.c: Likewise.
14748         * tree-vrp.c: Likewise.
14749         * tree.c: Likewise.
14750         * value-prof.c: Likewise.
14751         * var-tracking.c: Likewise.
14752         * varasm.c: Likewise.
14753         * vmsdbgout.c: Likewise.
14754
14755 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
14756             Richard Guenther  <richard.guenther@gmail.com>
14757
14758         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
14759         copy the src value and return a copy.
14760         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
14761         (C++ Volatiles): Adjust to describe C++ semantics only.
14762
14763 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
14764
14765         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
14766         be zero or nonzero.
14767         * doc/tm.texi: Regenerate.
14768         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
14769         * df-scan.c (df_get_exit_block_use_set), reginfo.c
14770         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
14771         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
14772         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
14773         to 1.
14774
14775 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14776
14777         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
14778         an extra nop past a sibling call at the very end.
14779
14780 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14781
14782         PR bootstrap/45350
14783         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
14784         a comment.
14785
14786 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14787
14788         * target.def (function_arg, function_incoming_arg): Remove const
14789         qualifier on CUMULATIVE_ARGS parameter.
14790         * targhooks.h (default_function_arg, default_function_incoming_arg):
14791         Likewise.
14792         * targhooks.c (default_function_arg, default_function_incoming_arg):
14793         Likewise.
14794         * config/i386/i386.c (ix86_function_arg): Likewise.
14795
14796 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
14797
14798         PR target/45336
14799         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
14800         SIGN_EXTENDs or ZERO_EXTENDs.
14801
14802 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14803
14804         PR target/42172
14805         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
14806         Take its cost into account if nonnull.
14807         (insn_a_feeds_b): New static function.
14808         (combine_instructions): Look for four-insn combinations.
14809         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
14810         them into account when computing all_adjacent and looking for other
14811         uses.
14812         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
14813         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
14814         (try_combine): New arg I0.  Handle four-insn combinations.
14815         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
14816         like ELIM_I1.
14817
14818 2010-08-19  Jason Merrill  <jason@redhat.com>
14819
14820         PR c++/45307
14821         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
14822         if ctor is empty.
14823         (gimplify_modify_expr_rhs): Adjust.
14824
14825 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14826
14827         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
14828         bitmap_bit_p.
14829         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
14830         * dominance.c (iterate_fix_dominators): Likewise.
14831         * dse.c (set_usage_bits): Likewise.
14832         (set_position_unneeded, record_store): Likewise.
14833         * gimple-fold.c (get_maxval_strlen): Likewise.
14834         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
14835         * ipa-inline.c (update_caller_keys): Likewise.
14836         * ipa-split.c (verify_non_ssa_vars): Likewise.
14837         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
14838         (close_type_exposed_parameter, close_type_full_escape): Likewise.
14839         (close_addressof_down): Likewise.
14840         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
14841         (setup_allocno_left_conflicts_size): Likewise.
14842         (ira_reassign_conflict_allocnos): Likewise.
14843         (ira_reassign_pseudos): Likewise.
14844         * ira-emit.c (change_loop): Likewise.
14845         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
14846         * lto-streamer-out.c (write_symbol): Likewise.
14847         * predict.c (expr_expected_value_1): Likewise.
14848         * regstat.c (regstat_bb_compute_ri): Likewise.
14849         * sel-sched.c (create_block_for_bookkeeping): Likewise.
14850         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
14851         * stmt.c (expand_case): Likewise.
14852         * tree-eh.c (emit_eh_dispatch): Likewise.
14853         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
14854         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
14855         Likewise.
14856         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
14857         (rdg_build_components): Likewise.
14858         * tree-object-size.c (collect_object_sizes_for): Likewise.
14859         * tree-sra.c (convert_callers): Likewise.
14860         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
14861         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
14862         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
14863
14864 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14865
14866         * config/i386/i386.md (*lea_1): Use P mode iterator.
14867         (lea add splitter): Also handle DImode operands.
14868         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
14869         predicate.  Do not use ix86_lea_for_add_ok.
14870         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
14871         (lea ashift splitter): Also handle DImode operands.
14872         (DImode lea ashift splitter): Remove splitter.
14873
14874 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14875
14876         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
14877         ix86_binary_operator_ok.
14878
14879 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
14880
14881         PR rtl-optimization/44691
14882         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
14883         is not a register.
14884
14885 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14886
14887         PR target/45070
14888         * config/arm/arm.c (arm_output_epilogue): Ensure that return
14889          value of size 1-3 is handled correctly.
14890
14891 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14892
14893         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
14894         type for the conditional has wide enough range.
14895
14896 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14897
14898         PR target/45327
14899         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
14900         ix86_binary_operator_ok.
14901
14902 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14903
14904         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
14905         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
14906         code to output insn mnemonic.  Fix comment.
14907         (*addsi_1_zext): Add r-r-0 alternative 1.
14908         <TYPE_LEA>: Split insn to lea.
14909         <default>: Handle alternative 1.
14910         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
14911         multi-level if_then_else RTX to set "type" attribute.
14912         <default>: Handle alternative 2.
14913         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
14914         Use cond RTX instead of multi-level if_then_else RTX to set
14915         "type" attribute.
14916         <default>: Handle alternatives 2 and 4.
14917         (lea splitters): Update calls to ix86_lea_for_add_ok.
14918
14919         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
14920         argument.
14921         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
14922
14923 2010-08-18  Richard Guenther  <rguenther@suse.de>
14924
14925         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
14926         use operand helpers.
14927
14928 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
14929
14930         PR middle-end/45292
14931         * optabs.c (expand_bool_compare_and_swap): Expand pending
14932         pops before trying the optab.
14933
14934 2010-08-18  Yao Qi  <yao@codesourcery.com>
14935
14936         PR target/45094
14937         * config/arm/arm.c (output_move_double): Fix typo generating
14938         instructions ('ldr'->'str').
14939
14940 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
14941
14942         PR rtl-optimization/42575
14943         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
14944         live ranges.
14945
14946 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14947
14948         * config/arm/arm-protos.h (arm_expand_sync): New.
14949         (arm_output_memory_barrier, arm_output_sync_insn): New.
14950         (arm_sync_loop_insns): New.
14951         * config/arm/arm.c (FL_ARCH7): New.
14952         (FL_FOR_ARCH7): Include FL_ARCH7.
14953         (arm_arch7): New.
14954         (arm_print_operand): Support %C markup.
14955         (arm_legitimize_sync_memory): New.
14956         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
14957         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
14958         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
14959         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
14960         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
14961         (arm_process_output_sync_insn, arm_output_sync_insn): New.
14962         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
14963         * config/arm/arm.h (struct arm_sync_generator): New.
14964         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
14965         (TARGET_HAVE_MEMORY_BARRIER): New.
14966         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
14967         * config/arm/arm.md: Include sync.md.
14968         (UNSPEC_MEMORY_BARRIER): New.
14969         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
14970         (VUNSPEC_SYNC_OP):New.
14971         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
14972         (sync_result, sync_memory, sync_required_value): New attributes.
14973         (sync_new_value, sync_t1, sync_t2): Likewise.
14974         (sync_release_barrier, sync_op): Likewise.
14975         (length): Add logic to length attribute defintion to call
14976         arm_sync_loop_insns when appropriate.
14977         * config/arm/sync.md: New file.
14978
14979 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14980
14981         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
14982         ENABLE_TREE_CHECKING.
14983         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
14984         and GCC >= 4.3.
14985
14986 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
14987
14988         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
14989         or optimizing for size, always avoid lea if possible.
14990
14991         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
14992
14993 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
14994
14995         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
14996         Dunmmy function with NULL return unless the target is
14997         OSX >= 10.6 (Darwin10).
14998
14999 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
15000
15001         * gcc.c (spec_function): Add remove-outfile.
15002         (remove_outfile_spec_function): New function.
15003         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
15004         * invoke.texi (replace-outfile): Document.
15005
15006 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
15007
15008         PR target/45296
15009         * reginfo.c (globalize_reg): Reject stack registers.
15010
15011 2010-08-17  Richard Guenther  <rguenther@suse.de>
15012
15013         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
15014         list of conditional equivalences.
15015         (free_all_edge_infos): Adjust.
15016         (record_equivalences_from_incoming_edge): Likewise.
15017         (record_cond): Likewise.
15018         (build_and_record_new_cond): Likewise.
15019         (record_conditions): Likewise.
15020         (dom_opt_leave_block): Likewise.
15021
15022 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
15023
15024         * doc/invoke.texi (ms-extension): Add documentation.
15025
15026 2010-08-17  Richard Guenther  <rguenther@suse.de>
15027
15028         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
15029
15030 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
15031
15032         PR c/40563
15033         * c-decl.c (diagnose_uninitialized_cst_member): New function.
15034         (finish_decl): Use it to issue a -Wc++-compat warning about
15035         uninitialized const field in struct or union.
15036
15037         (finish_struct): Use strip_array_types.
15038
15039 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
15040
15041         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
15042         functions.
15043         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
15044         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
15045         call block_nreverse here.
15046         (blocks_nreverse): Rename decl temporary to block.
15047
15048 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
15049
15050         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
15051         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
15052         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
15053         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
15054         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
15055         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
15056         thumb2_iorsi3): Delete.
15057         (orsi_notsi_si): No longer a named pattern.
15058         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
15059         * config/arm/predicates.md (shift_amount_operand): New.
15060         (mult_operator): New.
15061         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
15062         attr enabled): New.
15063         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
15064         arch matches t2.
15065         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
15066         (not_shiftsi_compare0): Likewise, renamed from
15067         arm_notsi_shiftsi_compare0.
15068         (not_shiftsi_compare0_scratch): Likweise, renamed from
15069         arm_notsi_shiftsi_compare0_scratch.
15070         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
15071         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
15072         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
15073         so that the register alternative is disabled when the shift_operator
15074         is MULT.  Use "M" as the constraint for constants.
15075         (arith_shiftsi splitter): Enable for TARGET_32BIT.
15076         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
15077         constraint for constants.
15078         (arith_shiftsi_compare0_scratch): Likewise.
15079         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
15080         Handle Thumb2 alternative.
15081
15082 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15083
15084         * doc/options.texi (NoDriverArg): Document.
15085         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
15086         -MDX and -MMDX.
15087         * opt-functions.awk (switch_flags): Handle NoDriverArg.
15088         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
15089         marking for CL_NO_DRIVER_ARG options when in the driver.
15090         * opts.h (CL_NO_DRIVER_ARG): Define.
15091         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
15092         CL_COMMON): Update values.
15093
15094 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15095
15096         * common.opt: Add driver options.
15097         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
15098         * doc/options.texi (Driver, RejectDriver): Document.
15099         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
15100         print_prog_name, print_multi_directory, print_sysroot,
15101         print_multi_os_directory, print_multi_lib,
15102         print_sysroot_headers_suffix, report_times, combine_flag,
15103         use_pipes, wrapper_string): Remove.
15104         (save_switch, driver_unknown_option_callback,
15105         driver_wrong_lang_callback, driver_post_handling_callback,
15106         driver_handle_option): New.
15107         (spec_lang, last_language_n_infiles): Make file-scope static
15108         instead of local to process_command.
15109         (process_command): Use decode_cmdline_options_to_array and
15110         read_cmdline_option for option processing.  Compute have_c in
15111         prescan of decoded options.
15112         * opt-functions.awk (switch_flags): Handle Driver and
15113         RejectDriver.
15114         (var_type, var_type_struct): Handle Separate options as generating
15115         const char * variables.
15116         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
15117         CL_TARGET to be passed by caller if required.
15118         (decode_cmdline_options_to_array): Update comment.
15119         * opts.c (complain_wrong_lang): Handle options only valid for the
15120         driver.
15121         (decode_options): Update call to decode_cmdline_options_to_array.
15122         (print_filtered_help): Ignore driver-only options.
15123         (print_specific_help): Ignore CL_DRIVER.
15124         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
15125         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
15126         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
15127         Update values.
15128
15129 2010-08-16  Richard Guenther  <rguenther@suse.de>
15130
15131         * tree-cfg.c (verify_types_in_gimple_reference): Verify
15132         TARGET_MEM_REF a bit.
15133         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
15134         (create_mem_ref_raw): Always create TMR_OFFSET, store the
15135         alias pointer type via it.
15136         (copy_mem_ref_info): Adjust.
15137         (maybe_fold_tmr): Likewise.
15138         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
15139         (reference_alias_ptr_type): Likewise.
15140         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
15141         adjust documentation of TMR_OFFSET operand.
15142         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
15143         use the alias pointer type.
15144         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
15145         initialize mem attrs but the TMR itself.
15146         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
15147         similar to MEM_REF.
15148         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
15149         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
15150         (unshare_and_remove_ssa_names): Likewise.
15151         (copy_ref_info): Adjust.
15152         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
15153         TARGET_MEM_REF case.
15154         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
15155         at TMR_ORIGINAL.
15156         * tree.h (TMR_ORIGINAL): Remove.
15157         * gimple.c (get_base_address): For TARGET_MEM_REF with a
15158         symbol return that.
15159         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
15160         with a symbol.
15161         (get_addr_base_and_unit_offset): Likewise.
15162         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
15163         TARGET_MEM_REFs.
15164         (indirect_ref_may_alias_decl_p): Likewise.
15165         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
15166
15167 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
15168
15169         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
15170         with GCC version 4.6, the default setting (when not optimizing
15171         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
15172         been changed to -fomit-frame-pointer.
15173
15174 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
15175
15176         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
15177         Darwin10.  Do not link libgcc.a for Darwin >= 9.
15178
15179 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
15180
15181         * doc/invoke.texi (Warning Options): Fix terminology and markup
15182         in the description of how unknown warning options are handled.
15183
15184 2010-08-15  Ira Rosen  <irar@il.ibm.com>
15185
15186         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
15187         in basic blocks.
15188         (vect_supportable_dr_alignment): Check alignment for basic blocks.
15189         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
15190         data references.
15191         (vect_bb_vectorization_profitable_p): New function.
15192         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
15193         check if it's worthwhile to vectorize the basic block.
15194
15195 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
15196
15197         * reload.h (register_move_cost, memory_move_secondary_cost,
15198         secondary_reload_class): Adjust prototype.
15199         * rtl.h (reg_class_subset_p): Adjust prototype.
15200         * reload.c (secondary_reload_class): Change arguments type from
15201         enum reg_class to reg_class_t. Change result type to reg_class_t.
15202         * reginfo.c (register_move_cost, reg_class_subset_p): Change
15203         arguments type from enum reg_class to reg_class_t.
15204         (memory_move_secondary_cost): Change arguments type from
15205         enum reg_class to reg_class_t. Change type of saved_flags to
15206         reg_class_t.
15207
15208         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
15209         Remove macros.
15210         (mips_cost): Remove.
15211         (struct mips_rtx_cost_data): Moved to mips.c.
15212         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
15213         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
15214         (mips_cost): Make static.
15215         (mips_canonicalize_move_class): Change argument type to reg_class_t.
15216         Change result type to reg_class_t.
15217         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
15218         type from enum reg_class to reg_class_t.
15219         (mips_register_move_cost): Make static. Change arguments
15220         type from enum reg_class to reg_class_t.
15221         (mips_memory_move_cost): New function.
15222         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15223
15224 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
15225
15226         PR rtl-optimization/43358
15227         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
15228         of a single hard register, using simplify_subreg_regno to decide
15229         what that register should be.
15230
15231 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
15232
15233         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
15234         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
15235         (loongson_pmull<V_suffix>): Rename to...
15236         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
15237
15238 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
15239
15240         * configure.ac: Enable -fomit-frame-pointer on darwin
15241         which support dwarf2.
15242         * config/i386/i386.c (override_options): Same.
15243
15244 2010-08-13  Jie Zhang  <jie@codesourcery.com>
15245
15246         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
15247
15248 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
15249
15250         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
15251         -MMD.
15252
15253 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
15254
15255         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
15256         up dot_prod pattern searching if a stmt is outside the loop.
15257
15258 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
15259             Uros Bizjak  <ubizjak@gmail.com>
15260
15261         * config.gcc: Handle --enable-frame-pointer.
15262
15263         * configure.ac: Add --enable-frame-pointer.
15264         * configure: Regenerated.
15265
15266         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
15267         (override_options): If not configured with --enable-frame-pointer,
15268         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
15269         optimizing for size), -fasynchronous-unwind-tables and
15270         -maccumulate-outgoing-args by default.
15271
15272 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15273
15274         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
15275
15276         PR middle-end/45262
15277         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
15278         -a overflows.  Normalize the range.
15279
15280 2010-08-12  Richard Guenther  <rguenther@suse.de>
15281
15282         PR tree-optimization/45232
15283         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
15284         for types with undefined overflow.
15285         (reassociate_bb): Allow re-associating of bit and min/max
15286         operations for types with undefined overflow.
15287         * tree-ssa-forwprop.c (associate_plusminus): New function.
15288         (tree_ssa_forward_propagate_single_use_vars): Call it.
15289
15290 2010-08-12  Richard Guenther  <rguenther@suse.de>
15291
15292         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
15293         * tree-ssa-alias.c (get_ptr_info): Move ...
15294         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
15295         align and misalign fields conservatively.
15296         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
15297         derive alignment information.
15298         (evaluate_stmt): Derive alignment information from memory
15299         allocation functions.
15300         * tree.h (get_pointer_alignment): Make unsigned.
15301         * builtins.c (get_object_alignment): Use alignment information we
15302         have computed for pointers.
15303         (get_pointer_alignment): Likewise.  Make conservative, return
15304         and unsigned value.
15305         (expand_builtin_strlen): Adjust.
15306         (expand_builtin_memcmp): Likewise.
15307         (expand_builtin_strcmp): Likewise.
15308         (expand_builtin_strncmp): Likewise.
15309         (get_builtin_sync_mem): Use at least mode alignment.
15310         (fold_builtin_memset): Adjust.
15311         (fold_builtin_memory_op): Likewise.
15312         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
15313         information also dump pointer alignment knowledge.
15314         (dump_gimple_stmt): Likewise.
15315
15316 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
15317
15318         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
15319         (EMPTY_FIELD_BOUNDARY): Remove.
15320         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
15321
15322 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15323
15324         PR debug/45259
15325         * caller-save.c (save_call_clobbered_regs): Only swap notes with
15326         DEBUG_INSNs if n_regs_saved.
15327
15328 2010-08-12  Wei Guozhi  <carrot@google.com>
15329
15330         PR target/44999
15331         * config/arm/arm.md (andsi3): Change to zero extension if possible.
15332         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
15333
15334 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
15335
15336         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
15337
15338         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
15339
15340 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15341
15342         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
15343         the case removed in the previous patch, when the only phi argument
15344         is defined in the same loop as the phi node itself.  Handle it
15345         separately from the invariant case by both propagating it outside
15346         the region and replacing the phi node with an assign.
15347
15348 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15349
15350         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
15351         constant phi nodes with one argument are is_gimple_min_invariant
15352         and SSA_NAME_IS_DEFAULT_DEF.
15353
15354 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15355
15356         * graphite-cloog-util.c (oppose_constraint):
15357         Extend loop counter's value range (CLOOG_ORG).
15358         (cloog_matrix_to_ppl_constraint): Same.
15359         (new_Constraint_System_from_Cloog_matrix): Same.
15360         * graphite-cloog-compat.h (matrix_num_type): New.
15361
15362 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15363
15364         * graphite.c (graphite_initialize): Do not initialize
15365         CLooG and initialize the Parma Polyhedra Library
15366         manually when using CLOOG_ORG.
15367         (graphite_finalize): Do not finalize CLooG and finalize
15368         the Parma Polyhedra Library manually when using CLOOG_ORG.
15369         * graphite-cloog-compat.h (cloog_initialize): Hide function
15370         when using CLOOG_ORG.
15371         (cloog_finalize): Same.
15372
15373 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15374
15375         * graphite-clast-to-gimple.c (free_scattering): Change
15376         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
15377         (CLOOG_ORG).
15378         (build_cloog_prog): Same.
15379         * graphite-cloog-compat.h (cloog_domain): Removed.
15380         (cloog_scattering): New.
15381         (cloog_set_domain): Removed.
15382         (cloog_set_scattering): New.
15383         (cloog_next_domain): Removed.
15384         (cloog_next_scattering): New.
15385         (cloog_set_next_domain): Removed.
15386         (cloog_set_next_scattering): New.
15387         (CloogScatteringList): New.
15388         (CloogScattering): New.
15389         (cloog_scattering_free): New.
15390         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
15391         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
15392         New.
15393
15394 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15395
15396         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
15397         CloogState.
15398         (set_cloog_options): Same.
15399         (print_clast_stmt): Same.
15400         (scop_to_clast): Same.
15401         (print_generated_program): Same.
15402         (gloog): Same.
15403         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
15404         (scop_to_clast): Extend with CloogState.
15405         * graphite-cloog-util.c: Include graphite-cloog-compat.h
15406         (new_Cloog_Domain_from_ppl_Polyhedron):
15407         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
15408         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
15409         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15410         * graphite-cloog-util.h (build_cloog_prog): Same.
15411         * graphite-cloog-copat.h (build_cloog_prog): New.
15412         (CloogState): New.
15413         (cloog_state_malloc): New.
15414         (cloog_state_free): New.
15415         (cloog_loop_malloc): New.
15416         (cloog_options_malloc): New.
15417         (cloog_statement_alloc): New.
15418         (cloog_domain_from_cloog_matrix): New.
15419         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
15420         (new_Cloog_Domain_from_ppl_Polyhedron): New.
15421
15422 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15423
15424         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
15425         type of NAME now depends on used CLooG version.
15426         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
15427         (gcc_type_for_clast_expr): Same.
15428         (print_clast_stmt): Replace pprint with clast_pprint.
15429         * graphite-cloog-compat.h: Provide compatibility macros for
15430         CLooG Legacy.
15431         (clast_name_p): New.
15432         (clast_expr_term): New.
15433         (clast_expr_red): New.
15434         (clast_expr_bin): New.
15435         (clast_pprint): New.
15436
15437 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15438
15439         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
15440         compatible to newer CLooG releases (CLOOG_ORG).
15441         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
15442         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
15443         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
15444         (build_cloog_prog) : New.
15445         (cloog_program_extract_scalars): New.
15446         (cloog_program_scatter): New.
15447
15448 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15449
15450         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
15451         conditionally (CLOOG_ORG).
15452         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
15453         (cloog_statement_usr): New.
15454         (cloog_domain): Same.
15455         (cloog_set_domain): Same.
15456         (cloog_next_domain): Same.
15457         (cloog_set_next_domain): Same.
15458         (cloog_program_nb_scattdims): Same.
15459         (cloog_program_set_nb_scattdims): Same.
15460         (cloog_program_names): Same.
15461         (cloog_program_set_names): Same.
15462         (cloog_program_set_context): Same.
15463         (cloog_program_set_loop): Same.
15464         (cloog_program_blocklist): Same.
15465         (cloog_program_set_blocklist): Same.
15466         (cloog_program_scaldims): Same.
15467         (cloog_program_set_scaldims): Same.
15468         (cloog_names_nb_parameters): Same.
15469         (cloog_names_set_nb_parameters): Same.
15470         (cloog_names_parameters): Same.
15471         (cloog_names_set_parameters): Same.
15472         (cloog_names_set_nb_iterators): Same.
15473         (cloog_names_set_iterators): Same.
15474         (cloog_names_set_nb_scattering): Same.
15475         (cloog_names_set_scattering): Same.
15476         (cloog_statement_set_usr): Same.
15477         (cloog_loop_set_next): Same.
15478         (cloog_loop_set_domain): Same.
15479         (cloog_loop_set_block): Same.
15480         (cloog_block_list_next): Same.
15481         (cloog_block_list_set_next):
15482         (cloog_block_list_set_block): Same.
15483
15484 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15485
15486         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
15487         a bool.
15488         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
15489         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
15490         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
15491         when something has been changed.
15492         (rewrite_commutative_reductions_out_of_ssa): Same.
15493
15494 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15495
15496         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
15497         handle the case when def is in the sese region.
15498         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
15499         for invariant expressions.
15500         (rewrite_cross_bb_phi_deps): Removed.
15501         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
15502         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
15503         rewrite_cross_bb_phi_deps.
15504
15505 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15506
15507         * graphite-sese-to-poly.c
15508         (rewrite_commutative_reductions_out_of_ssa_loop): Call
15509         scev_analyzable_p only on is_gimple_reg
15510
15511 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15512
15513         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
15514         (rewrite_close_phi_out_of_ssa): Propagate constant values or
15515         parametric expressions outside the scop region.
15516         (rewrite_cross_bb_scalar_deps): Same.
15517         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
15518
15519 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15520
15521         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
15522         SSA_NAME_DEF_STMT only on SSA_NAMEs.
15523
15524 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15525
15526         * tree-scalar-evolution.c (instantiate_scev_name): Do not
15527         instantiate default definitions.
15528
15529 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
15530             Sebastian Pop  <sebastian.pop@amd.com>
15531
15532         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
15533         (loop_exits_from_bb_p): New.
15534         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
15535         (loop_exits_from_bb_p): Declared.
15536         * graphite-scop-detection.c (scopdet_basic_block_info): Call
15537         loop_exits_to_bb_p.
15538
15539 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15540
15541         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
15542         extra parameter for the region.  Call scev_analyzable_p.
15543         (rewrite_reductions_out_of_ssa): Update call to
15544         rewrite_close_phi_out_of_ssa.
15545         (rewrite_cross_bb_phi_deps): Same.
15546         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
15547         parameter for the region.  Call scev_analyzable_p.
15548         (rewrite_commutative_reductions_out_of_ssa): Update call to
15549         rewrite_commutative_reductions_out_of_ssa_loop.
15550
15551 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15552
15553         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
15554
15555 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15556
15557         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
15558         SSA scalar phi nodes that can be scev_analyzable_p.
15559
15560 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15561
15562         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
15563         handle SSA_NAME_IS_DEFAULT_DEF.
15564
15565 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15566
15567         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
15568
15569 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15570
15571         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
15572         case non close-phi nodes with one argument.
15573
15574 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15575
15576         * sese.h (scev_analyzable_p): Scevs could be expressions without
15577         chrecs and still be scev_analyzable_p.
15578
15579 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15580
15581         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
15582
15583 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15584
15585         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
15586         * cfgloop.h (struct loop): Remove single_iv field.
15587         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
15588         (scop_canonicalize_loops): Removed.
15589         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
15590         over all the loop phi nodes in loop->header.
15591         (build_poly_scop): Remove use of scop_canonicalize_loops.
15592
15593 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15594
15595         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
15596         handle GIMPLE_CALL.
15597
15598 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15599
15600         * tree-chrec.c (chrec_apply): Should only apply to the specified
15601         variable.  Also handle multivariate chains of recurrences that
15602         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
15603
15604 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15605
15606         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
15607         (debug_clast_name_indexes_1): Removed.
15608         (debug_clast_name_indexes): Removed.
15609         (pbb_to_depth_to_oldiv): Removed.
15610         (build_iv_mapping): Replace the use of rename_map with iv_map.
15611         (translate_clast_user): Remove uses of rename_map.  Allocate and
15612         free iv_map.
15613         (translate_clast_for_loop): Remove uses of rename_map.
15614         (translate_clast_for): Same.
15615         (translate_clast_guard): Same.
15616         (translate_clast): Same.
15617         (gloog): Same.
15618         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
15619         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
15620         * sese.c (set_rename): Now static.
15621         (rename_variables_in_stmt): Removed.
15622         (rename_uses): New.
15623         (is_parameter): Removed.
15624         (is_iv): Removed.
15625         (expand_scalar_variables_call): Removed.
15626         (expand_scalar_variables_ssa_name): Removed.
15627         (expand_scalar_variables_expr): Removed.
15628         (expand_scalar_variables_stmt): Removed.
15629         (expand_scalar_variables): Removed.
15630         (rename_variables): Removed.
15631         (remove_condition): Removed.
15632         (get_true_edge_from_guard_bb): Removed.
15633         (get_false_edge_from_guard_bb): Removed.
15634         (struct igp): Removed.
15635         (default_before_guard): Removed.
15636         (convert_for_phi_arg): Removed.
15637         (add_guard_exit_phis): Removed.
15638         (insert_guard_phis): Removed.
15639         (graphite_copy_stmts_from_block): Now also uses iv_map and a
15640         region.  Do not copy conditions.  Do not copy induction variables.
15641         Call rename_uses.
15642         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
15643         the translated statement.  Use the iv_map for the induction
15644         variable renaming.
15645         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
15646         (set_rename): Removed declaration.
15647         (scev_analyzable_p): ...here.
15648         * tree-chrec.c (chrec_apply_map): New.
15649         * tree-chrec.h (chrec_apply_map): Declared.
15650
15651 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15652
15653         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
15654         insert_loop_close_phis.
15655         * sese.c (name_defined_in_loop_p): Removed.
15656         (expr_defined_in_loop_p): Removed.
15657         (alive_after_loop): Removed.
15658         (close_phi_not_yet_inserted_p): Removed.
15659         (struct alep): Removed.
15660         (add_loop_exit_phis): Removed.
15661         (insert_loop_close_phis): Removed.
15662
15663 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15664
15665         * graphite-cloog-util.c
15666         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
15667         * graphite-poly.c
15668         (psct_scattering_dim_for_loop_depth): Same.
15669
15670 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15671
15672         * graphite-cloog-util.h: Added cloog.h.
15673         * graphite-blocking.c: Removed cloog.h.
15674         * graphite-dependences.c: Same.
15675         * graphite-interchange.c: Same.
15676         * graphite-poly.c: Same.
15677         * graphite-ppl.c: Same.
15678         * graphite-scop-detection.c: Same.
15679         * graphite-sese-to-poly.c:
15680         Removed cloog.h.
15681         Removed graphite-clast-to-gimple.h.
15682         (check_poly_representation): Removed (unused).
15683         * graphite-sese-to-poly.h
15684         (check_poly_representation): Removed (unused).
15685
15686 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15687
15688         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
15689         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
15690         (graphite-cloog-util.o): New.
15691         (graphite-ppl.o): Added graphite-cloog-util.h.
15692         * graphite-clast-to-gimple.c:
15693         Added graphite-cloog-util.h to include statements.
15694         * graphite-cloog-util.c: New.
15695         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
15696         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15697         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15698         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15699         (insert_constraint_into_matrix): Same.
15700         (ppl_Constrain_System_number_of_constraints): Same.
15701         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15702         (oppose_constraint): Same.
15703         (cloog_matrix_to_ppl_constraint): Same.
15704         (new_Constraint_System_from_Cloog_Matrix): Same.
15705         * graphite-cloog-util.h: New.
15706         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
15707         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15708         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15709         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15710         (insert_constraint_into_matrix): Same.
15711         * graphite-ppl.c:
15712         Added graphite-cloog-util.h to include statements.
15713         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
15714         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15715         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15716         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15717         (insert_constraint_into_matrix): Same.
15718         (ppl_Constrain_System_number_of_constraints): Same.
15719         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15720         (oppose_constraint): Same.
15721         (cloog_matrix_to_ppl_constraint): Same.
15722         (new_Constraint_System_from_Cloog_Matrix): Same.
15723         * graphite-ppl.h:
15724         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
15725         graphite-cloog-util.h.
15726         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15727         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15728         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15729         (insert_constraint_into_matrix): Same.
15730
15731 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15732
15733         * graphite-clast-to-gimple.c
15734         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
15735         (precision_for_interval): Same.
15736         (gcc_type_for_interval): Same.
15737         (compute_type_for_level): Same.
15738         * graphite-interchange.c
15739         (lst_interchange_profitable_p): Same.
15740         * graphite-poly.c
15741         (psct_scattering_dim_for_loop_depth): Same.
15742         * graphite-ppl.c
15743         (ppl_max_for_le_pointset): Same.
15744         (ppl_min_for_le_pointset): Same.
15745
15746 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15747
15748         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
15749         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
15750
15751 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15752
15753         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
15754         rewrite_close_phi_out_of_ssa.
15755
15756 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15757
15758         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
15759
15760 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15761
15762         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
15763         rename_map.
15764         * sese.c (debug_rename_map): Same.
15765         (get_rename): Same.
15766         (set_rename): Same.
15767         (rename_variables_in_stmt): Same.
15768         (expand_scalar_variables_call): Same.
15769         (expand_scalar_variables_ssa_name): Same.
15770         (expand_scalar_variables_expr): Same.
15771         (expand_scalar_variables_stmt): Same.
15772         (expand_scalar_variables): Same.
15773         (rename_variables): Same.
15774         (graphite_copy_stmts_from_block): Same.
15775         (copy_bb_and_scalar_dependences): Same.
15776
15777 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15778
15779         * graphite-clast-to-gimple.c (copy_renames): Removed.
15780         (translate_clast_for): Do not call copy_renames.
15781         (translate_clast_guard): Same.
15782
15783 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15784
15785         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
15786         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
15787         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
15788         before rewrite_cross_bb_scalar_deps.
15789
15790 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15791
15792         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
15793         Early return in when flag_associative_math is not set.
15794
15795 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15796
15797         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
15798         of SSA copies on edges except for loop->latch.
15799
15800 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15801
15802         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
15803         Split out of rewrite_reductions_out_of_ssa.
15804         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
15805         Declared.
15806         * graphite.c (graphite_transform_loops): Call it.
15807
15808 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15809
15810         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
15811
15812 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
15813
15814         * dbgcnt.def (graphite_scop): New counter.
15815         * graphite.c: Include dbgcnt.h.
15816         (graphite_transform_loops): Use new counter to limit transformations.
15817         * Makefile.in (graphite.o): Depend on DBGCNT_H.
15818
15819 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15820
15821         * passes.c (init_optimization_passes): Add pass_graphite.
15822         Schedule a pass_copy_prop before pass_graphite_transforms.
15823         * timevar.def (TV_GRAPHITE): Declared.
15824         * tree-pass.h (pass_graphite): Declared.
15825         * tree-ssa-loop.c (pass_graphite): New.
15826
15827 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15828
15829         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
15830         Remove calls to rename_nb_iterations and rename_sese_parameters.
15831         * graphite-clast-to-gimple.h (gloog): Update declaration.
15832         * graphite.c (graphite_transform_loops): Update call to gloog.
15833         * sese.c (rename_variables_in_expr): Removed.
15834         (rename_nb_iterations): Removed.
15835         (rename_sese_parameters): Removed.
15836         * sese.h (rename_nb_iterations): Removed.
15837         (rename_sese_parameters): Removed.
15838
15839 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15840
15841         * graphite-clast-to-gimple.c (gloog): Remove call to
15842         sese_adjust_liveout_phis.
15843         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
15844         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
15845         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
15846         rewrite_phi_out_of_ssa.
15847         * sese.c (get_vdef_before_sese): Removed.
15848         (sese_adjust_vphi): Removed.
15849         (sese_adjust_liveout_phis): Removed.
15850         * sese.h (sese_adjust_liveout_phis): Removed.
15851
15852 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15853
15854         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
15855         argument for the place after which to insert the out of SSA copy.
15856         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
15857         (rewrite_phi_out_of_ssa): Same.
15858         (rewrite_cross_bb_scalar_deps): Same.
15859         (insert_copyout): Removed.
15860         (insert_copyin): Removed.
15861         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
15862         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
15863         insert_copyin.
15864
15865 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15866
15867         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
15868         (rewrite_reductions_out_of_ssa): Same.
15869         (rewrite_commutative_reductions_out_of_ssa): Same.
15870         (build_poly_scop): Do not call these functions.
15871         * graphite-sese-to-poly.h (build_poly_scop): Declared.
15872         (rewrite_reductions_out_of_ssa): Declared.
15873         (rewrite_commutative_reductions_out_of_ssa): Declared.
15874         * graphite.c (graphite_transform_loops): Call on every scop
15875         rewrite_commutative_reductions_out_of_ssa before calling
15876         rewrite_reductions_out_of_ssa and build_scop_bbs.
15877
15878 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15879
15880         * graphite-dependences.c (dot_deps): Make system call to dotty run
15881         in background.
15882         (dot_deps_stmt): Same.
15883         * graphite-poly.c (dot_lst): Same.
15884
15885 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15886
15887         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
15888         phi_arg_in_outermost_loop.
15889         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
15890         (remove_invariant_phi): Same.
15891
15892 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
15893
15894         * target.def (output_addr_const_extra): New hook.
15895         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
15896         * doc/tm.texi: Regenerate.
15897         * targhooks.c (default_asm_output_addr_const_extra): New function.
15898         * targhooks.h (default_asm_output_addr_const_extra): Declare.
15899         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
15900         target hook.
15901
15902         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15903         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
15904         * config/i386/i386.h (output_addr_const_extra): Rename to...
15905         (i386_asm_output_addr_const_extra): ...this. Make static.
15906         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15907
15908 2010-08-11  Richard Henderson  <rth@redhat.com>
15909
15910         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
15911
15912 2010-08-11  Nick Clifton  <nickc@redhat.com>
15913
15914         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
15915         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
15916         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
15917         stormy16-lib2-cmpsi.c.
15918
15919         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
15920         -O2.
15921
15922 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
15923
15924         * opts.h (struct cl_option_handler_func): Make handler take
15925         cl_decoded_option structure as parameter, not individual elements.
15926         (struct cl_option_handlers): Make callbacks take cl_decoded_option
15927         structure as parameter, not individual elements.
15928         (handle_option): Take cl_decoded_option structure as parameter,
15929         not individual elements.
15930         (handle_generated_option): Declare.
15931         * opts-common.c (handle_option): Take cl_decoded_option structure
15932         as parameter, not individual elements.  Update calls to callback
15933         and handler functions.
15934         (handle_generated_option): New.
15935         (read_cmdline_option): Update calls to callback functions and
15936         handle_option.
15937         * opts.c (common_handle_option, complain_wrong_lang,
15938         unknown_option_callback, post_handling_callback,
15939         lang_handle_option, target_handle_option): Take cl_decoded_option
15940         structure as parameter, not individual elements.
15941         (lang_handle_option, target_handle_option, common_handle_option):
15942         Assert option has at most one argument.
15943         (enable_warning_as_error): Call handle_generated_option instead of
15944         handle_option.  Do not pass -Werror argument as argument of
15945         generated option.
15946
15947 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15948
15949         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
15950         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
15951         (SUBWORD_BOOL_CAS): Likewise.
15952         (SUBWORD_SYNC_OP): Likewise.
15953         (SUBWORD_TEST_AND_SET): Likewise.
15954         (FETCH_AND_OP_WORD): Parenthesise INF_OP
15955         (SUBWORD_SYNC_OP): Likewise.
15956         (OP_AND_FETCH_WORD): Likewise.
15957
15958 2010-08-10  Xinliang David Li  <davidxl@google.com>
15959
15960         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
15961         compute max/min offset in address.
15962
15963 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
15964
15965         * ira-live.c: Include sbitmap.h.
15966         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
15967         Compress live ranges even more.
15968
15969 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15970
15971         * coverage.c (ctr_labels): Delete.
15972
15973 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15974
15975         PR bootstrap/45177
15976         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
15977         test here from arm_gen_load_multiple_1.
15978         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
15979         multiple_operation_profitable_p.
15980
15981 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15982
15983         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
15984         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
15985
15986 2010-08-10  Richard Henderson  <rth@redhat.com>
15987
15988         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
15989         after saving registers.  Assert that SSE registers are only saved
15990         with a sufficiently aligned frame.
15991         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
15992         remove stack_realign_fp handling.
15993         (ix86_expand_prologue): Save int registers before stack_realign_fp,
15994         and do not mark the stack alignment as frame related.
15995         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
15996
15997         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
15998         saves when re-aligning the stack.
15999
16000 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16001
16002         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
16003         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
16004         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
16005
16006 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16007
16008         * dwarf2out.c (struct die_struct): Move die_tag to the end.
16009
16010 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
16011
16012         * config/arm/iterators.md: New file.
16013         * config/arm/arm.md: Include iterators.md.
16014         (QHSI): Move to new file.
16015         (LTUGEU, cnb, optab, ior_xor): Likewise.
16016         * config/arm/iwmmxt.md (VMMX): Move to new file.
16017         (VSHFT, MMX_char): Likewise.
16018         * config/arm/neon.md (VD): Move to new file.
16019         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
16020         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
16021         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
16022         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
16023         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
16024         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
16025         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
16026         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
16027         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
16028         (Is_d_reg, V_mode_nunits): Likewise.
16029         * config/arm/vec-common.md (VALL): Move to new file.
16030         (VALLW, VINT, VINTW): Likewise.
16031
16032 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
16033
16034         PR middle-end/45182
16035         * combine.c (make_compound_operation): Don't try to convert
16036         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
16037
16038 2010-08-10  Richard Guenther  <rguenther@suse.de>
16039
16040         * tree.h (get_object_alignment): Adjust prototype.
16041         * builtins.c (get_object_alignment): Return unsigned int,
16042         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
16043         and TARGET_MEM_REF properly.
16044         (get_pointer_alignment): Adjust.
16045         * emit-rtl.c (get_mem_align_offset): Adjust comment.
16046         (set_mem_attributes_minus_bitpos): Adjust.
16047         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
16048
16049 2010-08-10  Richard Guenther  <rguenther@suse.de>
16050
16051         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
16052         (copy_prop_visit_assignment): Simplify.
16053         (copy_prop_visit_stmt): Also visit assignments from
16054         constants.
16055         (copy_prop_visit_phi_node): Use operand_equal_p.
16056
16057 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16058
16059         * ipa-split.c (find_split_points): Free stack.
16060
16061 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16062
16063         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
16064         * tree.c (tree_node_kind): Delete corresponding entries.
16065
16066 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
16067
16068         * alias.c (may_alias_p): Remove unused ret.
16069
16070 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
16071
16072         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
16073         alias_sets_conflict_p.
16074         (walk_mems_1): Moved from alias.c.
16075         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
16076         in alias.c.
16077         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
16078         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
16079         * alias.c (walk_mems_2): Moved to ddg.c.
16080         (walk_mems_1): Ditto.
16081         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
16082         to ddg.c.
16083         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
16084         disambiguation.
16085         *(may_alias_p): New function to check whether two memory expression
16086         may alias or not. Currently used in buidling inter-iteration memory
16087         dependence.
16088         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
16089         (insn_alias_sets_conflict_p): Removed
16090         *rtl.h (may_alias_p): New function prototype.
16091
16092 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16093
16094         * tree.c (nreverse): Assert that we don't have a BLOCK.
16095
16096 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16097
16098         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
16099         * config/arm/arm.c (arm_get_pcs_model): Likewise.
16100         * config/avr/avr.c (init_cumulative_args): Likewise.
16101         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
16102         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
16103         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
16104         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
16105         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
16106         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
16107         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
16108         * dwarf2out.c (gen_subprogram_die): Likewise.
16109         * function.c (allocate_struct_function): Likewise.
16110         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
16111         (deserves_ellipsis): Delete.
16112
16113 2010-08-09  Richard Guenther  <rguenther@suse.de>
16114
16115         * tree-ssa-copy.c (cached_last_copy_of): Remove.
16116         (valueize_val): New function.
16117         (get_last_copy_of): Remove.
16118         (set_copy_of_val): Simplify.
16119         (dump_copy_of): Likewise.
16120         (copy_prop_visit_cond_stmt): Use valueize_val.
16121         (copy_prop_visit_phi_node): Properly handle unvisited names.
16122         Drop code managing copy-of chains.
16123         (init_copy_prop): Adjust.
16124         (fini_copy_prop): Likewise.
16125         (execute_copy_prop): Remove obsolete comment.
16126
16127 2010-08-09  Richard Guenther  <rguenther@suse.de>
16128
16129         PR middle-end/44632
16130         * function.c (gimplify_parameters): Do not clear addressable
16131         bit of the original parameter.
16132
16133 2010-08-09  Richard Guenther  <rguenther@suse.de>
16134
16135         PR middle-end/45212
16136         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
16137         alignment from MEM_REF offset only if we took it from the
16138         base object.
16139
16140 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
16141
16142         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
16143
16144 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16145
16146         * c-tree.h (build_arg_info): Declare.
16147         * c-decl.c (build_arg_info): Define.
16148         (get_parm_info): Call it.  Delete initialization code.
16149         * c-parser.c (c_parser_parms_declarator): Likewise.
16150         (c_parser_parms_list_declaractor): Likewise.
16151
16152 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16153
16154         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
16155         (struct c_arg_info): Change type of tags field.
16156         * c-decl.c (grokdeclarator): Update for changed type of tags field.
16157         (get_parm_info): Likewise.
16158         (store_parm_decls_newstyle): Likewise.
16159
16160 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16161
16162         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
16163         (branch_island_list): Delete.
16164         (branch_islands): Declare.
16165         (add_compiler_branch_island): Adjust for branch_islands instead of
16166         branch_island_list.
16167         (macho_branch_islands): Likewise.
16168         (no_previous_def): Likewise.
16169         (get_prev_label): Likewise.
16170
16171 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16172
16173         PR boehm-gc/34544
16174         * gthr-posix.h (__gthread_start): Delete.
16175         (__gthread_active_init): Use pthread_default_stacksize_np instead of
16176         pthread_create to determine if hpux pthreads are active.
16177         * gthr-posix95.h (__gthread_start): Delete.
16178         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
16179
16180 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
16181
16182         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
16183         _WIN64 not expanded.
16184
16185 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
16186             H.J. Lu  <hongjiu.lu@intel.com>
16187
16188         PR target/45213
16189         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
16190         to output 32bit SFmode immediate as 8 byte sign extended value.
16191
16192 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16193
16194         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
16195         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
16196         (SUBWORD_BOOL_CAS): Likewise.
16197         (SUBWORD_SYNC_OP): Likewise.
16198         (SUBWORD_TEST_AND_SET): Likewise.
16199         (FETCH_AND_OP_WORD): Parenthesise INF_OP
16200         (SUBWORD_SYNC_OP): Likewise.
16201         (OP_AND_FETCH_WORD): Likewise.
16202
16203 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16204
16205         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
16206         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
16207         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
16208         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
16209         generic part.
16210         (cortex_a9_sched_adjust_cost): New function.
16211         (xscale_sched_adjust_cost): New function.
16212         * config/arm/arm-protos.h (struct tune_params): New field
16213         sched_adjust_cost.
16214         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
16215
16216 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
16217
16218         PR target/44942
16219         * config/sparc/sparc.c (function_arg_advance): Always take into account
16220         the padding, if any.
16221
16222 2010-08-06  Richard Guenther  <rguenther@suse.de>
16223
16224         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
16225         (dump_lattice_value): Dump it.
16226         (get_default_value): Adjust.
16227         (get_constant_value): Likewise.
16228         (set_value_varying): Likewise.
16229         (set_lattice_value): Make sure to not go up the lattice
16230         with bitwise constant values.
16231         (get_value_for_expr): Handle ADDR_EXPRs.
16232         (value_to_double_int): New function.
16233         (get_value_from_alignment): Likewise.
16234         (do_dbg_cnt): Adjust.
16235         (ccp_lattice_meet): Handle partially constant values.
16236         (bit_value_unop_1): New function.
16237         (bit_value_binop_1): Likewise.
16238         (bit_value_unop): Likewise.
16239         (bit_value_binop): Likewise.
16240         (evaluate_stmt): Track partially constant values if
16241         flag_tree_bit_ccp is set.
16242         (ccp_fold_stmt): Dump if we folded a predicate.
16243         (ccp_visit_stmt): Adjust.
16244         * common.opt (ftree-bit-ccp): New flag.
16245         * doc/invoke.texi (ftree-bit-ccp): Document.
16246         * opts.c (decode_options): Enable bit-CCP at -O1.
16247
16248 2010-08-06  Alan Modra  <amodra@gmail.com>
16249
16250         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
16251         and -mrelocatable-lib description.
16252
16253 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
16254
16255         From Martin Thuresson  <martint@google.com>
16256         * postreload.c (reload_cse_simplify_operands): Use
16257         SET_REGNO_RAW instead of SET_REGNO.
16258         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
16259         SET_REGNO.
16260         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
16261         instead of SET_REGNO.
16262         * rtl.h (SET_REGNO_RAW): New macro.
16263
16264 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
16265
16266         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
16267         computations.  Fix formatting issues.
16268         (num_sign_bit_copies1): Likewise.
16269         (canonicalize_condition): Likewise.
16270
16271 2010-08-05  Richard Henderson  <rth@redhat.com>
16272
16273         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
16274         (floor_log2): Use clz_hwi.
16275         (exact_log2): Use ctz_hwi.
16276         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
16277         * builtins.c (fold_builtin_bitop): Use them.
16278         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
16279         * combine.c (get_pos_from_mask): Use ctz_hwi.
16280         * double-int.c (double_int_ctz): Likewise.
16281         * explow.c (force_reg): Likewise.
16282         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
16283
16284 2010-08-05  Richard Henderson  <rth@redhat.com>
16285
16286         PR target/45189
16287         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
16288         the alignment constant is properly sign-extended.
16289
16290 2010-08-05  Richard Guenther  <rguenther@suse.de>
16291
16292         * expr.c (store_expr): Use emit_block_move only if both
16293         source and target are MEMs.  Use store_bit_field if only
16294         the target is a MEM.
16295
16296 2010-08-05  Richard Henderson  <rth@redhat.com>
16297
16298         PR debug/45188
16299         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
16300         (INCOMING_RETURN_ADDR_RTX): Likewise.
16301         (dwarf2out_do_frame): Remove conditional compilation.
16302         (dwarf2out_frame_init): Likewise.
16303
16304 2010-08-05  Nicolas Setton  <setton@adacore.com>
16305
16306         * gcov.c (flag_display_progress): New static variable.
16307         (main): Display progress info on standard output if requested.
16308         (options): Add -d/--display-progress.
16309         (print_usage): Print them.
16310         (process_args): Handle them.
16311         * doc/gcov.texi: Document them.
16312
16313 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16314
16315         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
16316         (ipcp_insert_stage): Redirect only edges not flagged with
16317         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
16318         discovered constants.
16319
16320 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16321
16322         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
16323         (struct ipa_param_descriptor): New fields types and
16324         cannot_devirtualize.
16325         (ipa_param_cannot_devirtualize_p): New function.
16326         (ipa_param_types_vec_empty): Likewise.
16327         (ipa_make_edge_direct_to_target): Declare.
16328         * ipa-cp.c: Fixed first stage driver name in initial comment,
16329         described devirtualization there too.
16330         (ipcp_analyze_node): Call ipa_analyze_params_uses.
16331         (ipcp_print_all_lattices): Print devirtualization info.
16332         (ipa_set_param_cannot_devirtualize): New function.
16333         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
16334         lattice to BOTTOM.
16335         (ipcp_init_stage): Merged into...
16336         (ipcp_generate_summary): ...its caller.
16337         (ipcp_change_tops_to_bottom): Also process type lists.
16338         (ipcp_add_param_type): New function.
16339         (ipcp_copy_types): Likewise.
16340         (ipcp_propagate_types): Likewise.
16341         (ipcp_propagate_stage): Also propagate types.
16342         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
16343         Also return true if propagated types require it.
16344         (ipcp_update_callgraph): Dump redirection info.
16345         (ipcp_process_devirtualization_opportunities): New function.
16346         (ipcp_const_param_count): Include known type information.
16347         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
16348         on new node.  Fixed formatting.
16349         * ipa-prop.c (make_edge_direct_to_target): Renamed to
16350         ipa_make_edge_direct_to_target and changed all callers.  Made
16351         externally visible.
16352         (ipa_node_duplication_hook): Duplicate types vector.
16353         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
16354         redirect outgoing calls for which we can't get a decl from the
16355         statement.  Check that we can get a decl from the call statement.
16356         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
16357         ipa_analyze_params_uses only when ipa-cp is disabled.
16358         * tree-inline.c (get_indirect_callee_fndecl): Removed.
16359         (expand_call_inline): Do not call get_indirect_callee_fndecl.
16360         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
16361         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
16362
16363 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16364
16365         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
16366         temporary. Emit move from temporary to accum, so REG_EQUAL note will
16367         be attached to this insn in correct mode.
16368
16369 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16370
16371         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
16372         using REGNO of base_reg directly.
16373
16374 2010-08-05  Jie Zhang  <jie@codesourcery.com>
16375
16376         PR tree-optimization/45144
16377         * tree-sra.c (type_consists_of_records_p): Return false
16378         if the record contains bit-field.
16379
16380 2010-08-04  Richard Henderson  <rth@redhat.com>
16381
16382         * config/i386/i386.c (struct ix86_frame): Remove padding and
16383         to_allocate members.
16384         (ix86_compute_frame_layout): Don't store them.
16385         (ix86_can_use_return_insn_p): Use a more direct and more obviously
16386         correct condition for the position of the stack pointer.
16387         (ix86_expand_prologue): Compute remaining stack allocation based
16388         on the ultimate stack pointer offset.
16389         (ix86_expand_epilogue): Use more obvious expressions testing for
16390         the stack pointer already pointing to the saved registers.
16391
16392         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
16393         duplication deconstructing the frame pointer.  Simplify
16394         deallocation of the local stack frame.
16395
16396         * reg-notes.def (CFA_EXPRESSION): New.
16397         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
16398         (dwarf2out_frame_debug_cfa_expression): New.
16399         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
16400
16401         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
16402         * config/i386/i386.c (ix86_expand_prologue): Set it.
16403         (ix86_expand_epilogue): Clear it.
16404         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
16405         context, add REG_CFA_EXPRESSION notes.
16406
16407         * config/i386/i386.h (struct machine_frame_state): Rename from
16408         machine_cfa_state.  Add members tracking SP and FP regardless
16409         of the current CFA register.
16410         (ix86_cfa_state): Remove.
16411         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
16412         and sse_reg_save_offset members.
16413         (ix86_compute_frame_layout): Set them.
16414         (gen_push): Increment sp_offset too.
16415         (choose_baseaddr_len, choose_baseaddr): New.
16416         (ix86_emit_save_reg_using_mov): New.
16417         (ix86_emit_save_regs_using_mov): Use it.
16418         (ix86_emit_save_sse_regs_using_mov): Likewise.
16419         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
16420         compare vs the saved red_zone_offset.
16421         (pro_epilogue_adjust_stack): Adjust sp_offset.
16422         (ix86_adjust_stack_and_probe): Likewise.
16423         (ix86_expand_prologue): Set up, use, and validate the new
16424         frame_state_info members.  Use gen_frame_mem.
16425         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
16426         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
16427         new frame_state_info members.
16428         (ix86_emit_leave): Likewise.
16429         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
16430         out-of-range stack pointer offsets here.
16431         (ix86_emit_restore_sse_regs_using_mov): Likewise.
16432         (ix86_expand_epilogue): Use and validate the new frame_state_info
16433         members.  Break up and simplify the logic selecting the
16434         restore_regs_via_mov code path.  Ensure that there will be no
16435         out-of-range stack pointer offsets.
16436
16437         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
16438
16439         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
16440         argument name to reflect the expected tree; fix indentation.
16441         (ix86_asm_output_function_label): Output the entire 32-bit
16442         ms_hook here as bytes ...
16443         (ix86_expand_prologue): ... not here as insns.  Attach the
16444         unwind info for the ms_hook to a blockage insn.
16445         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
16446         (ix86_ms_bitfield_layout_p): Fix indentation.
16447         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
16448
16449         * config/i386/i386.c (ix86_using_red_zone): New.
16450         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
16451         ix86_expand_prologue, ix86_force_to_memory): Use it.
16452
16453         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
16454         saving the int registers.
16455
16456         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
16457         and DWARF2_UNWIND_INFO conditional compilation.
16458
16459 2010-08-04  Richard Henderson  <rth@redhat.com>
16460
16461         PR debug/45171
16462         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
16463         an is_naming_typedef_decl.
16464
16465 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
16466
16467         PR rtl-optimization/45162
16468         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
16469         * dce.c (word_dce_process_block): Likewise.
16470
16471 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
16472
16473         PR target/44583
16474         * config/ia64/constraints.md (Z): New.
16475         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
16476         (xfreg_or_signed_fp01_operand): New.
16477         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
16478         with fr_reg_or_signed_fp01_operand and constraint G with Z.
16479         (subsf3): Ditto.
16480         (*maddsf4): Ditto.
16481         (*msubsf4): Ditto.
16482         (adddf3): Ditto.
16483         (adddf3_trunc): Ditto.
16484         (subdf3): Ditto.
16485         (*subdf3_trunc): Ditto.
16486         (*madddf4): Ditto.
16487         (*madddf4_trunc): Ditto.
16488         (*msubdf4): Ditto.
16489         (*msubdf4_trunc): Ditto.
16490         (addxf3): Replace xfreg_or_fp01_operand with
16491         xfreg_or_signed_fp01_operand and constraint G with Z.
16492         (*addxf3_truncsf): Ditto.
16493         (*addxf3_truncdf): Ditto.
16494         (subxf3): Ditto.
16495         (*subxf3_truncsf): Ditto.
16496         (*subxf3_truncdf): Ditto.
16497         (*maddxf4): Ditto.
16498         (*maddxf4_truncsf): Ditto.
16499         (*maddxf4_truncdf): Ditto.
16500         (*msubxf4): Ditto.
16501         (*msubxf4_truncsf): Ditto.
16502         (*msubxf4_truncdf): Ditto.
16503
16504 2010-08-04  Richard Guenther  <rguenther@suse.de>
16505
16506         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
16507         if either alias-set is zero.
16508
16509 2010-08-04  Richard Guenther  <rguenther@suse.de>
16510
16511         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
16512         * tree-ssa-ccp.c: ... here.
16513         * tree-ssa-copy.c: ... and here.
16514         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
16515         value_range_t): Move ...
16516         * tree-vrp.c: ... here.
16517         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
16518         (substitute_and_fold): Adjust prototype.
16519         * tree-ssa-propagate.c (replace_uses_in): Adjust.
16520         (replace_phi_args_in): Likewise.
16521         (substitute_and_fold): Take callback to query lattice instead
16522         of pointer to lattice.  Replace SSA name defs with lattice
16523         values first.
16524         * tree-ssa-ccp.c (ccp_finalize): Adjust.
16525         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
16526         (get_value): New function.
16527         (fini_copy_prop): Adjust.
16528         * tree-vrp.c (vrp_finalize): Adjust.
16529
16530 2010-08-04  Richard Guenther  <rguenther@suse.de>
16531
16532         PR middle-end/45176
16533         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
16534         points-to set for original MEM_REF.
16535
16536 2010-08-04  Richard Guenther  <rguenther@suse.de>
16537
16538         * tree-ssa-ccp.c (get_constant_value): New function.
16539         (get_rhs_assign_op_for_ccp): Remove.
16540         (valueize_op): New function.
16541         (ccp_fold): Use get_constant_value and valueize_op.
16542         (fold_const_aggregate_ref): Likewise.
16543         (ccp_fold_stmt): Likewise.
16544         (visit_assignment): Simplify.
16545
16546 2010-08-04  Richard Guenther  <rguenther@suse.de>
16547
16548         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
16549         * double-int.h (double_int_ctz): Declare.
16550         * double-int.c (double_int_ctz): New function.
16551
16552 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
16553
16554         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
16555         Define.
16556         picochip_expand_movmemhi : Expand movmem pattern.
16557         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
16558         Declare.
16559         * config/picochip/picochip.md (movmemhi) : New pattern.
16560
16561 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16562
16563         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
16564
16565 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
16566
16567         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
16568         NEG as operand of a MULT by merging it with the other operand.
16569         * combine.c (make_compound_operation): Use trunc_int_for_mode when
16570         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
16571         MULT.
16572         * config/arm/constraints.md (M): Examine only 32 bits of a
16573         HOST_WIDE_INT.
16574         * config/arm/predicates.md (power_of_two_operand): Likewise.
16575
16576 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16577
16578         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
16579         non-NOTE insns.
16580
16581 2010-08-03  Jan Hubicka  <jh@suse.cz>
16582
16583         * ipa-split.c (struct split_point): Add split_part_set_retval.
16584         (find_retval): Forward declare.
16585         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
16586         (consider_split): Compute current->split_part_set_retval.
16587         (visit_bb): Do not look into return value.
16588         (split_function): Handle !split_part_set_retval
16589
16590 2010-08-03  Martin Jambor  <mjambor@suse.cz>
16591
16592         * tree-sra.c (completely_scalarize_record): New parameter REF, create
16593         its own access->expr intead of using build_ref_for_offset.
16594
16595 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
16596
16597         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
16598         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
16599         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
16600         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
16601         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
16602         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
16603         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
16604         DEFAULT_SWITCH_TAKES_ARG.
16605         * config/rx/rx.opt (-patch=): Remove option.
16606         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
16607         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
16608         * doc/invoke.texi (RX Options): Remove -patch=.
16609         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
16610         (option_map): Remove --profile-blocks, --quiet and --silent.
16611
16612 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16613
16614         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
16615         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
16616         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
16617         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16618         Update calls to ix86_expand_compare and ix86_expand_branch.
16619         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
16620         ix86_expand_compare.
16621         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
16622         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16623         Make static.
16624         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
16625         and ix86_compare_op1.  Update calls to ix86_expand_compare.
16626         (ix86_expand_int_movcc): Ditto.
16627         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
16628         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
16629         (ix86_expand_setcc): Ditto.
16630         (ix86_expand_compare): Remove prototype.
16631         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
16632         ix86_compare_op0 and ix86_compare_op1.  Update calls
16633         to ix86_expand_branch to directly pass operands[1] and operands[2].
16634         (cbranchxf4): Ditto.
16635         (cbranch<MODEF:mode>4): Ditto.
16636         (cbranchcc4): Ditto.
16637         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
16638         Update calls to ix86_expand_setcc to directly pass operands[2] and
16639         operands[3].
16640         (cstorexf4): Ditto.
16641         (cstore<MODEF:mode>4): Ditto.
16642         (cstorecc4): Ditto.
16643
16644 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16645
16646         PR target/45063
16647         * caller-save.c (save_call_clobbered_regs): Remove regs from
16648         hard_regs_saved when they are set.
16649
16650 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
16651
16652         PR target/41089
16653         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
16654         as volatile.
16655
16656 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
16657
16658         * common.opt (ftree-loop-distribute-patterns): New.
16659         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
16660         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
16661         at -O3.
16662         * tree-data-ref.c (stores_zero_from_loop): New.
16663         * tree-data-ref.h (stores_zero_from_loop): Declared.
16664         * tree-loop-distribution.c (tree_loop_distribution): Call
16665         stores_zero_from_loop.
16666         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
16667
16668 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16669
16670         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
16671         into account.
16672
16673         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
16674         * config/arm/arm.c (thumb1_code): New variable.
16675         (arm_override_options): Set it.
16676         (thumb1_final_prescan_insn): Keep track of condition code status.
16677         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
16678         jumps that depend on them.
16679         * config/arm/arm.h (thumb1_code): Declare variable.
16680         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
16681         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
16682         thumb1_cc_mode.
16683         (CC_STATUS_INIT): New macro.
16684         * config/arm/constraints.md (Pd): New constraint.
16685         * config/arm/predicates.md (noov_comparison_operator): New predicate.
16686         * config/arm/arm.md (is_thumb1): New define_attr.
16687         (conds): Set default to "clob" when generating Thumb1 code.
16688         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
16689         code are set.  Use two-operand assembly syntax.
16690         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
16691         pattern.
16692         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
16693         codes are set.  Use two-operand assembly syntax.
16694         (zero_extendhisi splitter): Remove constraints.
16695         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
16696         thumb1_movsf_insn): Set conds attribute as appropriate.
16697         (cbranchsi4_insn): Use condition code status from struct
16698         machine_function to determine whether the comparison can be eliminated.
16699         Discourage the alternative using high registers.
16700         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
16701         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
16702         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
16703         subsi3_cbranch): Delete.
16704         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
16705         one subtract and one cbranch insn.
16706
16707         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
16708         thumb2_movdf_soft_insn): Delete patterns.
16709         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
16710         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
16711         (pool_range, neg_pool_range): Use them to define defaults.
16712         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
16713         and allow for TARGET_32BIT.
16714
16715         PR target/40457
16716         * config/arm/arm.h (arm_regs_in_sequence): Declare.
16717         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
16718         load_multiple_sequence, store_multiple_sequence): Delete
16719         declarations.
16720         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
16721         declarations.
16722         * config/arm/ldmstm.md: New file.
16723         * config/arm/arm.c (arm_regs_in_sequence): New array.
16724         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
16725         CHECK_REGS.  All callers changed.
16726         If SAVED_ORDER is nonnull, copy the computed order into it.
16727         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
16728         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
16729         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
16730         If SAVED_ORDER is nonnull, copy the computed order into it.
16731         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
16732         like REGS.  Handle Thumb mode.
16733         (arm_gen_load_multiple_1): New function, broken out of
16734         arm_gen_load_multiple.
16735         (arm_gen_store_multiple_1): New function, broken out of
16736         arm_gen_store_multiple.
16737         (arm_gen_multiple_op): New function, with code from
16738         arm_gen_load_multiple and arm_gen_store_multiple moved here.
16739         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
16740         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
16741         changed.
16742         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
16743         * config/arm/predicates.md (commutative_binary_operator): New.
16744         (load_multiple_operation, store_multiple_operation): Handle more
16745         variants of these patterns with different starting offsets.  Handle
16746         Thumb-1.
16747         * config/arm/arm.md: Include "ldmstm.md".
16748         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
16749         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
16750         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
16751         peepholes): Delete.
16752         * config/arm/ldmstm.md: New file.
16753         * config/arm/arm-ldmstm.ml: New file.
16754
16755         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
16756         if statement which adds extra costs to frame-related expressions.
16757
16758 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16759
16760         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
16761
16762 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
16763
16764         PR target/45142
16765         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
16766         alternative 2.
16767         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
16768         split V4SI operands.
16769
16770 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
16771
16772         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16773         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
16774         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
16775         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
16776
16777 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
16778
16779         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
16780         LOCAL_INCLUDE_DIR.
16781
16782 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
16783
16784         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
16785         used in the call to optab_for_tree_code.  Fix the second
16786         is_widening_mult_p call.  Check that both unwidened operands
16787         have the same sign.
16788
16789 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
16790
16791         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
16792
16793 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
16794
16795         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16796
16797 2010-07-30  DJ Delorie  <dj@redhat.com>
16798
16799         * config/rx/predicates.md (rx_constshift_operand): New.
16800         * config/rx/rx.md (zs_cond): New.
16801         (cbranchsi4): Remove mode.
16802         (*cbranchsi4_<code>): Likewise.
16803         (*tstbranchsi4_<code>): New.
16804         (*tstbranchsi4r_<code>): New.
16805         (*tstbranchsi4m_eq): New.
16806         (*tstbranchsi4m_ne): New.
16807         (cbranchsf4): Remove mode.
16808         (*cbranchsf4_<code>): Likewise.
16809
16810 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
16811
16812         * rtlanal.c (simplify_subreg_regno): Don't treat
16813         HARD_FRAME_POINTER_REGNUM specially.
16814
16815 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
16816
16817         * common.opt (-G): Don't define option here.
16818         * config/g.opt: New.
16819         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
16820         rs6000/powerpc and score targets.
16821         * opts.c (common_handle_option): Don't handle -G here.
16822         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
16823         * config/frv/frv.c (frv_handle_option): Handle -G.
16824         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
16825         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
16826         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
16827         * config/mips/mips.c (mips_handle_option): Handle -G.
16828         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
16829         * config/score/score.c (score_handle_option): Handle -G.
16830
16831 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
16832
16833         * config/mmix/mmix.c: Include basic-block.h.
16834
16835 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
16836
16837         PR debug/45055
16838         PR rtl-optimization/45137
16839         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
16840         prototypes.
16841         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
16842         New functions.
16843         * combine.c (next_nonnote_nondebug_insn): Removed.
16844         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
16845         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
16846         * sched-deps.c (sched_analyze_insn): Likewise.
16847         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
16848         * rtlanal.c (canonicalize_condition): Likewise.
16849         * postreload.c (reload_combine_recognize_pattern): Likewise.
16850         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
16851
16852 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
16853
16854         * config/i386/i386.md (int_cond): Remove code iterator.
16855         (fp_cond): Ditto.
16856         (cbranch<mode>4): Use ordered_comparison_operator predicate
16857         for operator0.
16858         (cstore<mode>4): Ditto for operator1.
16859         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
16860         (add<mode>cc): ditto.
16861
16862 2010-07-30  Richard Guenther  <rguenther@suse.de>
16863
16864         PR middle-end/45141
16865         * expr.c (expand_expr_real_1): Check for not handled base address.
16866
16867 2010-07-30  Richard Guenther  <rguenther@suse.de>
16868
16869         * ipa-prop.c (ipa_modify_formal_parameters): Use
16870         build_distinct_type_copy.
16871
16872 2010-07-30  Anthony Green  <green@moxielogic.com>
16873
16874         * config/moxie/rtems.h: New file.
16875         * config.gcc: Add moxie-rtems support.
16876
16877 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16878
16879         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
16880         df flags as in run_fast_df_dce.
16881
16882 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16883
16884         Revert:
16885         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16886
16887         * rtl.def (NOTE): Swap operands 4 and 5.
16888         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
16889         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
16890         Adjust accordingly.
16891         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
16892
16893 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16894
16895         PR debug/45110
16896         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
16897         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
16898         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
16899         formal parameters.
16900         (gen_decl_die): Change return type to dw_die_ref, return what
16901         gen_formal_parameter_die returned.
16902
16903 2010-07-29  Martin Jambor  <mjambor@suse.cz>
16904
16905         * dbgcnt.def (eipa_sra): New counter.
16906         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
16907
16908 2010-07-29  Xinliang David Li  <davidxl@google.com>
16909
16910         PR bootstrap/45119
16911         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
16912         in revision 162652.
16913
16914 2010-07-29  Richard Guenther  <rguenther@suse.de>
16915
16916         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
16917         (TV_TREE_STORE_CCP): Likewise.
16918         (TV_TREE_REDPHI): Likewise.
16919
16920 2010-07-29  Richard Guenther  <rguenther@suse.de>
16921
16922         * double-int.h (double_int_and_not): New function.
16923         * combine.c (try_combine): Use it.
16924         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
16925
16926 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16927
16928         PR rtl-optimization/42575
16929         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
16930         Argument AU removed.  All callers changed.  Ignore artificial refs.
16931         Use return value of df_word_lr_simulate_defs to decide whether an insn
16932         is necessary.
16933         (fast_dce): Rename arg to WORD_LEVEL.
16934         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
16935         static.
16936         (pass_fast_rtl_byte_dce): Delete.
16937         * dce.h (run_word_dce): Declare.
16938         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
16939         All callers changed.  Simplify code to only deal with two-word regs.
16940         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
16941         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
16942         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
16943         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
16944         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
16945         (df_word_lr_mark_ref): Declare.
16946         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
16947         df_word_lr_simulate_uses): Declare or rename from byte variants.
16948         (df_byte_lr_simulate_artificial_refs_at_top,
16949         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16950         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
16951         declarations.
16952         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
16953         (enum df_mm): Delete.
16954         * df-byte-scan.c: Delete file.
16955         * df-problems.c (df_word_lr_problem_data): Renamed from
16956         df_byte_lr_problem_data, all members deleted except for
16957         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
16958         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
16959         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16960         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
16961         df_byte_lr_confluence_0): Delete functions.
16962         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
16963         callers changed.
16964         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
16965         Don't initialize members that were deleted, don't try to discover data
16966         about registers.  Ignore hard regs.
16967         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
16968         (df_word_lr_mark_ref): New function.
16969         (df_word_lr_bb_local_compute): Renamed from
16970         df_byte_bb_lr_local_compute; all callers changed.  Use
16971         df_word_lr_mark_ref.  Assert that artificial refs don't include
16972         pseudos.  Ignore hard registers.
16973         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
16974         Assert that exit block uses don't contain pseudos.
16975         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
16976         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
16977         callers changed.  Ignore hard regs.
16978         (df_word_lr_transfer_function): Renamed from
16979         df_byte_lr_transfer_function; all callers changed.
16980         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
16981         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
16982         changed.
16983         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
16984         callers changed.
16985         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
16986         confluence operator 0 set to NULL.
16987         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
16988         callers changed.
16989         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
16990         Return bool, true if bitmap changed or insn otherwise necessary.
16991         All callers changed.  Simplify using df_word_lr_mark_ref.
16992         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
16993         all callers changed.  Simplify using df_word_lr_mark_ref.
16994         * lower-subreg.c: Include "dce.h"
16995         (decompose_multiword_subregs): Call run_word_dce if df available.
16996         * Makefile.in (lower-subreg.o): Adjust dependencies.
16997         (df-byte-scan.o): Delete.
16998         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
16999
17000 2010-07-29  Richard Guenther  <rguenther@suse.de>
17001
17002         * tree.c (build_vector): Assert that the vector constant
17003         has enough elements.
17004         (build_vector_from_ctor): Pad with trailing zeros.
17005
17006 2010-07-29  Richard Guenther  <rguenther@suse.de>
17007
17008         PR tree-optimization/45120
17009         * tree-ssa-structalias.c (get_constraint_for_component_ref):
17010         Handle offset in DEREFs properly.
17011         (get_constraint_for_1): Handle MEM_REF offset properly.
17012
17013 2010-07-29  Richard Guenther  <rguenther@suse.de>
17014
17015         PR middle-end/45034
17016         * convert.c (convert_to_integer): Always use an unsigned
17017         type for narrowed negate and bitwise not.
17018
17019 2010-07-29  Ira Rosen  <irar@il.ibm.com>
17020
17021         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
17022         to outer loop when creating reduction epilogue for double reduction,
17023         and switch back to the inner loop when updating the phi nodes.
17024         Update uses of outer loop exit phi nodes in double reduction (instead
17025         of uses of reduction).
17026
17027 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
17028
17029         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
17030         popcount on power7 and parity on power6 systems.
17031         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
17032         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
17033         instructions.
17034
17035         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
17036         (UNSPEC_PARITY): Ditto.
17037         (SFDF): New iterator for SF/DF.
17038         (rreg2): New mode attribute for floating register constraint.
17039         (TARGET_FLOAT): New mode attribute for whether single/double float
17040         is supported.
17041         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
17042         pattern.
17043         (parity<mode>2_cmpb): New insn for parity on power6 and newer
17044         machines.
17045         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
17046         pattern.  Add support for fcpsgn instruction added in power6.
17047         (copysignsf3): Delete.
17048         (copysigndf3): Delete.
17049         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
17050         instead of if_then_else in RTL to avoid problems with -0.
17051
17052         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
17053         of if_then_else to mirror scalar code.
17054         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
17055         rs6000.md.
17056
17057         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
17058         instead of if_then_else.
17059
17060 2010-07-28  Xinliang David Li  <davidxl@google.com>
17061
17062         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
17063         (dump_cand): Dump var_before/after.
17064         (htab_inv_expr_eq): New function.
17065         (htab_inv_expr_hash): New function.
17066         (tree_ssa_iv_optimize_init): Support pseudo invariants.
17067         (add_candidate_1): consider base type precision.
17068         (set_use_iv_cost): New parameter.
17069         (adjust_setup_cost): Use profile information.
17070         (get_address_cost): Do not hard code width in computing address
17071         offset limits.
17072         (compare_aff_trees): New function.
17073         (get_loop_invariant_expr_id): New function.
17074         (get_computation_cost_at): New parameter and use profile information.
17075         (get_computation_cost): New parameter.
17076         (determine_use_iv_cost_generic): Pass new parameter.
17077         (determine_use_iv_cost_address): Ditto.
17078         (determine_use_iv_cost_condition): Ditto.
17079         (autoinc_possible_for_pair): Ditto.
17080         (determine_use_iv_costs): More dumps.
17081         (iv_ca_get_num_inv_exprs): New function.
17082         (iv_ca_recount_cost): Consider loop invariants in register pressure
17083         cost.
17084         (iv_ca_add_use): New parameter.
17085         (iv_ca_dump): Better dumping.
17086         (iv_ca_extend): New parameter.
17087         (try_add_cand_for): Attempt to get better partial solution.
17088         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
17089         (create_new-ivs): More dumps.
17090         (rewrite_use_compare): Ditto.
17091         (free_loop_data): More cleanup.
17092         (treee_ssa_iv_optimize_finalize): Ditto.
17093
17094 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
17095
17096         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
17097         * config/i386/i386.c (ix86_profile_before_prologue): New.
17098         (override_options): Add special handling for -mfentry.
17099         (ix86_function_regparm): Likewise.
17100         (ix86_function_sseregparm): Likewise.
17101         (ix86_frame_pointer_required): Likewise.
17102         (ix86_expand_prologue): Check for ms_hook_prologue.
17103         (x86_function_profiler): Adjust mcount output.
17104         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
17105         * config/i386/i386.opt (mfentry): New.
17106         * doc/invoke.texi (mfentry): Add documentation.
17107         * doc/tm.texi: Regenerated..
17108         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
17109         * final.c (final_start_function): Replace macro
17110         PROFILE_BEFORE_PROLOGUE by target hook.
17111         * function.c (thread_prologue_and_epilogue_insns): Likewise.
17112         * target.def (profile_before_prologue): New hook.
17113         * targhooks.c (default_profile_before_prologue): New.
17114         * targhooks.h (default_profile_before_prologue): New.
17115
17116 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
17117
17118         PR debug/45105
17119         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
17120
17121         PR debug/45103
17122         * dwarf2out.c (dwarf2out_var_location): Always consider
17123         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
17124
17125 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17126
17127         PR rtl-optimization/45107
17128         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
17129
17130 2010-07-28  Richard Guenther  <rguenther@suse.de>
17131
17132         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
17133         (set_lattice_value): Do not query an old default value.
17134         (get_value_for_expr): New function.  Properly canonicalize
17135         float values.
17136         (ccp_visit_phi_node): Use it.
17137
17138 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
17139
17140         * config/arm/arm.c (arm_pcs_default): Remove static.
17141         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
17142         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
17143         (arm_pcs_default): Declare.
17144
17145 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
17146
17147         * config/rs6000/rs6000.c (rs6000_override_options):
17148         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
17149         ... to darwin_rs6000_override_options.
17150         (rs6000_return_in_memory): Update preceding comment for darwin
17151         64 bit ABI.  Use TARGET_MACHO inline.
17152         (rs6000_darwin64_struct_check_p): New.
17153         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
17154         (function_arg): Likewise.
17155         (rs6000_arg_partial_bytes): Likewise.
17156         (rs6000_function_value): Likewise.
17157
17158 2010-07-28  Andi Kleen  <ak@linux.intel.com>
17159
17160         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
17161
17162 2010-07-28  Richard Guenther  <rguenther@suse.de>
17163
17164         PR middle-end/44903
17165         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
17166         targets try harder to not generate unaligned accesses.
17167
17168 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17169
17170         PR rtl-optimization/45101
17171         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
17172         for gcse-las.
17173
17174 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17175
17176         PR tree-optimization/44885
17177         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
17178         with non-aliased component.
17179
17180 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
17181
17182         * config/darwin-driver.c (SWITCH_TAKES_ARG,
17183         WORD_SWITCH_TAKES_ARG): Remove.
17184         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
17185         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
17186         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
17187         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
17188         definitions from gcc.c.
17189         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
17190         defaults.h.
17191         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
17192         Move to defaults.h.
17193         * opts-common.c: Include tm.h.
17194         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
17195         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
17196         Handle more than one argument.  Set canonical_option_num_elements.
17197         (decode_cmdline_options_to_array): Set
17198         canonical_option_num_elements and trailing elements of
17199         canonical_option.
17200         * opts.h (struct cl_decoded_option): Allow four elements in
17201         canonical_option.  Add field canonical_option_num_elements.
17202         * Makefile.in (opts-common.o): Update dependencies.
17203
17204 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17205
17206         PR middle-end/44790
17207         PR middle-end/44993
17208         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
17209         sure the base has address_mode before adding the offset.
17210
17211 2010-07-27  Xinliang David Li  <davidxl@google.com>
17212
17213         * tree-flow.h (create_mem_ref): Add one new parameter.
17214         * tree-ssa-address.c (create_mem_ref): New parameter.
17215         (addr_to_parts): Ditto.
17216         (move_variant_to_index): New function.
17217         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
17218
17219 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17220
17221         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
17222         4 and 5.
17223         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
17224         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
17225         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
17226         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
17227         CODE_LABELs and NOTEs.
17228         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
17229         * combine.c (try_combine): Likewise.
17230         * ira.c (setup_prohibited_mode_move_regs): Likewise.
17231         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
17232
17233 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17234
17235         * coretypes.h (struct cl_option_handlers): Declare.
17236         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
17237         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
17238         * langhooks-def.h (lhd_handle_option): Declare.
17239         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
17240         * langhooks.c (lhd_handle_option): New.
17241         * langhooks.h (struct lang_hooks): Update prototype and return
17242         value type of handle_option hook.
17243         * optc-gen.awk: Generate target_flags_explicit definition for the
17244         driver.
17245         * opts-common.c: Include diagnostic.h.
17246         (handle_option): Move from opts.c.  Update prototype and return
17247         value type.  Use handlers structure.
17248         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
17249         handlers structure.
17250         (set_option): Move from opts.c.
17251         * opts.c (common_handle_option): Update prototype and return value
17252         type.  Update calls to handle_option and enable_warning_as_error.
17253         (unknown_option_callback, post_handling_callback,
17254         lang_handle_option, target_handle_option): New.
17255         (handle_option, read_cmdline_option): Move to opts-common.c.
17256         (read_cmdline_options): Update prototype.  Update call to
17257         read_cmdline_option.
17258         (decode_options): Initialize and use handlers structure.
17259         (set_option): Move to opts-common.c.
17260         (enable_warning_as_error): Update prototype.  Update call to
17261         handle_option.
17262         * opts.h (struct cl_option_handler_func, struct
17263         cl_option_handlers): New.
17264         (handle_option, enable_warning_as_error): Update prototypes.
17265         (read_cmdline_option): Declare.
17266         * Makefile.in (opts-common.o): Update dependencies.
17267
17268 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17269
17270         * config/arm/arm.c (params.h): Include.
17271         (arm_override_options): Tune gcse-unrestricted-cost.
17272         * config/arm/t-arm (arm.o): Define dependencies.
17273
17274 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17275
17276         PR target/42495
17277         PR middle-end/42574
17278         * basic-block.h (get_dominated_to_depth): Declare.
17279         * dominance.c (get_dominated_to_depth): New function, use
17280         get_all_dominated_blocks as a base.
17281         (get_all_dominated_blocks): Use get_dominated_to_depth.
17282
17283         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
17284         (hoist_exprs): Remove.
17285         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
17286         (compute_code_hoist_vbeinout): Add debug print outs.
17287         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
17288
17289         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
17290         quadratic behavior.
17291         * params.h (MAX_HOIST_DEPTH): New macro.
17292         * doc/invoke.texi (max-hoist-depth): Document.
17293
17294 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17295
17296         PR rtl-optimization/40956
17297         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
17298         constants.
17299
17300 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17301
17302         PR target/42495
17303         PR middle-end/42574
17304         * config/arm/arm.c (legitimize_pic_address): Use
17305         gen_calculate_pic_address pattern to emit calculation of PIC address.
17306         (will_be_in_index_register): New function.
17307         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
17308         (thumb1_legitimate_address_p): Use it provided !strict_p.
17309         * config/arm/arm.md (calculate_pic_address): New expand and split.
17310
17311 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17312
17313         PR target/42495
17314         PR middle-end/42574
17315         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
17316         * config/arm/arm.md (define_split "J", define_split "K"): Make
17317         IRA/reload friendly.
17318
17319 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17320
17321         * gcse.c (insert_insn_end_basic_block): Update signature, remove
17322         unused checks.
17323         (pre_edge_insert, hoist_code): Update.
17324
17325 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17326
17327         PR target/42495
17328         PR middle-end/42574
17329         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
17330
17331 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17332
17333         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
17334
17335 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17336
17337         PR rtl-optimization/40956
17338         PR target/42495
17339         PR middle-end/42574
17340         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
17341         for hoisting.
17342         (hoist_code): Count occurences in current block too.
17343
17344 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17345
17346         * gcse.c (struct expr:max_distance): New field.
17347         (doing_code_hoisting_p): New static variable.
17348         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
17349         simple expressions, don't change behavior for PRE.  Set max_distance.
17350         (insert_expr_in_table): Set new max_distance field.
17351         (hash_scan_set): Update.
17352         (hoist_expr_reaches_here_p): Stop search after max_distance
17353         instructions.
17354         (find_occr_in_bb): New static function.  Use it in ...
17355         (hoist_code): Calculate sizes of basic block before any changes are
17356         done.  Pass max_distance to hoist_expr_reaches_here_p.
17357         (one_code_hoisting_pass): Set doing_code_hoisting_p.
17358
17359         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
17360         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
17361         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
17362         macros.
17363         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
17364         Document.
17365
17366 2010-07-27  Jeff Law  <law@redhat.com>
17367             Maxim Kuvyrkov  <maxim@codesourcery.com>
17368
17369         * gcse.c (compute_transpout, transpout): Remove, move logic
17370         to prune_expressions.
17371         (compute_pre_data): Move pruning of trapping expressions ...
17372         (prune_expressions): ... here.  New static function.
17373         (compute_code_hoist_data): Use it.
17374         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
17375
17376 2010-07-27  Xinliang David Li  <davidxl@google.com>
17377
17378         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
17379         (rewrite_use_address): Adjust iv update position when needed.
17380
17381 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17382
17383         * dbgcnt.def (hoist_insn): New debug counter.
17384         * gcse.c (hoist_code): Use it.
17385
17386 2010-07-27  Xinliang David Li  <davidxl@google.com>
17387
17388         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
17389         (niter_for_single_dom_exit): Passes additional parameter.
17390         (iv_period): Fix comments.
17391         (may_eliminate_iv): Handles multiple exit loops properly.
17392         (free_tree_niter_desc): New function.
17393         (free_loop_data): Frees up loop iteration descriptors.
17394
17395 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17396
17397         PR target/44542
17398         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
17399         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
17400         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
17401         (expand_one_var): Don't consider DECL_ALIGN for variables for
17402         which expand_one_stack_var_at has been already called.
17403
17404         PR testsuite/44701
17405         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
17406         constraints on IA-64.
17407
17408 2010-07-27  Jie Zhang  <jie@codesourcery.com>
17409
17410         PR target/44290
17411         Revert:
17412         2010-07-23  Jie Zhang  <jie@codesourcery.com>
17413
17414         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17415         false if ! tree_versionable_function_p.
17416
17417 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17418
17419         * dwarf2out.c (add_data_member_location_attribute): Use
17420         add_AT_unsigned instead of add_AT_int if offset is non-negative.
17421
17422 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17423
17424         * postreload.c (try_replace_in_use): New static function.
17425         (reload_combine_recognize_const_pattern): Use it here.  Allow
17426         substituting into a final add insn, and substituting into a memory
17427         reference in an insn that sets the reg.
17428
17429 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17430
17431         * common.opt (o): Add MissingArgError.
17432         * doc/options.texi (MissingArgError): Document.
17433         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
17434         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
17435         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
17436         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
17437         * langhooks.h (struct lang_hooks): Remove missing_argument.
17438         * optc-gen.awk: Handle MissingArgError and output new structure
17439         field initializers.
17440         * opts.c (read_cmdline_option): Use missing_argument_error field
17441         instead of missing_argument langhook.
17442         * opts.h (struct cl_option): Add missing_argument_error field.
17443         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
17444
17445 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17446
17447         PR target/29090
17448         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
17449         Darwin64 ABI, for zero-sized objects.
17450
17451 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17452
17453         PR target/35491
17454         PR target/29090
17455
17456         Merge from Apple local 4.2.1.
17457         2005-05-11  Stan Shebs  <shebs@apple.com>
17458         Fix 64-bit varargs for Darwin (Radar 4028089).
17459         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
17460         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
17461         Add argument, add case for 8-byte register half-filled with a float.
17462         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
17463         single-precision floats specially.
17464
17465 2010-07-27  Ira Rosen  <irar@il.ibm.com>
17466
17467         PR tree-optimization/44152
17468         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
17469         complex numbers for further check.
17470         (vect_supported_load_permutation_p): Check nodes with
17471         complex numbers.
17472
17473 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17474
17475         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
17476         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
17477         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
17478         (LANG_HOOKS_INITIALIZER): Add new hooks.
17479         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
17480         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
17481         and complain_wrong_lang_p.  Update init_options prototype.
17482         * c-objc-common.c (c_initialize_diagnostics): First call
17483         c_common_initialize_diagnostics.
17484         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
17485         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
17486         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
17487         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
17488         (hook_uint_void_0): New.
17489         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
17490         (hook_uint_void_0): New.
17491         * opts-common.c (decode_cmdline_option,
17492         decode_cmdline_options_to_array): Also fill in canonical_option field.
17493         * opts.c (complain_wrong_lang): Use langhook to determine whether
17494         to complain instead of special-casing LTO.
17495         (decode_options): Separate lang_mask determination with
17496         option_lang_mask hook from call of init_options hook.
17497         * opts.h (struct cl_decoded_option): Add canonical_option.
17498
17499 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17500
17501         PR tree-optimization/45083
17502         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
17503
17504 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17505
17506         * postreload.c (reload_combine_recognize_const_pattern): Move test
17507         for limiting the insn movement to the right scope.
17508
17509         PR rtl-optimization/45051
17510         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
17511         than reg_mentioned_p.
17512
17513 2010-07-26  Richard Henderson  <rth@redhat.com>
17514
17515         PR target/44132
17516         * tree-emutls.c: New file.
17517         * Makefile.in (OBJS-common): Add it.
17518         * tree-pass.h (pass_ipa_lower_emutls): Declare.
17519         * passes.c (init_optimization_passes): Add it.
17520
17521         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
17522         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
17523         * expr.c (emutls_var_address): Delete.
17524         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
17525         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
17526         (emutls_finish): Delete.
17527         * toplev.c (compile_file): Don't call it.
17528         * tree.h (emutls_decl): Delete.
17529         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
17530         (emutls_finish, emutls_finalize_control_var): Delete.
17531         (emutls_object_type): Move to tree-emutls.c.
17532         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
17533         default_emutls_var_fields, get_emutls_object_type,
17534         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
17535         default_emutls_var_init): Likewise.
17536         (get_variable_section): Don't special case emutls.
17537         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
17538         default_elf_select_section, default_unique_section,
17539         default_encode_section_info): Likewise.
17540         * varpool.c (decide_is_variable_needed): Likewise.
17541         * gimple-iterator.c (update_call_edge_frequencies): New
17542         (gsi_insert_on_edge_immediate): Use it.
17543         (gsi_insert_seq_on_edge_immediate): Likewise.
17544         (gsi_commit_one_edge_insert): Likewise.
17545
17546         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
17547         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
17548         (x86_64_elf_unique_section): Likewise.
17549
17550 2010-07-26  Jan Hubicka  <jh@suse.cz>
17551
17552         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
17553         GTY((skip)).
17554
17555 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
17556
17557         * target.def (output_source_filename): New hook.
17558         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
17559         * doc/tm.texi: Regenerate.
17560         * toplev.c (output_file_directive) Remove function.
17561         * toplev.h (output_file_directive) Remove.
17562         * output.h (default_asm_output_source_filename,
17563         output_file_directive): Declare.
17564         * varasm.h (default_asm_output_source_filename,
17565         output_file_directive): New functions.
17566
17567         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17568         * config/mips/mips-protos.h (mips_output_filename): Remove.
17569         * config/mips/mips.c (mips_output_filename): Make Static.
17570         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
17571
17572 2010-07-26  Richard Guenther  <rguenther@suse.de>
17573
17574         PR tree-optimization/43784
17575         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
17576         if the destination is used by the call.
17577
17578 2010-07-26  Richard Guenther  <rguenther@suse.de>
17579
17580         PR middle-end/45073
17581         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
17582         SSA updating on being in SSA form.
17583
17584 2010-07-26  Richard Guenther  <rguenther@suse.de>
17585
17586         PR middle-end/45056
17587         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
17588
17589 2010-07-26  Richard Guenther  <rguenther@suse.de>
17590
17591         PR tree-optimization/45071
17592         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
17593         adjust op->opcode.
17594
17595 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
17596
17597         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
17598         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
17599         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
17600         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
17601         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
17602         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
17603         save_r31, return_r31, save_interrupt, return_interrupt,
17604         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
17605         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
17606         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
17607         new ABI requirements.
17608         (save_r6_r9, L_callt_save_r6_r9): Remove.
17609         * config/v850/predicates.md (even_reg_operand, disp23_operand,
17610         const_float_1_operand const_float_0_operand): New Predicates.
17611         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
17612         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
17613         * config/v850/t-v850: Update multilibs for new target variants.
17614         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
17615         * config/v850/t-v850e: Likewise.
17616         * config/v850/v850.c (v850_issue_rate): New.
17617         (v850_strict_argument_naming): New.
17618         (function_arg): Modify to generate a different ABI.
17619         (print_operand): Update case 'z' to support float modes.
17620         (output_move_single): Modify to generate appropriate and better
17621         assembly.
17622         (v850_float_z_comparison_operator, v850_select_cc_mode,
17623         v850_float_nz_comparison_operator,  v850_gen_float_compare,
17624         v850_gen_compare): New functions to support comparison of float values.
17625         (ep_memory_offset): Add support for V850E2 targets.
17626         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
17627         (INTERRUPT_REGPARM_NUM): Remove.
17628         (compute_register_save_size): Add extra case to save/restore long call.
17629         (use_prolog_function): New function to support prologue.
17630         (expand_prologue): Add support for V850E2 targets and modified
17631         as per the current ABI requirements.
17632         (expand_epilogue): Likewise.
17633         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
17634         (construct_save_jarl): Likewise.
17635         (construct_dispose_instruction): Update as per the current ABI
17636         requirements.
17637         (construct_prepare_instruction): Likewise.
17638         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
17639         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
17640         (CPP_SPEC): Updated to support v850e2 targets.
17641         (STRICT_ALIGNMENT): Modified.
17642         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
17643         (FIXED_REGISTERS): Likewise.
17644         (CALL_USED_REGISTERS): Likewise.
17645         (CONDITIONAL_REGISTER_USAGE): Updated.
17646         (HARD_REGNO_MODE_OK): Updated.
17647         (reg_class): Updated to add even registers.
17648         (REG_CLASS_NAMES): Likewise.
17649         (REG_CLASS_CONTENTS): Likewise.
17650         (REGNO_REG_CLASS): Updated for CC registers.
17651         (REG_CLASS_FROM_LETTER): Added support for even registers.
17652         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
17653         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
17654         ARG_POINTER_REGNUM): Updated.
17655         (FUNCTION_ARG_ADVANCE): Define.
17656         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
17657         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
17658         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
17659         (GO_IF_LEGITIMATE_ADDRESS): Updated.
17660         (SELECT_CC_MODE): Define.
17661         (REGISTER_NAMES): Updated to add psw and fcc registers.
17662         (ADDITIONAL_REGISTER_NAMES): Updated.
17663         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
17664         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
17665         * config/v850/v850.md (define_constants): Define new constants.
17666         (type): Update store,bit1,macc,div,fpu and single attributes.
17667         (cpu): New attribute.
17668         (cc): Add set_z attribute.
17669         (unsign23byte_load, sign23byte_load, unsign23hword_load,
17670         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
17671         23word_store): New instructions for 23-bit displacement load and store.
17672         (movqi_internal, movhi_internal): Update the attributes.
17673         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
17674         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
17675         the attributes.
17676         (v850_tst1): Modified using CC_REGNUM.
17677         (tstsi): Remove.
17678         (cmpsi): Modified as define_expand from define_insn.
17679         (cmpsi_insn, cmpsf, cmpdf): New instructions.
17680         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
17681         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
17682         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
17683         one_cmplsi2): Clobber the CC_REGNUM register.
17684         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
17685         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
17686         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
17687         (setf_insn, set_z_insn, set_nz_insn): New instructions for
17688         v850e2v3 target.
17689         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
17690         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
17691         targets.
17692         (sasf_1, sasf_2): Remove.
17693         (sasf): New instruction.
17694         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
17695         targets. CC_REGNUM register is clobbered and attributes are
17696         updated.
17697         (branch_z_normal, branch_z_invert, branch_nz_normal,
17698         branch_nz_invert): New branch related instructions.
17699         (jump): Updated the attributes.
17700         (switch): Update to support new targets. CC_REGNUM register is
17701         clobbered and attributes are updated.
17702         (call_internal_short, call_internal_long, call_value_internal_short,
17703         call_value_internal_long): Updated the attributes.
17704         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
17705         clobbered and attributes are updated.
17706         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
17707         Update to support new targets. CC_REGNUM register is clobbered.
17708         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
17709         instructions.
17710         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
17711         are updated.
17712         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
17713         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
17714         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
17715         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
17716         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
17717         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
17718         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
17719         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
17720         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
17721         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
17722         point instructions defined for V850e2v3 target.
17723         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
17724         Add support for V850E2 targets and CC_REGNUM register is clobbered.
17725         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
17726         support for new targets.
17727         * config/v850/v850-modes.def: New file.
17728         * config/v850/v850.opt(mstrict-align): Remove.
17729         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
17730         mv850e2v3): New command line options for V850.
17731         * config.gcc: Update the newly added files.
17732         * doc/invoke.texi: Update the newly added command line options for
17733         V850 target.
17734
17735 2010-07-26  Richard Guenther  <rguenther@suse.de>
17736
17737         PR tree-optimization/45052
17738         * ipa-pure-const.c (check_stmt): Check volatileness.
17739
17740 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17741
17742         PR target/44707
17743         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
17744         * config/sparc/sparc.c: Include reload.h.
17745         (legitimize_tls_address): Rename into...
17746         (sparc_legitimize_tls_address): ...this.
17747         (legitimize_pic_address): Rename into...
17748         (sparc_legitimize_pic_address): ...this.
17749         (sparc_expand_move): Adjust to above renaming.
17750         (sparc_tls_referenced_p): Likewise.
17751         (sparc_legitimize_tls_address): Likewise.
17752         (sparc_legitimize_pic_address): Likewise.
17753         (sparc_legitimize_address): Likewise.
17754         (sparc_output_mi_thunk): Likewise.
17755         (sparc_legitimize_reload_address): New global function.  Recognize
17756         (lo_sum (high ...) ...) patterns generated by earlier passes.
17757         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
17758
17759 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17760
17761         PR target/44484
17762         * config/sparc/predicates.md (memory_reg_operand): Delete.
17763         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
17764         (*sync_compare_and_swap): Encode the address form in the pattern.
17765         (*sync_compare_and_swapdi_v8plus): Likewise.
17766
17767 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
17768
17769         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
17770         Streamline paragraph on compatibility with the system compiler.
17771
17772 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
17773
17774         PR middle-end/45035
17775         * alias.c (true_dependence_1): Fix thinko in merge of old
17776         true_dependence and canon_true_dependence.
17777
17778 2010-07-23  Jan Hubicka  <jh@suse.cz>
17779
17780         * lto-streamer-out.c (write_symbol): Fix visibilities of external
17781         references.
17782
17783 2010-07-23  Le-Chun Wu  <lcwu@google.com>
17784
17785         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
17786         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
17787         and an unnecessary assignment.
17788         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
17789         self-assign warning.
17790         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
17791         unnecessary self-init.
17792
17793 2010-07-23  Richard Guenther  <rguenther@suse.de>
17794
17795         PR lto/43071
17796         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
17797         for -flto and -fwhopr.
17798
17799 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
17800
17801         PR target/41943
17802         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
17803         (stmp-int-hdrs): Prefix/postfix headers by include_next.
17804         * config.gcc (user_headers_inc_next_pre): New.
17805         (user_headers_inc_next_post): Likewise.
17806         (*-w64-mingw*): Use for float.h post-fixing, and for
17807         stddef.h/stdarg.h pre-fixing by include_next.
17808         * configure.ac (user_headers_inc_next_post): New.
17809         (user_headers_inc_next_pre): New.
17810         * configure: Regenerated.
17811
17812 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17813
17814         * configure.ac: Don't disable TLS on Solaris 8/9 by default
17815         Set tga_func for Solaris 2/x86 resp. SPARC.
17816         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
17817         (LIB_THREAD_LDFLAGS_SPEC): Define.
17818         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
17819         * configure: Regenerate.
17820         * config.in: Regenerate.
17821         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
17822         -pthread, -threads, LIB_TLS_SPEC with -pthread.
17823         * doc/install.texi (Specific, *-*-solaris2*): Document use of
17824         alternate thread libraries on Solaris 8.
17825         Document TLS patch requirements.
17826         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
17827         Document tls.
17828
17829         PR target/18788
17830         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
17831         -shared.
17832
17833 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
17834
17835         * tree.h (struct tree_base): Add nameless_flag bitfield.
17836         (TYPE_NAMELESS, DECL_NAMELESS): Define.
17837         * omp-low.c (create_omp_child_function, scan_omp_parallel,
17838         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
17839         DECL_ARTIFICIAL where needed.
17840         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
17841         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
17842         has DECL_NAMELESS set.
17843
17844 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17845
17846         PR tree-optimization/44915
17847         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
17848         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
17849         (analyze_function): Likewise.
17850
17851 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17852
17853         PR tree-optimization/44914
17854         * tree-sra.c (sra_modify_function_body): Return true if CFG was
17855         changed, add purging dead eh edges.
17856         (ipa_sra_modify_function_body): Return true if CFG was changed,
17857         simplify purging dead eh edges.
17858         (modify_function): Return true if CFG was changed.
17859         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
17860         was changed.
17861         (ipa_early_sra): Likewise.
17862
17863 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17864
17865         PR target/44290
17866         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
17867         if "naked".
17868         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17869         false if ! tree_versionable_function_p.
17870
17871 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
17872
17873         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
17874         * ipa-pure-const.c (special_builtlin_state): Remove
17875         BUILT_IN_ARGS_INFO case.
17876         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
17877         * builtins.c (expand_builtin): Likewise.
17878         (expand_builtin_args_info): Remove.
17879         * doc/tm.texi (__builtin_args_info): Remove.
17880         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
17881         * doc/tm.text.in: Likewise.
17882
17883 2010-07-23  Richard Guenther  <rguenther@suse.de>
17884
17885         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
17886         (lto_symtab_merge_decls_2): Likewise.
17887         * tree-ssa.c (useless_type_conversion_p): Likewise.
17888         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17889         * gimple.c (gtc_visited2, gtc_ob2): Remove.
17890         (struct type_pair_d): Make same_p an array indexed by mode.
17891         Update comment.
17892         (lookup_type_pair): Update initialization.
17893         (struct sccs): Adjust same_p type.
17894         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
17895         Adjust.
17896         (print_gimple_types_stats): Likewise.
17897         * gimple.h (enum gtc_mode): New.
17898         (gimple_types_compatible_p): Adjust prototype.
17899
17900 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
17901
17902         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
17903         again after processing insn.
17904
17905 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17906
17907         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
17908         proper words when !tree_versionable_function_p.
17909
17910 2010-07-23  Richard Guenther  <rguenther@suse.de>
17911
17912         PR tree-optimization/45037
17913         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
17914
17915 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17916
17917         * doc/extend.texi: Remove IP2K from the description of naked attribute.
17918         Add MCORE instead.
17919
17920 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17921
17922         PR lto/44992
17923         * lto-opts.c (lto_write_options): Add NULL file_data argument to
17924         lto_get_section_name.
17925         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
17926         * lto-streamer-out.c (produce_asm): Likewise.
17927         (copy_function): Likewise.
17928         (produce_symtab): Likewise.
17929         (produce_asm_for_decls): Likewise.
17930         * lto-streamer.c (lto_get_section_name): Add file_data argument.
17931         Rewrite to add random postfix to LTO sections.
17932         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
17933         (lto_get_section_name): Add file_data argument to prototype.
17934
17935 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17936
17937         * lto-section-in.c (lto_section_name): Synchronize names
17938         with lto_get_section_name.
17939
17940 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17941
17942         * lto-opts.c (lto_read_file_options): Check for missing section.
17943
17944 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17945
17946         * ira.c (check_allocation): Correctly handle the case where an allocno
17947         with two objects was allocated to a single reg.
17948
17949 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
17950
17951         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
17952         (is_widening_mult_p): Likewise.
17953         (convert_to_widen): Use them.
17954         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
17955         well as integer ones.
17956
17957 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
17958
17959         * alias.c (true_dependence_1): New function, merged version of
17960         true_dependence and canon_true_dependence.
17961         (true_dependence): Simplify.
17962         (canon_true_dependence): Simplify.
17963
17964 2010-07-22  Richard Henderson  <rth@redhat.com>
17965
17966         PR target/45027
17967         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
17968         of V4SFmode for the SSE saves; increase stack alignment if needed.
17969         (ix86_gimplify_va_arg): Don't increase stack alignment here.
17970
17971 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
17972
17973         PR bootstrap/45028
17974         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
17975         call cprop_find_used_regs again via note_uses.
17976
17977 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
17978
17979         * alias.c (get_alias_set): Fix formatting issues.
17980
17981 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
17982
17983         PR middle-end/44878
17984         * stmt.c (expand_value_return):  Call promote_function_mode with
17985         a for_return argument of 2 when returning by reference.
17986
17987 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
17988
17989         PR debug/45024
17990         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
17991         unit DIE if we can find the scope DIE.
17992
17993 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17994
17995         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
17996         changed.  Initialize OBJECT_SUBWORD.
17997         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
17998         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
17999         all callers changed.
18000         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
18001         (finish_allocno): Likewise.
18002         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
18003         (remove_low_level_allocnos): Likewise.
18004         (update_bad_spill_attribute): Likewise.
18005         (setup_min_max_allocno_live_range_point): Likewise.
18006         (sort_conflict_id_map): Likewise.
18007         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
18008         (ior_hard_reg_conflicts): New function.
18009         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
18010         (compress_conflict_vecs): Iterate over objects, not allocnos.
18011         (ira_add_live_range_to_object): New function.
18012         (object_range_compare_func): Renamed from allocno_range_compare_func.
18013         All callers changed.
18014         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
18015         subobjects, widen the min/max range of the lowest-order object to
18016         potentially include all other such low-order objects.
18017         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
18018         (check_allocation): Likewise.  Use more fine-grained tests for register
18019         conflicts.
18020         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
18021         allocno subobjects.
18022         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
18023         choices about which bits to set in each set.  Don't use
18024         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
18025         using the multiple sets we computed.
18026         (push_allocno_to_stack): Iterate over allocno subobjects.
18027         (all_conflicting_hard_regs_coalesced): New static function.
18028         (setup_allocno_available_regs_num): Use it.
18029         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
18030         subobjects.
18031         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
18032         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
18033         by ALLOCNO_NUM_OBJECTS.
18034         (calculate_spill_cost): Likewise.
18035         (color_pass): Express if statement in a more normal way.
18036         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
18037         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
18038         (setup_slot_coalesced_allocno_live_ranges): Likewise.
18039         (allocno_reload_assign): Likewise.
18040         (ira_reassign_pseudos): Likewise.
18041         (fast_allocation): Likewise.
18042         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18043         (print_allocno_conflicts): Likewise.
18044         (ira_build_conflicts): Likewise.
18045         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
18046         callers changed.  Test subword 0 of each allocno for conflicts.
18047         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
18048         callers changed.  Iterate over allocno subobjects.
18049         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
18050         * ira-int.h (struct ira_allocno): New member: num_objects.
18051         Rename object to objects and change it into an array.
18052         (ALLOCNO_OBJECT): Add new argument N.
18053         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
18054         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
18055         (ior_hard_reg_conflicts): Declare.
18056         (ira_add_live_range_to_object): Declare.
18057         (ira_allocno_object_iterator): New.
18058         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
18059         (FOR_EACH_ALLOCNO_OBJECT): New macro.
18060         * ira-lives.c (objects_live): Renamed from allocnos_live; all
18061         uses changed.
18062         (allocnos_processed): New sparseset.
18063         (make_object_born): Renamed from make_allocno_born; take an
18064         ira_object_t argument.  All callers changed.
18065         (make_object_dead): Renamed from make_allocno_dead; take an
18066         ira_object_t argument.  All callers changed.
18067         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
18068         All callers changed.
18069         (mark_pseudo_regno_live): Iterate over allocno subobjects.
18070         (mark_pseudo_regno_dead): Likewise.
18071         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
18072         functions.
18073         (mark_ref_live): Detect subword accesses and call
18074         mark_pseudo_regno_subword_live as appropriate.
18075         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
18076         (process_bb_nodes_live): Deal with object-related updates first; set
18077         and test bits in allocnos_processed to avoid computing allocno
18078         statistics more than once.
18079         (create_start_finish_chains): Iterate over objects, not allocnos.
18080         (print_object_live_ranges): New function.
18081         (print_allocno_live_ranges): Use it.
18082         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
18083         and objects_live.
18084
18085 2010-07-22  Richard Guenther  <rguenther@suse.de>
18086
18087         PR lto/42451
18088         * gimple.c (gtc_next_dfs_num): New global.
18089         (struct sccs): Make value a union, add integer same_p member.
18090         (gtc_visit): New function.
18091         (gimple_types_compatible_p_1): New function, split out from ...
18092         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
18093         (iterative_hash_gimple_type): Adjust for sccs change.
18094
18095 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18096
18097         PR tree-optimization/44891
18098         * tree-sra.c: Include gimple-pretty-print.h.
18099         (replace_uses_with_default_def_ssa_name): Renamed to
18100         get_repl_default_def_ssa_name, return the new SSA name instead of
18101         replacing the old one.
18102         (sra_modify_assign): Dump a message when removing a load, if the LHS
18103         is an SSA_NAME, do not do any propagation, just set the RHS to a
18104         default definition SSA NAME, type convert if necessary.
18105         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
18106
18107 2010-07-22  Richard Guenther  <rguenther@suse.de>
18108
18109         PR tree-optimization/45017
18110         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
18111         TYPE_PRECISION of integral types in addition to size.
18112
18113 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
18114
18115         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
18116         when no C library is specified.
18117
18118 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18119
18120         * ipa-prop.h (struct ipa_node_params): Updated comment.
18121         (struct ipa_edge_args): Likewise.
18122         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
18123
18124 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18125
18126         * cgraphunit.c (verify_edge_count_and_frequency): New function.
18127         (verify_cgraph_node): Verify frequencies of indirect edges.
18128         * tree-inline.c (tree_function_versioning): Update frequencies of
18129         indirect edges.
18130
18131 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18132
18133         PR target/43698
18134         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
18135         Set *arm_rev to be predicable.
18136
18137 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18138
18139         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
18140         (LINK_COMMAND_SPEC_A): New.
18141         (DSYMUTIL): New.
18142         (DSYMUTIL_SPEC): New.
18143         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
18144         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
18145
18146 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18147
18148         * calls.c (load_register_parameters): Move check for zero
18149         sized items so that only the call to
18150         mem_overlaps_already_clobbered_arg_p () is protected.
18151
18152 2010-07-22  Jan Hubicka  <jh@suse.cz>
18153
18154         * ipa-pure-const.c (varying_state): Break out from ...
18155         (get_function_state): ... here; always return varying_state
18156         when state would be NULL otherwise.
18157         (remove_node_data): Do not free varying state.
18158
18159 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18160
18161         PR bootstrap/44970
18162         PR middle-end/45009
18163         * postreload.c: Include "target.h".
18164         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
18165         into account.
18166         (fixup_debug_insns): Don't copy the rtx.
18167         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
18168         Don't copy when replacing.  Call fixup_debug_insns in the case where
18169         we merged one add with another.
18170         (reload_combine_recognize_pattern): Fail if there aren't any uses.
18171         Try harder to determine whether we're picking a valid index register.
18172         Don't set store_ruid for an insn we're going to scan in the
18173         next iteration.
18174         (reload_combine): Remove unused code.
18175         (reload_combine_note_use): When updating use information for
18176         an old insn, ignore a use that occurs after store_ruid.
18177         * Makefile.in (postreload.o): Update dependencies.
18178
18179         * function.c (record_hard_reg_sets): Restrict the previous change
18180         to cases where the incoming nominal mode is the same as the
18181         incoming promoted mode and everything happens in MODE_INT.
18182
18183 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18184
18185         PR debug/45015
18186         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
18187         ASM_OPERANDS_OUTPUT_IDX.
18188         (adjust_insn): For inline asm with multiple sets ensure first
18189         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
18190         the insn.
18191
18192 2010-07-21  Richard Henderson  <rth@redhat.com>
18193
18194         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
18195         comparison for avoiding xmm register saves.  Emit the xmm register
18196         saves explicitly.
18197         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
18198         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
18199         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
18200         Remove patterns and the associated splitters.
18201
18202 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
18203
18204         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
18205         and imagine parts of a complex, so that they can have the same
18206         base and fall into the same group.
18207
18208 2010-07-21  Richard Guenther  <rguenther@suse.de>
18209
18210         PR lto/45018
18211         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
18212         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
18213         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
18214
18215 2010-07-21  Martin Jambor  <mjambor@suse.cz>
18216
18217         PR tree-optimization/44900
18218         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
18219         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
18220
18221 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
18222
18223         PR middle-end/44738
18224         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
18225
18226 2010-07-21  Richard Guenther  <rguenther@suse.de>
18227
18228         PR middle-end/45013
18229         * tree-ssa.c (useless_type_conversion_p): Dispatch to
18230         gimple_types_compatible_p only when in lto.
18231         * gimple.c (gimple_types_compatible_p): Use canonical types
18232         to speed up comparison.
18233
18234 2010-07-21  Richard Guenther  <rguenther@suse.de>
18235
18236         * tree-flow.h (referenced_var): Move define ...
18237         * tree-flow-inline.h (referenced_var): ... here as an inline
18238         function.  Assert here ...
18239         * tree-dfa.c (referenced_var_lookup): ... instead of here.
18240         * tree-ssa.c (maybe_optimize_var): Check if the variable
18241         is in referenced vars.
18242         (execute_update_addresses_taken): Remove old broken check.
18243         * gimple-pretty-print.c (pp_points_to_solution): Use
18244         referenced_var_lookup.
18245         * tree-into-ssa.c (dump_decl_set): Likewise.
18246
18247 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18248
18249         PR debug/45003
18250         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
18251         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
18252         ZERO_EXTEND here.
18253
18254 2010-07-20  Richard Henderson  <rth@redhat.com>
18255
18256         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
18257
18258 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18259
18260         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
18261         computing the sum of the stack pointer and a large constant.
18262         * config/arm/constraints.md (M): Remove superfluous parentheses.
18263         (Pc): New constraint.
18264
18265 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18266
18267         PR debug/45006
18268         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
18269         operand's type if exp is tcc_unary class tree.
18270
18271 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18272
18273         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
18274         Reverse sense of if_then_else condition.
18275
18276 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18277
18278         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
18279         * config/rs6000/rs6000.c (rs6000_override_options): Set
18280         rs6000_block_move_inline_limit appropriately.
18281         (expand_block_move): Use rs6000_block_move_inline_limit.
18282         * doc/invoke.texi (mblock-move-inline-limit): Document.
18283
18284 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18285
18286         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
18287         FROM and TO.  All callers changed.  Don't look for tracked uses,
18288         just scan the RTL for DEBUG_INSNs and substitute.
18289         (reload_combine_recognize_pattern): Call fixup_debug_insns.
18290         (reload_combine): Ignore DEBUG_INSNs.
18291
18292 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18293
18294         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
18295         depth to 8 from 5.
18296
18297         PR debug/45003
18298         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
18299         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
18300         instead of the result's type.
18301
18302 2010-07-20  Richard Guenther  <rguenther@suse.de>
18303
18304         PR tree-optimization/44977
18305         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
18306         SSA form.
18307
18308 2010-07-20  Richard Guenther  <rguenther@suse.de>
18309
18310         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
18311         (lto_symtab_merge_decls_2): Likewise.
18312         * gimple.h (gimple_types_compatible_p): Declare.
18313         * gimple.c (gimple_queue_type_fixup): Remove.
18314         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
18315         (gimple_compatible_complete_and_incomplete_type_p): New function.
18316         (gimple_types_compatible_p): Adjust.
18317         (gimple_register_type): Remove type fixup code.
18318         (print_gimple_types_stats): Adjust.
18319         (free_gimple_type_tables): Likewise.
18320         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
18321         * tree-ssa.c (useless_type_conversion_p): Likewise.
18322
18323 2010-07-20  Richard Guenther  <rguenther@suse.de>
18324
18325         PR middle-end/44971
18326         PR middle-end/44988
18327         * tree-ssa.c (maybe_optimize_var): New function split out from ...
18328         (execute_update_addresses_taken): ... here.
18329         (non_rewritable_mem_ref_base): Likewise.
18330         (execute_update_addresses_taken): Do not iterate over all referenced
18331         vars but just all local decls and parms.
18332         Properly check call and asm arguments and rewrite call arguments.
18333
18334 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
18335
18336         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
18337         to top level.
18338         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
18339         definitions ...
18340         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
18341         New macro.
18342         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
18343
18344 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
18345
18346         * gengtype.c (start_root_entry): New function, split out from
18347         write_root.  Check whether V is null and raise an error if so.
18348         (write_field_root): Check for V being null.  Don't raise an error here;
18349         set V to null instead.
18350         (write_root): Update comment above function.  Use start_root_entry.
18351
18352 2010-07-19  Xinliang David Li  <davidxl@google.com>
18353
18354         PR testsuite/44932
18355         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
18356         def edges.
18357         (find_uninit_use): Add dump.
18358         (is_use_properly_guarded): Ditto.
18359         (warn_uninitialized_phi): Ditto.
18360         (execute_late_warn_uninitialized): Ditto.
18361
18362 2010-07-19  Richard Guenther  <rguenther@suse.de>
18363
18364         PR middle-end/44941
18365         * expr.c (emit_block_move_hints): Move zero size check first.
18366         Move asserts to more useful places.
18367         * calls.c (load_register_parameters): Check for zero size.
18368
18369 2010-07-19  Richard Henderson  <rth@redhat.com>
18370
18371         * tree-optimize.c (execute_all_early_local_passes): New.  Change
18372         cgraph_state here ...
18373         (execute_early_local_optimizations): ... not here.  Remove.
18374         (pass_early_local_passes, pass_all_early_optimizations): Update.
18375
18376 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
18377
18378         * postreload.c (reload_combine_closest_single_use): Ignore the
18379         number of uses for DEBUG_INSNs.
18380         (fixup_debug_insns): New static function.
18381         (reload_combine_recognize_const_pattern): Use it.  Don't let the
18382         main loop be affected by DEBUG_INSNs.
18383         Really disallow moving adds past a jump insn.
18384         (reload_combine_recognize_pattern): Don't update use_ruid here.
18385         (reload_combine_note_use): Do it here.
18386         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
18387
18388 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
18389
18390         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
18391         of a loop.
18392         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
18393
18394 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
18395
18396         * config/i386/darwin.h: Define darwin_emit_branch_islands.
18397         (TARGET_MACHO_BRANCH_ISLANDS): New.
18398         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
18399         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
18400         default value.
18401         * config/i386/i386.c (output_pic_addr_const): Do not emit
18402         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
18403         (x86_output_mi_thunk): Adjust symbol creation.
18404         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
18405         Remove out of date comment.
18406         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
18407         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18408         (DARWIN_GENERATE_ISLANDS): Ditto.
18409         (output_call):  Do not emit branch islands unless
18410         darwin_emit_branch_islands is set.
18411         * config/darwin.c: Declare darwin_emit_branch_islands.
18412         (machopic_indirect_data_reference): Do not emit unless
18413         darwin_emit_branch_islands is set.
18414         (darwin_override_options): Set darwin_emit_branch_islands
18415         where it is needed.
18416         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18417
18418 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18419
18420         * doc/sourcebuild.texi (Effective-Target Keywords): Document
18421         sse_runtime, sse2_runtime.
18422
18423 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
18424
18425         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
18426         low half of a single-register SCmode return value before ORing
18427         it with the high half.
18428         * config/mips/mips16.S (MERGE_GPRf): Likewise.
18429
18430 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18431
18432         PR target/44805
18433         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
18434         on all targets.
18435
18436 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
18437
18438         PR target/42235
18439         * postreload.c (reload_cse_move2add): Return bool, true if anything.
18440         changed.  All callers changed.
18441         (move2add_use_add2_insn): Likewise.
18442         (move2add_use_add3_insn): Likewise.
18443         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
18444         reload_combine.
18445         (RELOAD_COMBINE_MAX_USES): Bump to 16.
18446         (last_jump_ruid): New static variable.
18447         (struct reg_use): New members CONTAINING_MEM and RUID.
18448         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
18449         (reload_combine_split_one_ruid, reload_combine_split_ruids,
18450         reload_combine_purge_insn_uses, reload_combine_closest_single_use
18451         reload_combine_purge_reg_uses_after_ruid,
18452         reload_combine_recognize_const_pattern): New static functions.
18453         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
18454         is true for our reg and that we have available index regs.
18455         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
18456         callers changed.  Use them to initialize fields in struct reg_use.
18457         (reload_combine): Initialize last_jump_ruid.  Be careful when to
18458         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
18459         Call reload_combine_recognize_const_pattern.
18460         (reload_combine_note_store): Update REAL_STORE_RUID field.
18461
18462 2010-07-16  Jason Merrill  <jason@redhat.com>
18463
18464         * Makefile.in (opts-common.o): Depend on options.h.
18465
18466 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18467
18468         * tree.c (build_common_builtin_nodes): Use build_function_type_list
18469         instead of build_function_type.
18470         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
18471         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
18472
18473 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18474
18475         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
18476         do all the work.
18477         (rs6000_emit_int_cmove): Use function pointers for insn generation.
18478         Don't force values into registers unnecessarily.
18479         (output_isel): Assert that we're not given conditions we can't handle.
18480         Delete corresponding code.
18481         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
18482         scc_comparison_operator constraint.  Permit 0 for the consequent
18483         operand.  Permit any GPR for the alternative operand.
18484         (isel_unsigned_<mode>): Likewise.
18485
18486 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
18487
18488         PR target/44942
18489         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
18490         argument to const_tree.
18491         * config/i386/i386.c (function_arg_advance): If padding needs to be
18492         inserted before argument, increment cum->words by number of padding
18493         words as well.
18494         (contains_aligned_value_p): Change argument to const_tree.
18495         (ix86_function_arg_boundary): Change second argument to const_tree.
18496
18497 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
18498
18499         PR target/42235
18500         * function.c (record_hard_reg_sets): New static function.
18501         (assign_parm_setup_reg): If an optab for extending exists and the
18502         generated code clobbbers no hard regs, emit the insn directly and
18503         create a REG_EQUIV note.
18504
18505 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18506
18507         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
18508         TREE_CHAIN.
18509         * c-typeck.c (push_init_level): Likewise.
18510         (process_init_element): Likewise.
18511
18512 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
18513
18514         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
18515         (integer_three_node): Add.
18516         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
18517         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
18518         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
18519         of call build_int_cst.
18520         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
18521         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
18522         (find_interesting_uses_address): Ditto.
18523         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
18524         * tree-eh.c (lower_eh_constructs_2): Ditto.
18525         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
18526         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
18527         * expmed.c (expand_divmod): Ditto.
18528         * tree-mudflap.c (mx_register_decls): Ditto.
18529         * varasm.c (array_size_for_constructor): Ditto.
18530         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
18531         * c-parser.c (c_parser_postfix_expression): Ditto.
18532
18533 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18534
18535         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
18536         New static variables.
18537         (reload_combine_recognize_pattern): New static function, broken out
18538         of reload_combine.
18539         (reload_combine): Use it.  Only initialize first_index_reg and
18540         last_index_reg once.
18541
18542 2010-07-15  Richard Henderson  <rth@redhat.com>
18543
18544         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
18545         when done.
18546
18547 2010-07-15  Jan Hubicka  <jh@suse.cz>
18548
18549         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
18550         comdats for broken gold.
18551         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
18552
18553 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18554
18555         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
18556
18557 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18558
18559         * tree.h (DECL_CHAIN): Define.
18560         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
18561         * c-decl.c: Likewise.
18562         * c-parser.c: Likewise.
18563         * c-typeck.c: Likewise.
18564         * cfgexpand.c: Likewise.
18565         * cgraph.c: Likewise.
18566         * cgraphunit.c: Likewise.
18567         * combine.c: Likewise.
18568         * config/alpha/alpha.c: Likewise.
18569         * config/arm/arm.c: Likewise.
18570         * config/frv/frv.c: Likewise.
18571         * config/i386/i386.c: Likewise.
18572         * config/i386/winnt-cxx.c: Likewise.
18573         * config/ia64/ia64.c: Likewise.
18574         * config/iq2000/iq2000.c: Likewise.
18575         * config/mep/mep.c: Likewise.
18576         * config/mips/mips.c: Likewise.
18577         * config/pa/som.h: Likewise.
18578         * config/rs6000/rs6000.c: Likewise.
18579         * config/s390/s390.c: Likewise.
18580         * config/sh/sh.c: Likewise.
18581         * config/sh/symbian-cxx.c: Likewise.
18582         * config/sparc/sparc.c: Likewise.
18583         * config/spu/spu.c: Likewise.
18584         * config/stormy16/stormy16.c: Likewise.
18585         * config/vxworks.c: Likewise.
18586         * config/xtensa/xtensa.c: Likewise.
18587         * coverage.c: Likewise.
18588         * dbxout.c: Likewise.
18589         * dwarf2out.c: Likewise.
18590         * emit-rtl.c: Likewise.
18591         * expr.c: Likewise.
18592         * function.c: Likewise.
18593         * gimple-low.c: Likewise.
18594         * gimple-pretty-print.c: Likewise.
18595         * gimplify.c: Likewise.
18596         * integrate.c: Likewise.
18597         * ipa-inline.c: Likewise.
18598         * ipa-prop.c: Likewise.
18599         * ipa-split.c: Likewise.
18600         * ipa-struct-reorg.c: Likewise.
18601         * ipa-type-escape.c: Likewise.
18602         * langhooks.c: Likewise.
18603         * lto-cgraph.c: Likewise.
18604         * omp-low.c: Likewise.
18605         * stor-layout.c: Likewise.
18606         * tree-cfg.c: Likewise.
18607         * tree-complex.c: Likewise.
18608         * tree-dfa.c: Likewise.
18609         * tree-dump.c: Likewise.
18610         * tree-inline.c: Likewise.
18611         * tree-mudflap.c: Likewise.
18612         * tree-nested.c: Likewise.
18613         * tree-object-size.c: Likewise.
18614         * tree-pretty-print.c: Likewise.
18615         * tree-sra.c: Likewise.
18616         * tree-ssa-live.c: Likewise.
18617         * tree-ssa-loop-niter.c: Likewise.
18618         * tree-ssa-math-opts.c: Likewise.
18619         * tree-ssa-reassoc.c: Likewise.
18620         * tree-ssa-sccvn.c: Likewise.
18621         * tree-ssa-structalias.c: Likewise.
18622         * tree-tailcall.c: Likewise.
18623         * tree-vrp.c: Likewise.
18624         * tree.c: Likewise.
18625         * var-tracking.c: Likewise.
18626         * varasm.c: Likewise.
18627
18628 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18629
18630         PR target/44877
18631         * config/spu/spu.c (spu_expand_builtin_1): Allow references
18632         (as well as pointers) as argument to mask_for_load builtins.
18633
18634 2010-07-15  Richard Guenther  <rguenther@suse.de>
18635
18636         PR tree-optimization/44946
18637         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
18638         with accessing only padding properly.
18639
18640 2010-07-15  Jan Hubicka  <jh@suse.cz>
18641
18642         * ipa.c (function_and_variable_visibility): Variables marked as used
18643         should not be localized.
18644
18645 2010-07-15  Jan Hubicka  <jh@suse.cz>
18646
18647         * cgraph.c: Include lto-streamer.h
18648         (change_decl_assembler_name): Work when assembler name hash is at place.
18649         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
18650         be sure to rename it to avoid name clash.
18651         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
18652         Localize hidden symbols only when locally defined.
18653
18654 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
18655
18656         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
18657
18658 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
18659             Kevin F. Quinn  <kevquinn@gentoo.org>
18660
18661         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
18662         * common.opt: Add -Wtrampolines.
18663         * doc/invoke.texi: Add -Wtrampolines.
18664
18665 2010-07-15  Jie Zhang  <jie@codesourcery.com>
18666
18667         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
18668         cortex_a8_issue_ls.
18669
18670 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
18671
18672         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
18673         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
18674
18675 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18676
18677         * config/spu/spu.c (reg_names): Remove prototype.
18678         (call_used_regs): Likewise.
18679
18680 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
18681
18682         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
18683         "unused" with attribute "used".
18684         (__JCR_END__): Likewise.
18685         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
18686         "used" attribute.
18687         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
18688
18689 2010-07-14  Richard Guenther  <rguenther@suse.de>
18690
18691         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
18692         (maybe_fixup_decls): Likewise.
18693         (input_gimple_stmt): Do not fixup anything.
18694         * lto-streamer-out.c (output_gimple_stmt): Make sure all
18695         non-automatic variable uses are wrapped inside a MEM_REF.
18696
18697 2010-07-14  Richard Henderson  <rth@redhat.com>
18698
18699         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
18700         for functions.
18701         * varasm.c (assemble_variable): Remove early exit for functions;
18702         assert that we're given a variable.
18703
18704 2010-07-14  Jie Zhang  <jie@codesourcery.com>
18705
18706         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
18707         cortex_a8_default when neon_type is not none.
18708
18709 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18710
18711         * lower-subreg.c (subreg_context): New static bitmap.
18712         (decompose_multiword_subregs): Allocate and free it.
18713         (find_decomposable_subregs): Set a bit in it for a register that
18714         occurs in a subreg that changes mode but not size.
18715         (can_decompose_p): Test it instead of non_decomposable_context.
18716
18717 2010-07-14  Richard Guenther  <rguenther@suse.de>
18718
18719         PR tree-optimization/44824
18720         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
18721         is_gimple_mem_ref_addr.
18722         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
18723         non-decl_address_invariant_p addresses.
18724
18725 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18726
18727         * reload.c (find_reloads): Revert code to penalize small register
18728         classes that was brought in with the IRA merge.
18729
18730 2010-07-14  Richard Guenther  <rguenther@suse.de>
18731
18732         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
18733         as base of ARRAY_REFs.
18734
18735 2010-07-14  Richard Guenther  <rguenther@suse.de>
18736
18737         PR middle-end/44930
18738         * tree-pretty-print.c (do_niy): Do not print a newline.
18739
18740 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18741
18742         * ira-int.h (struct ira_object): New.
18743         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
18744         (struct ira_allocno): Remove members min, max,
18745         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
18746         conflict_allocnos_num and conflict_vec_p.  Add new member object.
18747         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
18748         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
18749         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
18750         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
18751         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
18752         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
18753         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
18754         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
18755         an ira_object_t rather than ira_allocno_t.  All uses changed.
18756         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18757         contains a vector of ira_object_t; all uses changed.
18758         (ira_objects_num): Declare variable.
18759         (ira_create_allocno_object): Declare function.
18760         (ira_conflict_vector_profitable_p): Adjust prototype.
18761         (ira_allocate_conflict_vec): Renamed from
18762         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
18763         (ira_allocate_object_conflicts): Renamed from
18764         ira_allocate_allocno_conflicts; first arg now ira_object_t.
18765         (struct ira_object_iterator): New.
18766         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
18767         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
18768         to conflict_vec_p.  All uses changed.
18769         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
18770         Changed to take into account that conflicts are now tracked for
18771         objects.
18772         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
18773         Args changed to accept ira_object_t.  All uses changed.
18774         (allocnos_conflict_p): New static function.
18775         (collected_conflict_objects): Renamed from collected_allocno_objects;
18776         now a vector of ira_object_t.  All uses changed.
18777         (build_conflict_bit_table): Changed to take into account that
18778         conflicts are now tracked for objects.
18779         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
18780         (print_allocno_conflicts, ira_build_conflicts): Likewise.
18781         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
18782         setup_allocno_left_conflicts_size, allocno_reload_assign,
18783         fast_allocation): Likewise.
18784         * ira-lives.c (make_hard_regno_born, make_allocno_born)
18785         process_single_reg_class_operands, process_bb_node_lives): Likewise.
18786         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
18787         Likewise.
18788         * ira-build.c (ira_objects_num): New variable.
18789         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18790         contains a vector of ira_object_t; all uses changed.
18791         (ira_object_id_map_vec): Corresponding change.
18792         (object_pool): New static variable.
18793         (initiate_allocnos): Initialize it.
18794         (finish_allocnos): Free it.
18795         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
18796         New functions.
18797         (ira_create_allocno): Don't set members that were removed.
18798         (ira_set_allocno_cover_class): Don't change conflict hard regs.
18799         (merge_hard_reg_conflicts): Changed to take into account that
18800         conflicts are now tracked for objects.
18801         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
18802         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
18803         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
18804         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
18805         setup_min_max_conflict_allocno_ids, ):  Likewise.
18806         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
18807         to ira_object_t; all callers changed.
18808         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
18809         to ira_object_t, all callers changed.
18810         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
18811         to ira_object_t, all callers changed.
18812         (conflict_check, curr_conflict_check_tick): Renamed from
18813         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
18814         changed.
18815         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
18816         arg changed to ira_object_t, all callers changed.
18817         (create_cap_allocno): Call ira_create_allocno_object.
18818         (finish_allocno): Free the corresponding object.
18819         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
18820         callers changed.  Adjusted for dealing with objects.
18821         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
18822         dealing with objects.
18823         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
18824
18825         * ira-int.h (struct live_range): Rename allocno member to object
18826         and change type to ira_object_t.
18827         (struct ira_object): New member live_ranges.
18828         (struct ira_allocno): Remove member live_ranges.
18829         (ALLOCNO_LIVE_RANGES): Remove.
18830         (OBJECT_LIVE_RANGES): New macro.
18831         (ira_create_live_range, ira_copy_live_range_list,
18832         ira_merge_live_range_list, ira_live_ranges_intersect_p,
18833         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
18834         * ira-build.c (ira_create_object): Initialize live ranges here.
18835         (ira_create_allocno): Not here.
18836         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
18837         changed to ira_object_t, all callers changed.
18838         (copy_live_range): Rename from copy_allocno_live_range, all callers
18839         changed.
18840         (ira_copy_live_range_list): Rename from
18841         ira_copy_allocno_live_range_list, all callers changed.
18842         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
18843         all callers changed.
18844         (ira_live_ranges_intersect_p): Rename from
18845         ira_allocno_live_ranges_intersect_p, all callers changed.
18846         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
18847         callers changed.
18848         (ira_finish_live_range_list): Rename from
18849         ira_finish_allocno_live_range_list, all callers changed.
18850         (change_object_in_range_list): Rename from change_allocno_in_range_list,
18851         last arg changed to ira_object_t, all callers changed.
18852         (finish_allocno): Changed to expect live ranges in the allocno's object.
18853         (move_allocno_live_ranges, copy_allocno_live_ranges,
18854         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
18855         ira_flattening, ira_build): Likewise.
18856         * ira-color.c (allocnos_have_intersected_live_ranges_p,
18857         slot_coalesced_allocno_live_ranges_intersect,
18858         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
18859         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18860         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
18861         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
18862         make_allocno_dead, create_start_finish_chains,
18863         remove_some_program_points_and_update_live_ranges,
18864         ira_debug_live_range_list): Likewise.
18865
18866         * ira-int.h (ira_object_conflict_iterator): Rename from
18867         ira_allocno_conflict_iterator.
18868         (ira_object_conflict_iter_init): Rename from
18869         ira_allocno_conflict_iter_init, second arg changed to
18870         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
18871         FOR_EACH_ALLOCNO_CONFLICT.
18872         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
18873         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
18874         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
18875         * ira-conflicts.c (print_allocno_conflicts): Likewise.
18876
18877 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
18878
18879         PR other/44874
18880         * tree-dump.c (dump_options): Add enumerate_locals entry.
18881         Add TDF_NOID exclusion to all entry.
18882         * tree-dump.h (dump_enumerated_decls): Declare.
18883         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
18884         Don't display type uid.
18885         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
18886         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
18887         * tree-ssa-live.c: Include gimple.h.
18888         (numbered_tree_d): New struct.
18889         (numbered_tree): New typedef.
18890         (DEF_VEC_O (numbered_tree): New.
18891         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
18892         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
18893         (dump_enumerated_decls): Likewise.
18894         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
18895         debug info and flag_dump_final_insns, call dump_enumerated_decls.
18896         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
18897         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
18898
18899 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
18900
18901         * expmed.h (MAX_BITS_PER_WORD): Move to...
18902         * defaults.h (MAX_BITS_PER_WORD): ...here.
18903
18904 2010-07-13  DJ Delorie  <dj@redhat.com>
18905
18906         * config/h8300/h8300.c (h8300_init_once): Default to
18907         -fstrict_volatile_bitfields.
18908
18909         * config/sh/sh.c (sh_override_options): Default to
18910         -fstrict_volatile_bitfields.
18911
18912         * config/rx/rx.c (rx_option_override): New.
18913
18914         * config/m32c/m32c.c (m32c_override_options): Default to
18915         -fstrict_volatile_bitfields.
18916
18917 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
18918
18919         * tree.h (build_function_call_expr): Delete.
18920         (build_call_expr_loc_array): New function.
18921         (build_call_expr_loc_vec): New function.
18922         * tree-flow.h (struct omp_region): Change type of ws_args field
18923         to a VEC.
18924         * builtins.c (build_function_call_expr): Delete.
18925         (build_call_expr_loc_array): New function.
18926         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
18927         (build_call_expr): Likewise.
18928         (build_call_expr_loc_vec): New function.
18929         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
18930         build_function_call_expr.
18931         * expr.c (emutls_var_address): Likewise.
18932         * varasm.c (emutls_common_1): Likewise.
18933         * omp-low.c (expand_omp_atomic_mutex): Likewise.
18934         (expand_omp_taskreg): Adjust for new type of region->ws_args.
18935         (get_ws_args_for): Return a VEC instead of a tree.
18936         (expand_parallel_call): Call build_call_expr_loc_vec instead of
18937         build_function_call_expr.
18938         * stor-layout.c (self_referential_size): Likewise.
18939
18940 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18941
18942         PR testsuite/44701
18943         * recog.c (constrain_operands): Allow side-effects in memory
18944         operands if either < or > constraint is used, rather than if
18945         both < and > is used.
18946
18947 2010-07-13  Richard Guenther  <rguenther@suse.de>
18948
18949         PR middle-end/44911
18950         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
18951         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
18952         without name.
18953
18954 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
18955
18956         PR target/44761
18957         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
18958         to variable emited.
18959         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
18960         * config/sh/sh.md (symGOT_load): Likewise.
18961         (symDTPOFF2reg): Likewise.
18962         (symTPOFF2reg): Likewise.
18963
18964 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18965
18966         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
18967         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
18968
18969 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18970
18971         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
18972         explanation.
18973         Find ucontext_t * on Solaris 11.
18974         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
18975         Handle new Solaris 11 __sighndlr patterns.
18976
18977 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18978
18979         PR debug/44901
18980         * vec.h (VEC_block_remove): Fix comment.
18981         * tree-ssa-live.c (remove_unused_locals): Don't use
18982         VEC_unordered_remove on local_decls, instead replace a single
18983         vector element in each iteration if at least one element had
18984         to be removed and VEC_truncate at the end.
18985         * omp-low.c (expand_omp_taskreg): Likewise.
18986
18987 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18988
18989         * c-decl.c (finish_function): Fix typo in comment.
18990
18991 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
18992
18993         PR bootstrap/44921
18994         * postreload.c (move2add_use_add3_insn): Silence gcc warning
18995         on min_regno.
18996
18997 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
18998
18999         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
19000         (simplify_stmt_using_ranges): Use it.
19001
19002 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19003
19004         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
19005         member.  Do not mark as GTY(()).
19006         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
19007         (spu_builtin_decls): New static variable.
19008         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
19009         (spu_init_builtins): Likewise.
19010         (spu_builtin_mul_widen_even): Likewise.
19011         (spu_builtin_mul_widen_odd): Likewise.
19012         (spu_builtin_mask_for_load): Likewise.
19013         (spu_builtin_vec_perm): Likewise.
19014         * config/spu/spu-c.c: Include "target.h".
19015         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
19016         of using spu_builtins[].fndecl.
19017
19018 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19019
19020         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
19021         imply -minterlink-mips16.
19022
19023 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19024
19025         * config/mips/mips.h (mips16_globals): Declare.
19026         (SWITCHABLE_TARGET): Define.
19027         * config/mips/mips.c: Include target-globals.h.
19028         (mips16_globals): New variable.
19029         (mips_set_mips16_mode): Use save_target_globals and
19030         restore_target_globals instead of target_reinit.
19031
19032 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19033
19034         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
19035         to say that the function can be called more than once.
19036         * target-globals.c (save_target_globals): Call init_reg_sets.
19037
19038 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19039
19040         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
19041         * bb-reorder.h: New file.
19042         * bb-reorder.c (default_target_bb_reorder): New variable.
19043         (this_target_bb_reorder): New conditional variable.
19044         (uncond_jump_length): Redefine as a macro.
19045         * target-globals.h (this_target_bb_reorder): Declare.
19046         (target_globals): Add a bb_reorder field.
19047         (restore_target_globals): Copy the bb_reorder field to
19048         this_target_bb-reorder.
19049         * target-globals.c: Include bb-reorder.h.
19050         (default_target_globals): Initialize the bb_reorder field.
19051         (save_target_globals): Likewise.
19052
19053 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19054
19055         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
19056         * gcse.h: New file.
19057         * gcse.c: Include gcse.h.
19058         (default_target_gcse): New variable.
19059         (this_target_gcse): New conditional variable.
19060         (can_copy): Redefine as a macro.
19061         (can_copy_init_p): New macro.
19062         (can_copy_p): Remove can_copy_init_p.
19063         * target-globals.h (this_target_gcse): Declare.
19064         (target_globals): Add a gcse field.
19065         (restore_target_globals): Copy the gcse field to this_target_gcse.
19066         * target-globals.c: Include gcse.h.
19067         (default_target_globals): Initialize the gcse field.
19068         (save_target_globals): Likewise.
19069
19070 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19071
19072         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
19073         and x_ira_prohibited_mode_move_regs_initialized_p.
19074         (ira_prohibited_mode_move_regs): Redefine as a macro.
19075         * ira.c (ira_prohibited_mode_move_regs): Delete.
19076         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
19077
19078 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19079
19080         * reload.h (target_reload): Add x_cached_reg_save_code and
19081         x_cached_reg_restore_code.
19082         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
19083         Redefine as macros.
19084
19085 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19086
19087         * Makefile.in (target-globals.o): Depend on builtins.h.
19088         * builtins.h: New file.
19089         * builtins.c: Include builtins.h.
19090         (default_target_builtins): New variable.
19091         (this_target_builtins): New conditional variable.
19092         (apply_args_mode, apply_result_mode): Redefine as macros.
19093         * target-globals.h (this_target_builtins): Declare.
19094         (target_globals): Add a builtins field.
19095         (restore_target_globals): Copy the builtins field to
19096         this_target_builtins.
19097         * target-globals.c: Include builtins.h.
19098         (default_target_globals): Initialize the builtins field.
19099         (save_target_globals): Likewise.
19100
19101 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19102
19103         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
19104         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
19105         from expmed.c.
19106         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
19107         (alg_hash, alg_hash_used_p): New macros.
19108         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
19109         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
19110         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
19111
19112 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19113
19114         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
19115         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
19116         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
19117         (this_op_costs, costs_classes): Redefine as macros.
19118         (record_reg_classes): Don't take op_costs as a parameter.
19119         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
19120         (scan_one_insn): Update call to record_operand_costs.
19121
19122 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19123
19124         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
19125         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
19126         (target_ira_int): New structure.
19127         (default_target_ira_int): Declare.
19128         (this_target_ira_int): Declare as a variable or define as a macro.
19129         (ira_reg_mode_hard_regset, ira_register_move_cost)
19130         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
19131         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
19132         (prohibited_class_mode_regs, ira_important_classes_num)
19133         (ira_important_classes, ira_reg_class_intersect)
19134         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
19135         (ira_reg_class_union): Redefine as macros.
19136         * ira.h (target_ira): New structure.
19137         (default_target_ira): Declare.
19138         (this_target_ira): Declare as a variable or define as a macro.
19139         (ira_available_class_regs, ira_hard_regno_cover_class)
19140         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
19141         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
19142         (ira_class_hard_regs_num): Redefine as macros.
19143         * ira.c (default_target_ira, default_target_ira_int): New variables.
19144         (this_target_ira, this_target_ira_int): New conditional variables.
19145         (ira_reg_mode_hard_regset, ira_memory_move_cost)
19146         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
19147         (ira_class_subset_p): Delete.
19148         (no_unit_alloc_regs): Redefine as a macro.
19149         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
19150         (ira_class_hard_regs_num, ira_class_hard_reg_index)
19151         (ira_available_class_regs): Delete.
19152         (alloc_reg_class_subclasses): Redefine as a macro.
19153         (ira_reg_class_cover_size, ira_reg_class_cover)
19154         (ira_important_classes_num, ira_important_classes)
19155         (ira_important_class_nums, ira_class_translate): Delete.
19156         (cover_class_order): Document the variable's lifetime.
19157         (reorder_important_classes): Don't set ira_important_class_nums.
19158         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
19159         (ira_reg_class_super_classes, ira_reg_class_union)
19160         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
19161         Delete.
19162         (setup_reg_class_nregs): Don't set ira_max_regs.
19163         (prohibited_class_mode_regs): Delete.
19164         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
19165         (target_globals): Add ira and ira_int fields.
19166         (restore_target_globals): Copy the ira field to this_target_ira
19167         and the ira_int field to this_target_ira_int.
19168         * target-globals.c: Include ira-int.h.
19169         (default_target_globals): Initialize the ira and ira_int fields.
19170         (save_target_globals): Likewise.
19171
19172 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19173
19174         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
19175         * cfgloop.h (target_cfgloop): New structure.
19176         (default_target_cfgloop): Declare.
19177         (this_target_cfgloop): Declare as a variable or define as a macro.
19178         (target_avail_regs, target_clobbered_regs, target_res_regs)
19179         (target_reg_cost, target_spill_cost): Redefine as macros.
19180         * cfgloopanal.c (default_target_cfgloop): New variable.
19181         (this_target_cfgloop): New conditional variable.
19182         (target_avail_regs, target_clobbered_regs, target_res_regs)
19183         (target_reg_cost, target_spill_cost): Delete.
19184         * target-globals.h (this_target_cfgloop): Declare.
19185         (target_globals): Add a cfgloop field.
19186         (restore_target_globals): Copy the cfgloop field to
19187         this_target_cfgloop.
19188         * target-globals.c: Include cfgloop.h.
19189         (default_target_globals): Initialize the cfgloop field.
19190         (save_target_globals): Likewise.
19191
19192 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19193
19194         * regs.h (target_regs): Add x_direct_load, x_direct_store and
19195         x_float_extend_from_mem.
19196         (direct_load, direct_store, float_extend_from_mem): New macros.
19197         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
19198
19199 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19200
19201         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
19202         (target-globals.o): Depend on $(LIBFUNCS_H).
19203         * libfuncs.h: Include hashtab.h.
19204         (libfunc_entry): Moved from optabs.c.
19205         (target_libfuncs): New structure.
19206         (default_target_libfuncs): Declare.
19207         (this_target_libfuncs): Declare as a variable or define as a macro.
19208         (libfunc_table): Redefine as a macro.
19209         * optabs.c (default_target_libfuncs): New variable.
19210         (this_target_libfuncs): New conditional variable.
19211         (libfunc_table): Delete.
19212         (libfunc_entry): Moved to optabs.h.
19213         (libfunc_hash): Redefine as a macro.
19214         (hash_libfunc, eq_libfunc): Fix comments.
19215         (init_optabs): Use libfunc_hash to detect cases where the function
19216         has already been called.  Clear the hash table instead of
19217         recreating it.
19218         * target-globals.h (this_target_libfuncs): Declare.
19219         (target_globals): Add a libfuncs field.
19220         (restore_target_globals): Copy the libfuncs field to
19221         this_target_libfuncs.
19222         * target-globals.c: Include libfuncs.h.
19223         (default_target_globals): Initialize the libfuncs field.
19224         (save_target_globals): Likewise.
19225
19226 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19227
19228         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
19229         in all dependency lists.
19230
19231 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19232
19233         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
19234         * optabs.h (target_optabs): New structure.
19235         (default_target_optabs): Declare.
19236         (this_target_optabs): Declare as a variable or define as a macro.
19237         (optab_table, convert_optab_table, direct_optab_table): Redefine
19238         as macros.
19239         * optabs.c (default_target_optabs): New variable.
19240         (this_target_optabs): New conditional variable.
19241         (optab_table, convert_optab_table, direct_optab_table): Delete.
19242         * target-globals.h (this_target_optabs): Declare.
19243         (target_globals): Add a optabs field.
19244         (restore_target_globals): Copy the optabs field to
19245         this_target_optabs.
19246         * target-globals.c: Include expr.h and optabs.h.
19247         (default_target_globals): Initialize the optabs field.
19248         (save_target_globals): Likewise.
19249
19250 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19251
19252         * flags.h (target_flagstate): Add x_flag_excess_precision.
19253         (flag_excess_precision): Redefine as a macro.
19254         * toplev.c (flag_excess_precision): Delete.
19255
19256 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19257
19258         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
19259         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
19260         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
19261         (no_caller_save_reg_set): Redefine as a macro.
19262         * reload.h (target_reload): Add x_caller_save_initialized_p and
19263         x_regno_save_mode.
19264         (caller_save_initialized_p): Redefine as a macro.
19265         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
19266         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
19267         (regno_save_mode): Redefine as a macro.
19268
19269 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19270
19271         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
19272         * expmed.h: New file.
19273         * expmed.c (default_target_costs): New variable.
19274         (this_target_costs): New conditional variable.
19275         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
19276         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
19277         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
19278         * target-globals.h (this_target_expmed): Declare.
19279         (target_globals): Add a expmed field.
19280         (restore_target_globals): Copy the expmed field to
19281         this_target_expmed.
19282         * target-globals.c: Include expmed.h.
19283         (default_target_globals): Initialize the expmed field.
19284         (save_target_globals): Likewise.
19285
19286 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19287
19288         * Makefile.in (target-globals.o): Depend on reload.h.
19289         * reload.h (target_reload): New structure.
19290         (default_target_reload): Declare.
19291         (this_target_reload): Declare as a variable or define as a macro.
19292         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
19293         * reload1.c (default_target_reload): New variable
19294         (this_target_reload): New conditional variable.
19295         (indirect_symref_ok, double_reg_address_ok): Delete.
19296         (spill_indirect_levels): Redefine as a macro.
19297         * target-globals.h (this_target_reload): Declare.
19298         (target_globals): Add a reload field.
19299         (restore_target_globals): Copy the reload field to
19300         this_target_reload.
19301         * target-globals.c: Include hard-reg-set.h.
19302         (default_target_globals): Initialize the reload field.
19303         (save_target_globals): Likewise.
19304
19305 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19306
19307         * rtl.h (target_rtl): Add x_static_reg_base_value.
19308         * alias.c (static_reg_base_value): Redefine as a macro.
19309
19310 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19311
19312         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
19313         (GTFILES): Remove reginfo.c.
19314         * rtl.h (target_rtl): Add x_top_of_stack.
19315         (top_of_stack): New macro.
19316         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
19317         (top_of_stack): Delete.
19318
19319 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19320
19321         * regs.h (target_regs): Add x_hard_regs_of_mode,
19322         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
19323         x_may_move_out_cost and x_last_mode_for_init_move_cost.
19324         (have_regs_of_mode, contains_reg_of_mode, move_cost)
19325         (may_move_in_cost, may_move_out_cost): Redefine as macros.
19326         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
19327         (may_move_in_cost, may_move_out_cost): Delete.
19328         (last_mode_for_init_move_cost): Redefine as a macro.
19329
19330 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19331
19332         * hard-reg-set.h (target_hard_regs): New structure.
19333         (default_target_hard_regs): Declare.
19334         (this_target_hard_regs): Declare as a variable or define as a macro.
19335         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
19336         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
19337         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
19338         (reg_class_size, reg_class_subclasses, reg_class_subunion)
19339         (reg_class_superunion, reg_names): Redefine as macros.
19340         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
19341         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
19342         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
19343         (reg_class_contents, reg_class_size, reg_class_subclasses)
19344         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
19345         (default_target_hard_regs): New variable
19346         (this_target_hard_regs, initial_call_really_used_regs)
19347         (initial_reg_alloc_order): New conditional variables.
19348         (initial_reg_names): New variable.
19349         (init_reg_sets): Assert that initial_call_really_used_regs,
19350         initial_reg_alloc_order and initial_reg_names
19351         are all the same size as their variable counterparts.  Use them to
19352         initialize those counterparts.
19353         * target-globals.h (this_target_hard_regs): Declare.
19354         (target_globals): Add a hard_regs field.
19355         (restore_target_globals): Copy the hard_regs field to
19356         this_target_hard_regs.
19357         * target-globals.c: Include hard-reg-set.h.
19358         (default_target_globals): Initialize the hard_regs field.
19359         (save_target_globals): Likewise.
19360
19361 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19362
19363         * Makefile.in (target-globals.o): Depend on $(RTL_H).
19364         * rtl.h (target_rtl): New structure.
19365         (default_target_rtl): Declare.
19366         (this_target_rtl): Declare as a variable or define as a macro.
19367         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
19368         Redefine as macros.
19369         * emit-rtl.c (default_target_rtl): New variable.
19370         (this_target_rtl): New conditional variable.
19371         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
19372         (return_address_pointer_rtx): Delete.
19373         (initial_regno_reg_rtx): New macro.
19374         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
19375         (init_emit_regs): Likewise.
19376         * target-globals.h (this_target_rtl): Declare.
19377         (target_globals): Add a rtl field.
19378         (restore_target_globals): Copy the rtl field to this_target_rtl.
19379         * target-globals.c: Include rtl.h.
19380         (default_target_globals): Initialize the rtl field.
19381         (save_target_globals): Likewise.
19382
19383 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19384
19385         * Makefile.in (target-globals.o): Depend on $(REGS_H).
19386         * regs.h (target_reg_modes): New structure.
19387         (default_target_reg_modes): Declare.
19388         (this_target_reg_modes): Declare as a variable or define as a macro.
19389         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
19390         * reginfo.c (default_target_reg_modes): New variable.
19391         (this_target_reg_modes): New conditional variable.
19392         (hard_regno_nregs, reg_raw_mode): Delete.
19393         * target-globals.h (this_target_regs): Declare.
19394         (target_globals): Add a regs field.
19395         (restore_target_globals): Copy the regs field to this_target_regs.
19396         * target-globals.c: Include regs.h.
19397         (default_target_globals): Initialize the regs field.
19398         (save_target_globals): Likewise.
19399
19400 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19401
19402         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
19403         * doc/tm.texi: Regenerate.
19404         * Makefile.in (OBJS-common): Add target-globals.o.
19405         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
19406         and target-globals.h.
19407         (target-globals.o): New rule.
19408         (GTFILES): Include $(srcdir)/target-globals.h.
19409         * defaults.h (SWITCHABLE_TARGET): Define.
19410         * gengtype.c (open_base_files): Add target-globals.h to the
19411         list of includes.
19412         * target-globals.h: New file.
19413         * target-globals.c: Likewise.
19414
19415         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
19416         * flags.h (target_flag_state): New structure.
19417         (default_target_flag_state): Declare.
19418         (this_target_flag_state): Declare as a variable or define as a macro.
19419         (align_loops_log): Redefine as a macro.
19420         (align_loops_max_skip, align_jumps_log): Likewise.
19421         (align_jumps_max_skip, align_labels_log): Likewise.
19422         (align_labels_max_skip, align_functions_log): Likewise.
19423         * toplev.c (default_target_flag_state): New variable.
19424         (this_target_flag_state): New conditional variable.
19425         (align_loops_log): Delete.
19426         (align_loops_max_skip, align_jumps_log): Likewise.
19427         (align_jumps_max_skip, align_labels_log): Likewise.
19428         (align_labels_max_skip, align_functions_log): Likewise.
19429         * target-globals.h (this_target_flag_state): Declare.
19430         (target_globals): Add a flag_state field.
19431         (restore_target_globals): Copy the flag_state field to
19432         this_target_flag_state.
19433         * target-globals.c: Include flags.h.
19434         (default_target_globals): Initialize the flag_state field.
19435         (save_target_globals): Likewise.
19436
19437 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19438
19439         * postreload.c (reg_symbol_ref[]): New.
19440         (move2add_use_add2_insn): New.
19441         (move2add_use_add3_insn): New.
19442         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
19443         (move2add_note_store): Likewise.
19444
19445 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
19446
19447         PR rtl-optimization/44752
19448         * genautomata.c (main): Don't emit an empty file even if there
19449         is no automaton.
19450
19451 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19452
19453         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
19454         ix86_solaris_return_in_memory.
19455         * config/i386-protos.h: Reflect this.
19456         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19457         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19458         Move ...
19459         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
19460
19461 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19462
19463         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
19464         align the stack when it's going to be saved.
19465
19466 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19467
19468         PR pch/14940
19469         * config/host-solaris.c (mmap_fixed): New function.
19470         (sol_gt_pch_get_address): Use it.
19471         (sol_gt_pch_use_address): Likewise.
19472
19473 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19474
19475         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
19476         pentiumpro on Solaris 8 and 9/x86.
19477         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
19478         Document SSE/SSE2 support.
19479         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
19480
19481 2010-07-12  Andi Kleen  <ak@linux.intel.com>
19482
19483         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
19484         instead of gcc_assert to print better error message for multiple
19485         prevailing defs.
19486
19487 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
19488
19489         * config/i386/i386.c (ix86_asm_output_function_label): Change format
19490         string placeholder from 0x%x to %#x.
19491         (ix86_code_end): Use putc to output '\n'.
19492         (ix86_print_operand) <case ';'>: Use putc to output ';'.
19493
19494 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
19495
19496         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
19497         in directive -export.
19498
19499 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
19500
19501         * reginfo.h (reg_classes_intersect_p): Change arguments type to
19502         reg_class_t.
19503         * rtl.h (reg_classes_intersect_p): Adjust prototype.
19504
19505         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19506         Remove macros.
19507         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
19508         rs6000_memory_move_cost): Remove
19509         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
19510         TARGET_MEMORY_MOVE_COST): Define.
19511         (rs6000_register_move_cost): Make static. Change arguments type from
19512         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
19513         (rs6000_memory_move_cost): Make static. Change arguments type from
19514         'enum reg_class' to reg_class_t.
19515
19516 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
19517
19518         PR middle-end/42505
19519         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
19520         lookup code into....
19521         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
19522         new functions.
19523         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
19524         * cfgloopanal.c (target_clobbered_regs): Define.
19525         (init_set_costs): Initialize target_clobbered_regs.
19526         (estimate_reg_pressure_cost): Add call_p argument.  When true,
19527         adjust the number of available registers to exclude the
19528         call-clobbered registers.
19529         * cfgloop.h (target_clobbered_regs): Declare.
19530         (estimate_reg_pressure_cost): Adjust declaration.
19531         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
19532         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
19533         (determine_set_costs): Dump target_clobbered_regs.
19534         (loop_body_includes_call): New function.
19535         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
19536         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
19537         call_p flag through.
19538         (best_gain_for_invariant): Likewise.
19539         (find_invariants_to_move): Likewise.
19540         (move_single_loop_invariants): Likewise, using already-computed
19541         has_call field.
19542
19543 2010-07-10  Richard Guenther  <rguenther@suse.de>
19544             Joern Rennecke  <joern.rennecke@embecosm.com>
19545
19546         PR debug/44832
19547         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
19548         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
19549         unless they have DECL_IGNORED_P set.
19550
19551 2010-07-10  Richard Guenther  <rguenther@suse.de>
19552
19553         PR lto/44889
19554         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
19555         helper function.
19556         (gimple_types_compatible_p): Similar to pointed-to
19557         types allow and merge a mix of complete and incomplete aggregate.
19558         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
19559         (iterative_hash_gimple_type): Adjust for that.
19560
19561 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
19562
19563         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
19564
19565 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
19566
19567         PR objc/44140
19568         * config/darwin.c (output_objc_section_asm_op): Save and restore
19569         section when outputting ObjC section list.
19570
19571 2010-07-09  Jan Hubicka  <jh@suse.cz>
19572
19573         * lto-streamer-out.c (produce_symtab): Do not write alias
19574         cgraph/varpool nodes.
19575
19576 2010-07-09  Jan Hubicka  <jh@suse.cz>
19577
19578         * tree-inline.c (declare_return_variable): Fix ICE while
19579         inlining DECL_BY_VALUE function not in SSA form
19580
19581 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
19582
19583         PR tree-optimization/44576
19584         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
19585         New.  Pull out from is_loop_prefetching_profitable to implement
19586         the trip count to ahead ratio heuristic.
19587         (mem_ref_count_reasonable_p): New.  Pull out from
19588         is_loop_prefetching_profitable to implement the instruction to
19589         memory reference ratio heuristic.  Also consider not reasonable if
19590         the memory reference count is above a threshold (to avoid
19591         explosive compilation time.
19592         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
19593         is_loop_prefetching_profitable to implement the instruction to
19594         prefetch ratio heuristic.
19595         (is_loop_prefetching_profitable): Removed.
19596         (loop_prefetch_arrays): Distribute the cost analysis across the
19597         function to allow early exit of the prefetch analysis.
19598         is_loop_prefetching_profitable is splitted into three functions,
19599         with each one called as early as possible.
19600         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
19601         number of memory references in a loop is considered too many.
19602
19603 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19604
19605         * reload.c (find_reloads): Don't clear badop if we have a winreg
19606         alternative, but not win, and the class only has fixed regs.
19607         * hard-reg-set.h (class_only_fixed_regs): Declare.
19608         * reginfo.c (class_only_fixed_regs): New array.
19609         (init_reg_sets_1): Initialize it.
19610         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
19611         discourage alternatives using the stack pointer.
19612
19613         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
19614
19615         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
19616
19617         * config/arm/arm.md (cbranchqi4): Fix array size.
19618         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
19619         calculating length.
19620
19621 2010-07-09  Richard Guenther  <rguenther@suse.de>
19622
19623         * gimple.c (struct type_fixup_s): New struct and VEC type.
19624         (gimple_register_type_fixups): New static global.
19625         (gimple_queue_type_fixup): New function.
19626         (gimple_types_compatible_p): Queue type fixups instead of
19627         applying them here.
19628         (gimple_register_type): Apply queued fixups for the
19629         canonical type.  Empty the type fixup queue.
19630
19631 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19632
19633         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
19634         * configure: Regenerate.
19635         * config.in: Ditto.
19636
19637 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19638             Denys Vlasenko  <dvlasenk@redhat.com>
19639             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19640
19641         PR tree-optimization/28632
19642         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
19643         (extract_range_from_binary_expr): Further optimize
19644         BIT_AND_EXPR and BIT_IOR_EXPR.
19645
19646 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
19647
19648         * tree-if-conv.c (fold_or_predicates): New.
19649         (add_to_predicate_list): Call it.
19650
19651 2010-07-09  Richard Guenther  <rguenther@suse.de>
19652
19653         PR middle-end/44890
19654         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
19655         if base is a pointer.
19656         * tree-cfg.c (verify_expr): Update MEM_REF checking.
19657
19658 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
19659
19660         PR target/44877
19661         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
19662         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
19663         builtin mask for load/store builtins.
19664
19665 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19666
19667         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
19668         for "lock addl".
19669         * configure: Regenerate.
19670         * config/i386/i386.c (ix86_print_operand) <case ';'>:
19671         Remove TARGET_MACHO.
19672
19673 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
19674
19675         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
19676         default ISA flags.
19677         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
19678
19679 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
19680
19681         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
19682
19683 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
19684
19685         * config/picochip/picochip.md (commsTestPort): Emit more
19686         efficient sequence for tstport instruction.
19687
19688 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19689
19690         * config/i386/i386.c (ix86_veclib_handler): Make static.
19691
19692 2010-07-09  Richard Guenther  <rguenther@suse.de>
19693
19694         PR tree-optimization/44852
19695         * tree-ssa-alias.c: Include toplev.h for exact_log2.
19696         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
19697         in MEM_REF.
19698         (indirect_refs_may_alias_p): Likewise.
19699         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
19700
19701 2010-07-09  Richard Guenther  <rguenther@suse.de>
19702
19703         PR tree-optimization/44882
19704         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
19705         sets do conflict.
19706         (vectorizable_load): Likewise.
19707
19708 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19709
19710         PR target/40657
19711         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
19712         All callers changed.
19713         Handle the case when we're called for the epilogue.
19714         (thumb_unexpanded_epilogue): Use it.
19715         (thumb1_expand_epilogue): Likewise.
19716
19717 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19718
19719         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
19720         both ranges are range_int_cst_p with non-negative minimum,
19721         try harder to derive smaller range.
19722
19723 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19724
19725         * genrecog.c: Include diagnostic-core.h before toplev.h.
19726         * genoutput.c: Likewise.
19727         * genextract.c: Likewise.
19728         * genautomata.c: Likewise.
19729         * genemit.c: Likewise.
19730         * genpeep.c: Likewise.
19731         * genattrtab.c: Likewise.
19732         * genconditions.c: Likewise.
19733         * genpreds.c: Likewise.
19734
19735 2010-07-08  Andi Kleen  <ak@linux.intel.com>
19736
19737         * lto-section-in.c (lto_section_name): Add missing comma.
19738
19739 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
19740
19741         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
19742         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
19743         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
19744         (ia64_override_options): Rename to...
19745         (ia64_option_override): ... this one. Make static.
19746
19747 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19748
19749         PR middle-end/44843
19750         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
19751         pointed-to type of the offset in a MEM_REF to compute the alignment.
19752
19753 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
19754
19755         * final.c (final_scan_insn): Replace
19756         TARGET_UNWIND_INFO macro check by unwind_emit
19757         hook NULL check.
19758         * targhooks.c (default_unwind_emit): Removed.
19759         * targhooks.h (default_unwind_emit): Likewise.
19760         * target.def (unwind_emit): Set default value to NULL.
19761
19762         * config/i386/i386-protos.h (ix86_asm_output_function_label):
19763         New prototype.
19764         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
19765         for NULL fntype argument and allow 64-bit targets.
19766         (ix86_asm_output_function_label): New function.
19767         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
19768         (ix86_handle_fndecl_attribute): Likewise.
19769         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
19770         * doc/doc/tm.texi: Regenerated.
19771         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
19772         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
19773         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
19774         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
19775         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19776         * config/elfos.h: Likewise.
19777         * config/i386/cygming.h: Likewise.
19778         * config/netbsd-aout.h: Likewise.
19779         * config/openbsd.h: Likewise.
19780         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
19781         by ix86_asm_output_function_label function call.
19782         * varasm.c (assemble_start_function): Use
19783         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19784
19785 2010-07-08  Jan Hubicka  <jh@suse.cz>
19786
19787         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
19788         New function.
19789         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
19790         Declare.
19791         * ipa-cp.c (ipcp_estimate_growth): Use it.
19792         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
19793         Likewise.
19794
19795 2010-07-08  Jan Hubicka  <jh@suse.cz>
19796
19797         * tree-inline.c (declare_return_variable): Allocate annotation for new
19798         temporary.
19799
19800 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19801
19802         PR tree-optimization/44710
19803         * tree-if-conv.c (parse_predicate): New.
19804         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
19805         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
19806
19807 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19808
19809         * common.opt (ftree-loop-if-convert): New flag.
19810         * doc/invoke.texi (ftree-loop-if-convert): Documented.
19811         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
19812         when flag_tree_loop_if_convert is set.
19813
19814 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
19815
19816         * config/i386/i386.c: Use short syntax for function calls
19817         through function pointers.
19818         * config/i386/i386.md: Ditto.
19819
19820 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19821
19822         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
19823
19824 2010-07-08  Richard Guenther  <rguenther@suse.de>
19825
19826         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
19827         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
19828
19829 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
19830
19831         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
19832         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
19833         (loc_list_from_tree): Likewise.
19834         (output_loc_operands): Handle outputting DW_OP_const[48]u
19835         with loc->dtprel set.
19836         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
19837
19838 2010-07-08  Jan Hubicka  <jh@suse.cz>
19839
19840         * ipa.c: Include pointer-set.h
19841         (cgraph_externally_visible_p): New attribute ALIASED;
19842         when in LTO, hidden symbols are local unless they are aliased.
19843         (function_and_variable_visibility): Compute aliased nodes;
19844         handle LTO and hidden symbol on functions and vars.
19845         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
19846         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
19847
19848 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19849
19850         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
19851         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19852         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19853         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19854         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19855         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
19856         (ix86_gen_probe_stack_range): Likewise.
19857         (override_options): Set them.
19858         (ix86_target_stack_probe): New function.
19859         (ix86_compute_frame_layout): Force use of push instructions to
19860         save registers if stack checking with probes is enabled.
19861         (get_scratch_register_on_entry): New function.
19862         (release_scratch_register_on_entry): Likewise.
19863         (ix86_adjust_stack_and_probe): Likewise.
19864         (output_adjust_stack_and_probe): Likewise.
19865         (ix86_emit_probe_stack_range): Likewise.
19866         (output_probe_stack_range): Likewise.
19867         (ix86_expand_prologue): Emit stack checking code if static built-in
19868         stack checking is enabled.
19869         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
19870         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
19871         (output_adjust_stack_and_probe): Likewise.
19872         (output_probe_stack_range): Likewise.
19873         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
19874         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
19875         TARGET_STACK_PROBE.
19876         (allocate_stack_worker_64): Likewise.
19877         (allocate_stack): Likewise.
19878         (adjust_stack_and_probe): New insn.
19879         (probe_stack_range): Likewise.
19880
19881 2010-07-08  Richard Guenther  <rguenther@suse.de>
19882
19883         PR tree-optimization/44831
19884         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
19885         a MEM_REF preserving TBAA info of the original dereference.
19886         Dereference the original pointer if the address is not invariant.
19887         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
19888         at least one invariant address that we are going to dereference.
19889
19890 2010-07-08  Richard Guenther  <rguenther@suse.de>
19891
19892         PR tree-optimization/44861
19893         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
19894         information when building MEM_REFs.
19895         (vectorizable_load): Likewise.
19896         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
19897
19898 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19899
19900         * config/sol2-c.c: Do not include diagnostic-core.h.
19901
19902 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19903
19904         PR bootstrap/44768
19905         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
19906         with respect to current_function_decl. Pass decl of the function.
19907         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
19908         * ipa-inline.c (compute_inline_parameters): Pass decl to
19909         estimated_stack_frame_size.
19910
19911 2010-07-08  Richard Guenther  <rguenther@suse.de>
19912
19913         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
19914         New function.
19915         (valueize_refs): Call it.
19916
19917 2010-07-08  Richard Guenther  <rguenther@suse.de>
19918
19919         PR rtl-optimization/44838
19920         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
19921         SSA form do not use pointer equivalence.
19922
19923 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19924
19925         * dwarf2out.c (AT_linkage_name): Delete.
19926         (add_linkage_attr): New function.
19927         (add_linkage_name): Call it to emit the linkage attribute.
19928         (dwarf2out_finish): Likewise.
19929         (move_linkage_attr): Explicitly accept both attribute variants.
19930
19931 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19932
19933         * toplev.h: Do not include diagnostic-core.h.
19934         Include diagnostic-core.h in every file that includes toplev.h.
19935         * c-tree.h: Do not include toplev.h.
19936         * pretty-print.h: Update comment.
19937         * Makefile.in: Update dependencies.
19938         * alias.c: Include diagnostic-core.h in every file that includes
19939         toplev.h.
19940         * attribs.c: Likewise.
19941         * auto-inc-dec.c: Likewise.
19942         * bb-reorder.c: Likewise.
19943         * bt-load.c: Likewise.
19944         * caller-save.c: Likewise.
19945         * calls.c: Likewise.
19946         * cfg.c: Likewise.
19947         * cfganal.c: Likewise.
19948         * cfgbuild.c: Likewise.
19949         * cfgcleanup.c: Likewise.
19950         * cfghooks.c: Likewise.
19951         * cfgloop.c: Likewise.
19952         * combine.c: Likewise.
19953         * config/alpha/alpha.c: Likewise.
19954         * config/arc/arc.c: Likewise.
19955         * config/arm/arm.c: Likewise.
19956         * config/arm/pe.c: Likewise.
19957         * config/avr/avr.c: Likewise.
19958         * config/bfin/bfin.c: Likewise.
19959         * config/cris/cris.c: Likewise.
19960         * config/crx/crx.c: Likewise.
19961         * config/darwin-c.c: Likewise.
19962         * config/darwin.c: Likewise.
19963         * config/fr30/fr30.c: Likewise.
19964         * config/frv/frv.c: Likewise.
19965         * config/h8300/h8300.c: Likewise.
19966         * config/host-darwin.c: Likewise.
19967         * config/i386/i386.c: Likewise.
19968         * config/i386/netware.c: Likewise.
19969         * config/i386/nwld.c: Likewise.
19970         * config/i386/winnt-cxx.c: Likewise.
19971         * config/i386/winnt-stubs.c: Likewise.
19972         * config/i386/winnt.c: Likewise.
19973         * config/ia64/ia64-c.c: Likewise.
19974         * config/ia64/ia64.c: Likewise.
19975         * config/iq2000/iq2000.c: Likewise.
19976         * config/lm32/lm32.c: Likewise.
19977         * config/m32c/m32c-pragma.c: Likewise.
19978         * config/m32c/m32c.c: Likewise.
19979         * config/m32r/m32r.c: Likewise.
19980         * config/m68hc11/m68hc11.c: Likewise.
19981         * config/m68k/m68k.c: Likewise.
19982         * config/mcore/mcore.c: Likewise.
19983         * config/mep/mep-pragma.c: Likewise.
19984         * config/mep/mep.c: Likewise.
19985         * config/mmix/mmix.c: Likewise.
19986         * config/mn10300/mn10300.c: Likewise.
19987         * config/moxie/moxie.c: Likewise.
19988         * config/pa/pa.c: Likewise.
19989         * config/pdp11/pdp11.c: Likewise.
19990         * config/picochip/picochip.c: Likewise.
19991         * config/rs6000/rs6000-c.c: Likewise.
19992         * config/rs6000/rs6000.c: Likewise.
19993         * config/rx/rx.c: Likewise.
19994         * config/s390/s390.c: Likewise.
19995         * config/score/score.c: Likewise.
19996         * config/score/score3.c: Likewise.
19997         * config/score/score7.c: Likewise.
19998         * config/sh/sh.c: Likewise.
19999         * config/sh/symbian-base.c: Likewise.
20000         * config/sh/symbian-c.c: Likewise.
20001         * config/sh/symbian-cxx.c: Likewise.
20002         * config/sol2-c.c: Likewise.
20003         * config/sol2.c: Likewise.
20004         * config/sparc/sparc.c: Likewise.
20005         * config/spu/spu.c: Likewise.
20006         * config/stormy16/stormy16.c: Likewise.
20007         * config/v850/v850-c.c: Likewise.
20008         * config/v850/v850.c: Likewise.
20009         * config/vax/vax.c: Likewise.
20010         * config/vxworks.c: Likewise.
20011         * config/xtensa/xtensa.c: Likewise.
20012         * convert.c: Likewise.
20013         * cse.c: Likewise.
20014         * cselib.c: Likewise.
20015         * dbgcnt.c: Likewise.
20016         * dbxout.c: Likewise.
20017         * ddg.c: Likewise.
20018         * dominance.c: Likewise.
20019         * emit-rtl.c: Likewise.
20020         * explow.c: Likewise.
20021         * expmed.c: Likewise.
20022         * fixed-value.c: Likewise.
20023         * fold-const.c: Likewise.
20024         * fwprop.c: Likewise.
20025         * gcse.c: Likewise.
20026         * ggc-common.c: Likewise.
20027         * ggc-page.c: Likewise.
20028         * ggc-zone.c: Likewise.
20029         * gimple-low.c: Likewise.
20030         * gimplify.c: Likewise.
20031         * graph.c: Likewise.
20032         * haifa-sched.c: Likewise.
20033         * ifcvt.c: Likewise.
20034         * implicit-zee.c: Likewise.
20035         * integrate.c: Likewise.
20036         * ira-build.c: Likewise.
20037         * ira-color.c: Likewise.
20038         * ira-conflicts.c: Likewise.
20039         * ira-costs.c: Likewise.
20040         * ira-lives.c: Likewise.
20041         * ira.c: Likewise.
20042         * lists.c: Likewise.
20043         * loop-doloop.c: Likewise.
20044         * loop-iv.c: Likewise.
20045         * lto-opts.c: Likewise.
20046         * lto-symtab.c: Likewise.
20047         * main.c: Likewise.
20048         * modulo-sched.c: Likewise.
20049         * optabs.c: Likewise.
20050         * params.c: Likewise.
20051         * plugin.c: Likewise.
20052         * postreload-gcse.c: Likewise.
20053         * postreload.c: Likewise.
20054         * predict.c: Likewise.
20055         * profile.c: Likewise.
20056         * real.c: Likewise.
20057         * regcprop.c: Likewise.
20058         * reginfo.c: Likewise.
20059         * regmove.c: Likewise.
20060         * reorg.c: Likewise.
20061         * resource.c: Likewise.
20062         * rtl.c: Likewise.
20063         * rtlanal.c: Likewise.
20064         * sched-deps.c: Likewise.
20065         * sched-ebb.c: Likewise.
20066         * sched-rgn.c: Likewise.
20067         * sdbout.c: Likewise.
20068         * sel-sched-dump.c: Likewise.
20069         * sel-sched-ir.c: Likewise.
20070         * simplify-rtx.c: Likewise.
20071         * stmt.c: Likewise.
20072         * stor-layout.c: Likewise.
20073         * store-motion.c: Likewise.
20074         * targhooks.c: Likewise.
20075         * tree-cfg.c: Likewise.
20076         * tree-cfgcleanup.c: Likewise.
20077         * tree-dump.c: Likewise.
20078         * tree-eh.c: Likewise.
20079         * tree-inline.c: Likewise.
20080         * tree-nomudflap.c: Likewise.
20081         * tree-object-size.c: Likewise.
20082         * tree-optimize.c: Likewise.
20083         * tree-outof-ssa.c: Likewise.
20084         * tree-phinodes.c: Likewise.
20085         * tree-profile.c: Likewise.
20086         * tree-ssa-ccp.c: Likewise.
20087         * tree-ssa-coalesce.c: Likewise.
20088         * tree-ssa-live.c: Likewise.
20089         * tree-ssa-loop-niter.c: Likewise.
20090         * tree-ssa-loop-prefetch.c: Likewise.
20091         * tree-ssa-loop.c: Likewise.
20092         * tree-ssa-structalias.c: Likewise.
20093         * tree-ssa-uninit.c: Likewise.
20094         * tree-ssa.c: Likewise.
20095         * tree-vect-data-refs.c: Likewise.
20096         * tree-vect-loop-manip.c: Likewise.
20097         * tree-vect-loop.c: Likewise.
20098         * tree-vect-patterns.c: Likewise.
20099         * tree-vect-stmts.c: Likewise.
20100         * tree-vrp.c: Likewise.
20101         * varasm.c: Likewise.
20102         * vec.c: Likewise.
20103         * web.c: Likewise.
20104         * xcoffout.c: Likewise.
20105
20106 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
20107
20108         * gengtype.c (write_field_root): New function.
20109         (write_root): Use it.
20110
20111 2010-07-07  Wei Guozhi  <carrot@google.com>
20112
20113         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20114         of lowest bits to lshift/compare): Add a missing line.
20115
20116 2010-07-07  Wei Guozhi  <carrot@google.com>
20117
20118         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20119         of lowest bits to lshift/compare): New.
20120
20121 2010-07-07  Tom Tromey  <tromey@redhat.com>
20122
20123         * doc/tm.texi: Update.
20124         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
20125         Add @hook.
20126         * target.def (want_debug_pub_sections): New hook.
20127         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
20128         * dwarf2out.c (add_pubname_string): Check
20129         targetm.want_debug_pub_sections.
20130         (add_pubname): Likewise.
20131         (add_pubtype): Likewise.
20132
20133 2010-07-07  Jie Zhang  <jie@codesourcery.com>
20134
20135         * genautomata.c (output_automata_list_min_issue_delay_code):
20136         Correctly decompress min_issue_delay.
20137
20138 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20139
20140         PR rtl-optimization/44404
20141         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
20142         possible, use reg_overlap_mentioned_p instead.
20143
20144 2010-07-07  Duncan Sands  <baldrick@free.fr>
20145
20146         PR middle-end/41355
20147         * tree.c (build_function_type_skip_args): Copy the original type using
20148         build_distinct_type_copy rather than copy_node.
20149
20150 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20151
20152         PR target/44850
20153         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
20154         revision 161876.
20155         (ix86_expand_prologue): Likewise.
20156         (ix86_handle_fndecl_attribute): Likewise.
20157         (ix86_asm_declare_function_name): Likewise.
20158         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20159         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20160         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
20161         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
20162         * doc/extend.texi: Likewise.
20163
20164 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20165
20166         PR target/44844
20167         * config/i386/i386.md (rdrand<mode>): Changed to expand to
20168         retry if the carry flag isn't valid.
20169         (rdrand<mode>_1): New.
20170
20171 2010-07-07  Richard Guenther  <rguenther@suse.de>
20172
20173         PR middle-end/44790
20174         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
20175         for expanding the constant offset for MEM_REFs.
20176
20177 2010-07-07  Richard Guenther  <rguenther@suse.de>
20178
20179         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
20180         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
20181         * gimple.h (is_gimple_operand): Remove.
20182         * gimple.c (is_gimple_operand): Likewise.
20183         (walk_gimple_op): Fix wi->val_only setting for calls.
20184         * tree-cfg.c (verify_gimple_call): Fix argument validation.
20185         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
20186         invalid gimple calls.
20187
20188 2010-07-06  Jan Hubicka  <jh@suse.cz>
20189
20190         * lto-cgraph.c (output_cgraph): Add missing declaration.
20191
20192 2010-07-06  Jan Hubicka  <jh@suse.cz>
20193
20194         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
20195         partition.
20196
20197 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
20198
20199         * doc/gimple.texi (GIMPLE_DEBUG): Document.
20200         * doc/rtl.texi (Debug Information): New node.
20201         (NOTE_INSN_VAR_LOCATION): Document.
20202         (debug_insn): Likewise.
20203         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
20204
20205 2010-07-07  Jan Hubicka  <jh@suse.cz>
20206
20207         With parts by Richard Guenther.
20208
20209         PR middle-end/44813
20210         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
20211         for functions passed by reference.
20212         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
20213         in memory when passed by reference.
20214         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
20215         beggining.
20216         * ipa-split.c (split_function): Cleanup way return value is passed;
20217         handle SSA DECL_BY_REFERENCE retvals.
20218         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
20219         DECL_BY_REFERENCE is set.
20220         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
20221         find_what_p_points_to): Handle RESULT_DECL.
20222         * tree-inline.c (declare_return_variable): Get new entry_block argument;
20223         when passing by reference ensure that RESULT_DECL is gimple_val.
20224         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
20225         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
20226
20227 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20228
20229         PR rtl-optimization/44787
20230         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
20231         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
20232
20233 2010-07-06  Jan Hubicka  <jh@suse.cz>
20234
20235         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
20236         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
20237         with body can prevail.
20238         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
20239         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
20240         * cgraph.c (cgraph_get_node_or_alias): New function.
20241         * cgraph.h (cgraph_get_node_or_alias): Declare.
20242
20243 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
20244
20245         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
20246         support.
20247         (ix86_expand_prologue): Likewise.
20248         (ix86_handle_fndecl_attribute): Likewise.
20249         (ix86_asm_declare_function_name): New function for
20250         ASM_DECLARE_FUNCTION_NAME.
20251         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
20252         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
20253         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
20254         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
20255         * doc/extend.texi: Adjust documentation about ms_hook_prologue
20256         attribute.
20257
20258 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20259
20260         * config/i386/i386.md (immediate_operand): New mode attribute.
20261
20262         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
20263         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
20264         using P mode iterator.
20265         (pro_epilogue_adjust_stack_di_2): Rename from
20266         pro_epilogue_adjust_stack_rex64_2.
20267
20268         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
20269
20270 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20271
20272         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
20273         through gen_mov_insv_1 function pointer.
20274         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
20275         gen_truncxf<mode>2 through gen_truncxf function pointer.
20276         (remainder<mode>3): Ditto.
20277         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
20278         (allocate_stack): Call gen_allocate_stack_worker_64 or
20279         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
20280         function pointer.
20281         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
20282         function pointer.
20283
20284 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20285
20286         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
20287         operand constraint instead of <r><i>m.
20288
20289 2010-07-06  Richard Guenther  <rguenther@suse.de>
20290
20291         PR middle-end/44828
20292         * convert.c (convert_to_integer): Watch out for overflowing
20293         MULT_EXPR as well.
20294
20295 2010-07-05  Jan Hubicka  <jh@suse.cz>
20296
20297         * lto-streamer.c (write_symbol_vec): Rename to ...
20298         (write_symbol) ... this one; write only symbol given and when
20299         present in cache. Sanity check that what is defined is present
20300         in cgraph/varpool with body/finalized decl.
20301         (write_symbols_of_kind): Remove.
20302         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
20303         pairs to produce symtab.
20304         (produce_asm_for_decls): Update call of produce_symtab; don't do so
20305         when doing WPA streaming.
20306
20307 2010-07-05  Jan Hubicka  <jh@suse.cz>
20308
20309         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
20310         function is still available to fold into.
20311
20312 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20313
20314         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
20315         * function.h (struct_function): Change type of local_decls field
20316         to a VEC.
20317         (add_local_decl): New function.
20318         (FOR_EACH_LOCAL_DECL): New macro.
20319         * cfgexpand.c (init_vars_expansion): Adjust for new type of
20320         cfun->local_decls.
20321         (estimated_stack_frame_size): Likewise.
20322         (expand_used_vars): Likewise.
20323         * cgraphbuild.c (build_cgraph_edges): Likewise.
20324         * function.c (instantiate_decls_1): Likewise.
20325         * ipa-struct-reorg.c (build_data_structure): Likewise.
20326         * ipa-type-escape.c (analyze_function): Likewise.
20327         * lto-streamer-in.c (input_function): Likewise.
20328         * lto-streamer-out.c (output_function): Likewise.
20329         * tree-ssa-live.c (remove_unused_locals): Likewise.
20330         * tree.c (free_lang_data_in_decl): Likewise.
20331         (find_decls_types_in_node): Likewise.
20332         * omp-low.c (remove_exit_barrier): Likewise.
20333         (expand_omp_taskreg): Likewise.
20334         (list2chain): Rename to...
20335         (vec2chain): ...this.  Adjust.
20336         * cgraphunit.c (assemble_thunk): Call add_local_decl.
20337         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
20338         * gimple-low.c (record_vars_into): Likewise.
20339         * tree-inline.c (remap_decls): Likewise.
20340         (declare_return_variable): Likewise.
20341         (declare_inline_vars): Likewise.
20342         (copy_forbidden): Adjust for new type of cfun->local_decls.
20343         (add_local_variables): New function.
20344         (expand_call_inline): Call it.
20345         (tree_function_versioning): Likewise.
20346
20347 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
20348
20349         AVX Programming Reference (June, 2010)
20350         * config/i386/cpuid.h (bit_F16C): New.
20351         (bit_RDRND): Likewise.
20352         (bit_FSGSBASE): Likewise.
20353
20354         * config/i386/i386-builtin-types.def: Add
20355         "DEF_FUNCTION_TYPE (UINT16)", function types for
20356         float16 <-> float conversions and
20357         "DEF_FUNCTION_TYPE (VOID, UINT64)".
20358
20359         * config/i386/i386-c.c (ix86_target_macros_internal): Support
20360         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
20361         OPTION_MASK_ISA_F16C.
20362
20363         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
20364         (OPTION_MASK_ISA_RDRND_SET): Likewise.
20365         (OPTION_MASK_ISA_F16C_SET): Likewise.
20366         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
20367         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
20368         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
20369         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
20370         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
20371         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
20372         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
20373         (override_options): Handle them.
20374         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
20375         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
20376         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
20377         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
20378         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
20379         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
20380         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
20381         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
20382         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
20383         (bdesc_args): Likewise.
20384         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
20385         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
20386         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
20387         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
20388         Handle non-memory store.
20389
20390         * config/i386/i386.h (TARGET_FSGSBASE): New.
20391         (TARGET_RDRND): Likewise.
20392         (TARGET_F12C): Likewise.
20393
20394         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
20395         (UNSPEC_VCVTPS2PH): Likewise.
20396         (UNSPECV_RDFSBASE): Likewise.
20397         (UNSPECV_RDGSBASE): Likewise.
20398         (UNSPECV_WRFSBASE): Likewise.
20399         (UNSPECV_WRGSBASE): Likewise.
20400         (UNSPECV_RDRAND): Likewise.
20401         (rdfsbase<mode>): Likewise.
20402         (rdgsbase<mode>): Likewise.
20403         (wrfsbase<mode>): Likewise.
20404         (wrgsbase<mode>): Likewise.
20405         (rdrand<mode>): Likewise.
20406
20407         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
20408
20409         * config/i386/immintrin.h (_rdrand_u16): New.
20410         (_rdrand_u32): Likewise.
20411         (_readfsbase_u32): Likewise.
20412         (_readfsbase_u64): Likewise.
20413         (_readgsbase_u32): Likewise.
20414         (_readgsbase_u64): Likewise.
20415         (_writefsbase_u32): Likewise.
20416         (_writefsbase_u64): Likewise.
20417         (_writegsbase_u32): Likewise.
20418         (_writegsbase_u64): Likewise.
20419         (_rdrand_u64): Likewise.
20420         (_cvtsh_ss): Likewise.
20421         (_mm_cvtph_ps): Likewise.
20422         (_mm256_cvtph_ps): Likewise.
20423         (_cvtss_sh): Likewise.
20424         (_mm_cvtps_ph): Likewise.
20425         (_mm256_cvtps_ph): Likewise.
20426
20427         * config/i386/sse.md (vcvtph2ps): New.
20428         (*vcvtph2ps_load): Likewise.
20429         (vcvtph2ps256): Likewise.
20430         (vcvtps2ph): Likewise.
20431         (*vcvtps2ph): Likewise.
20432         (*vcvtps2ph_store): Likewise.
20433         (vcvtps2ph256): Likewise.
20434
20435         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
20436
20437         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
20438
20439 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
20440
20441         PR bootstrap/44512
20442         * genenums.c (main): Output include of insn-constants.h
20443         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
20444
20445 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
20446
20447         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
20448         (override_options): Initialize it.
20449         (ix86_expand_prologue): Use it.
20450
20451 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20452
20453         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
20454
20455 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20456
20457         * double-int.h (fit_double_type): Remove declaration.
20458         * double-int.c (fit_double_type): Remove function.
20459         * tree.h (int_fits_type_p): Adjust prototype.
20460         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
20461         instead of fit_double_type.
20462         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
20463         instead of fit_double_type and build_int_cst_wide.
20464         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
20465         instead of fit_double_type and build_int_cst_wide.
20466         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
20467         of fit_double_type.
20468
20469 2010-07-05  Jan Hubicka  <jh@suse.cz>
20470
20471         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
20472         in_other_partition.
20473         * lto-cgraph.c (referenced_from_other_partition_p,
20474         reachable_from_other_partition_p): Use in_other_partition flags.
20475         (output_node, output_varpool_node): COMDAT nodes always have private
20476         copies and thus are never used from other partition.
20477
20478 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20479
20480         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
20481         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
20482         * config/ia64/ia64.c Include reload.h.
20483         (ia64_memory_move_cost): New function.
20484         (TARGET_MEMORY_MOVE_COST): Define.
20485         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
20486         memory_move_cost.
20487
20488 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
20489
20490         PR middle-end/42505
20491         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
20492         comments about cost model.
20493         (try_add_cand_for):  Add second strategy for choosing initial set
20494         based on original IVs, controlled by ORIGINALP argument.
20495         (get_initial_solution): Add ORIGINALP argument.
20496         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
20497         (find_optimal_iv_set): Try two different strategies for choosing
20498         the IV set, and return the one with lower cost.
20499
20500 2010-07-05  Richard Guenther  <rguenther@suse.de>
20501
20502         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
20503
20504 2010-07-05  Richard Guenther  <rguenther@suse.de>
20505
20506         * tree.c (reference_alias_ptr_type): New function.
20507         * tree.h (reference_alias_ptr_type): Declare.
20508         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
20509         allow non-TARGET_MEM_REF new refs.
20510         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
20511         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
20512         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
20513         (create_mem_ref): Get alias pointer type.  Adjust calls to
20514         create_mem_ref_raw.
20515         (maybe_fold_tmr): Likewise.
20516         * tree-flow.h (create_mem_ref): Adjust prototype.
20517
20518 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20519
20520         PR c++/44808
20521         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
20522         *from_p is VAR_DECL.
20523
20524 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20525
20526         * tree.h (build_call_list): Remove.
20527         * tree.c (build_call_list): Remove.
20528
20529 2010-07-05  Richard Guenther  <rguenther@suse.de>
20530
20531         * double-int.h (double_int_sub): Declare.
20532         * double-int.c (double_int_sub): New function.
20533         * dwarf2out.c (field_byte_offset): Use it.
20534         * fixed-value.c (do_fixed_add): Likewise.
20535         (do_fixed_multiply): Likewise.
20536         (do_fixed_divide): Likewise.
20537         * tree-predcom.c (add_ref_to_chain): Likewise.
20538         (determine_roots_comp): Likewise.
20539         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
20540
20541 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20542
20543         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
20544         implementations.
20545
20546 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
20547
20548         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
20549         * arm-modes.def (CC_NOTB): Don't define.
20550         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
20551         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
20552         (LTUGEU): New code_iterator.
20553         (cnb, optab): New corresponding code_attrs.
20554         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
20555         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
20556         using LTUGEU.
20557         (addsi3_carryin_shift_<optab>): Likewise.
20558         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
20559         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
20560         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
20561         (subsi3_compare): Renamed from subsi3_compare0_c.
20562         Change CC_NOTB to CC.
20563         (arm_subsi3_insn): Allow constants for operand 0.
20564         (compare_scc peephole for eq case): New.
20565         (compare_scc splitters): Change CC_NOTB to CC.
20566
20567 2010-07-05  Richard Guenther  <rguenther@suse.de>
20568
20569         * tree-ssa-loop-im.c (for_each_index): Do not handle
20570         ALIGN_INDIRECT_REF.
20571         (gen_lsm_tmp_name): Likewise.
20572         * tree-dump.c (dequeue_and_dump): Likewise.
20573         * tree-pretty-print.c (dump_generic_node): Likewise.
20574         (op_code_prio): Likewise.
20575         (op_symbol_code): Likewise.
20576         * tree.c (staticp): Likewise.
20577         (build1_stat): Likewise.
20578         * tree.h (INDIRECT_REF_P): Likewise.
20579         * fold-const.c (maybe_lvalue_p): Likewise.
20580         (operand_equal_p): Likewise.
20581         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
20582         (ao_ref_init_from_vn_reference): Likewise.
20583         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
20584         (find_interesting_uses_address): Likewise.
20585         * dwarf2out.c (loc_list_from_tree): Likewise.
20586         * gimplify.c (gimplify_expr): Likewise.
20587         * tree-eh.c (tree_could_trap_p): Likewise.
20588         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
20589         * cfgexpand.c (expand_debug_expr): Likewise.
20590         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
20591         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
20592         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
20593         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
20594         * tree-ssa-operands.c (get_expr_operands): Likewise.
20595         * expr.c (safe_from_p): Likewise.
20596         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
20597         * tree-vect-data-refs.c (vect_setup_realignment): Build
20598         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
20599         * tree-vect-stmts.c (vectorizable_load): Likewise.
20600         * tree.def (ALIGN_INDIRECT_REF): Remove.
20601
20602 2010-07-05  Richard Guenther  <rguenther@suse.de>
20603
20604         PR tree-optimization/44784
20605         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
20606         for inserted stmts.
20607         (find_or_generate_expression): Fix SCCVN insertion check.
20608
20609 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
20610
20611         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
20612         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
20613         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
20614         directives.
20615
20616 2010-07-05  Ira Rosen  <irar@il.ibm.com>
20617
20618         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
20619         statements that are not vectorized.
20620         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
20621         in INSIDE_COST.
20622
20623 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
20624
20625         PR bootstrap/44820
20626         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
20627
20628 2010-07-05  Richard Guenther  <rguenther@suse.de>
20629
20630         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
20631         RESULT_DECLs properly.
20632
20633 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
20634
20635         PR rtl-optimization/44695
20636         * config/i386/i386.md (extract_code): Removed.
20637         (<u>divmodqi4): Likewise.
20638         (divmodqi4): New.
20639         (udivmodqi4): Likewise.
20640         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
20641         (udivmodhiqi3): Likewise.
20642
20643 2010-07-04  Jan Hubicka  <jh@suse.cz>
20644
20645         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
20646
20647 2010-07-04  Jan Hubicka  <jh@suse.cz>
20648
20649         * cgraphunit.c (init_cgraph): Only initialize dump file if it
20650         is not already initialized.
20651
20652 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20653
20654         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
20655         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
20656         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
20657         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
20658         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
20659         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
20660         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
20661         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
20662         (sync_new_nand_optab): Redefine as macros.
20663         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
20664         Delete.
20665         (direct_optab_index): New enum.
20666         (direct_optab_d): New structure.
20667         (direct_optab): New typedef.
20668         (direct_optab_table): Declare.
20669         (direct_optab_handler, set_direct_optab_handler): New functions.
20670         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
20671         (sync_lock_release_optab): New macros.
20672         * optabs.c (direct_optab_table): New variable.
20673         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
20674         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
20675         cmpstr_optab and cmpstrn_optab.
20676         (emit_conditional_move): Likewise for movcc_optab.
20677         (can_conditionally_move_p): Likewise for movcc_gen_code.
20678         (init_insn_codes): Clear direct_optab_table.
20679         (init_optabs): Don't initialize the new "direct optabs" here.
20680         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
20681         vcond_gen_code.
20682         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
20683         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
20684         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
20685         (expand_sync_operation): Likewise other sync_*_optabs.
20686         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
20687         to sync_compare_and_swap_optab.
20688         (expand_sync_lock_test_and_set): Use direct_optab_handler for
20689         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
20690         to the names of both.
20691         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
20692         cmpstr_optab and cmpstrn_optab.
20693         (expand_builtin_lock_release): Likewise sync_lock_release.
20694         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
20695         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
20696         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
20697         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
20698         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
20699         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
20700         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
20701         (sync_lock_test_and_set, sync_lock_release): Delete.
20702         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
20703         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
20704         * genopinit.c (optabs): Use set_direct_optab_handler for the new
20705         macro optabs.
20706         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
20707         the "optab" local variable.  Use direct_optab_handler for optab and
20708         sync_compare_and_swap_optab.
20709         * reload1.c (reload_in_optab, reload_out_optab): Delete.
20710         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
20711         reload_in_optab and reload_out_optab.
20712         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
20713         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
20714         * config/pa/pa.c (pa_secondary_reload): Likewise.
20715         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
20716         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
20717         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
20718         (VMSupportsCS8_builtin): Likewise.
20719
20720 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20721
20722         * optabs.h (optab_handlers): Change type of insn_code to int.
20723         (optab_handler, set_optab_handler, convert_optab_handler)
20724         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
20725         CODE_FOR_nothing".
20726         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
20727         (init_insn_codes): Zero both the above arrays.
20728         (init_optabs): Never call init_insn_codes first time around.
20729
20730 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20731
20732         * optabs.h (optab_handler, convert_optab_handler): Turn into
20733         inline functions that return an insn code.
20734         (set_optab_handler, set_convert_optab_handler): New functions.
20735         * builtins.c: Replace optab_handler(X)->insn_code with
20736         optab_handler or set_optab_handler thoughout.  Likewise
20737         convert_optab_handler(X)->insn_code with convert_optab_handler
20738         and set_convert_optab_handler.
20739         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
20740         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
20741         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
20742         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
20743         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
20744         config/spu/spu.c: Likewise.
20745
20746 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
20747
20748         PR target/44531
20749         * config.gcc (sh*-*-*): Use regular expressions instead of
20750         the 'i' modifier for sed substitutions.
20751
20752 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
20753
20754         * gimple.c (gimple_body): Comments added.
20755
20756 2010-07-04  Richard Guenther  <rguenther@suse.de>
20757
20758         PR middle-end/44809
20759         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
20760         of an INDIRECT_REF.
20761
20762 2010-07-04  Richard Guenther  <rguenther@suse.de>
20763
20764         PR tree-optimization/44479
20765         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
20766         extra SSA name copy statements which preserves points-to
20767         information.
20768         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
20769         Copy points-to information for all pointers.  Properly handle
20770         MEM_REFs.
20771         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
20772         copy statements.
20773         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
20774         dependency.
20775
20776 2010-07-04  Richard Guenther  <rguenther@suse.de>
20777
20778         PR middle-end/44785
20779         * tree-inline.c (initialize_inlined_parameters): Do not
20780         re-use pointer-map slot over remap_type call.
20781
20782 2010-07-04  Richard Guenther  <rguenther@suse.de>
20783
20784         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
20785
20786 2010-07-04  Richard Guenther  <rguenther@suse.de>
20787
20788         PR tree-optimization/44656
20789         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
20790         again after value-replacing in the defintions lhs.
20791
20792 2010-07-04  Ira Rosen  <irar@il.ibm.com>
20793             Revital Eres  <eres@il.ibm.com>
20794
20795         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
20796         Document new arguments.
20797         * doc/tm.texi: Regenerate.
20798         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
20799         Handle unaligned store.
20800         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
20801         * target.def (builtin_vectorization_cost): Add new arguments.
20802         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
20803         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
20804         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
20805         (vect_vfa_segment_size): Fix indentation.
20806         * tree-vectorizer.h (struct _vect_peel_info): New.
20807         (struct _vect_peel_extended_info): New.
20808         (struct _loop_vec_info): Add new field for peeling hash table and a
20809         macro for its access.
20810         (VECT_MAX_COST): Define.
20811         (vect_get_load_cost): Declare.
20812         (vect_get_store_cost, vect_get_known_peeling_cost,
20813         vect_get_single_scalar_iteraion_cost): Likewise.
20814         (vect_supportable_dr_alignment): Add new argument.
20815         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
20816         field.
20817         (destroy_loop_vec_info): Free peeling hash table.
20818         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
20819         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
20820         vect_analyze_slp. Fix indentation.
20821         (vect_get_single_scalar_iteraion_cost): New function.
20822         (vect_get_known_peeling_cost): Likewise.
20823         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
20824         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
20825         statement. Move outside cost calculation inside unknown peeling case.
20826         Call vect_get_known_peeling_cost for known amount of peeling.
20827         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
20828         reference to the print message of forced alignment.
20829         (vect_verify_datarefs_alignment): Update call to
20830         vect_supportable_dr_alignment.
20831         (vect_get_data_access_cost): New function.
20832         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
20833         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
20834         vect_peeling_hash_choose_best_peeling): Likewise.
20835         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
20836         to store all the accesses in the loop and find best possible access to
20837         align using peeling for known alignment case. For unknown alignment
20838         check if stores are preferred or if peeling is worthy.
20839         (vect_find_same_alignment_drs): Analyze pairs of loads too.
20840         (vect_supportable_dr_alignment): Add new argument and check aligned
20841         accesses according to it.
20842         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
20843         (cost_for_stmt): Call vect_get_stmt_cost.
20844         (vect_model_simple_cost): Likewise.
20845         (vect_model_store_cost): Call vect_get_stmt_cost. Call
20846         vect_get_store_cost to calculate the cost of the statement.
20847         (vect_get_store_cost): New function.
20848         (vect_model_load_cost): Call vect_get_stmt_cost. Call
20849         vect_get_load_cost to calculate the cost of the statement.
20850         (vect_get_load_cost): New function.
20851         (vectorizable_store): Update call to vect_supportable_dr_alignment.
20852         (vectorizable_load): Likewise.
20853         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
20854         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
20855         arguments. Handle unaligned store.
20856         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
20857         (rs6000_builtin_support_vector_misalignment): Return true for word and
20858         double word alignments for VSX.
20859         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
20860         vect_supportable_dr_alignment and builtin_vectorization_cost.
20861
20862 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20863
20864         PR target/44597
20865         * config/pa/predicates.md (prefetch_cc_operand): Remove.
20866         (prefetch_nocc_operand): Likewise.
20867         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
20868         (prefetch_20): New insn.
20869         (prefetch_cc): Remove.
20870         (prefetch_nocc): Likewise.
20871
20872 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20873
20874         * expr.c (vector_mode_valid_p): Move to c-common.c.
20875         * expr.h (vector_mode_valid_p): Do not declare here.
20876         * system.h: Poison GCC_EXPR_H in front-ends.
20877         * Makefile.in: Update dependencies.
20878
20879 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20880
20881         PR target/44705
20882         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
20883
20884 2010-07-03  Jan Hubicka  <jh@suse.cz>
20885
20886         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
20887         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
20888         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
20889         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
20890         Likewise.
20891
20892         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
20893         Update timevars.V
20894         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
20895         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
20896         TV_IPA_LTO_DECL_OUT): New.
20897         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
20898
20899 2010-07-03  Jan Hubicka  <jh@suse.cz>
20900
20901         * ipa-inline.c (update_edge_key): Break out from ...
20902         update_callers_keys): ... here;
20903         (update_callee_keys): Update only the edges from caller to callee.
20904         (update_all_calle_keys): Do what update_calle_keys did.
20905         (decide_inlining_of_small_functions): Avoid recomputing of all
20906         callees when badness increase.
20907
20908 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20909
20910         * config/arm/arm.c (arm_attr_length_move_neon): New.
20911         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
20912         * config/arm/neon.md (define_mode_attr V_slen): Remove.
20913         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
20914         to compute length attribute.
20915
20916 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20917
20918         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
20919         as predicate for operand 1 and remove its constraint.
20920         * config/arm/predicates.md (vfp_register_operand): New.
20921         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
20922         (*push_fp_multi): Likewise.
20923
20924 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
20925
20926         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
20927
20928 2010-07-03  Jan Hubicka  <jh@suse.cz>
20929
20930         * config/i386/i386.c (override_options): Revert accidental commit.
20931
20932 2010-07-02  Le-Chun Wu  <lcwu@google.com>
20933
20934         PR c++/44128
20935         * doc/invoke.texi: Update documentation of -Wshadow.
20936
20937 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
20938             Julian Brown  <julian@codesourcery.com>
20939             Sandra Loosemore  <sandra@codesourcery.com>
20940
20941         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
20942         comparisons.  Adjust to take both operands.
20943         (arm_select_cc_mode): Handle DImode comparisons.
20944         (arm_gen_compare_reg): Generate a scratch register for DImode
20945         comparisons which require one.  Use xor for Thumb equality checks.
20946         (arm_const_double_by_immediates): New.
20947         (arm_print_operand): Allow 'Q' and 'R' for constants.
20948         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
20949         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
20950         arm_canonicalize_comparison.
20951         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
20952         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
20953         prototype.
20954         (arm_const_double_by_immediates): Declare.
20955         * config/arm/constraints.md (Di): New constraint.
20956         * config/arm/predicates.md (arm_immediate_di_operand)
20957         (arm_di_operand, cmpdi_operand): New.
20958         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
20959         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
20960         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
20961         (cstoredi4): Handle non-Cirrus also.
20962
20963 2010-07-02  Julian Brown  <julian@codesourcery.com>
20964             Sandra Loosemore  <sandra@codesourcery.com>
20965
20966         PR target/43703
20967         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
20968         (smax<mode>3): Disable for NEON float modes when
20969         flag_unsafe_math_optimizations is false.
20970         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
20971         (*mul<mode>3_neon)
20972         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
20973         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
20974         for NEON float modes when flag_unsafe_math_optimizations is false.
20975         (quad_halves_<code>v4sf): Only enable if
20976         flag_unsafe_math_optimizations is true.
20977         * doc/invoke.texi (ARM Options): Add note about floating point
20978         vectorization requiring -funsafe-math-optimizations.
20979
20980 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20981             Julian Brown  <julian@codesourcery.com>
20982
20983         * config/arm/neon.md (UNSPEC_VABA): Delete.
20984         (UNSPEC_VABAL): Delete.
20985         (UNSPEC_VABS): Delete.
20986         (UNSPEC_VMUL_N): Delete.
20987         (adddi3_neon): New.
20988         (subdi3_neon): New.
20989         (mul<mode>3add<mode>_neon): Make the pattern named.
20990         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
20991         (neon_vadd<mode>): Replace with define_expand, and move the remaining
20992         unspec parts...
20993         (neon_vadd<mode>_unspec): ...to this.
20994         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
20995         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
20996         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
20997         (neon_vaba<mode>): Rewrite in terms of vabd.
20998         (neon_vabal<mode>): Rewrite in terms of vabdl.
20999         (neon_vabs<mode>): Rewrite without unspec.
21000         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
21001         (*arm_subdi3): Likewise.
21002         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
21003         No_op attribute to disable assembly output checks.
21004         * config/arm/arm_neon.h: Regenerated.
21005         * doc/arm-neon-intrinsics.texi: Regenerated.
21006
21007 2010-07-02  Jan Hubicka  <jh@suse.cz>
21008
21009         * ipa-split.c (split_function): For aggregate values, set the return
21010         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
21011         *<retval> = fncall.part ().
21012         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
21013
21014 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21015
21016         * config/arm/neon.md (UNSPEC_VAND): Delete.
21017         (UNSPEC_VBIC): Delete.
21018         (UNSPEC_VCLZ): Delete.
21019         (UNSPEC_VCNT): Delete.
21020         (UNSPEC_VEOR): Delete.
21021         (UNSPEC_VORN): Delete.
21022         (UNSPEC_VORR): Delete.
21023         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
21024         core registers too.
21025         (anddi3_neon): Likewise.
21026         (orndi3_neon): Likewise.
21027         (bicdi3_neon): Likewise.
21028         (xordi3_neon): Likewise.
21029         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
21030         rid of unspec and handle unused operand.
21031         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
21032         * config/arm/predicates.md (imm_for_neon_logic_operand):
21033         Require TARGET_NEON.
21034         (imm_for_neon_inv_logic_operand): Likewise.
21035         * config/arm/arm.md (define_split for logical_binary_operator):
21036         Disable for NEON registers.
21037         (anddi3): Add new define_expand, and rename the insn.  Disable
21038         this insn for NEON, where anddi3_neon now applies.
21039         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
21040         (iordi3): As for anddi3.
21041         (xordi3): Likewise.
21042         * config/arm/neon.ml (Vand): Split DImode variants and mark them
21043         as No_op to disable testing for exact instruction match.
21044         (Vorr): Likewise.
21045         (Veor): Likewise.
21046         (Vbic): Likewise.
21047         (Vorn): Likewise.
21048         * config/arm/arm_neon.h: Regenerated.
21049         * doc/arm-neon-intrinsics.texi: Regenerated.
21050
21051 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
21052
21053         * expr.h (emit_stack_probe): Declare.
21054         * explow.c (emit_stack_probe): Make global.
21055         (anti_adjust_stack_and_probe): Fix comments.
21056         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
21057         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21058         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21059         * config/sparc/sparc.c: Include except.h.
21060         (sparc_emit_probe_stack_range): New function.
21061         (output_probe_stack_range): Likewise.
21062         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
21063         built-in stack checking is enabled.
21064         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
21065         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
21066         (probe_stack_range): New insn.
21067
21068 2010-07-02  Richard Guenther  <rguenther@suse.de>
21069
21070         PR target/43958
21071         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
21072         for argument alignment.
21073
21074 2010-07-02  Jan Hubicka  <jh@suse.cz>
21075
21076         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
21077         walk backwards from entry_bb to check only those basic block of header
21078         that might lead to execution of split part.
21079         (consider_split) ... here.
21080         (find_return_bb): Allow assignment in return BB.
21081         (find_retval): New.
21082         (split_function): Fix name of cloned function; take care of updating
21083         return value in return_bb containing move.
21084
21085 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
21086
21087         PR target/44771
21088         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
21089         used variable insn.
21090
21091 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
21092
21093         * implicit-zee.c (combine_reaching_defs): Fix long lines.
21094         (is_set_with_extension_DI): Delete.
21095         (struct zero_extend_info): New structure.
21096         (add_removable_zero_extend): New function.
21097         (find_removable_zero_extends): Use note_stores to find SETs.
21098         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
21099
21100 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21101
21102         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
21103         is_miss_rate_acceptable. Pull total_positions computation
21104         out of the loops.  Early return if miss_positions exceeds
21105         the acceptable threshold.
21106         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
21107         is_miss_rate_acceptable after renaming of compute_miss_rate.
21108
21109 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21110
21111         PR middle-end/44576
21112         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
21113         of 1000) for miss rate if the address diference is greater than or
21114         equal to the cache line size (the two reference will never hit the
21115         same cache line).
21116
21117 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
21118
21119         PR target/42835
21120         * config/arm/arm-modes.def (CC_NOTB): New mode.
21121         * config/arm/arm.c (get_arm_condition_code): Handle it.
21122         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
21123         * config/arm/arm.md (subsi3_compare0_c): New pattern.
21124         (compare_scc): Now a define_and_split.  Add a number of extra
21125         splitters before it.
21126
21127         PR target/42172
21128         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
21129         and ZERO_EXTEND.
21130         (arm_rtx_costs_1): Likewise.
21131         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
21132         * config/arm/arm.md (is_arch6): New attribute.
21133         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
21134         extendqisi2): Tighten the code somewhat, avoiding invalid
21135         RTL to occur in the expander patterns.
21136         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
21137         (thumb1_zero_extendhisi2_v6): Delete.
21138         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
21139         (thumb1_extendhisi2_v6): Delete.
21140         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
21141         (thumb1_extendqisi2_v6): Delete.
21142         (zero_extendhisi2 for register input splitter): New.
21143         (zero_extendqisi2 for register input splitter): New.
21144         (thumb1_extendhisi2 for register input splitter): New.
21145         (extendhisi2 for register input splitter): New.
21146         (extendqisi2 for register input splitter): New.
21147         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
21148         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
21149         and add support for a register alternative requiring a split.
21150         (thumb1_zero_extendqisi2): Likewise.
21151         (arm_zero_extendqisi2): Likewise.
21152         (arm_extendhisi2): Likewise.
21153         (arm_extendqisi2): Likewise.
21154
21155 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21156
21157         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
21158         instead of an unspec.
21159         (neon_expand_vector_init): Likewise.
21160         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
21161         (UNSPEC_VDUP_LANE): Delete.
21162         (UNSPEC VDUP_N): Delete.
21163         (UNSPEC_VGET_HIGH): Delete.
21164         (UNSPEC_VGET_LANE): Delete.
21165         (UNSPEC_VGET_LOW): Delete.
21166         (UNSPEC_VMVN): Delete.
21167         (UNSPEC_VSET_LANE): Delete.
21168         (V_double_vector_mode): New.
21169         (vec_set<mode>_internal): Make code emitted match that for the
21170         corresponding intrinsics.
21171         (vec_setv2di_internal): Likewise.
21172         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
21173         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
21174         (neon_vset_lane<mode>): Combine double and quad patterns and
21175         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
21176         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
21177         (neon_vdup_n<mode>): Rewrite RTL without unspec.
21178         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
21179         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
21180         with neon_vdup_lanev2di, adjusting the pattern from the latter
21181         to be predicable for consistency.
21182         (neon_vdup_lane<mode>_internal): New.
21183         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
21184         to avoid using an unspec.
21185         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
21186         (neon_vdup_lanev2di): Turn into a define_expand.
21187         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
21188         (neon_vget_high<mode>): Replace with....
21189         (neon_vget_highv16qi): New pattern using canonical RTL.
21190         (neon_vget_highv8hi): Likewise.
21191         (neon_vget_highv4si): Likewise.
21192         (neon_vget_highv4sf): Likewise.
21193         (neon_vget_highv2di): Likewise.
21194         (neon_vget_low<mode>): Replace with....
21195         (neon_vget_lowv16qi): New pattern using canonical RTL.
21196         (neon_vget_lowv8hi): Likewise.
21197         (neon_vget_lowv4si): Likewise.
21198         (neon_vget_lowv4sf): Likewise.
21199         (neon_vget_lowv2di): Likewise.
21200
21201         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
21202         test for this emitting vmov.
21203         (Vset_lane): Likewise.
21204         (Vdup_n): Likewise.
21205         (Vmov_n): Likewise.
21206
21207         * doc/arm-neon-intrinsics.texi: Regenerated.
21208
21209 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21210
21211         * config/arm/neon.md (vec_extractv2di): Correct error in register
21212         numbering to reconcile with neon_vget_lanev2di.
21213
21214 2010-07-02  Richard Guenther  <rguenther@suse.de>
21215
21216         * tree-ssa-structalias.c (pt_solution_set_var): New function.
21217         * tree-ssa-alias.h (pt_solution_set_var): Declare.
21218         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
21219         points-to information.
21220
21221 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
21222
21223         * config/s390/s390.c (override_options): Adopt prefetching
21224         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
21225
21226 2010-07-02  Jan Hubicka  <jh@suse.cz>
21227
21228         * df-problems.c (df_kill_notes): Do not collect dead  notes.
21229         (df_set_note): Just call add_reg_note.
21230         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
21231         df_create_unused_note): Do not deal with lists of old notes.
21232         (df_note_bb_compute): Likewise.
21233
21234 2010-07-02  Richard Guenther  <rguenther@suse.de>
21235
21236         * tree-ssa-structalias.c (find_func_aliases): Handle
21237         pointer alignment via BIT_AND_EXPR.
21238         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
21239
21240 2010-07-02  Richard Guenther  <rguenther@suse.de>
21241
21242         * tree-data-ref.c (initialize_data_dependence_relation): Handle
21243         mismatching number of dimensions properly.
21244
21245 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21246
21247         PR target/44707
21248         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
21249         (lo_sum (high ...) ...) patterns generated by earlier passes.
21250
21251 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21252
21253         * doc/install.texi (Prerequisites): Document Perl requirement on
21254         Solaris 2.
21255         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
21256
21257 2010-07-02  Richard Guenther  <rguenther@suse.de>
21258
21259         PR middle-end/44777
21260         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
21261
21262 2010-07-02  Jan Hubicka  <jh@suse.cz>
21263
21264         PR middle-end/44706
21265         * predict.c (predict_paths_for_bb): Handle case when control dependence
21266         BB has only abnormal edges.
21267
21268 2010-07-02  Richard Guenther  <rguenther@suse.de>
21269
21270         PR tree-optimization/44748
21271         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
21272         the embedded conversion in MEM_REFs.
21273
21274 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
21275
21276         * reload.c: Include toplev.h.
21277         * recog.c:  Likewise.
21278         * Makefile.in: Adjust dependencies.
21279
21280 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
21281
21282         PR debug/44694
21283         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
21284         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
21285
21286 2010-07-01  Richard Guenther  <rguenther@suse.de>
21287
21288         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
21289         types for offsets.
21290
21291 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
21292
21293         PR target/44732
21294         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
21295         Fix argument types.
21296
21297 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
21298
21299         PR target/44727
21300         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21301         Make sure operand 0 dies.
21302
21303 2010-07-01  Richard Guenther  <rguenther@suse.de>
21304
21305         PR middle-end/42834
21306         PR middle-end/44468
21307         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
21308         * doc/generic.texi (References to storage): Document MEM_REF.
21309         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
21310         (print_call_name): Likewise.
21311         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
21312         (build_simple_mem_ref_loc): New function.
21313         (mem_ref_offset): Likewise.
21314         * tree.h (build_simple_mem_ref_loc): Declare.
21315         (build_simple_mem_ref): Define.
21316         (mem_ref_offset): Declare.
21317         * fold-const.c: Include tree-flow.h.
21318         (operand_equal_p): Handle MEM_REF.
21319         (build_fold_addr_expr_with_type_loc): Likewise.
21320         (fold_comparison): Likewise.
21321         (fold_unary_loc): Fold
21322         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
21323         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
21324         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
21325         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
21326         (ptr_deref_may_alias_ref_p_1): Likewise.
21327         (ao_ref_base_alias_set): Properly differentiate base object for
21328         offset and TBAA.
21329         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
21330         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
21331         (indirect_refs_may_alias_p): Likewise.
21332         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
21333         chasing code.
21334         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
21335         (call_may_clobber_ref_p_1): Likewise.
21336         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
21337         * expr.c (expand_assignment): Handle MEM_REF.
21338         (store_expr): Handle MEM_REFs from STRING_CSTs.
21339         (store_field): If expanding a MEM_REF of a non-addressable
21340         decl use bitfield operations.
21341         (get_inner_reference): Handle MEM_REF.
21342         (expand_expr_addr_expr_1): Likewise.
21343         (expand_expr_real_1): Likewise.
21344         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
21345         * alias.c (ao_ref_from_mem): Handle MEM_REF.
21346         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
21347         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
21348         (dr_analyze_indices): Likewise.
21349         (dr_analyze_alias): Likewise.
21350         (object_address_invariant_in_loop_p): Likewise.
21351         * gimplify.c (mark_addressable): Handle MEM_REF.
21352         (gimplify_cond_expr): Build MEM_REFs.
21353         (gimplify_modify_expr_to_memcpy): Likewise.
21354         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
21355         (gimple_fold_indirect_ref): Adjust.
21356         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
21357         * tree.def (MEM_REF): New tree code.
21358         * tree-dfa.c: Include toplev.h.
21359         (get_ref_base_and_extent): Handle MEM_REF.
21360         (get_addr_base_and_unit_offset): New function.
21361         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
21362         * gimple-fold.c (may_propagate_address_into_dereference): Handle
21363         MEM_REF.
21364         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
21365         accesses if the array has just one dimension.  Remove always true
21366         parameter.  Do not require type compatibility here.
21367         (maybe_fold_offset_to_component_ref): Remove.
21368         (maybe_fold_stmt_indirect): Remove.
21369         (maybe_fold_reference): Remove INDIRECT_REF handling.
21370         Fold back to non-MEM_REF.
21371         (maybe_fold_offset_to_address): Simplify.  Deal with type
21372         mismatches here.
21373         (maybe_fold_reference): Likewise.
21374         (maybe_fold_stmt_addition): Likewise.  Also handle
21375         &ARRAY + I in addition to &ARRAY[0] + I.
21376         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
21377         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
21378         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
21379         * tree-ssa.c (useless_type_conversion_p): Make most pointer
21380         conversions useless.
21381         (warn_uninitialized_var): Handle MEM_REF.
21382         (maybe_rewrite_mem_ref_base): New function.
21383         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
21384         to SSA form.
21385         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
21386         INDIRECT_REF handling.
21387         (copy_tree_body_r): Handle MEM_REF.
21388         * gimple.c (is_gimple_addressable): Adjust.
21389         (is_gimple_address): Likewise.
21390         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
21391         invariant base are invariant.
21392         (is_gimple_min_lval): Adjust.
21393         (is_gimple_mem_ref_addr): New function.
21394         (get_base_address): Handle MEM_REF.
21395         (count_ptr_derefs): Likewise.
21396         (get_base_loadstore): Likewise.
21397         * gimple.h (is_gimple_mem_ref_addr): Declare.
21398         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
21399         * tree-cfg.c (verify_address): New function, split out from ...
21400         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
21401         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
21402         INDIRECT_REFs.
21403         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
21404         INDIRECT_REF.  Allow conversions.
21405         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
21406         a register does not change its size.
21407         (verify_types_in_gimple_reference): Verify MEM_REF.
21408         (verify_gimple_assign_single): Disallow INDIRECT_REF.
21409         Handle MEM_REF.
21410         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
21411         New.
21412         (mark_address_taken): Handle MEM_REF.
21413         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
21414         (get_asm_expr_operands): Pass opf_not_non_addressable.
21415         (get_expr_operands): Handle opf_[not_]non_addressable.
21416         Handle MEM_REF.  Remove INDIRECT_REF handling.
21417         * tree-vrp.c (check_array_ref): Handle MEM_REF.
21418         (search_for_addr_array): Likewise.
21419         (check_array_bounds): Likewise.
21420         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
21421         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
21422         (ref_always_accessed_p): Likewise.
21423         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
21424         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
21425         Handle MEM_REF.
21426         * cgraphbuild.c (mark_load): Properly check for NULL result
21427         from get_base_address.
21428         (mark_store): Likewise.
21429         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
21430         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
21431         handling for MEM_REF.
21432         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
21433         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
21434         * builtins.c (stabilize_va_list_loc): Use the function ABI
21435         valist type if we couldn't canonicalize the argument type.
21436         Always dereference with the canonical va-list type.
21437         (maybe_emit_free_warning): Handle MEM_REF.
21438         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
21439         memmove to memcpy.
21440         * builtins.c (fold_builtin_memory_op): Use ref-all types
21441         for all memcpy foldings.
21442         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
21443         (build_outer_var_ref): Likewise.
21444         (scan_omp_1_op): Likewise.
21445         (lower_rec_input_clauses): Likewise.
21446         (lower_lastprivate_clauses): Likewise.
21447         (lower_reduction_clauses): Likewise.
21448         (lower_copyprivate_clauses): Likewise.
21449         (expand_omp_atomic_pipeline): Likewise.
21450         (expand_omp_atomic_mutex): Likewise.
21451         (create_task_copyfn): Likewise.
21452         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
21453         Remove old union trick.  Initialize constant offsets.
21454         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
21455         INDIRECT_REF.  Init base_alias_set properly.
21456         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
21457         (vn_reference_fold_indirect): Adjust for MEM_REFs.
21458         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
21459         for ARRAY_REFs.
21460         (may_insert): Remove.
21461         (visit_reference_op_load): Do not test may_insert.
21462         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
21463         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
21464         a field to store the constant offset this op applies.
21465         (run_scc_vn): Adjust prototype.
21466         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
21467         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
21468         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
21469         bother about volatile qualifiers on pointers.
21470         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
21471         * tree-ssa-loop-ivopts.c
21472         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
21473         (strip_offset_1): Likewise.
21474         (find_interesting_uses_address): Replace INDIRECT_REF handling with
21475         MEM_REF handling.
21476         (get_computation_cost_at): Likewise.
21477         * ipa-pure-const.c (check_op): Handle MEM_REF.
21478         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
21479         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
21480         and constants.
21481         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
21482         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
21483         (eliminate_local_variables_1): Likewise.
21484         (create_call_for_reduction_1): Likewise.
21485         (create_loads_for_reductions): Likewise.
21486         (create_loads_and_stores_for_name): Likewise.
21487         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
21488         (ssa_accessed_in_tree): Handle MEM_REF.
21489         (ssa_accessed_in_assign_rhs): Likewise.
21490         (update_type_size): Likewise.
21491         (analyze_accesses_for_call_stmt): Likewise.
21492         (analyze_accesses_for_assign_stmt): Likewise.
21493         (transform_access_sites): Likewise.
21494         (transform_allocation_sites): Likewise.
21495         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
21496         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
21497         not handle INDIRECT_REF.
21498         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
21499         (cond_store_replacement): Likewise.
21500         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
21501         MEM_REF, no not handle INDIRECT_REFs.
21502         (insert_into_preds_of_block): Properly initialize avail.
21503         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
21504         for ARRAY_REFs.  Properly handle reference lookups that
21505         require a bit re-interpretation.
21506         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
21507         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
21508         (build_ref_for_offset_1): Remove.
21509         (build_ref_for_offset): Build MEM_REFs.
21510         (gate_intra_sra): Disable for now.
21511         (sra_ipa_modify_expr): Handle MEM_REF.
21512         (ipa_early_sra_gate): Disable for now.
21513         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
21514         MEM_REF handling.
21515         (disqualify_base_of_expr): Likewise.
21516         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
21517         MEM_REF handling.
21518         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
21519         Use mem_ref_offset.  Remove bogus folding.
21520         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
21521         (make_fancy_name_1): Add support for MEM_REF.
21522         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
21523         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
21524         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
21525         (compute_complex_ancestor_jump_func): Likewise.
21526         (ipa_analyze_virtual_call_uses): Likewise.
21527         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
21528         INDIRECT_REF folding with more generalized MEM_REF folding.
21529         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
21530         (forward_propagate_addr_into_variable_array_index): Also handle
21531         &ARRAY + I in addition to &ARRAY[0] + I.
21532         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
21533         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
21534         creates assignments with overlap.
21535         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
21536         (get_frame_field): Likewise.
21537         (get_nonlocal_debug_decl): Likewise.
21538         (convert_nonlocal_reference_op): Likewise.
21539         (struct nesting_info): Add mem_refs pointer-set.
21540         (create_nesting_tree): Allocate it.
21541         (convert_local_reference_op): Insert to be folded mem-refs.
21542         (fold_mem_refs): New function.
21543         (finalize_nesting_tree_1): Perform defered folding of mem-refs
21544         (free_nesting_tree): Free the pointer-set.
21545         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
21546         (vectorizable_load): Likewise.
21547         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
21548         (propagate_with_phi): Likewise.
21549         * tree-object-size.c (addr_object_size): Handle MEM_REFs
21550         instead of INDIRECT_REFs.
21551         (compute_object_offset): Handle MEM_REF.
21552         (plus_stmt_object_size): Handle MEM_REF.
21553         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
21554         for &MEM_REF.
21555         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
21556         (symbol_marked_for_renaming): Likewise.
21557         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
21558         (fold-const.o): Add $(TREE_FLOW_H).
21559         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
21560         (find_func_clobbers): Likewise.
21561         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
21562         (decompose_access): Likewise.
21563         (replace_field_acc): Likewise.
21564         (replace_field_access_stmt): Likewise.
21565         (insert_new_var_in_stmt): Likewise.
21566         (get_stmt_accesses): Likewise.
21567         (reorg_structs_drive): Disable.
21568         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
21569         (ix86_canonical_va_list_type): Likewise.
21570
21571 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21572
21573         PR other/44566
21574         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
21575         * target.def (struct gcc_target): Replace enum reg_class with
21576         reg_class_t in hook argument / return types.
21577         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
21578         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
21579         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
21580         * targhooks.h (default_branch_target_register_class): Likewise.
21581         (default_ira_cover_classes, default_secondary_reload): Likewise.
21582         (default_memory_move_cost, default_register_move_cost): Likewise.
21583         * targhooks.c (default_branch_target_register_class): Likewise.
21584         (default_ira_cover_classes, default_secondary_reload): Likewise.
21585         (default_memory_move_cost, default_register_move_cost): Likewise.
21586         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
21587         * bt-load.c (branch_target_load_optimize): Likewise.
21588         * ira.c (setup_cover_and_important_classes): Likewise.
21589         * ira-costs.c (copy_cost): Likewise.
21590         * reload1.c (emit_input_reload_insns): Likewise.
21591         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
21592         * config/frv/frv.c (frv_secondary_reload): Likewise.
21593         * config/s390/s390.c (s390_secondary_reload): Likewise.
21594         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
21595         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
21596         (ix86_register_move_cost): Likewise.
21597         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
21598         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
21599         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
21600         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
21601         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
21602         (rs6000_ira_cover_classes): Likewise.
21603         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
21604         * config/picochip/picochip-protos.h (picochip_secondary_reload):
21605         Likewise.
21606         * config/pa/pa.c (pa_secondary_reload): Likewise.
21607         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
21608         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
21609         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
21610         * doc/tm.texi: Regenerate.
21611
21612 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
21613
21614         PR bootstrrap/44726
21615         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
21616         use.
21617         (build_alias_set_optimal_p): Likewise.
21618         (build_base_obj_set_for_drs): Likewise.
21619
21620 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21621
21622         * target.def: Remove comment about licensing problems of function
21623         declarations.
21624
21625         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
21626         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
21627         * doc/tm.texi: Regenerate.
21628
21629         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
21630         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
21631
21632         * target.def (enum_va_list_p): Use DEFHOOK.
21633         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
21634         Rename ptype to ptree.
21635         * doc/tm.texi: Regenerate.
21636
21637         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
21638         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
21639         * doc/tm.texi: Regenerate.
21640
21641         * target.def (memory_move_cost): Use DEFHOOK.
21642         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
21643         Rename regclass AKA class to rclass.
21644         * doc/tm.texi: Regenerate.
21645
21646         * target.def (pragma_parse): Use DEFHOOK.
21647         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
21648         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
21649         * doc/tm.texi: Regenerate.
21650
21651         * target.def (pass_by_reference): Use DEFHOOK.
21652         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
21653         * doc/tm.texi: Regenerate.
21654
21655         * target.def (resolve_overloaded_builtin): Rename params to arglist.
21656         Use DEFHOOK.
21657         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
21658         * doc/tm.texi: Regenerate.
21659
21660         * target.def (return_pops_args): Use DEFHOOK.
21661         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
21662         Rename stack-size to size.
21663         * doc/tm.texi: Regenerate.
21664
21665         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
21666         last-sched_cycle to last_clock, cur_cycle to clock.
21667         * doc/tm.texi.in: Use @hook.
21668         * doc/tm.texi: Regenerate.
21669
21670         * target.def (print_operand, print_operand_address): Update comment.
21671         (print_operand_punct_valid_p): Likewise.
21672
21673 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21674
21675         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
21676         to rtl.h.
21677         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
21678         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
21679         * rtl-error.h: New.
21680         * regrename.c: Do not include toplev.h. Include rtl-error.h.
21681         * rtl-error.c: Likewise.
21682         * reload.c: Likewise.
21683         * recog.c:  Likewise.
21684         * sel-sched.c: Likewise.
21685         * function.c: Likewise.
21686         * reg-stack.c: Likewise.
21687         * cfgrtl.c: Likewise.
21688         * reload1.c: Likewise.
21689         * final.c: Include rtl-error.
21690         * Makefile.in: Adjust dependencies.
21691
21692 2010-06-30  Jan Hubicka  <jh@suse.cz>
21693
21694         PR middle-end/PR44706
21695         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
21696         to return the value.
21697
21698 2010-06-30  Michael Matz  <matz@suse.de>
21699
21700         PR bootstrap/44699
21701         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
21702         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
21703         a gimple reg, attach the original VDEF to the last store in the
21704         sequence.
21705
21706 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
21707
21708         PR other/44034
21709         * config/darwin.c (darwin_override_options): Use renamed
21710         targetm.asm_out.emit_unwind_label.
21711
21712 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21713
21714         PR tree-optimization/39799
21715         * tree-inline.c (remap_ssa_name): Initialize variable only if
21716         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
21717
21718 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
21719
21720         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
21721
21722 2010-06-30  Richard Guenther  <rguenther@suse.de>
21723
21724         PR target/44722
21725         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
21726         against oscillation with reverse peephole2.
21727
21728 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
21729
21730         PR target/44721
21731         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21732         Fix last commit.
21733
21734 2010-06-30  Nick Clifton  <nickc@redhat.com>
21735
21736         * config/rx/rx-modes.def: New file.
21737         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
21738         (CC_REGNUM): Define.
21739         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
21740         register.
21741         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
21742         (SELECT_CC_MODE): Define.
21743         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
21744         (reg:CC CC_REG) instead of (cc0).
21745         (attr "cc"): Delete.
21746         (cbranchsi4): Do not split compare and branch here. Instead move
21747         it to...
21748         (cbranchsi4_<code>): ... here.  New patterns.
21749         (cmpsi): Call rx-compare_redundant to find out if it is necessary
21750         to emit the compare instruction.
21751         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
21752         cc_status flags.
21753         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
21754         FIRST_PSEUDO_REGNUM.
21755         (rx_expand_prologue, rx_expand_epilogue): Likewise.
21756         (rx_notice_update_cc): Delete.
21757         (rx_cc_modes_compatible): New function.
21758         (flags_needed_for_conditional): New function.
21759         (flags_from_mode): New function.
21760         (rx_compare_redundant): New function - scans backwards through
21761         insn list to find out if condition flags are already set correctly.
21762         (TARGET_CC_MODES_COMPATIBLE): Define.
21763         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
21764
21765         * config/rx/rx.h (BRANCH_COST): Define.
21766         (REGISTER_MOVE_COST): Define.
21767         * config/rx/predicates (rx_source_operand): Allow all constant types.
21768         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
21769         (tstsi4): New pattern.
21770         * config/rx/rx.c (rx_memory_move_cost): Define.
21771         (TARGET_MEMORY_MOVE_COST): Define.
21772
21773 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21774
21775         * tree.h (block_may_fallthru): Declare here.
21776         * tree-flow.h (block_may_fallthru): Do not declare here.
21777         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
21778         bitmap.h
21779         * Makefile.in (c-typeck.o): Update dependencies.
21780
21781 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
21782
21783         PR debug/44694
21784         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
21785         * cselib.c (cfa_base_preserved_regno): New static variable.
21786         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
21787         of REGNO (cfa_base_preserved_val->locs->loc).
21788         (cselib_preserve_cfa_base_value): Add regno argument, set
21789         cfa_base_preserved_regno to it.
21790         (cselib_invalidate_regno): Allow removal of registers other than
21791         cfa_base_preserved_regno from cfa_base_preserved_val.
21792         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
21793         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
21794         of MEM addresses, if not on LHS.
21795         (reverse_op): Don't add reverse ops for cfa_base_rtx.
21796         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
21797
21798 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21799
21800         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
21801         static variables.
21802         (peep2_buf_position): New static function.
21803         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
21804         peephole2_optimize): Use it.
21805         (peep2_attempt, peep2_update_life): New static functions, broken out
21806         of peephole2_optimize.
21807         (peep2_fill_buffer): New static function.
21808         (peephole2_optimize): Change the main loop to try to fill the buffer
21809         with the maximum number of insns before matching them against
21810         peepholes.  Use a forward scan.  Remove special case for targets with
21811         conditional execution.
21812         * genrecog.c (change_state): Delete dead code.
21813         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21814         Rewrite so as not to expect the second insn to have had a peephole
21815         applied yet.
21816
21817 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21818
21819         * genhooks.c (emit_findices): Cast field precision to int.
21820         (emit_documentation): Likewise.
21821
21822 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
21823
21824         PR tree-optimization/43801
21825         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
21826         if old_decl was DECL_ONE_ONLY.
21827
21828         PR debug/44668
21829         * dwarf2out.c (add_accessibility_attribute): New function.
21830         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
21831         instead of adding DW_AT_accessibility manually.
21832         (gen_enumeration_type_die, gen_struct_or_union_type_die,
21833         gen_typedef_die): Use it.
21834
21835 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21836
21837         * vmsdbgout.c (full_name): Just output the file name if not native.
21838
21839 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21840
21841         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
21842         (funcnam_table): New static table.
21843         (funcnum_table): New static table.
21844         (write_rtnbeg): Write value saved in funcnum_table.
21845         (write_rtnend): Write value saved in funcnum_table.
21846         (vmsdbgout_begin_function): Save current function info in
21847         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
21848         (vmsdbgout_finish): Iterate over funcnum_table.
21849
21850 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21851
21852         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
21853         (vmsdbgout_type_decl): Declare
21854         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
21855         (FUNC_EPILOGUE_LABEL): New macro
21856         (vmsdbgout_begin_epilogue): New function.
21857         (vmsdbgout_type_decl): New function.
21858
21859 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21860
21861         * vmsdbg.h: Update copyright.
21862
21863 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21864
21865         * vmsdbg.h (DST_K_TBG): New DST constant.
21866         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
21867         (write_modbeg): Cast module_language to avoid warning.
21868         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
21869
21870 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21871
21872         PR other/44034
21873         * target.def, doc/tm.texi.in, genhooks.c: New files.
21874         * target.h: Instead of defining individual hook members,
21875         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
21876         include target.def.
21877         * target-def.h: Instead of defining individual hook initializers,
21878         include target-hooks-def.h.
21879         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
21880         targetm.live_on_entry -> targetm.extra_live_on_entry
21881         targetm.sched.md_finish ->targetm.sched.finish
21882         targetm.sched.md_init -> targetm.sched.init
21883         targetm.sched.md_init_global -> targetm.sched.init_global
21884         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
21885         targetm.asm_out.except_table_label ->
21886           targetm.asm_out.emit_except_table_label
21887         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
21888         targetm.target_help -> targetm.help
21889         targetm.vectorize.builtin_support_vector_misalignment ->
21890           targetm.vectorize.support_vector_misalignment
21891         targetm.file_start_app_off -> targetm.asm_file_start_app_off
21892         targetm.file_start_file_directive ->
21893          targetm.asm_file_start_file_directive
21894         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
21895         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
21896         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
21897         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
21898           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
21899         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
21900           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
21901         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
21902         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
21903         * Makefile.in (TARGET_H): Depend on target.def.
21904         (TARGET_DEF_H): Depend on target-hooks-def.h.
21905         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
21906         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
21907         * doc/tm.texi: Regenerate.
21908
21909         * Makefile.in (s-tm-texi): Remove stray tab / rule.
21910
21911         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
21912         (targetm.sched.init): Likewise.
21913
21914 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21915
21916         PR bootstrap/44713
21917         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
21918         (function_arg_advance_32): Const-ify TYPE parameter.
21919         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
21920         (ix86_function_arg_advance): Change type of NAMED to bool.
21921         (function_arg_32): Const-ify CUM and TYPE parameters.
21922         (function_arg_64): Likewise.  Change type of NAMED to bool.
21923         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
21924         to bool.
21925         (ix86_function_arg): Change type of NAMED to bool.
21926         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
21927         last argument as a bool.
21928
21929 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21930
21931         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
21932         (OVERRIDE_OPTIONS): Add note of obsolescence.
21933         Replace references with references to TARGET_OPTION_OVERRIDE.
21934         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
21935          the macro).
21936         * targhooks.c (default_target_option_override): New function.
21937         * targhooks.h (default_target_option_override): Declare.
21938         * target.h (struct gcc_target): Add override member to
21939         target_option member.
21940         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
21941         targetm.target_option.override call.
21942         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
21943         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
21944
21945 2010-06-29  Jan Hubicka  <jh@suse.cz>
21946
21947         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
21948
21949 2010-06-29  Jan Hubicka  <jh@suse.cz>
21950
21951         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
21952         unreachable.
21953         (rebuild_frequencies): New function.
21954         * predict.h (rebuild_frequencies): Declare.
21955         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
21956         entry block and edge reaching new_entry.
21957         (tree_function_versioning): When doing partial cloning, rebuild
21958         frequencies when done.
21959         * passes.c (execute_function_todo): Use rebild_frequencies.
21960
21961 2010-06-29  Richard Guenther  <rguenther@suse.de>
21962
21963         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
21964         * tree-flow.h (enum noalias_state): Remove.
21965         (struct var_ann_d): Remove noalias_state member.
21966
21967 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
21968
21969         PR target/43902
21970         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
21971         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
21972         (maddhidi4): Likewise.
21973
21974         Revert parts of the change for PR25130.
21975         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
21976         MEM_ALIAS_SET.
21977
21978 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21979
21980         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
21981         targetm.calls.function_incoming_arg, and
21982         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
21983         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
21984         * target.h (struct gcc_target): Add function_arg_advance,
21985         function_arg, and function_incoming_arg fields.
21986         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
21987         (TARGET_FUNCTION_INCOMING_ARG): Define.
21988         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
21989         and TARGET_FUNCTION_INCOMING_ARG.
21990         * targhooks.h (default_function_arg_advance): Declare.
21991         (default_function_arg, default_function_incoming_arg): Declare.
21992         * targhooks.c (default_function_arg_advance): New function.
21993         (default_function_arg, default_function_incoming_arg): New function.
21994         * config/i386/i386.c (function_arg_advance): Rename to...
21995         (ix86_function_arg_advance): ...this.  Make static.
21996         (function_arg): Rename to...
21997         (ix86_function_arg): ...this.  Make static.
21998         (TARGET_FUNCTION_ARG_ADVANCE): Define.
21999         (TARGET_FUNCTION_ARG): Define.
22000         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
22001         (FUNCTION_ARG): Delete.
22002         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
22003         (function_arg): Delete prototype.
22004
22005 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22006
22007         * reginfo.c (init_reg_sets_1): Adjust comments.
22008         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
22009         * calls.c (prepare_call_address): Likewise.
22010         (emit_call_1): Use targetm.calls.return_pops_args.
22011         (expand_call): Likewise.
22012         * function.c (assign_parms): Likewise.
22013         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
22014         * target.h (struct gcc_target) [struct calls]: Add
22015         return_pops_args field.
22016         * targhooks.h (default_return_pops_args): Declare.
22017         * targhooks.c (default_return_pops_args): Define.
22018         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
22019         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
22020         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
22021         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
22022         documentation.
22023         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
22024         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
22025         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
22026         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
22027         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
22028         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
22029         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
22030         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
22031         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
22032         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
22033         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
22034         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
22035         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
22036         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
22037         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
22038         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
22039         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
22040         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
22041         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
22042         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
22043         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
22044         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
22045         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
22046         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
22047         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
22048         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
22049         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
22050         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
22051         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
22052         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
22053         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
22054         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
22055         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
22056         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
22057         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
22058         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
22059         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
22060         * config/i386/i386.c (ix86_return_pops_args): Make static.
22061         Constify arguments.
22062         (TARGET_RETURN_POPS_ARGS): Define.
22063         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
22064         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
22065         (TARGET_RETURN_POPS_ARGS): Define.
22066         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
22067         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
22068         (TARGET_RETURN_POPS_ARGS): Define.
22069
22070 2010-06-29  Richard Guenther  <rguenther@suse.de>
22071
22072         PR middle-end/44667
22073         * tree-inline.c (initialize_inlined_parameters): Make sure
22074         to remap the inlined parameter variable substitutions types.
22075
22076 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
22077
22078         PR rtl-optimization/44659
22079         * combine.c (make_compound_operation) <SUBREG>: Do not return the
22080         result of force_to_mode if it partially re-expanded the compound.
22081
22082 2010-06-28  Jan Hubicka  <jh@suse.cz>
22083
22084         PR middle-end/44671
22085         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
22086         RESULT_DECL.
22087
22088 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
22089
22090         * double-int.h (force_fit_type_double): Remove declaration.
22091         * double-int.c (force_fit_type_double): Move to tree.c.
22092         * tree.h (force_fit_type_double): Declare.
22093         * tree.h (force_fit_type_double): Moved from double-int.c. Use
22094         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
22095         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
22096         * convert.c (convert_to_pointer): Adjust call to
22097         force_fit_type_double.
22098         * tree-vrp.c (extract_range_from_assert,
22099         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
22100         * fold-const.c: Update comment.
22101         (int_const_binop, fold_convert_const_int_from_int,
22102         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
22103         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
22104         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
22105         round_up_loc): Adjust call to force_fit_type_double.
22106
22107 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22108
22109         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
22110
22111 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22112
22113         * tree-sra.c (convert_callers): New parameter, change fndecls of
22114         recursive calls.
22115         (modify_function): Pass the old decl to convert_callers.
22116
22117 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22118
22119         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
22120         ipa_check_create_node_params and ipa_initialize_node_params with
22121         checking asserts they are not necessary.
22122
22123 2010-06-28  Jan Hubicka  <jh@suse.cz>
22124
22125         PR tree-optimization/44687
22126         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
22127
22128 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22129
22130         PR c++/44535
22131         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
22132         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
22133         instead of BINFO_BASE_BINFO.
22134
22135 2010-06-28  Michael Matz  <matz@suse.de>
22136
22137         PR middle-end/44592
22138         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
22139         proper VDEF chain for intermediate stores in the sequence.
22140
22141 2010-06-28  Jan Hubicka  <jh@suse.cz>
22142
22143         PR tree-optimization/44357
22144         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
22145         uninlinable functions.
22146
22147 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22148
22149         * config.gcc (powerpc*-*-*): Handle titan.
22150         * config/rs6000/rs6000.c (titan_cost): New costs.
22151         (rs6000_override_options): Add "titan" to processor_target_table.
22152         Add Titan to branch alignment logic.
22153         Correctly set rs6000_cost for titan.
22154         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
22155         * config/rs6000/titan.md: New file.
22156         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
22157
22158 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22159
22160         * tree-browser.c (TB_history_stack): Convert to a VEC.
22161         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
22162         (TB_history_prev): Likewise.
22163
22164 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22165
22166         * vec.h (vec_heap_free): Add parentheses around free.
22167
22168 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
22169
22170         * system.h: Poison GCC_EXCEPT_H for front-end files.
22171
22172         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
22173         langhook.
22174         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
22175         Define to NULL by default.
22176         * except.h: Define GCC_EXCEPT_H.
22177         (doing_eh): Remove prototype.
22178         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
22179         (lang_protect_cleanup_actions): Remove.
22180         * except.c (lang_protect_cleanup_actions): Remove.
22181         (doing_eh): Remove.
22182         (gen_eh_region): Don't check doing_eh here.
22183         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
22184         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
22185         instead of lang_protect_cleanup_actions.
22186         * omp-low.c (maybe_catch_exception): Likewise.
22187         * Makefile.in: Update dependencies.
22188
22189 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
22190
22191         * cgraph.h (struct varpool_node): new used_from_object_file flag.
22192         (struct cgraph_local_info): new used_from_object_file flag.
22193         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
22194         (cgraph_clone_node): initialize used_from_object_file.
22195         (cgraph_create_virtual_clone): initialize used_from_object_file.
22196         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
22197         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
22198         when compiling with -fwhole-program.
22199         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
22200         internal resolver.
22201         * ipa.c (function_and_variable_visibility): Set externally_visible
22202         flag of varpool_node if used_from_object_file flag is set.
22203         (cgraph_externally_visible_p): check used_from_object_file flag.
22204         * doc/invoke.texi (-fwhole-program option): Change description of
22205         externally_visible attribute accordingly.
22206         * doc/extend.texi (externally_visible): Ditto.
22207
22208 2010-06-27  Jan Hubicka  <jh@suse.cz>
22209
22210         * params.def (max-inline-insns-auto): Default to 40.
22211         * doc/invoke.texi (max-inline-insns-auto): Document the change.
22212
22213 2010-06-27  Jan Hubicka  <jh@suse.cz>
22214
22215         PR middle-end/44671
22216         PR middle-end/44686
22217         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
22218         signature change.
22219         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
22220         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
22221
22222 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
22223
22224         * target.h (struct gcc_target): Add register_move_cost field.
22225         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
22226         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
22227         * targhooks.c (default_register_move_cost): New function.
22228         * targhooks.h (default_register_move_cost): Declare function.
22229         * defaults.h (REGISTER_MOVE_COST): Delete.
22230         * ira-int.h (ira_register_move_cost): Update comment.
22231         * ira.c (ira_register_move_cost): Update comment.
22232         * reload.h (register_move_cost): Declare.
22233         * reginfo.c (register_move_cost): New function.
22234         (move_cost): Update comment.
22235         (init_move_cost, memory_move_secondary_cost): Replace
22236         REGISTER_MOVE_COST with register_move_cost.
22237         * postreload.c (reload_cse_simplify_set): (Ditto.).
22238         * reload.c (find_valid_class, find_reloads): (Ditto.).
22239         * reload1.c (choose_reload_regs): (Ditto.).
22240         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
22241         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
22242         * doc/md.texi (can_create_pseudo_p): Update documentation.
22243
22244         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
22245         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
22246         * config/i386/i386.h (ix86_memory_move_cost): Make static.
22247         (TARGET_MEMORY_MOVE_COST): Define.
22248
22249         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
22250         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
22251         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
22252         (TARGET_MEMORY_MOVE_COST): Define.
22253
22254 2010-06-27  Richard Guenther  <rguenther@suse.de>
22255
22256         PR tree-optimization/44683
22257         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
22258         false edge from the inverted condition.
22259
22260 2010-06-27  Richard Guenther  <rguenther@suse.de>
22261
22262         PR middle-end/44684
22263         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
22264         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
22265         for register LHS.  Or non-store assignments.
22266
22267 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
22268
22269         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
22270         (sparc_emit_set_const64): Likewise.  Remove disabled code.
22271         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
22272         (sparc_emit_set_const64): Likewise.
22273
22274 2010-06-26  Catherine Moore  <clm@codesourcery.com>
22275
22276         * config/mips/mips.md (alu_type): New attribute.
22277         (type): Infer type from alu_type.
22278         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
22279         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
22280         *subsi3_extended, negsi2, negdi2, *low<mode>,
22281         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
22282         xor<mode>3, *nor<mode>3,
22283         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
22284         *zero_extendhi_truncqi):  Set alu_type instead of type.
22285
22286 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
22287
22288         * config/alpha/alpha.c (alpha_need_linkage): Adjust
22289         splay_tree_new_ggc call.
22290         (alpha_use_linkage): Likewise.
22291
22292 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22293
22294         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
22295         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
22296         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
22297         (static_specs): Remove switches_need_spaces.
22298         (process_command, do_self_spec): Hardcode handling "-o" instead of
22299         checking switches_need_spaces.
22300         * system.h (SWITCHES_NEED_SPACES): Poison.
22301
22302 2010-06-26  Richard Guenther  <rguenther@suse.de>
22303
22304         PR tree-optimization/44393
22305         * tree-loop-distribution.c (generate_loops_for_partition): Fix
22306         stmt removal and VOP renaming.
22307         (generate_memset_zero): Remove redundant stmt updating.
22308         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
22309         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
22310
22311 2010-06-26  Jan Hubicka  <jh@suse.cz>
22312
22313         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
22314         edges comming from header are equivalent.
22315         (visit_bb): Handle PHIs correctly.
22316         * tree-inline.c (copy_phis_for_bb): Be able to copy
22317         PHI from entry edge.
22318         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
22319
22320 2010-06-26  Richard Guenther  <rguenther@suse.de>
22321
22322         PR middle-end/44674
22323         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
22324         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
22325
22326 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22327
22328         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
22329         add_infile, alloc_switch): New.
22330         (process_command): Remove variable lang_n_infiles.  Process
22331         options in a single pass.  Use new functions for allocating
22332         infiles and switches arrays.  Properly skip operands of
22333         -Xpreprocessor and -Xassembler.
22334
22335 2010-06-26  Jan Hubicka  <jh@suse.cz>
22336
22337         PR middle-end/44671
22338         * cgraphunit.c (cgraph_function_versioning): Remove wrong
22339         cgraph_make_decl_local call; fix typo copying RTL data.
22340
22341 2010-06-25  DJ Delorie  <dj@redhat.com>
22342
22343         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
22344         (m32c_output_aligned_common): Likewise.
22345         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
22346         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
22347         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
22348         (m32c_register_pragmas): Register it.
22349         * config/m32c/m32c.c (m32c_get_pragma_address): New.
22350         (m32c_insert_attributes): Set #pragma address decls volatile.
22351         (pragma_entry_eq): New.
22352         (pragma_entry_hash): New.
22353         (m32c_note_pragma_address): New.
22354         (m32c_get_pragma_address): New.
22355         (m32c_output_aligned_common): New.
22356         * doc/extend.texi: Document the new pragma.
22357
22358         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
22359         also.
22360         * config/m32c/predicates.md (m32c_any_operand): Check the code
22361         instead of memory_operand so as to allow matching volatile MEMs.
22362         (m32c_nonimmediate_operand): Likewise.
22363         (mra_operand): Allow volatiles.
22364
22365 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
22366
22367         PR debug/44610
22368         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
22369         address if the offset is unknown.
22370
22371 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
22372
22373         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
22374         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
22375         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
22376         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
22377         to ia64_start_function. Invoke it.
22378         * config/ia64/ia64.c (ia64_start_function): Call new function
22379         dwarf2out_vms_debug_main_pointer.
22380
22381 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22382
22383         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
22384         statements computing the true predicate.
22385
22386 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22387
22388         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
22389         to boolean_true_node.
22390         (reset_bb_predicate): New.
22391         (predicate_bbs): Call reset_bb_predicate.
22392
22393 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22394
22395         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
22396         (tree_if_conversion): Returns true when something has been changed.
22397         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
22398         changed something.
22399
22400 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22401
22402         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
22403         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
22404         * tree-if-conv.c: Include dbgcnt.h.
22405         (tree_if_conversion): Use if_conversion_tree to count the number of
22406         if-convertible loops.
22407
22408 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
22409
22410         * common.opt (fprefetch-loop-arrays): Re-define
22411         -fprefetch-loop-arrays as a tri-state option with the initial
22412         value of -1.
22413         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
22414         pass only when flag_prefetch_loop_arrays > 0.
22415         * toplev.c (process_options): Note that, with tri-states,
22416         flag_prefetch_loop_arrays>0 means prefetching is enabled.
22417         * config/i386/i386.c (override_options): Enable prefetching at -O3
22418         for a set of CPUs that sw prefetching is helpful.
22419         (software_prefetching_beneficial_p): New.  Return TRUE if software
22420         prefetching is beneficial for the given CPU.
22421
22422 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
22423
22424         PR rtl-optimization/44326
22425         * implicit-zee.c (find_removable_zero_extends): Replace
22426         INSN_P with NONDEBUG_INSN_P.
22427
22428 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22429
22430         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
22431         (struct ipa_node_params): Removed the modification_analysis_done flag.
22432         (ipa_is_param_modified): Removed.
22433         (ipa_analyze_node): Declare.
22434         (ipa_compute_jump_functions): Remove declaration.
22435         (ipa_count_arguments): Likewise.
22436         (ipa_detect_param_modifications): Likewise.
22437         (ipa_analyze_params_uses): Likewise.
22438         * ipa-prop.c (struct param_analysis_info): New type.
22439         (visit_store_addr_for_mod_analysis): Removed.
22440         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
22441         moved down in the file.
22442         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
22443         (ipa_count_arguments): Made static.
22444         (mark_modified): New function.
22445         (is_parm_modified_before_call): New function.
22446         (compute_pass_through_member_ptrs): New parameter parms_info, call
22447         is_parm_modified_before_call instead of ipa_is_param_modified.
22448         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
22449         it to compute_pass_through_member_ptrs.
22450         (ipa_compute_jump_functions): New parameter parms_info, pass it to
22451         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
22452         on the callee if it is analyzed.  Made static.
22453         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
22454         is_parm_modified_before_call instead of ipa_is_param_modified.
22455         (ipa_analyze_call_uses): New parameter parms_info, pass it to
22456         ipa_analyze_indirect_call_uses.
22457         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
22458         ipa_analyze_call_uses.
22459         (ipa_analyze_params_uses): New parameter parms_info, pass it to
22460         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
22461         (ipa_analyze_node): New function.
22462         (ipa_print_node_params): Do not dump the modified flag.
22463         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
22464         it.  Do not stream the modified parameter flag.
22465         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
22466         it.  Do not stream the modified parameter flag.
22467         * ipa-cp.c (ipcp_analyze_node): Removed.
22468         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
22469         with only a call to ipa_analyze_node.
22470         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
22471         node with only a call to ipa_analyze_node.
22472
22473 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22474
22475         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
22476
22477 2010-06-25  Jan Hubicka  <jh@suse.cz>
22478
22479         * tree-pass.h (pass_split_functions): Declare.
22480         * opts.c (decode_options): Enable function splitting at -O2
22481         * timevar.def (TV_IPA_FNSPLIT): New macro.
22482         * ipa-split.c: New file.
22483         * common.opt (-fpartial-inlining): New flag.
22484         * Makefile.in (ipa-split.o): New object file.
22485         * passes.c (init_optimization_passes): Add ipa-split.
22486         * params.def (partial-inlining-entry-probability): New parameters.
22487         * doc/invoke.texi (-fpartial-inlining): New.
22488
22489 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22490
22491         PR 44665
22492         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
22493         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
22494         (gimplify_expr): Likewise.
22495
22496 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22497
22498         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
22499         statements instead of bailing out on them.
22500         (ipa_analyze_indirect_call_uses): Do not require that loads from the
22501         parameter are in the same BB as the condition.  Update comments.
22502
22503 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
22504
22505         PR middle-end/43866
22506         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
22507         true or always false, return NULL_TREE.
22508         (tree_unswitch_single_loop): Optimize conditions even when reaching
22509         max-unswitch-level parameter.  If num > 0, optimize first all conditions
22510         using entry checks, then do still reachable block discovery and consider
22511         only conditions in still reachable basic blocks in the loop.
22512
22513         PR tree-optimization/44539
22514         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
22515         the call doesn't have LHS, but has VDEF.
22516
22517 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22518
22519         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
22520         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
22521         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
22522         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
22523         * system.h (MODIFY_TARGET_NAME): Poison.
22524
22525 2010-06-25  Alan Modra  <amodra@gmail.com>
22526
22527         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
22528         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
22529         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
22530         CMODEL_LARGE as default.
22531         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
22532         (offsettable_ok_by_alignment): Delete.
22533         (rs6000_emit_move): Remove mcmodel=medium optimization.
22534
22535 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22536
22537         With large parts from Jim Wilson:
22538         PR target/43902
22539         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
22540         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22541         * optabs.c (optab_for_tree_code): Likewise.
22542         (expand_widen_pattern_expr): Likewise.
22543         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
22544         out of execute_optimize_widening_mul.
22545         (convert_plusminus_to_widen): New function.
22546         (execute_optimize_widening_mul): Use the two new functions.
22547         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
22548         Remove code to generate widening multiply-accumulate.  Add support
22549         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22550         * gimple-pretty-print.c (dump_ternary_rhs): New function.
22551         (dump_gimple_assign): Call it when appropriate.
22552         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
22553         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
22554         (expand_gimple_stmt_1): Likewise.
22555         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
22556         WIDEN_MULT_MINUS_EXPR.
22557         * tree-ssa-operands.c (get_expr_operands): Likewise.
22558         * tree-inline.c (estimate_operator_cost): Likewise.
22559         * gimple.c (extract_ops_from_tree_1): Renamed from
22560         extract_ops_from_tree.  Add new arg for a third operand; fill it.
22561         (gimple_build_assign_stat): Support operations with three operands.
22562         (gimple_build_assign_with_ops_stat): Likewise.
22563         (gimple_assign_set_rhs_from_tree): Likewise.
22564         (gimple_assign_set_rhs_with_ops_1): Renamed from
22565         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
22566         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
22567         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
22568         WIDEN_MULT_MINUS_EXPR.
22569         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
22570         (extract_ops_from_tree_1): Adjust declaration.
22571         (gimple_assign_set_rhs_with_ops_1): Likewise.
22572         (gimple_build_assign_with_ops): Pass NULL for last operand.
22573         (gimple_build_assign_with_ops3): New macro.
22574         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
22575         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
22576         functions.
22577         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
22578         (verify_gimple_assign): Call it.
22579         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
22580         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
22581         functions for dealing with three-operand statements.
22582         * tree.c (commutative_ternary_tree_code): New function.
22583         * tree.h (commutative_ternary_tree_code): Declare it.
22584         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
22585         ternary statements.
22586         (gimple_assign_nonzero_warnv_p): Likewise.
22587         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
22588         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
22589         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
22590         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
22591         (struct hashtable_expr): New member ternary in the union.
22592         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
22593         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
22594         (iterative_hash_hashable_expr): Likewise.
22595         (print_expr_hash_elt): Handle EXPR_TERNARY.
22596         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
22597         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
22598         statements.  Handle GIMPLE_TERNARY_RHS.
22599
22600 2010-06-25  Jan Hubicka  <jh@suse.cz>
22601
22602         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
22603
22604 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
22605
22606         PR c/44517
22607         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
22608         parameters are not good.
22609         (c_parser_parameter_declaration): Error unknown type name if the type
22610         name can't start declaration specifiers.
22611
22612 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22613
22614         * gcc.c (translate_options): Don't mention +e in comment.
22615         (process_command): Don't handle +e specially.
22616
22617 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22618
22619         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
22620
22621         * ira-build.c (merge_hard_reg_conflicts): New function.
22622         (create_cap_allocno, copy_info_to_removed_store_destinations,
22623         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
22624         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
22625         (remove_unnecessary_allocnos, remove_low_level_allocnos)
22626         copy_nifo_to_removed_store_destination): Use them.
22627         * ira-lives.c (make_hard_regno_born): New function, split out of
22628         make_regno_born.
22629         (make_allocno_born): Likewise.
22630         (make_hard_regno_dead): New function, split out of make_regno_dead.
22631         (make_allocno_dead): Likewise.
22632         (inc_register_pressure): New function, split out of set_allocno_live.
22633         (dec_register_pressure): New function, split out of clear_allocno_live.
22634         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
22635         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
22636         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
22637         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
22638         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
22639         mark_pseudo_regno_live.
22640         (process_bb_node_lives): Use mark_pseudo_regno_live,
22641         make_hard_regno_born and make_allocno_dead.
22642         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
22643         set_allocno_live, clear_allocno_live): Delete functions.
22644
22645         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
22646         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
22647         functions.
22648         (ira_flattening): Use ira_parent_allocno.
22649         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
22650         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
22651
22652         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
22653         statement.
22654
22655         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
22656         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
22657         minmax_set_iter_cond, minmax_set_iter_next,
22658         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
22659         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
22660         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
22661         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
22662         uses changed.
22663
22664         * ira-int.h (struct live_range, live_range_t): Renamed from struct
22665         ira_allocno_live_range and allocno_live_range_t; all uses changed.
22666         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
22667         All uses changed.
22668
22669 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
22670
22671         * thumb2.md (thumb2_tlobits_cbranch): Delete.
22672         (peephole2 to convert zero_extract/compare of single bit to
22673          lshift/compare): New.
22674
22675 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
22676
22677         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
22678         recursive call and call to 'int_const_binop'.
22679         (build_range_check, fold_cond_expr_with_comparison, unextend,
22680         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
22681         multiple_of_p): Adjust call to const_binop.
22682
22683 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
22684
22685         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
22686         determine size of XFmode operand.
22687         (XFmode extended DFmode push splitter): Ditto.
22688         (XFmode extended SFmode push splitter): Ditto.
22689
22690 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
22691
22692         PR target/44588
22693         * config/i386/i386.md (extract_code): New.
22694         (<u>divmodqi4): Likewise.
22695         (divmodhiqi3): Likewise.
22696         (udivmodhiqi3): Likewise.
22697         (<u>divqi3): Remvoved.
22698
22699 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
22700
22701         PR middle-end/44492
22702         * recog.h (struct recog_data): Add is_asm field.
22703         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
22704         present in constraints of inline-asm operand and memory operand
22705         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
22706         (extract_insn): Initialize recog_data.is_asm.
22707         * doc/md.texi (Constraints): Document operand side-effect rules.
22708
22709 2010-06-24  Andi Kleen  <ak@linux.intel.com>
22710
22711         * c-parser.c (c_parser_conditional_expression): Call
22712         warn_for_omitted_condop.
22713         * doc/invoke.texi: Document omitted condop warning.
22714
22715 2010-06-24  Nick Clifton<nickc@redhat.com>
22716
22717         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
22718         insn in the sequence is a jump insn before setting its label.
22719
22720 2010-06-24  Alan Modra  <amodra@gmail.com>
22721
22722         * collect2.c (main): Match exactly --version and --help.
22723
22724 2010-06-24  DJ Delorie  <dj@redhat.com>
22725
22726         * config/m32c/m32c-pragma.c: Don't include rtl.h.
22727
22728 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
22729
22730         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
22731         using X87MODEF mode iterator.
22732         (pushsf splitter): Macroize splitter using P mode iterator.
22733         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
22734         mode iterator.
22735
22736         (*movxf_internal): Rename from *movxf_integer.
22737         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
22738         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
22739         (*movdf_internal): Rename from *movdf_integer.
22740         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
22741         (*movsf_internal): Rename from *movdf_1.
22742
22743 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
22744
22745         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
22746         (const_gimple_seq_node): Removed typedefs.
22747
22748         * gimple.h (gimple_seq_node_d, gimple_seq_node)
22749         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
22750
22751 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
22752
22753         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
22754         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
22755         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
22756         and CODE_FOR_vec_extract_lo_v4df.
22757
22758         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
22759         Changed to define_insn_and_split.
22760         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
22761         (vec_extract_lo_v16hi): Likewise.
22762         (vec_extract_lo_v32qi): Likewise.
22763         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
22764         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
22765
22766 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
22767
22768         PR target/44640
22769         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
22770         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
22771         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
22772         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
22773         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
22774
22775         PR target/44640
22776         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
22777
22778         PR other/44644
22779         * df-core.c (struct df): Rename to df_d.
22780         * df.h (struct df): Likewise.
22781         * dse.h (struct df): Remove forward declaration.
22782         * recog.h (struct insn_data): Rename to:
22783         (struct_insn_data_d).  Adjusted all users.
22784
22785 2010-06-23  Arnaud Charlet  <charlet@adacore.com
22786
22787         PR ada/22220
22788         * doc/install.texi: Update requirements to build GNAT.
22789
22790 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
22791
22792         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
22793         enum type.
22794         (m68k_sched_attr_opx_type): Remove unreachable return.
22795         (m68k_sched_attr_opy_type): Likewise.
22796         (m68k_sched_attr_size): Likewise.
22797         (sched_get_opxy_mem_type): Likewise.
22798         (m68k_sched_attr_op_mem): Likewise.
22799
22800 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
22801
22802         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
22803         new statement and adjust VDEF only if necessary.  Remove superfluous
22804         call to maybe_clean_or_replace_eh_stmt.
22805         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
22806         copy the flags.
22807         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
22808         * tree-inline.c (copy_bb): ...and not there.
22809
22810 2010-06-22  Cary Coutant  <ccoutant@google.com>
22811
22812         * dwarf2out.c (is_nested_in_subprogram): New function.
22813         (should_move_die_to_comdat): Use it.
22814         (copy_ancestor_tree): Don't mark DIEs here.
22815         (copy_decls_walk): Start walk from root of newly-added tree;
22816         mark DIEs here instead.
22817
22818 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
22819
22820         * config/i386/i386.md (unit): Also check sseishft1.
22821
22822 2010-06-22  Jan Hubicka  <jh@suse.cz>
22823
22824         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
22825         enabled.
22826
22827 2010-06-22  Jan Hubicka  <jh@suse.cz>
22828
22829         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
22830         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
22831         Return true if something changed.
22832         * df.h (df_confluence_function_n): Return bool.
22833         * df-core.c (df_worklist_propagate_forward,
22834         df_worklist_propagate_backward): Track changes and ages.
22835         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
22836         track ages.
22837         * dse.c (dse_confluence_n): Return always true.
22838
22839 2010-06-22  Jan Hubicka  <jh@suse.cz>
22840
22841         * bitmap.c (bitmap_clear_bit): Micro optimize.
22842
22843 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
22844
22845         * config/i386/i386.md (SWI1248x): New mode iterator.
22846         (SWI48x): Ditto.
22847         (SWI12): Ditto.
22848         (SWI24): Ditto.
22849
22850         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
22851         SWI1248x mode iterator.
22852         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
22853         using SWI124 mode iterator.
22854         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
22855         mode iterator.
22856         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
22857         *pushdi2_prologue_rex64 using P mode iterator.
22858         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
22859         using SWI48 mode iterator.
22860         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
22861         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
22862         using SWI1248x mode iterator.
22863         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
22864         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
22865         SWI48 mode iterator.
22866         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
22867         iterator.
22868         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
22869         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
22870         SWI12 mode iterator.
22871         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
22872         SWI12 mode iterator.
22873         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
22874         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
22875         SWI24 mode iterator.
22876         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
22877         SWI48 mode iterator.
22878         (mov<mode>_insn_1): New expander.
22879         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
22880         using SWI48x mode iterator.
22881
22882         (*movoi_internal_avx): Rename from *movoi_internal.
22883         (*movti_internal_rex64): Rename from *movti_rex64.
22884         (*movti_internal_sse): Rename from *movti_sse.
22885         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
22886         (*movdi_internal): Rename from *movdi_2.
22887         (*movsi_internal): Rename from *movsi_1.
22888         (*movhi_internal): Rename from *movhi_1.
22889         (*movqi_internal): Rename from *movqi_1.
22890
22891         (insv): Update the call to gen_movsi_insv_1 for rename.
22892         * config/i386/i386.c (promote_duplicated_reg): Ditto.
22893
22894 2010-06-22  Jan Hubicka  <jh@suse.cz>
22895
22896         * passes.c (execute_function_todo): Move call of statistics_fini_pass
22897         to ...
22898         (execute_todo) ... this one.
22899
22900 2010-06-22  Alan Modra  <amodra@gmail.com>
22901
22902         PR target/44364
22903         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
22904         * caller-save.c (insert_restore, insert_save): Use non-validate
22905         form of adjust_address.
22906
22907 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22908
22909         PR target/39690
22910         * config/pa/pa.c (override_options): Disable
22911         -freorder-blocks-and-partition.
22912
22913 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
22914
22915         PR target/44615
22916         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
22917
22918         * config/i386/i386.md (type): Add sseishft1
22919
22920         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
22921         (ppro_insn_load): Likewise.
22922         (ppro_insn_store): Likewise.
22923         (ppro_insn_both): Likewise.
22924
22925         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
22926         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
22927         for type.
22928         (*vec_extractv2di_1_avx): Likewise.
22929         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
22930         type.  Remove atom_unit.
22931         (*vec_extractv2di_1_sse2): Likewise.
22932
22933 2010-06-21  DJ Delorie  <dj@redhat.com>
22934
22935         * diagnostic.h (diagnostic_classification_change_t): New.
22936         (diagnostic_context): Add history and push/pop list.
22937         (diagnostic_push_diagnostics): Declare.
22938         (diagnostic_pop_diagnostics): Declare.
22939         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
22940         from pragmas in a history chain instead of the global table.
22941         (diagnostic_push_diagnostics): New.
22942         (diagnostic_pop_diagnostics): New.
22943         (diagnostic_report_diagnostic): Scan history chain to find state
22944         of diagnostics as of the diagnostic location.
22945         * opts.c (set_option): Pass UNKNOWN_LOCATION to
22946         diagnostic_classify_diagnostic.
22947         (enable_warning_as_error): Likewise.
22948         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
22949         use in the history chain.
22950         * doc/extend.texi: Document pragma GCC diagnostic changes.
22951
22952 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
22953
22954         * dwarf2out.c (add_linkage_name): New function.  Don't add
22955         anything to DW_TAG_member DIEs.
22956         (add_name_and_src_coords_attributes): Use it.
22957         (gen_variable_die): Call it for C++ static data members if
22958         specification is DW_TAG_member.
22959
22960         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
22961         C++ char16_t and char32_t.
22962
22963         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
22964         * genattrtab.c: Include vecprim.h.
22965         (cached_attrs, cached_attr_count, attrs_seen_once,
22966         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
22967         attrs_cached_after): New variables.
22968         (find_attrs_to_cache): New function.
22969         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
22970         (write_test_expr): Add attrs_cached argument, return it too,
22971         attempt to cache non-const attributes used more than once in
22972         a single case handling.
22973         (write_attr_get): Use find_attrs_to_cache, for caching candidates
22974         emit cached_* variables.  Adjust write_attr_set callers.
22975         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
22976         to find attributes that should be cached in this block.  Adjust
22977         write_test_expr callers.
22978         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
22979         callers.
22980         (make_automaton_attrs): Adjust write_test_expr caller.
22981
22982         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
22983         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
22984         (make_automaton_attrs): If find_tune_attr returns non-NULL,
22985         write separate internal_dfa_insn_code_* and insn_default_latency_*
22986         functions for each attribute's value and emit init_sched_attrs
22987         function and function pointers.
22988         * genattr.c (const_attrs, reservations): New variables.
22989         (gen_attr): Add const attributes to const_attrs vector.
22990         (check_tune_attr, find_tune_attr): New functions.
22991         (main): Add reservations to reservations vector.  If find_tune_attr
22992         returns true, add prototype for init_sched_attrs and make
22993         internal_dfa_insn_code and insn_default_latency function pointers,
22994         otherwise define init_sched_attrs as dummy macro.
22995         * cfgexpand.c: Include insn-attr.h.
22996         (gimple_expand_cfg): Call init_sched_attrs.
22997
22998         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
22999
23000         PR target/44575
23001         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
23002         va_arg from a set of register save slots into a temporary,
23003         if the container is bigger than type size, do the copying
23004         using smaller mode or using memcpy.
23005
23006         PR bootstrap/44426
23007         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
23008         prototype.
23009         (sel_print_to_dot): Remove macro.
23010         (sel_print): Likewise.  New prototype.
23011         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
23012         (sel_print): New function.
23013
23014 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23015
23016         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
23017         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
23018
23019 2010-06-21  Nick Clifton  <nickc@redhat.com>
23020
23021         * config/rx/rx.h (PTRDIFF_TYPE): Define.
23022         (SMALL_REGISTER_CLASS): Define (to zero).
23023         (PRINT_OPERAND): Delete.
23024         (PRINT_OPERAND_ADDRESS): Delete.
23025         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
23026         (rx_print_operand_address): Delete prototype.
23027         * config/rx/rx.c (rx_print_operand): Make static.
23028         Allow %H and %L to handle CONST_DOUBLEs.
23029         (rx_print_operand_address): Make static.
23030         (rx_gen_move_template): Rename local variable 'template' to
23031         out_template.
23032         (rx_function_arg): Do not pass unknown sized objects in registers.
23033         (TARGET_PRINT_OPERAND): Define.
23034         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23035
23036 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
23037
23038         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
23039
23040 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
23041
23042         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
23043         stack-alignment for simple leaf-functions.
23044
23045 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
23046
23047         * doc/install.texi: Document bootstrap-lto.
23048
23049 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
23050
23051         PR debug/44248
23052         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
23053         (input_function): Drop them here, if VTA is disabled.
23054
23055 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
23056
23057         PR target/44546
23058         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
23059         New predicate.
23060         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
23061         ix86_swapped_fp_comparsion_operator instead of
23062         ix86_fp_comparison_operator.
23063
23064         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
23065         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
23066         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
23067         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
23068         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
23069         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
23070
23071 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
23072
23073         PR other/32998
23074         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
23075         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
23076         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
23077         (decode_cmdline_option): Update for this return value.  Set
23078         orig_option_with_args_text field.  Set arg field for unknown
23079         options.  Make static.
23080         (decode_cmdline_options_to_array): New.
23081         (prune_options): Update handling of find_opt return value.
23082         * opts.c (read_cmdline_option): Take decoded option.  Return void.
23083         (read_cmdline_options): Take decoded options.
23084         (decode_options): Add parameters for decoded options.  Use
23085         decode_cmdline_options_to_array.  Use decoded options for -O
23086         scan.  Use integral_argument for -O parameters.  Update call to
23087         read_cmdline_options.
23088         (enable_warning_as_error): Update handling of find_opt return value.
23089         * opts.h: Update comment on unknown options.
23090         (struct cl_decoded_option): Update comments on opt_index and arg.
23091         Add orig_option_with_args_text.
23092         (decode_cmdline_option): Remove.
23093         (decode_cmdline_options_to_array): Declare.
23094         (decode_options): Update prototype.
23095         * toplev.c (save_argv): Remove.
23096         (save_decoded_options, save_decoded_options_count): New.
23097         (read_integral_parameter): Remove.
23098         (print_switch_values): Use decoded options.
23099         (toplev_main): Don't set save_argv.  Update call to decode_options.
23100         * toplev.h (read_integral_parameter): Remove.
23101         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
23102
23103 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
23104
23105         PR target/44072
23106         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
23107         immediate.
23108         * constraints.md (Pw, Px): New constraints.
23109         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
23110
23111 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
23112
23113         * config/i386/sse.md (fma4modesuffixf4): Removed.
23114         (ssemodesuffixf2s): Likewise.
23115         (ssemodesuffixf4): Likewise.
23116         (ssemodesuffixf2c): Likewise.
23117         (ssescalarmodesuffix2s): Likewise.
23118         (avxmodesuffixf2c): Likewise.
23119         (ssemodesuffix): New.
23120         (ssescalarmodesuffix): Likewise.
23121         Update patterns with ssemodesuffix and ssescalarmodesuffix.
23122
23123 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
23124
23125         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
23126
23127 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
23128
23129         * stor-layout.c (debug_rli): Remove unused local variables.
23130
23131 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
23132
23133         PR rtl-optimization/40900
23134         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
23135         original expression for later reuse.
23136         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
23137         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
23138
23139 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
23140
23141         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
23142         double_int_fits_in_uhwi_p): Implement as static inline.
23143         (double_int_xor): New inline function.
23144         (double_int_lrotate, double_int_rrotate, double_int_max,
23145         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23146         double_int_smin): Declare.
23147         (lrotate_double, rrotate_double): Remove declaration.
23148         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
23149         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
23150         (double_int_lrotate, double_int_rrotate, double_int_max,
23151         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23152         double_int_smin): New function.
23153         * fold-const.c (int_const_binop): Clean up, use double_int_*
23154         functions.
23155         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
23156         double_int_* and immed_double_int_const functions.
23157
23158 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23159
23160         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
23161         * function.c (types_used_by_cur_var_decl): Likewise.
23162         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
23163
23164 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23165
23166         * tree.h (record_layout_info): Change type of pending_statics field
23167         to a VEC.
23168         * stor-layout.c (start_record_layout): Store NULL into
23169         pending_statics.
23170         (debug_rli): Call debug_vec_tree instead of debug_tree.
23171         (place_field): Likewise.
23172         (finish_record_layout): Likewise.
23173
23174 2010-06-18  Alan Modra  <amodra@gmail.com>
23175
23176         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
23177
23178 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23179
23180         PR target/43740
23181         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
23182         for SET source operand from SET destination operand.
23183
23184 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
23185
23186         PR rtl-optimization/39871
23187         * reload1.c (init_eliminable_invariants): For flag_pic, disable
23188         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
23189         (function_invariant_p): Rule out a plus of frame or arg pointer with
23190         a SYMBOL_REF.
23191         * ira.c (find_reg_equiv_invariant_const): Likewise.
23192
23193 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
23194
23195         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
23196         print_operand_address and puts to output the operand for CONST.
23197
23198 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
23199
23200         PR debug/44572
23201         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
23202         hook.
23203
23204 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23205
23206         * v850-protos.h (print_operand): Delete.
23207         (print_operand_address): Delete.
23208         * v850.h (PRINT_OPERAND): Delete.
23209         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23210         (PRINT_OPERAND_ADDRESS): Delete.
23211         * v850.c (print_operand_address): Rename to...
23212         (v850_print_operand_address): ...this.  Make static. Call
23213         v850_print_operand.
23214         (print_operand): Rename to...
23215         (v850_print_operand): ...this.  Make static.  Call
23216         v850_print_operand_address.
23217         (v850_print_operand_punct_valid_p): New function.
23218         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23219         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23220
23221 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23222
23223         * config/sh/sh-protos.h (print_operand): Delete.
23224         (print_operand_address): Delete.
23225         * config/sh/sh.h (PRINT_OPERAND): Delete.
23226         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23227         (PRINT_OPERAND_ADDRESS): Delete.
23228         * config/sh/sh.c (sh_print_operand_address): Make static.
23229         (sh_print_operand): Make static.  Call sh_print_operand_address
23230         and sh_print_operand.
23231         (sh_print_operand_punct_valid_p): New function.
23232         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23233         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23234
23235 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23236
23237         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
23238         (mcore_print_operand_address): Delete.
23239         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
23240         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23241         (PRINT_OPERAND_ADDRESS): Delete.
23242         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
23243         (mcore_print_operand): Make static.
23244         (mcore_print_operand_punct_valid_p): New function.
23245         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
23246         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23247
23248 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23249
23250         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
23251         (print_operand_address): Delete.
23252         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
23253         (PRINT_OPERAND_ADDRESS): Delete.
23254         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
23255         static.
23256         (m68hc11_print_operand): Make static.
23257         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23258
23259 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23260
23261         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
23262         (m32r_print_operand_address): Delete.
23263         * config/m32r/m32r.h (m32r_punct_chars): Delete.
23264         (PRINT_OPERAND): Delete.
23265         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23266         (PRINT_OPERAND_ADDRESS): Delete.
23267         * config/m32r/m32r.c (m32r_punct_chars): Make static.
23268         (m32r_print_operand_address): Make static.
23269         (m32r_print_operand): Make static.
23270         (m32r_print_operand_punct_valid_p): New function.
23271         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23272         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23273
23274 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23275
23276         * config/iq2000/iq2000-protos.h (print_operand): Delete.
23277         (print_operand_address): Delete.
23278         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
23279         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23280         (PRINT_OPERAND_ADDRESS): Delete.
23281         (iq2000_print_operand_punct): Delete.
23282         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
23283         (iq2000_print_operand_address): Make static.
23284         (iq2000_print_operand): Make static.
23285         (iq2000_print_operand_punct_valid_p): New function.
23286         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23287         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23288
23289 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23290
23291         * config/frv/frv-protos.h (frv_print_operand): Delete.
23292         (frv_print_operand_address): Delete.
23293         * config/frv/frv.h (PRINT_OPERAND): Delete.
23294         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23295         (PRINT_OPERAND_ADDRESS): Delete.
23296         * config/frv/frv.c (frv_print_operand_address): Make static.
23297         (frv_print_operand): Make static.
23298         (frv_print_operand_punct_valid_p): New function.
23299         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23300         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23301
23302 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23303
23304         * tree.h (vec_member): Declare.
23305         * tree.c (vec_member): Define.
23306
23307 2010-06-17  Richard Guenther  <rguenther@suse.de>
23308
23309         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
23310         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
23311
23312 2010-06-17  Richard Guenther  <rguenther@suse.de>
23313
23314         * tree-inline.c (declare_return_variable): Remove bogus code.
23315
23316 2010-06-17  Richard Guenther  <rguenther@suse.de>
23317
23318         * gimplify.c (gimplify_bind_expr): Always promote complex
23319         and vector variables to registers if possible.
23320
23321 2010-06-17  Richard Guenther  <rguenther@suse.de>
23322
23323         * expr.c (get_inner_reference): Use double_int for bit_offset
23324         calculation.
23325
23326 2010-06-16  DJ Delorie  <dj@redhat.com>
23327
23328         * common.opt (-fstrict-volatile-bitfields): new.
23329         * doc/invoke.texi: Document it.
23330         * fold-const.c (optimize_bit_field_compare): For volatile
23331         bitfields, use the field's type to determine the mode, not the
23332         field's size.
23333         * expr.c (expand_assignment): Likewise.
23334         (get_inner_reference): Likewise.
23335         (expand_expr_real_1): Likewise.
23336         * expmed.c (store_fixed_bit_field): Likewise.
23337         (extract_bit_field_1): Likewise.
23338         (extract_fixed_bit_field): Likewise.
23339
23340 2010-06-16  Richard Guenther  <rguenther@suse.de>
23341
23342         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
23343
23344 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
23345
23346         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
23347         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
23348         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
23349         * debug.c: Likewise.
23350         * sdbout.c: Likewise.
23351         * vmsdbgout.c: Likewise.
23352         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
23353         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
23354         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
23355         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
23356         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
23357         * dwarf2out.c (dw_fde_struct): New fields
23358         dw_fde_vms_{end,begin}_prologue.
23359         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
23360         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
23361         (dwarf2out_vms_end_prologue): New function.
23362         (dwarf2out_vms_begin_epilogue): New function.
23363         (dw_val_struct): New value dw_val_class_vms_delta.
23364         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
23365         begin_epilogue for VMS.
23366         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
23367         new static functions.
23368         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
23369         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
23370         static functions.
23371         (print_die): New case dw_val_class_vms_delta.
23372         (attr_checksum): Likewise.
23373         (same_dw_val_p: Likewise.
23374         (size_of_die): Likewise.
23375         (value_format): Likewise.
23376         (output_die): Likewise.
23377         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
23378         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
23379         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
23380         dwarf2out_cfi_begin_epilogue
23381         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
23382
23383 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23384
23385         * config/cris/cris-protos.h (cris_print_operand): Delete.
23386         (cris_print_operand_address): Delete.
23387         * config/cris/cris.h (PRINT_OPERAND): Delete.
23388         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23389         (PRINT_OPERAND_ADDRESS): Delete.
23390         * config/cris/cris.c (cris_print_operand_address): Make static.
23391         (cris_print_operand): Make static.
23392         (cris_print_operand_punct_valid_p): New function.
23393         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23394         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23395
23396 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23397
23398         * config/arm/arm-protos.h (arm_print_operand): Delete.
23399         (arm_print_operand_address): Delete.
23400         * config/arm/arm.h (PRINT_OPERAND): Delete.
23401         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23402         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
23403         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
23404         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
23405         (arm_print_operand): Make static.
23406         (arm_print_operand_punct_valid_p): New function.
23407         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23408         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23409
23410 2010-06-16  Nick Clifton  <nickc@redhat.com>
23411
23412         * config/rx/constraints.md (NEGint4): New constraint.
23413         * config/rx/rx.md (attr cc): Add set_zsc.
23414         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
23415         initialised.
23416         (cmpsf): Likewise.
23417         (call_internal): Clobber the cc0 register.
23418         (call_value_internal): Likewise.
23419         (cstoresi4): Likewise.
23420         (movsieq): Likewise.
23421         (movsine): Likewise.
23422         (addsi3): Add alternative to handle small negative constants.
23423         (sunsi3): Likewise.
23424         (addsi3): Do not set the O bit in the cc0 register.
23425         (adddi3): Likewise.
23426         (subsi3): Likewise.
23427         (subdi3): Likewise.
23428         (andsi3): Reorder alternatives to prefer shorter forms.
23429         (mulsi3): Likewise.
23430         (iorsi3): Likewise.
23431         (negsi2): Note that the cc0 flags are set.
23432         (rotlsi3): Note that only the Z and S bits are set in cc0.
23433         (lshrsi3): Likewise.
23434         (ashlsi3): Likewise.
23435         (subsf3): Use %Q for the MEM operand.
23436         (fix_truncsfsi2): Likewise.
23437         (floatsisf2): Likewise.
23438         (bitset): Remove early clobber from destination.
23439         (bitset_in_memory): Likewise.
23440         (lrintsf2): Clobber the cc0 register.
23441         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
23442         (rx_print_operand): Handle %N.
23443
23444 2010-06-16  Jan Hubicka  <jh@suse.cz>
23445
23446         * df-core.c (df_compact_blocks): Free problem_temps vector.
23447
23448 2010-06-16  Martin Jambor  <mjambor@suse.cz>
23449
23450         PR tree-optimization/43905
23451         * tree-sra.c: Include tree-inline.h.
23452         (create_abstract_origin): Removed.
23453         (modify_function): Version the call graph node instead of creating
23454         abstract origins and dealing with same_body aliases.
23455         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
23456         function is versionable.
23457         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
23458
23459 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
23460
23461         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
23462         (CHOOSE_DYNAMIC_LINKER): Update.
23463
23464 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
23465
23466         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
23467         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
23468         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
23469         *prefetch_3dnow_rex.
23470
23471 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
23472
23473         * target.h (struct asm_out):Add declare_constant_name field.
23474         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23475         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
23476         * output.h (default_asm_declare_constant_name): Declare.
23477         (assemble_label): Update prototype.
23478         * varasm.c (assemble_constant_contents): Use
23479         targetm.asm_out.declare_constant_name target hook.
23480         (assemble_label): Add 'file' argument.
23481         (default_asm_declare_constant_name): New function.
23482         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
23483         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
23484         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
23485
23486         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
23487         * config/darwin.c (darwin_asm_declare_constant_name): New function.
23488         (machopic_output_indirection): Update assemble_label argument list.
23489         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
23490         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23491
23492 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
23493
23494         PR middle-end/44391
23495         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
23496         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
23497
23498 2010-06-15  Richard Guenther  <rguenther@suse.de>
23499
23500         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
23501
23502 2010-06-15  Paul Brook  <paul@codesourcery.com>
23503
23504         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
23505         hard-float ABI.
23506
23507 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
23508
23509         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
23510         don't get a vector type for output.
23511
23512 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
23513
23514         PR fortran/44536
23515         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
23516         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
23517         (LANG_HOOKS_DECLS): Add it.
23518         * gimplify.c (omp_notice_variable): Call
23519         lang_hooks.decls.omp_report_decl.
23520
23521 2010-06-15  Martin Jambor  <mjambor@suse.cz>
23522
23523         PR lto/44464
23524         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
23525         on the newly dead SSA name.
23526
23527 2010-06-15  Alan Modra  <amodra@gmail.com>
23528
23529         * doc/invoke.texi: Add mcmodel to powerpc options.
23530         * configure.ac: Add HAVE_LD_LARGE_TOC test.
23531         * configure: Regenerate.
23532         * config.in: Regenerate.
23533         * config/rs6000/linux64.opt (mcmodel): New.
23534         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
23535         (TARGET_CMODEL, SET_CMODEL): Define.
23536         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
23537         select CMODEL_MEDIUM default.
23538         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
23539         (TARGET_CMODEL): Define default.
23540         * config/rs6000/rs6000.c (cmodel): New variable.
23541         (rs6000_explicit_options): Add cmodel field.
23542         (rs6000_handle_option): Handle -mcmodel.
23543         (create_TOC_reference): Add largetoc_reg param.  Generate high,
23544         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
23545         (rs6000_delegitimize_address): Recognise new toc reference rtl
23546         and minimal-toc rtl.
23547         (rs6000_legitimize_reload_address): Handle new toc references.
23548         (print_operand_address): Handle legitimate_constant_pool_address_p
23549         match before lo_sum.
23550         (rs6000_eliminate_indexed_memrefs): Tidy.
23551         (rs6000_emit_move): Tweak threshold for inlining constants.
23552         Keep rs6000_emit_allocate_stack large stack frame offsets
23553         loaded into r0 inline.
23554         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
23555         (tocrel_base, tocrel_offset): New variables.
23556         (toc_relative_expr_p): Set them here.
23557         (print_operand_address): Skip over any offset on constant pool address.
23558         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
23559         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
23560         (offsettable_ok_by_alignment): New function.
23561         (rs6000_emit_move): Address suitably aligned local symbol_refs
23562         relative to the toc pointer for -mcmodel=medium.
23563         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
23564         strict param.  Allow lo_sum version of addressing.  Verify reg
23565         used for -mminimal-toc and -mcmodel != small.  Update all callers.
23566         * config/rs6000/constraints.md: Update for above change.
23567         * config/rs6000/predicates.md: Likewise.
23568         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
23569         code.
23570         (tls_gd): Split for -mcmodel=medium/large.
23571         (tls_gd_high, tls_gd_low): New.
23572         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
23573         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
23574         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
23575         (largetoc_high, largetoc_low): New.
23576         (cmptf_internal2): Add clobber.
23577         * config/rs6000/rs6000-protos.h: Update.
23578
23579 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
23580
23581         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
23582         true if no prefetch is going to be generated for a given group.
23583         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
23584         estimate the prefetch_count.
23585         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
23586         prefetch count by considering the unroll_factor and prefetch_mod
23587         for is_loop_prefetching_profitable.
23588
23589 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
23590
23591         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
23592         anything if the argument is not a MEM.
23593
23594 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23595
23596         PR debug/43650
23597         PR debug/44181
23598         PR debug/44247
23599         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
23600         debug stmts.
23601         (canonicalize_loop_ivs): Likewise.
23602
23603 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23604
23605         PR debug/43656
23606         * haifa-sched.c (setup_insn_reg_pressure_info,
23607         update_register_pressure): Reject debug insns.
23608         (ready_sort): Don't setup reg pressure for debug insns.
23609         (schedule_insn): Don't update reg pressure for debug insns.
23610
23611 2010-06-14  Richard Guenther  <rguenther@suse.de>
23612
23613         * lto-streamer.c (cached_bp): Remove.
23614         (bitpack_delete): Likewise.
23615         (bitpack_create): Likewise.
23616         (bp_get_next_word): Likewise.
23617         (bp_pack_value, bp_unpack_value): Move ...
23618         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
23619         Re-implement.
23620         (struct bitpack_d): Likewise.
23621         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
23622         New inline functions.
23623         * lto-streamer-out.c (lto_output_bitpack): Remove.
23624         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23625         (pack_value_fields): Adjust.
23626         (lto_write_tree): Likewise.
23627         (output_gimple_stmt): Likewise.
23628         (output_function): Likewise.
23629         * lto-streamer-in.c (input_gimple_stmt): Adjust.
23630         (input_function): Likewise.
23631         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23632         (lto_input_bitpack): Remove.
23633         (lto_materialize_tree): Adjust.
23634         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
23635         * lto-cgraph.c (lto_output_edge): Adjust.
23636         (lto_output_node): Likewise.
23637         (lto_output_varpool_node): Likewise.
23638         (lto_output_ref): Likewise.
23639         (input_node): Likewise.
23640         (input_varpool_node): Likewise.
23641         (input_ref): Likewise.
23642         (input_edge): Likewise.
23643         (output_node_opt_summary): Likewise.
23644         (input_node_opt_summary): Likewise.
23645         * ipa-pure-const.c (pure_const_write_summary): Likewise.
23646         (pure_const_read_summary): Likewise.
23647         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
23648         (ipa_read_indirect_edge_info): Likewise.
23649         (ipa_write_node_info): Likewise.
23650         (ipa_read_node_info): Likewise.
23651
23652 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
23653
23654         PR target/44534
23655         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
23656         (vec_extract_lo_v16hi): Likewise.
23657         (vec_extract_lo_v32qi): Likewise.
23658
23659 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23660
23661         PR bootstrap/44426
23662         * tree.h (build_call_expr): Don't define as vararg macro, instead
23663         add a prototype.
23664         * builtins.c (build_call_nofold): Remove.
23665         (expand_builtin_int_roundingfn, expand_builtin_pow,
23666         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
23667         expand_builtin_memset_args, expand_builtin_strcmp,
23668         expand_builtin_strncmp, expand_builtin_memory_chk): Use
23669         build_call_nofold_loc instead of build_call_nofold.
23670         (build_call_expr): New function.
23671
23672         PR tree-optimization/44508
23673         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
23674         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
23675         don't eliminate trivially dead stmts.
23676         * tree-vrp.c (vrp_finalize): Pass false as last argument
23677         to substitute_and_fold.
23678         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
23679         to substitute_and_fold.
23680         * tree-ssa-ccp.c (ccp_finalize): Likewise.
23681
23682         PR bootstrap/44509
23683         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
23684
23685 2010-06-14  Ira Rosen  <irar@il.ibm.com>
23686
23687         PR tree-optimization/44507
23688         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
23689         to build initial vector for BIT_AND_EXPR.
23690         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
23691
23692 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23693
23694         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
23695         adjust z10prop set_attr.
23696
23697 2010-06-13  Jan Hubicka  <jh@suse.cz>
23698
23699         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
23700         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
23701         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
23702         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
23703         datastructure checks into checking asserts.
23704         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
23705         * tree-ssa-sccvn.c (VN_INFO): Likewise.
23706         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
23707         df_ref_create_structure): Likewise.
23708         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
23709         pool_free): Use gcc_checking_assert.
23710         * alias.c (get_alias_set): Likewise.
23711         * var-tracking.c (variable_htab_free, shared_hash_copy,
23712         canonicalize_values_mark, variable_merge_over_cur): Likewise.
23713         * lto-streamer.c (bp_unpack_value): Likewise.
23714
23715 2010-06-13  Richard Guenther  <rguenther@suse.de>
23716
23717         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
23718         Do not stream but initialize TYPE_CANONICAL to NULL.
23719         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
23720         * gimple.c (gimple_types_compatible_p): Disregard
23721         TYPE_STRUCTURAL_EQUALITY_P.
23722         (gimple_register_type): Use TYPE_CANONICAL as cache.
23723         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
23724         before registering common types.
23725         * config/i386/i386.c (ix86_function_arg_boundary): Do not
23726         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
23727         * tree.h (TYPE_CANONICAL): Clarify documentation.
23728
23729 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
23730
23731         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
23732         LIBCALL_VALUE): Remove macros.
23733         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
23734         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23735         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23736         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
23737         (ia64_function_value): Make static. Handle receiving the function
23738         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
23739
23740 2010-06-12  Jan Hubicka  <jh@suse.cz>
23741
23742         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
23743         at correct place.
23744
23745 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
23746
23747         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
23748
23749 2010-06-12  Jan Hubicka  <jh@suse.cz>
23750
23751         * df-core.c (df_clear_bb_info): New function.
23752         (df_set_blocks): bb_info is always allocated.
23753         (df_get_bb_info): Use block_info_elt_size.
23754         (df_set_bb_info): Likewise.
23755         (df_compact_blocks): Update for new block_info.
23756         (grow_bb_info): New function.
23757         * df-problems.c (df_grow_bb_info): Move to df-core.c
23758         (df_rd_set_bb_info): Remove.
23759         (df_rd_free_bb_info): Do not free block pool.
23760         (df_rd_alloc): Do not create pool, use check for
23761         obstack presence instead of NULL pointer for new blocks.
23762         (df_rd_free): DO not free alloc pool; clear block_info.
23763         (problem_RD): Add size of block info structure.
23764         (df_lr_set_bb_info): Remove.
23765         (df_lr_free_bb_info): Do not free block pool.
23766         (df_lr_alloc): Do not create pool, use check for
23767         obstack presence instead of NULL pointer for new blocks.
23768         (df_lr_free): DO not free alloc pool; clear block_info.
23769         (problem_LR): Add size of block info structure.
23770         (df_live_set_bb_info): Remove.
23771         (df_live_free_bb_info): Do not free block pool.
23772         (df_live_alloc): Do not create pool, use check for
23773         obstack presence instead of NULL pointer for new blocks.
23774         (df_live_free): DO not free alloc pool; clear block_info.
23775         (problem_LIVE): Add size of block info structure.
23776         (problem_CHAIN): Add size of block info structure.
23777         (df_byte_lr_set_bb_info): Remove.
23778         (df_byte_lr_free_bb_info): Do not free block pool.
23779         (df_byte_lr_alloc): Do not create pool, use check for
23780         obstack presence instead of NULL pointer for new blocks.
23781         (df_byte_lr_free): DO not free alloc pool; clear block_info.
23782         (problem_BYTE_LR): Add size of block info structure.
23783         (problem_NOTE): Add size of block info structure.
23784         (df_byte_MD_set_bb_info): Remove.
23785         (df_byte_MD_free_bb_info): Do not free block pool.
23786         (df_byte_MD_alloc): Do not create pool, use check for
23787         obstack presence instead of NULL pointer for new blocks.
23788         (df_byte_MD_free): DO not free alloc pool; clear block_info.
23789         (problem_BD): Add size of block info structure.
23790         * df-scan.c (df_scan_free_internal): Free block pool.
23791         (df_scan_set_bb_info): Remove.
23792         (df_scan_free_bb_info): Check for artificial_defs instead
23793         of bb_info being non-NULL.
23794         (df_scan_alloc): DO not create df_scan_block pool.
23795         (problem_SCAN): Set size of block info.
23796         (df_bb_refs_record): Do not allocate bb_info.
23797         * df.h (df_problem): Add block_info_elt_size.
23798         (struct dataflow): Change block_info to void *.
23799         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
23800         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
23801         in-line structures.
23802
23803 2010-06-12  Jan Hubicka  <jh@suse.cz>
23804
23805         PR tree-optimize/44485
23806         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
23807         containing use of return value of noreturn function.
23808
23809 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
23810
23811         * targhooks.c (default_function_value): Don't use
23812         FUNCTION_OUTGOING_VALUE.
23813         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
23814         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
23815
23816 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
23817
23818         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
23819         Add crtfastmath.o to extra_parts.
23820         * config/mips/crtfastmath.c: New.
23821         * config/mips/linux.h (ENDFILE_SPEC): New.
23822
23823 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
23824
23825         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
23826         old_type in parameter.
23827         (gcc_type_for_value): Update call to gcc_type_for_interval.
23828         (compute_type_for_level_1): Renamed compute_type_for_level.
23829         Update call to gcc_type_for_interval.
23830
23831 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23832
23833         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
23834         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
23835
23836 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23837
23838         * opts-common.c: Include options.h.
23839         (integral_argument): Move from opts.c.
23840         (decode_cmdline_option): New.  Based on read_cmdline_option.
23841         * opts.c (integral_argument): Move to opts-common.c.
23842         (read_cmdline_option): Move most contents to
23843         decode_cmdline_option.  Use %qs in diagnostics.
23844         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
23845         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
23846         decode_cmdline_option): New.
23847
23848 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23849
23850         PR target/44481
23851         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
23852         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
23853         (partiysi2_cmp): Ditto.
23854         (*partiyhi2_cmp): Ditto.
23855         (*parityqi2_cmp): Remove.
23856
23857 2010-06-11  Jan Hubicka  <jh@suse.cz>
23858
23859         * bitmap.h (bmp_iter_next_bit): New.
23860         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
23861
23862 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
23863             Eric Botcazou  <ebotcazou@adacore.com>
23864
23865         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
23866         computed cost.
23867
23868 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23869
23870         * config/i386/i386.md (unspec): New define_c_enum.
23871         (unspecv): Ditto.
23872
23873 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
23874
23875         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
23876
23877 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
23878
23879         PR middle-end/44483
23880         * tree-if-conv.c (bb_predicate_s): New struct.
23881         (bb_predicate_p): New.
23882         (bb_has_predicate): New.
23883         (bb_predicate): New.
23884         (set_bb_predicate): New.
23885         (bb_predicate_gimplified_stmts): New.
23886         (set_bb_predicate_gimplified_stmts): New.
23887         (add_bb_predicate_gimplified_stmts): New.
23888         (init_bb_predicate): New.
23889         (free_bb_predicate): New.
23890         (is_predicated): Use bb_predicate.
23891         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
23892         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
23893         before processing their successors.
23894         (clean_predicate_lists): Removed.
23895         (find_phi_replacement_condition): Use bb_predicate.
23896         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
23897         computations.
23898         (insert_gimplified_predicates): New.
23899         (combine_blocks): Call insert_gimplified_predicates.
23900         (tree_if_conversion): Call free_bb_predicate instead of
23901         clean_predicate_lists.
23902
23903 2010-10-11  Paul Brook  <paul@codesourcery.com>
23904
23905         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
23906         * config/arm/arm.c (all_architectures): Change v7e-m default to
23907         cortexm4.
23908         * config/arm/arm-cores.def: Add cortex-m4.
23909         * config/arm/arm-tune.md: Regenerate.
23910
23911 2010-06-11  Jan Hubicka  <jh@suse.cz>
23912
23913         * ipa-pure-const.c (special_builtlin_state): New function.
23914         (check_call): Use it instead of special casign BUILT_IN_RETURN.
23915         (propagate_pure_const): Use it.
23916
23917 2010-06-11  Jan Hubicka  <jh@suse.cz>
23918
23919         * df-problems.c (df_live_scratch): Convert to bitmap_head.
23920         (df_live_alloc): Initialize df_live_scratch when initializing
23921         problem_data.
23922         (df_live_transfer_function): Update uses of df_live_scratch.
23923         (df_live_free): Free problem_data; clear df_live_scratch before
23924         releasing the obstack.
23925         (df_md_free): Free problem data.
23926
23927 2010-06-11  Jan Hubicka  <jh@suse.cz>
23928
23929         * doc/invoke.texi (Wsuggest-attribute): Document.
23930         (Wmissing-noreturn): Remove.
23931         * ipa-pure-const.c (warn_function_noreturn): New function.
23932         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
23933         warn_missing_noreturn.
23934         * common.opt (Wsuggest-attribute=noreturn): New.
23935         * tree-flow.h (warn_function_noreturn): Declare.
23936         * tree-cfg.c (execute_warn_function_noreturn): Use
23937         warn_function_noreturn.
23938         (gate_warn_function_noreturn): New.
23939         (pass_warn_function_noreturn): Update.
23940
23941 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23942
23943         * c-typeck.c (handle_warn_cast_qual): Add loc
23944         parameter. Improve warning message.
23945         (build_c_cast): Pass location to handle_warn_cast_qual.
23946
23947 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23948
23949         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
23950         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
23951         insn mnemonic.
23952         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
23953
23954 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
23955
23956         Fix bootstap on mips
23957         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
23958         be naming typedefs.
23959
23960 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
23961
23962         * system.h (helper_const_non_const_cast): New inline for
23963         gcc version <= 4.0.
23964         (CONST_CAST2): For gcc version <= 4.0 use
23965         new helper to do const/non-const casting.
23966
23967 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23968
23969         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
23970         * Makefile.in (OBJS-common): Include insn-enums.o.
23971         (insn-enums.o): New rule.
23972         (simple_generated_c): Add insn-enums.c.
23973         (build/genenums.o): New rule.
23974         (genprogmd): Add "enums".
23975         * genconstants.c (print_enum_type): Declare a C string array
23976         for each enum.
23977         * genenums.c: New file.
23978         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
23979         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
23980         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
23981
23982 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23983
23984         * doc/md.texi (define_enum_attr): Document.
23985         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
23986         * read-md.h (lookup_enum_type): Declare.
23987         * read-md.c (lookup_enum_type): New function.
23988         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
23989         * genattrtab.c (attr_desc): Add an enum_name field.
23990         (evaluate_eq_attr): Take the associated attribute as argument.
23991         Get the enum prefix from the enum_name field, if defined.
23992         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
23993         (simplify_test_exp): Pass attr to evaluate_eq_attr.
23994         (add_attr_value): New function, split out from...
23995         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
23996         (write_test_expr): Pass attr to evaluate_eq_attr.
23997         (write_attr_get): Use the enum_name as the enum tag, if defined.
23998         (write_attr_valueq): Use the enum_name as a prefix, if defined.
23999         (find_attr): Initialize enum_name.
24000         (main): Handle DEFINE_ENUM_ATTR.
24001         * gensupport.c (process_rtx): Likewise.
24002         * config/mips/mips.h (mips_tune_attr): Delete.
24003         * config/mips/mips.md (cpu): Use define_attr_enum.
24004
24005 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24006
24007         * doc/md.texi (define_c_enum, define_enum): Document.
24008         * read-md.h (md_constant): Add a parent_enum field.
24009         (enum_value, enum_type): New structures.
24010         (upcase_string, traverse_enum_types): Declare.
24011         * read-md.c (enum_types): New variable.
24012         (upcase_string, add_constant): New functions.
24013         (handle_constants): Don't create the hash table here.
24014         Use add_constant.
24015         (traverse_md_constants): Don't check for a null md_constants.
24016         (decimal_string, handle_enum, traverse_enum_types): New functions.
24017         (read_md_files): Initialize md_constants and md_enums.
24018         * genconstants.c (print_md_constant): Ignore info argument.
24019         Only print constants that belong to no enum.
24020         (print_enum_type): New function.
24021         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
24022         for each defined enum type.
24023         * config/mips/mips.md (processor): New define_enum.
24024         (unspec): New define_c_enum.
24025         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
24026         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
24027         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
24028         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
24029         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
24030         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
24031         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
24032         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
24033         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
24034         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
24035         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
24036         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
24037         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
24038         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
24039         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
24040         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
24041         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
24042         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
24043         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
24044         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
24045         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
24046         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
24047         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24048         (UNSPEC_RDDSP): Move to mips-dsp.md.
24049         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
24050         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
24051         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
24052         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
24053         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
24054         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
24055         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
24056         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
24057         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
24058         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
24059         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
24060         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
24061         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
24062         Moved to mips-dspr2.md.
24063         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
24064         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
24065         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
24066         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
24067         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
24068         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
24069         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24070         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24071         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24072         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24073         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24074         UNSPEC_LOONGSON_PSADBH)
24075         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24076         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24077         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
24078         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24079         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24080         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24081         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
24082         (cpu): Update comment.
24083         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
24084         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
24085         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
24086         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
24087         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
24088         UNSPEC_LOONGSON_PCMPEQ)
24089         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
24090         UNSPEC_LOONGSON_PINSR_0)
24091         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24092         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24093         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24094         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24095         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24096         UNSPEC_LOONGSON_PSADBH)
24097         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24098         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24099         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
24100         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24101         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24102         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24103         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
24104         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
24105         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
24106         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
24107         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
24108         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
24109         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
24110         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
24111         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
24112         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
24113         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
24114         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
24115         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
24116         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
24117         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
24118         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
24119         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
24120         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
24121         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
24122         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
24123         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24124         (UNSPEC_RDDSP): Moved from mips.md.
24125         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
24126         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
24127         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
24128         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
24129         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
24130         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
24131         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
24132         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
24133         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
24134         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
24135         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
24136         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
24137         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
24138         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
24139         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
24140         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
24141         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
24142         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
24143         (UNSPEC_SCC): Moved from mips.md.
24144         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
24145         "processor_type" to "processor".
24146         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
24147         * config/mips/mips.h (processor_type): Delete.
24148         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
24149         "processor_type" to "processor".
24150
24151 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24152
24153         * configure.ac (tm_include_list): Add insn-constants.h.
24154         * configure: Regenerate.
24155         * Makefile.in (GTM_H): Move insn-constants.h here from...
24156         (TM_H): ...here.
24157         * mkconfig.sh: Remove special handling for insn-constants.h.
24158
24159 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24160
24161         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
24162         (BUILD_MD): ...this new variable.
24163         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
24164         that include the old contents of simple_generated_h and
24165         simple_generated_c.
24166         (simple_generated_h, simple_generated_c): Include them.  Add
24167         insn-constants.h.
24168         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
24169         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
24170         Remove these dependencies from the main rule and include
24171         insn-conditions.md in the command line only if it appears
24172         in the dependency list.
24173         (insn-constants.h, s-constants): Delete.
24174         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
24175         or gensupport.h.
24176         (build/genmddeps.o): Likewise.
24177         (genprogrtl): New variable that contains everything from genprogmd
24178         except mddeps and constants.
24179         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
24180         depend on $(BUILD_MD)
24181         (genprog): New variable.  Make these programs depend on
24182         $(BUILD_ERRORS).
24183         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
24184         (main): Use read_md_files instead of init_rtx_reader_args.
24185         * genconstants.c: As for genmddeps.c.
24186         * read-md.h (read_skip_construct): Declare.
24187         * read-md.c (read_skip_construct): New function.
24188         (handle_file): Allow a null handle_directive, skipping the
24189         construct if so.
24190         (parse_include): Update the comment accordingly.
24191
24192 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24193
24194         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
24195         * genmddeps.c: Include read-md.h.
24196         (main): Call init_rtx_reader_args instead of init_md_reader_args.
24197         * genattr.c (main): Likewise.
24198         * genattrtab.c (main): Likewise.
24199         * genautomata.c (main): Likewise.
24200         * gencodes.c (main): Likewise.
24201         * genconditions.c (main): Likewise.
24202         * genconfig.c (main): Likewise.
24203         * genconstants.c (main): Likewise.
24204         * genemit.c (main): Likewise.
24205         * genextract.c (main): Likewise.
24206         * genflags.c (main): Likewise.
24207         * genopinit.c (main): Likewise.
24208         * genoutput.c (main): Likewise.
24209         * genpeep.c (main): Likewise.
24210         * genrecog.c (main): Likewise.
24211         * genpreds.c (main): Likewise.
24212         * gensupport.h (in_fname): Move to read-md.h.
24213         (init_md_reader_args_cb): Rename to...
24214         (init_rtx_reader_args_cb): ...this and return a bool.
24215         (init_md_reader_args): Rename to...
24216         (init_rtx_reader_args): ...this and return a bool.
24217         (include_callback): Move to read-md.h.
24218         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
24219         (file_name_list, first_dir_md_include): Move to read-md.c
24220         (first_bracket_include): Delete unused variable.
24221         (last_dir_md_include): Move to read-md.c.
24222         (process_include): Delete, moving code to read-md.c:handle_include.
24223         (process_rtx): Don't handle INCLUDE.
24224         (save_string): Delete.
24225         (rtx_handle_directive): New function.
24226         (init_md_reader_args_cb): Rename to...
24227         (init_rtx_reader_args_cb): ...this and return a boolean success value.
24228         Use read_md_args.
24229         (init_md_reader_args): Rename to...
24230         (init_rtx_reader_args): ...this and return a boolean success value.
24231         * rtl.def (INCLUDE): Delete.
24232         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
24233         argument.
24234         * read-rtl.c (read_conditions): Don't gobble ')' here.
24235         (read_mapping): Likewise.
24236         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
24237         Handle top-level non-rtx constructs here rather than in read_rtx_1.
24238         Store the whole queue in *X.  Remove call to init_md_reader.
24239         (read_rtx_1): Rename to...
24240         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
24241         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
24242         here.
24243         (read_nested_rtx): New function.  Handle (nil) here rather than
24244         in read_rtx_code.
24245         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
24246         gobble ')' here.
24247         * read-md.h (directive_handler_t): New type.
24248         (in_fname, include_callback): Moved from read-md.h.
24249         (read_constants, init_md_reader): Delete.
24250         (read_md_files): Declare.
24251         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
24252         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
24253         from gensupport.c.
24254         (read_constants): Rename to...
24255         (handle_constants): ...this.  Don't gobble ')' here.
24256         (handle_include, handle_file, handle_toplevel_file)
24257         (parse_include): New functions, mostly taken from gensupport.c.
24258         (init_md_reader): Subsume into...
24259         (read_md_files): ...this new function.
24260
24261 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24262
24263         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
24264         (unread_char): Decrement read_md_lineno after putting back '\n'.
24265         * read-md.c (fatal_with_file_and_line): Push back any characters
24266         that we decide not to add to the context.
24267         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
24268         fatal_expected_char in cases where '/' ends a line (for example).
24269         (read_name): Don't increment read_md_lineno here.
24270         (read_escape): Likewise.
24271         (read_quoted_string): Likewise.
24272         (read_braced_string): Likewise.
24273
24274 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24275
24276         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
24277         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
24278         * genconstants.c: Include read-md.h.
24279         * read-rtl.c (md_constants): Move to read-md.c.
24280         (md_name): Move to read-md.h.
24281         (initialize_iterators): Use leading_string_hash instead of def_hash
24282         and leading_string_eq_p instead of def_name_eq_p.
24283         (read_name): Move to read-md.c.
24284         (def_hash, def_name_eq_p): Delete.
24285         (read_constants, traverse_md_constants): Move to read-md.c.
24286         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
24287         * read-md.h: Include hashtab.h.
24288         (md_name): Moved from read-rtl.c.
24289         (md_constant): Moved from read-md.h.
24290         (leading_string_hash, leading_string_eq_p, read_name)
24291         (read_constants, traverse_md_constants): Declare.
24292         * read-md.c (md_constants): Moved from read-rtl.c.
24293         (leading_string_hash, leading_string_eq_p): New functions.
24294         (read_name, read_constants, traverse_md_constants): Moved from
24295         read-rtl.c.
24296
24297 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24298
24299         * read-rtl.c (md_name): New structure.
24300         (read_name): Take an md_name instead of a buffer pointer.
24301         Use the "string" field instead of strcpy when expanding constants.
24302         (read_constants): Remove the tmp_char argument.  Update the calls
24303         to read_name, using two local name buffers instead of the tmp_char
24304         argument.  Merge the constant-creation code.
24305         (read_conditions): Remove the tmp_char argument.  Update the calls
24306         to read_name, using a local name buffer instead of the tmp_char
24307         argument.
24308         (read_mapping): Replace tmp_char variable with a local name buffer.
24309         Update the calls to read_name.
24310         (read_rtx_1): Likewise.  Update the calls to read_constants and
24311         read_conditions.
24312
24313 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24314
24315         * Makefile.in (build/read-md.o): Depend on errors.h.
24316         * read-md.h (error_with_line): Declare.
24317         * read-md.c: Include errors.h.
24318         (message_with_line_1): New function, extracted from...
24319         (message_with_line): ...here.
24320         (error_with_line): New function.
24321         * genattrtab.c: If a call to message_with_line is followed by
24322         "have_error = 1;", replace both statements with a call to
24323         error_with_line.
24324         * genoutput.c: Likewise.
24325         * genpreds.c: Likewise.
24326         * genrecog.c: If a call to message_with_line is followed by
24327         "error_count++;", replace both statements with a call to
24328         error_with_line.
24329         (errorcount): Delete.
24330         (main): Don't check it.
24331         * gensupport.c: If a call to message_with_line is followed by
24332         "errors = 1;", replace both statements with a call to error_with_line.
24333         (errors): Delete.
24334         (process_define_cond_exec): Check have_error instead of errors.
24335         (init_md_reader_args_cb): Likewise.  Don't set errors.
24336
24337 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24338
24339         * read-md.h (read_md_file): Declare.
24340         (read_char, unread_char): New functions.
24341         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24342         (read_quoted_string, read_string): Remove FILE * argument.
24343         * read-md.c (read_md_file): New variable.
24344         (read_md_filename, read_md_lineno): Update comments and remove
24345         unnecessary initialization.
24346         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24347         (read_escape, read_quoted_string, read_braced_string, read_string):
24348         Remove FILE * argument.  Update calls accordingly, using read_char
24349         and unread_char instead of getc and ungetc.
24350         * rtl.h (read_rtx): Remove FILE * argument.
24351         * read-rtl.c (iterator_group): Remove FILE * argument from
24352         "find_builtin".
24353         (iterator_traverse_data): Remove "infile" field.
24354         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
24355         (add_mapping, read_name, read_constants, read_conditions)
24356         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
24357         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
24358         Remove file arguments from all calls, using read_char and unread_char
24359         instead of getc and ungetc.
24360         * gensupport.c (process_include): Preserve read_md_file around
24361         the include.  Set read_md_file to the handle of the included file.
24362         Update call to read_rtx.
24363         (init_md_reader_args_cb): Set read_md_file to the handle of the file
24364         and remove local FILE *.  Update calls to read_rtx.
24365
24366 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24367
24368         * read-md.h (read_rtx_lineno): Rename to...
24369         (read_md_lineno): ...this.
24370         (read_rtx_filename): Rename to...
24371         (read_md_filename): ...this.
24372         (copy_rtx_ptr_loc): Rename to...
24373         (copy_md_ptr_loc): ...this.
24374         (print_rtx_ptr_loc): Rename to...
24375         (print_md_ptr_loc): ...this.
24376         * read-md.c: Likewise.  Update references after renaming.
24377         (string_obstack): Replace RTL with MD in comment.
24378         (set_rtx_ptr_loc): Rename to...
24379         (set_md_ptr_loc): ...this.
24380         (get_rtx_ptr_loc): Rename to...
24381         (get_md_ptr_loc): ...this.
24382         * genconditions.c: Update references after renaming.
24383         * genemit.c: Likewise.
24384         * genoutput.c: Likewise.
24385         * genpreds.c: Likewise.
24386         * gensupport.c: Likewise.
24387         * read-rtl.c: Likewise.
24388
24389 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24390
24391         * Makefile.in (READ_MD_H): New variable.
24392         (BUILD_RTL): Add build/read-md.o.
24393         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
24394         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
24395         (build/genattrtab.o, build/genconditions.o build/genemit.o)
24396         (build/genextract.o, build/genflags.o, build/genoutput.o)
24397         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
24398         (build/read-md.o): New rule.
24399         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
24400         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
24401         * coretypes.h: ...here.
24402         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
24403         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
24404         * genattr.c: Include read-md.h.
24405         * genattrtab.c: Likewise.
24406         * genconditions.c: Likewise.
24407         * genemit.c: Likewise.
24408         * genextract.c: Likewise.
24409         * genflags.c: Likewise.
24410         * genoutput.c: Likewise.
24411         * genpreds.c: Likewise.
24412         * genrecog.c: Likewise.
24413         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
24414         (join_c_conditions, print_c_condition, read_rtx_filename)
24415         (read_rtx_lineno): Move to read-md.h.
24416         * read-rtl.c: Include read-md.h.
24417         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
24418         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
24419         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
24420         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
24421         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
24422         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
24423         (read_braced_string, read_string): Move to read-md.c.
24424         (read_rtx): Move some initialization to init_md_reader and call
24425         init_md_reader here.
24426         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
24427         Move to read-md.h.
24428         * gensupport.c: Include read-md.h.
24429         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
24430         * read-md.h, read-md.c: New files.
24431
24432 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
24433
24434         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24435         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24436         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
24437         * config/moxie/moxie.c (moxie_function_value): Make static.
24438         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
24439         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
24440
24441 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24442
24443         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
24444         * dbgcnt.def (tree_sra): New counter.
24445         * tree-sra.c: Include dbgcnt.h.
24446         (gate_intra_sra): Check tree_sra debug counter.
24447
24448 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24449
24450         PR tree-optimization/44258
24451         * tree-sra.c (build_access_subtree): Return false iff there is a
24452         partial overlap.
24453         (build_access_trees): Likewise.
24454         (analyze_all_variable_accesses): Disqualify candidates if
24455         build_access_trees returns true for them.
24456
24457 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
24458
24459         PR debug/41371
24460         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
24461         tail-recurse into canonical node.  Fast-forward over
24462         non-canonical VALUEs.
24463
24464 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
24465
24466         PR boostrap/44470
24467         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
24468         (*addsi_1_zext) <TYPE_LEA>: Likewise.
24469         (add lea splitter): Likewise.
24470         (add_zext lea splitter): Likewise.
24471
24472 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
24473
24474         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
24475
24476 2010-06-10  Jan Hubicka  <jh@suse.cz>
24477
24478         * df-problems.c (df_live_problem_data): Add live_bitmaps.
24479         (df_live_alloc): Initialize problem data and live_osbtacks.
24480         (df_live_finalize): Remove obstack, problem data; do not
24481         clear all bitmaps.
24482         (df_live_top_dump, df_live_bottom_dump): Do not dump old
24483         data when not allocated.
24484         (df_live_verify_solution_start): Do not allocate problem data.
24485         (df_live_verify_solution_end): Check if out is allocated.
24486         (struct df_md_problem_data): New structure.
24487         (df_md_alloc): Allocate problem data.
24488         (df_md_free): Free problem data; do not clear bitmaps.
24489
24490 2010-06-10  Jan Beulich  <jbeulich@novell.com>
24491
24492         PR bootstrap/37304
24493         * configure.ac: Replace $() with ${} when intending to expand
24494         variables rather than invoking commands.
24495         * configure: Re-generate.
24496
24497 2010-06-10  Jan Hubicka  <jh@suse.cz>
24498
24499         PR rtl-optimization/44460
24500         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
24501         TYPE_NEEDS_CONSTRUCTING sanity check.
24502
24503 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
24504
24505         * doc/include/fdl.texi: Move to GFDL version 1.3.
24506
24507         * doc/cpp.texi: Move to GFDL version 1.3.
24508         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
24509         * doc/gccint.texi: Move to GFDL version 1.3.
24510         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
24511         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
24512         * doc/invoke.texi: Move to GFDL version 1.3.
24513
24514 2010-06-09  Jan Hubicka  <jh@suse.cz>
24515
24516         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
24517         Break out from ...
24518         (propagate) ... here; swap the order.
24519
24520 2010-06-09  Jan Hubicka  <jh@suse.cz>
24521
24522         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
24523         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
24524         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
24525         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
24526
24527 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24528
24529         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
24530         Do not the gather memory reference in the outer loop if the step
24531         is not a constant.
24532
24533 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24534
24535         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
24536         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
24537         8 to 4.  Minor change of the related comments.
24538
24539 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24540
24541         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
24542         the scev analysis when the variable is not used outside the loop
24543         in a close phi node: call compute_overall_effect_of_inner_loop.
24544
24545 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24546
24547         * graphite-sese-to-poly.c (single_pred_cond): Renamed
24548         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
24549         (build_sese_conditions_before): Renamed call to single_pred_cond.
24550         (build_sese_conditions_after): Same.
24551
24552 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24553
24554         * graphite-poly.h: Fix comments and indentation.
24555         * graphite-sese-to-poly.c: Same.
24556         (build_sese_conditions_before): Compute stmt and gbb only when needed.
24557         * tree-chrec.c: Fix comments and indentation.
24558         (tree-ssa-loop-niter.c): Same.
24559
24560 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
24561
24562         PR rtl-optimization/42461
24563         * dce.c (deletable_insn_p): Return true for const or pure calls again.
24564         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
24565
24566 2010-06-09  Jan Hubicka  <jh@suse.cz>
24567
24568         * bitmap.c (bitmap_and): Walk array forward.
24569         (bitmap_and_compl_into): Likewise.
24570         (bitmap_xor): Likewise.
24571         (bitmap_xor_into):  Likewise.
24572         (bitmap_equal_p): Likewise.
24573         (bitmap_intersect_p): Likewise.
24574         (bitmap_intersect_compl_p): Likewise.
24575         (bitmap_ior_and_into): Likewise.
24576         (bitmap_elt_copy): Likewise.
24577         (bitmap_and_compl): Likewise.
24578         (bitmap_elt_ior): Likewise.
24579
24580 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
24581
24582         * opts-common.c (prune_options): Ensure replacement argv array
24583         is correctly terminated by a NULL entry.
24584
24585 2010-06-09  Jan Hubicka  <jh@suse.cz>
24586
24587         * cgraph.h (varpool_first_static_initializer,
24588         varpool_next_static_initializer): Make checking only when
24589         checking enabled.
24590         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
24591         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
24592         gcc_assert to gcc_checking_assert.
24593         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
24594         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
24595         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
24596         op_iter_init_phiuse, op_iter_init_phidef,
24597         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
24598         gcc_checking_assert.
24599         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
24600         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
24601         partition_is_global, live_on_entry, live_on_exit,
24602         live_merge_and_clear): Likewise.
24603         * system.h (gcc_checking_assert): New macro.
24604         * gimple.h (set_bb_seq): Use gcc_checking_assert.
24605
24606 2010-06-09  Jason Merrill  <jason@redhat.com>
24607
24608         * Makefile.in (TAGS): Collect tags info from c-family.
24609
24610 2010-06-09  Jan Hubicka  <jh@suse.cz>
24611
24612         * gimple.h (gcc_gimple_checking_assert): New macro.
24613         (gimple_set_def_ops, gimple_set_use_ops,
24614         gimple_set_vuse, gimple_set_vdef,
24615         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
24616         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
24617         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
24618         gimple_asm_output_op, gimple_asm_output_op_ptr,
24619         gimple_asm_set_output_op, gimple_asm_clobber_op,
24620         gimple_asm_set_clobber_op, gimple_asm_label_op,
24621         gimple_asm_set_label_op, gimple_try_set_kind,
24622         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
24623         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
24624         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
24625         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
24626         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
24627         gimple_omp_for_set_initial, gimple_omp_for_final,
24628         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
24629         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
24630         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
24631         conditional with ENABLE_GIMPLE_CHECKING.
24632         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
24633
24634 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
24635
24636         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
24637         (get_computation_cost_at): Use it.
24638         (determine_use_iv_cost_condition): Likewise.
24639         (determine_iv_cost): Likewise.
24640
24641 2010-06-09  Richard Guenther  <rguenther@suse.de>
24642
24643         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
24644         replace constants.
24645
24646 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
24647
24648         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
24649
24650 2010-06-09  Martin Jambor  <mjambor@suse.cz>
24651
24652         PR tree-optimization/44423
24653         * tree-sra.c (dump_access): Dump also grp_assignment_read.
24654         (analyze_access_subtree): Pass negative allow_replacements to children
24655         if the current type is scalar.
24656
24657 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24658
24659         PR testsuite/42843
24660         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
24661         * doc/plugins.texi (Plugin license check): Update information
24662         on type of plugin_is_GPL_compatible.
24663         * Makefile.in (PLUGINCC): Define as $(COMPILER).
24664         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
24665
24666 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
24667
24668         * config/arm/arm.c (thumb2_reorg): New function.
24669         (arm_reorg): Call it.
24670         * config/arm/thumb2.md (define_peephole2 for flag clobbering
24671         arithmetic operations): Delete.
24672
24673 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
24674
24675         PR target/44067
24676         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
24677         e500v2 target.
24678
24679 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24680
24681         PR plugins/44459
24682         * gcc-plugin.h: Encapsulate all declarations in extern "C".
24683
24684 2010-06-08  Jan Hubicka  <jh@suse.cz>
24685
24686         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
24687         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
24688
24689 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
24690
24691         PR tree-optimization/39874
24692         PR middle-end/28685
24693         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
24694         Declare.
24695         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
24696         same_bool_result_p): New.
24697         (and_var_with_comparison, and_var_with_comparison_1,
24698         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
24699         (or_var_with_comparison, or_var_with_comparison_1,
24700         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
24701         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
24702         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
24703         of combine_comparisons.
24704         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
24705
24706 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
24707
24708         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24709         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24710         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
24711         pdp11_function_value_regno_p): New functions.
24712         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24713         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24714
24715 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
24716
24717         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
24718         Thumb-2 in the MINUS case.
24719
24720 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24721
24722         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
24723
24724         * doc/gty.texi (GTY Options): Document typed GC allocation and
24725         variable_size GTY option.
24726
24727         * ggc-internal.h: New.
24728
24729         * ggc.h: Update copyright year.
24730         (digit_string): Move to stringpool.c.
24731         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
24732         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
24733         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
24734         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
24735         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
24736         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
24737         (ggc_force_collect, ggc_get_size, ggc_statistics)
24738         (ggc_print_common_statistics): Move to ggc-internal.h.
24739         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
24740         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
24741         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
24742         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
24743         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
24744         (ggc_alloc_zone_pass_stat): Remove.
24745         (ggc_internal_alloc_stat, ggc_internal_alloc)
24746         (ggc_internal_cleared_alloc_stat): New.
24747         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
24748         (ggc_internal_vec_alloc_stat)
24749         (ggc_internal_cleared_vec_alloc_stat)
24750         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
24751         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
24752         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
24753         (ggc_cleared_alloc_ptr_array_two_args): New.
24754         (htab_create_ggc, splay_tree_new_ggc): Redefine.
24755         (ggc_splay_alloc): Change the type of the first argument to
24756         enum gt_types_enum.
24757         (ggc_alloc_string): Make macro.
24758         (ggc_alloc_string_stat): New.
24759         (ggc_strdup): Redefine.
24760         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
24761         (ggc_alloc_rtvec_sized): New.
24762         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
24763         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
24764         (ggc_internal_cleared_alloc_zone_stat)
24765         (ggc_internal_zone_alloc_stat)
24766         (ggc_internal_zone_cleared_alloc_stat)
24767         (ggc_internal_zone_vec_alloc_stat)
24768         (ggc_alloc_zone_rtx_def_stat)
24769         (ggc_alloc_zone_tree_node_stat)
24770         (ggc_alloc_zone_cleared_tree_node_stat)
24771         (ggc_alloc_cleared_gimple_statement_d_stat): New.
24772
24773         * ggc-common.c: Include ggc-internal.h.
24774         (ggc_internal_cleared_alloc_stat): Rename from
24775         ggc_alloc_cleared_stat.
24776         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
24777         (ggc_calloc): Remove.
24778         (ggc_cleared_alloc_htab_ignore_args): New.
24779         (ggc_cleared_alloc_ptr_array_two_args): New.
24780         (ggc_splay_alloc): Add obj_type parameter.
24781         (init_ggc_heuristics): Formatting fixes.
24782
24783         * ggc-none.c: Update copyright year.
24784         (ggc_alloc_stat): Rename to ggc_alloc_stat.
24785         (ggc_alloc_cleared_stat): Rename to
24786         ggc_internal_cleared_alloc_stat.
24787         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24788
24789         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
24790         Remove references to ggc_alloc in comments.
24791         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
24792         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
24793         (new_ggc_zone, destroy_ggc_zone): Remove.
24794         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24795
24796         * ggc-zone.c: Include ggc-internal.h.  Remove references to
24797         ggc_alloc in comments.
24798         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
24799         (ggc_internal_alloc_zone_pass_stat): New.
24800         (ggc_internal_cleared_alloc_zone_stat): New.
24801         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
24802         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
24803         (new_ggc_zone, destroy_ggc_zone): Remove.
24804
24805         * stringpool.c: Update copyright year.  Include ggc-internal.h
24806         (digit_vector): Make static.
24807         (digit_string): Moved from ggc.h.
24808         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
24809         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
24810
24811         * Makefile.in (GGC_INTERNAL_H): New.
24812         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
24813         $(GGC_INTERNAL_H) to dependencies.
24814
24815         * gengtype.c: Update copyright year.
24816         (walk_type): Accept variable_size GTY option.
24817         (USED_BY_TYPED_GC_P): New macro.
24818         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
24819         whitespace at the end of strings.
24820         (get_type_specifier, variable_size_p): New functions.
24821         (alloc_quantity, alloc_zone): New enums.
24822         (write_typed_alloc_def): New function.
24823         (write_typed_struct_alloc_def): Likewise.
24824         (write_typed_typed_typedef_alloc_def): Likewise.
24825         (write_typed_alloc_defns): Likewise.
24826         (output_typename, write_splay_tree_allocator_def): Likewise.
24827         (write_splay_tree_allocators): Likewise.
24828         (main): Call write_typed_alloc_defns and
24829         write_splay_tree_allocators.
24830
24831         * lto-streamer.h (lto_file_decl_data_ptr): New.
24832
24833         * passes.c (order): Define using cgraph_node_ptr.
24834
24835         * strinpool.c (struct string_pool_data): Declare nested_ptr using
24836         ht_identifier_ptr.
24837
24838         * gimple.h (union gimple_statement_d): Likewise.
24839
24840         * rtl.h (struct rtx_def): Likewise.
24841         (struct rtvec_def): Likewise.
24842
24843         * tree.h (union tree_node): Likewise.
24844
24845         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
24846
24847         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
24848
24849         * tree-scalar-evolution.c (scev_initialize): Likewise.
24850
24851         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
24852
24853         * dwarf2asm.c (dw2_force_const_mem): Likewise.
24854
24855         * omp-low.c (lower_omp_critical): Likewise.
24856
24857         * bitmap.h (struct bitmap_head_def): Update comment to not
24858         reference ggc_alloc.
24859
24860         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
24861
24862         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
24863
24864         * ipa-prop.c (duplicate_ggc_array): Rename to
24865         duplicate_ipa_jump_func_array.  Use typed GC allocation.
24866         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
24867
24868         * gimple.c (gimple_alloc_stat): Use
24869         ggc_alloc_cleared_gimple_statement_d_stat.
24870
24871         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
24872
24873         * tree.c (make_node_stat): Use
24874         ggc_alloc_zone_cleared_tree_node_stat.
24875         (make_tree_vec_stat): Likewise.
24876         (build_vl_exp_stat): Likewise.
24877         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
24878         (make_tree_binfo_stat): Likewise.
24879         (tree_cons_stat): Likewise.
24880
24881         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
24882         (shallow_copy_rtx_stat): Likewise.
24883         (make_node_stat): Likewise.
24884
24885         * lto-symtab.c: Fix comment.
24886
24887         * tree-cfg.c (create_bb): Update comment to not reference
24888         ggc_alloc_cleared.
24889         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
24890
24891         * varpool.c (varpool_node): Use typed GC allocation.
24892         (varpool_extra_name_alias): Likewise.
24893
24894         * varasm.c (emutls_decl): Likewise.
24895         (get_unnamed_section): Likewise.
24896         (get_noswitch_section): Likewise.
24897         (get_section): Likewise.
24898         (get_block_for_section): Likewise.
24899         (build_constant_desc): Likewise.
24900         (create_constant_pool): Likewise.
24901         (force_const_mem): Likewise.
24902
24903         * tree.c (build_vl_exp_stat): Likewise.
24904         (build_real): Likewise.
24905         (build_string): Likewise.
24906         (decl_debug_expr_insert): Likewise.
24907         (decl_value_expr_insert): Likewise.
24908         (type_hash_add): Likewise.
24909         (build_omp_clause): Likewise.
24910
24911         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
24912
24913         * tree-ssa.c (init_tree_ssa): Likewise.
24914
24915         * tree-ssa-structalias.c (heapvar_insert): Likewise.
24916
24917         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
24918
24919         * tree-ssa-loop-niter.c (record_estimate): Likewise.
24920
24921         * tree-ssa-alias.c (get_ptr_info): Likewise.
24922
24923         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
24924
24925         * tree-phinodes.c (allocate_phi_node): Likewise.
24926
24927         * tree-iterator.c (tsi_link_before): Likewise.
24928         (tsi_link_after): Likewise.
24929
24930         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
24931
24932         * tree-dfa.c (create_var_ann): Likewise.
24933
24934         * tree-cfg.c (create_bb): Likewise.
24935
24936         * toplev.c (alloc_for_identifier_to_locale): Likewise.
24937         (general_init): Likewise.
24938
24939         * stringpool.c (stringpool_ggc_alloc): Likewise.
24940         (gt_pch_save_stringpool): Likewise.
24941
24942         * sese.c (if_region_set_false_region): Likewise.
24943
24944         * passes.c (do_per_function_toporder): Likewise.
24945
24946         * optabs.c (set_optab_libfunc): Likewise.
24947         (set_conv_libfunc): Likewise.
24948
24949         * lto-symtab.c (lto_symtab_register_decl): Likewise.
24950
24951         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
24952         (input_eh_region): Likewise.
24953         (input_eh_lp): Likewise.
24954         (make_new_block): Likewise.
24955         (unpack_ts_real_cst_value_fields): Likewise.
24956
24957         * lto-section-in.c (lto_new_in_decl_state): Likewise.
24958
24959         * lto-cgraph.c (input_node_opt_summary): Likewise.
24960
24961         * loop-init.c (loop_optimizer_init): Likewise.
24962
24963         * lambda.h (lambda_vector_new): Likewise.
24964
24965         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
24966
24967         * ira.c (update_equiv_regs): Likewise.
24968
24969         * ipa.c (cgraph_node_set_new): Likewise.
24970         (cgraph_node_set_add): Likewise.
24971         (varpool_node_set_new): Likewise.
24972         (varpool_node_set_add): Likewise.
24973
24974         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
24975         (duplicate_ipa_jump_func_array): Likewise.
24976         (ipa_read_node_info): Likewise.
24977
24978         * ipa-cp.c (ipcp_create_replace_map): Likewise.
24979
24980         * integrate.c (get_hard_reg_initial_val): Likewise.
24981
24982         * gimple.c (gimple_alloc_stat): Likewise.
24983         (gimple_build_omp_for): Likewise.
24984         (gimple_seq_alloc): Likewise.
24985         (gimple_copy): Likewise.
24986
24987         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
24988         (gsi_insert_after_without_update): Likewise.
24989
24990         * function.c (add_frame_space): Likewise.
24991         (insert_temp_slot_address): Likewise.
24992         (assign_stack_temp_for_type): Likewise.
24993         (allocate_struct_function): Likewise.
24994         (types_used_by_var_decl_insert): Likewise.
24995
24996         * except.c (init_eh_for_function): Likewise.
24997         (gen_eh_region): Likewise.
24998         (gen_eh_region_catch): Likewise.
24999         (gen_eh_landing_pad): Likewise.
25000         (add_call_site): Likewise.
25001
25002         * emit-rtl.c (get_mem_attrs): Likewise.
25003         (get_reg_attrs): Likewise.
25004         (start_sequence): Likewise.
25005         (init_emit): Likewise.
25006
25007         * dwarf2out.c (new_cfi): Likewise.
25008         (queue_reg_save): Likewise.
25009         (dwarf2out_frame_init): Likewise.
25010         (new_loc_descr): Likewise.
25011         (find_AT_string): Likewise.
25012         (new_die): Likewise.
25013         (add_var_loc_to_decl): Likewise.
25014         (clone_die): Likewise.
25015         (clone_as_declaration): Likewise.
25016         (break_out_comdat_types): Likewise.
25017         (new_loc_list): Likewise.
25018         (loc_descriptor): Likewise.
25019         (add_loc_descr_to_each): Likewise.
25020         (add_const_value_attribute): Likewise.
25021         (tree_add_const_value_attribute): Likewise.
25022         (add_comp_dir_attribute): Likewise.
25023         (add_name_and_src_coords_attributes): Likewise.
25024         (lookup_filename): Likewise.
25025         (store_vcall_insn): Likewise.
25026         (dwarf2out_init): Likewise.
25027
25028         * dbxout.c (dbxout_init): Likewise.
25029
25030         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
25031
25032         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
25033
25034         * config/score/score7.c (score7_output_external): Likewise.
25035
25036         * config/score/score3.c (score3_output_external): Likewise.
25037
25038         * config/s390/s390.c (s390_init_machine_status): Likewise.
25039
25040         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
25041         (rs6000_init_machine_status): Likewise.
25042         (output_toc): Likewise.
25043
25044         * config/pa/pa.c (pa_init_machine_status): Likewise.
25045         (get_deferred_plabel): Likewise.
25046
25047         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
25048
25049         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
25050
25051         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
25052
25053         * config/mep/mep.c (mep_init_machine_status): Likewise.
25054         (mep_note_pragma_flag): Likewise.
25055
25056         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
25057
25058         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
25059
25060         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
25061
25062         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
25063         (i386_pe_maybe_record_exported_symbol): Likewise.
25064
25065         * config/i386/i386.c (get_dllimport_decl): Likewise.
25066         (ix86_init_machine_status): Likewise.
25067         (assign_386_stack_local): Likewise.
25068
25069         * config/frv/frv.c (frv_init_machine_status): Likewise.
25070
25071         * config/darwin.c (machopic_indirection_name): Likewise.
25072
25073         * config/cris/cris.c (cris_init_machine_status): Likewise.
25074
25075         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
25076
25077         * config/avr/avr.c (avr_init_machine_status): Likewise.
25078
25079         * config/arm/arm.c (arm_init_machine_status): Likewise.
25080
25081         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
25082         (alpha_need_linkage): Likewise.
25083         (alpha_use_linkage): Likewise.
25084
25085         * cgraph.c (cgraph_allocate_node): Likewise.
25086         (cgraph_create_edge_1): Likewise.
25087         (cgraph_create_indirect_edge): Likewise.
25088         (cgraph_add_asm_node): Likewise.
25089
25090         * cfgrtl.c (init_rtl_bb_info): Likewise.
25091
25092         * cfgloop.c (alloc_loop): Likewise.
25093         (rescan_loop_exit): Likewise.
25094
25095         * cfg.c (init_flow): Likewise.
25096         (alloc_block): Likewise.
25097         (unchecked_make_edge): Likewise.
25098
25099         * c-parser.c (c_parse_init): Likewise.
25100         (c_parse_file): Likewise.
25101
25102         * c-decl.c (bind): Likewise.
25103         (record_inline_static): Likewise.
25104         (push_scope): Likewise.
25105         (make_label): Likewise.
25106         (lookup_label_for_goto): Likewise.
25107         (finish_struct): Likewise.
25108         (finish_enum): Likewise.
25109         (c_push_function_context): Likewise.
25110
25111         * bitmap.c (bitmap_element_allocate): Likewise.
25112         (bitmap_gc_alloc_stat): Likewise.
25113
25114         * alias.c (record_alias_subset): Likewise.
25115         (init_alias_analysis): Likewise.
25116
25117 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
25118
25119         * fold-const.c (fold_comparison): Remove redundant parenthesis.
25120         * tree-inline.c (expand_call_inline): Pass translated return value of
25121         cgraph_inline_failed_string to diagnostic function.
25122
25123 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
25124             Shujing Zhao  <pearly.zhao@oracle.com>
25125
25126         PR c/37724
25127         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
25128         implicit bad conversions is initialization.
25129         (error_init): Use gmsgid instead of msgid for argument name and change
25130         the call for error.
25131         (pedwarn_init): Use gmsgid instead of msgid for argument name and
25132         change the call for pedwarn.
25133         (warning_init): Use gmsgid instead of msgid for argument name and
25134         change the call for warning.
25135
25136 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
25137
25138         * config/mips/mips-protos.h (mips_print_operand): Delete.
25139         (mips_print_operand_address): Delete.
25140         * config/mips/mips.h (mips_print_operand_punct): Delete.
25141         (PRINT_OPERAND): Delete.
25142         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25143         (PRINT_OPERAND_ADDRESS): Delete.
25144         * config/mips/mips.c (mips_print_operand_punct): Make static.
25145         (mips_print_operand_address): Make static.
25146         (mips_print_operand): Make static.  Call
25147         mips_print_operand_punct_valid_p.
25148         (mips_print_operand_punct_valid_p): New function.
25149         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25150         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25151
25152 2010-06-07  Jan Hubicka  <jh@suse.cz>
25153
25154         PR middle-end/44454
25155         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
25156         are allocated.
25157
25158 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
25159
25160         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
25161         name of RECORD.
25162
25163 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25164
25165         * doc/sourcebuild.texi (Effective-Target Keywords, Other
25166         attributes): Document gas.
25167
25168 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
25169
25170         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
25171         <TYPE_LEA>: Split instruction.
25172         <default>: Remove alternative 2 handling.
25173         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
25174         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
25175         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
25176
25177         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
25178         (ashift_zext lea splitter): Use DImode for multiplication.
25179
25180         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
25181         to generate addition.
25182
25183 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
25184
25185         * common.opt (fira-verbose): Use Var.
25186         (fpcc-struct-return): Use Init instead of VarExists.
25187         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
25188         toplev.c.
25189         * flags.h (flag_signed_char, flag_short_enums,
25190         flag_pcc_struct_return, flag_ira_verbose,
25191         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
25192         * toplev.c (flag_detailed_statistics, flag_signed_char,
25193         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
25194         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
25195         * toplev.h (flag_crossjumping, flag_if_conversion,
25196         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
25197         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
25198         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
25199         flag_cprop_registers, time_report, flag_ira_loop_pressure,
25200         flag_ira_coalesce, flag_ira_move_spills,
25201         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
25202
25203 2010-06-07  Jan Hubicka  <jh@suse.cz>
25204
25205         * df-core.c (df_analyze_problem): Do verification after allocation.
25206
25207         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
25208         (df_lr_alloc): Initialize problem data; move bitmaps to
25209         lr_bitmaps obstack.
25210         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
25211         (df_lr_verify_solution_start): Do not initialize problem data;
25212         allocate bitmaps in lr_bitmaps.
25213         (df_lr_verify_solution_end): Do not free problem data.
25214
25215 2010-06-07  Jan Hubicka  <jh@suse.cz>
25216
25217         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
25218         if caller is noreturn.
25219         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
25220         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
25221         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
25222         * ipa-pure-const.c (check_decl): Add IPA parameter.
25223         (state_from_flags): New function.
25224         (better_state, worse_state): New functions.
25225         (check_call): When in IPA mode, do not care about callees.
25226         (check_load, check_store): Update.
25227         (check_ipa_load, check_ipa_store): New.
25228         (check_stmt): When in IPA mode, use IPA checkers.
25229         (analyze_function): Use state_from_flags.
25230         (propagate): Check indirect edges and references.
25231
25232 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
25233
25234         PR rtl-optimization/44404
25235         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
25236         of count_occurrences to see if it's safe to modify mem_insn.
25237
25238 2010-06-07  Richard Guenther  <rguenther@suse.de>
25239
25240         * gimplify.c (gimplify_cleanup_point_expr): For empty body
25241         and EH-only cleanup drop the cleanup instead of inserting it
25242         unconditionally.
25243
25244 2010-06-07  Ira Rosen  <irar@il.ibm.com>
25245
25246         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
25247         documentation.
25248         * targhooks.c (default_builtin_vectorization_cost): New function.
25249         * targhooks.h (default_builtin_vectorization_cost): Declare.
25250         * target.h (enum vect_cost_for_stmt): Define.
25251         (builtin_vectorization_cost): Change argument and comment.
25252         * tree-vectorizer.h: Remove cost model macros.
25253         * tree-vect-loop.c: Include target.h.
25254         (vect_get_cost): New function.
25255         (vect_estimate_min_profitable_iters): Replace cost model macros with
25256         calls to vect_get_cost.
25257         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
25258         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
25259         default implementation.
25260         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
25261         calls to target hook builtin_vectorization_cost.
25262         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
25263         Likewise.
25264         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
25265         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
25266         implementation to return costs.
25267         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
25268         * config/spu/spu.h: Remove vectorizer cost model macros.
25269         * config/i386/i386.h: Likewise.
25270         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
25271         a call to target hook builtin_vectorization_cost.
25272
25273 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
25274
25275         PR target/44319
25276         * config/i386/i386.c (override_options): Turn zee pass on for level 2
25277         and above and defer till target is known.
25278         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
25279         turn off otherwise.
25280
25281 2010-05-25  Jan Hubicka  <jh@suse.cz>
25282
25283         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
25284         (df_compact_blocks): Likewise.
25285         * df.h (struct df): Turn hardware_regs_used,
25286         regular_block_artificial_uses, eh_block_artificial_uses,
25287         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
25288         bitmap_head.
25289         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
25290         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
25291         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
25292         df_scan_blocks, df_insn_delete, df_insn_rescan,
25293         df_insn_rescan_debug_internal, df_insn_rescan_all,
25294         df_process_deferred_rescans, df_process_deferred_rescans,
25295         df_notes_rescan, df_get_call_refs, df_get_call_refs,
25296         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
25297         df_record_entry_block_defs, df_record_exit_block_uses,
25298         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
25299         df_scan_verify): Update.
25300
25301 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
25302
25303         PR c++/44188
25304         * c-common.c (is_typedef_decl): Move this definition ...
25305         * tree.c (is_typedef_decl): ... here.
25306         (typdef_variant_p): Move definition here from cp/tree.c.
25307         * c-common.h (is_typedef_decl): Move this declaration ...
25308         * tree.h (is_typedef_decl): ... here.
25309         (typedef_variant_p): Move declaration here from cp/cp-tree.h
25310         * dwarf2out.c (is_naming_typedef_decl): New function.
25311         (gen_tagged_type_die): Split out of ...
25312         (gen_type_die_with_usage): ... this function. When an anonymous
25313         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
25314         is emitted for the typedef.
25315         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
25316         anonymous tagged types.
25317
25318 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25319
25320         PR c/20000
25321         * c-decl.c (grokdeclarator): Delete warning.
25322
25323 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
25324
25325         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
25326         newly built CALL_EXPR.
25327         * tree-profile.c (tree_profiling): Don't profile functions produced
25328         for built-in stuff.
25329
25330 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
25331
25332         PR bootstrap/44427
25333         PR bootstrap/44428
25334         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
25335         endianness-independent.
25336
25337 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
25338
25339         * c-common.c: Move to c-family/.
25340         * c-common.def: Likewise.
25341         * c-common.h: Likewise.
25342         * c-cppbuiltin.c: Likewise.
25343         * c-dump.c: Likewise.
25344         * c-format.c: Likewise.
25345         * c-format.h : Likewise.
25346         * c-gimplify.c: Likewise.
25347         * c-lex.c: Likewise.
25348         * c-omp.c: Likewise.
25349         * c.opt: Likewise.
25350         * c-opts.c: Likewise.
25351         * c-pch.c: Likewise.
25352         * c-ppoutput.c: Likewise.
25353         * c-pragma.c: Likewise.
25354         * c-pragma.h: Likewise.
25355         * c-pretty-print.c: Likewise.
25356         * c-pretty-print.h: Likewise.
25357         * c-semantics.c: Likewise.
25358         * stub-objc.c: Likewise.
25359
25360         * gengtype.c (get_file_langdir): Special-case files in c-family/.
25361         (get_output_file_with_visibility): Fix name for c-common.h.
25362         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
25363
25364         * c-tree.h: Update include path for moved files.
25365         * c-lang.c: Likewise.
25366         * c-lang.h: Likewise.
25367         * c-parser.c: Likewise.
25368         * c-convert.c: Likewise.
25369         * c-decl.c: Likewise.
25370         * c-objc-common.c: Likewise.
25371         * configure.ac: Make sure c-family/ exists in the build directory.
25372         * configure: Regenerate.
25373         * Makefile.in: Update paths for moved files.  Regroup files per
25374         location and update dependencies.  Move generated_files down after
25375         ALL_GTFILES_H.
25376
25377         * config/spu/spu-c.c: Update paths for moved files.
25378         * config/mep/mep-pragma.c: Likewise.
25379         * config/darwin-c.c: Likewise.
25380         * config/i386/msformat-c.c: Likewise.
25381         * config/i386/i386-c.c: Likewise.
25382         * config/avr/avr-c.c: Likewise.
25383         * config/sol2-c.c: Likewise.
25384         * config/ia64/ia64-c.c: Likewise.
25385         * config/rs6000/rs6000-c.c: Likewise.
25386         * config/arm/arm.c: Likewise.
25387         * config/arm/arm-c.c: Likewise.
25388         * config/h8300/h8300.c: Likewise.
25389         * config/v850/v850-c.c: Likewise.
25390
25391         * config/t-darwin: Fix dependencies for moved files.
25392         * config/t-sol2: Fix dependencies for moved files.
25393         * config/mep/t-mep: Fix dependencies for moved files.
25394         * config/ia64/t-ia64: Fix dependencies for moved files.
25395         * config/rs6000/t-rs6000: Fix dependencies for moved files.
25396         * config/v850/t-v850: Fix dependencies for moved files.
25397         * config/v850/t-v850e: Fix dependencies for moved files.
25398
25399         * config/m32c/m32c-pragma.c
25400
25401         * po/exgettext: Look in c-family/ also.
25402
25403 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
25404
25405         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
25406         (mark_control_dependent_edges_necessary): Call it instead of marking
25407         the last statement manually.
25408         (propagate_necessity): Likewise.
25409
25410 2010-06-05  Jan Hubicka  <jh@suse.cz>
25411
25412         * basic-block.h (compute_dominance_frontiers): Updated.
25413         (compute_idf): Likewise.
25414
25415         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
25416         for dominance frontiers.
25417         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
25418         (insert_updated_phi_nodes_for): Likewise.
25419         (update_ssa): Likewise.
25420         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25421         (compute_dominance_frontiers): Likewise.
25422         (compute_idf): Likewise.
25423         * df-problems.c (df_md_local_compute): Likewise.
25424
25425 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
25426
25427         * target.h (struct gcc_target): Add memory_move_cost field.
25428         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
25429         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
25430         * targhooks.c (default_memory_move_cost): New function.
25431         * targhooks.h (default_memory_move_cost): Declare function.
25432         * reload.h (memory_move_cost): Declare.
25433         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25434         * reginfo.c (memory_move_cost): New function.
25435         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25436         * ira.h (ira_memory_move_cost): Update comment.
25437         * ira.c (ira_memory_move_cost): Update comment.
25438         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
25439         with memory_move_cost.
25440         * postreload.c (reload_cse_simplify_set): (Ditto.).
25441         * reload1.c (choose_reload_regs): (Ditto.).
25442         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
25443         (MEMORY_MOVE_COST):  Revise documentation.
25444
25445         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
25446         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
25447         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
25448         type of 'in' argument to bool.
25449         (TARGET_MEMORY_MOVE_COST): Define.
25450
25451 2010-06-05  Jan Hubicka  <jh@suse.cz>
25452
25453         * ipa-pure-const.c (propagate): Fix typo in handling of functions
25454         that cannot return.  Be more careful when merging the results with
25455         previously known ones.
25456
25457 2010-06-05  Matthias Klose  <doko@ubuntu.com>
25458
25459         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
25460         function to add the -iplugindir option.
25461         (find_plugindir_spec_function): Add new declaration and function.
25462         (static_spec_func): Use it for "find-plugindir".
25463
25464 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
25465
25466         PR c++/44361
25467         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
25468         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
25469         statement expression.
25470
25471 2010-06-05  Jan Hubicka  <jh@suse.cz>
25472
25473         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
25474         (df_rd_problem_data): Convert sparse_invalidated_by_call,
25475         dense_invalidated_by_call to bitmap head.
25476         (df_rd_alloc, df_rd_bb_local_compute_process_def,
25477         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
25478         df_rd_start_dump, df_lr_verify_transfer_functions,
25479         df_live_verify_transfer_functions, df_chain_create_bb,
25480         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
25481         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
25482         df_simulate_one_insn_forwards, df_md_alloc,
25483         df_md_bb_local_compute_process_def,
25484         df_md_bb_local_compute_process_def, df_md_local_compute,
25485         df_md_transfer_function df_md_free): Update.
25486
25487 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
25488
25489         PR c/44322
25490         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
25491         target type for ADDR_EXPR; require no changes to qualifiers except
25492         for function types.
25493         * c-tree.h (c_build_type_variant): Remove.
25494
25495 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25496
25497         * genautomata.c (get_excl_set): Do work per element, not per char.
25498         (check_presence_pattern_sets): Similar.
25499         (check_absence_pattern_sets): Similar.
25500
25501 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25502
25503         * genautomata.c (curr_state_pass_num): Delete.
25504         (min_issue_delay_pass_states): Delete.
25505         (min_issue_delay): Delete.
25506         (initiate_min_issue_delay_pass_states): Delete.
25507         (output_min_issue_delay_table): Compute min_issue_delay_vect
25508         using a breadth-first search variant.
25509         (output_tables): Don't call initiate_min_issue_delay_pass_states.
25510
25511 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
25512
25513         PR boostrap/44421
25514         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
25515         (df_byte_lr_bb_local_compute): Likewise.
25516
25517 2010-06-03  Jason Merrill  <jason@redhat.com>
25518
25519         Implement noexcept operator (5.3.7)
25520         * c-common.c (c_common_reswords): Add noexcept.
25521         * c-common.h (enum rid): Add RID_NOEXCEPT.
25522
25523 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
25524
25525         * config/darwin-driver.c (darwin_default_min_version): Use
25526         GCC-specific formats in diagnostics.
25527         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
25528         diagnostics.
25529         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
25530         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
25531         eval_spec_function, handle_braces, process_brace_body, main,
25532         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
25533         getenv_spec_function, compare_version_strings,
25534         version_compare_spec_function): Use GCC-specific formats in
25535         diagnostics.
25536
25537 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25538
25539         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
25540         that operand 0 and operand 1 are equal.
25541         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
25542         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
25543         and operand 1 are equal.
25544         <default>: Ditto.  Remove ??? comment.
25545         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
25546         and operand 1 are equal.
25547         <default>: Ditto.  Remove ??? comment.
25548         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
25549         are equal.
25550         (*add<mode>_4) <default>: Ditto.
25551         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
25552
25553 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
25554
25555         * config/i386/i386-protos.h (ix86_print_operand): Declare.
25556         * config/i386/i386.c (ix86_print_operand): Make non-static.
25557         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
25558         * output.h (output_operand): Declare.
25559         * final.c (output_operand): Make non-static.
25560
25561 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
25562
25563         PR rtl-optimization/44013
25564         * sched-deps.c (add_dependence_list_and_free): Don't free lists
25565         when processing debug insns.
25566
25567         PR debug/41371
25568         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
25569         recursing.  Check that recursion is bounded.  Rename inner var
25570         to avoid hiding incoming argument.
25571
25572 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25573
25574         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
25575         operands[2] == 255.
25576         (*addqi_3): Ditto.
25577         (*addqi_4): Ditto.
25578         (*addqi_5): Ditto.
25579         (*addqi_ext_1_rex64): Ditto.
25580         (*addqi_ext_1): Ditto.
25581
25582         (*addqi_4): Check for incdec_operand in QImode.
25583
25584         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
25585         using SWI mode iterator.
25586         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
25587         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
25588         mode iterator.
25589         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
25590         using SWI mode iterator.
25591
25592 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25593
25594         PR c/25880
25595         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
25596         * c-format.c (gcc_diag_flag_specs): Add hash.
25597         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
25598         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
25599         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
25600         pp_c_cv_qualifiers. Handle qualifiers spelling here.
25601         (pp_c_type_qualifier_list): Call the function above.
25602         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
25603         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
25604         (WARN_FOR_QUALIFIERS): New macro.
25605         (convert_for_assignment): Use it.
25606
25607 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
25608
25609         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
25610
25611 2010-06-04  Jan Hubicka  <jh@suse.cz>
25612
25613         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
25614         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
25615         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
25616         DF_BYTE_LR_OUT): Update for embedded bitmaps.
25617         * fwprop.c (single_def_use_enter_block): Likewise.
25618         * ddg.c (create_ddg_dep_from_intra_loop_link,
25619         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
25620         * loop-iv.c (latch_dominating_def): Likewise.
25621         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
25622         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
25623         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
25624         df_rd_transfer_function, df_rd_top_dump,
25625         df_rd_bottom_dump): Update.
25626         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
25627         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
25628         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
25629         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
25630         df_lr_verify_solution_start, df_lr_verify_solution_end,
25631         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
25632         df_live_free_bb_info, df_live_alloc, df_live_reset,
25633         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
25634         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
25635         df_live_verify_solution_start, df_live_verify_solution_end,
25636         df_live_verify_transfer_functions, df_chain_create_bb,
25637         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
25638         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25639         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25640         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
25641         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
25642         df_byte_lr_transfer_function, df_byte_lr_top_dump,
25643         df_byte_lr_bottom_dump, df_create_unused_note,
25644         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
25645         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
25646         df_md_transfer_function, df_md_init, df_md_confluence_0,
25647         df_md_confluence_n,
25648         df_md_top_dump, df_md_bottom_dump): Update.
25649         (struct df_lr_problem_data): Embedd bitmap headers.
25650
25651 2010-06-04  Jan Hubicka  <jh@suse.cz>
25652
25653         * dce.c (dce_process_block): Do not re-scan already marked
25654         instructions.
25655
25656 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
25657
25658         PR rtl-optimization/39871
25659         PR rtl-optimization/40615
25660         PR rtl-optimization/42500
25661         PR rtl-optimization/42502
25662         * ira.c (init_reg_equiv_memory_loc: New function.
25663         (ira): Call it twice.
25664         * reload.h (calculate_elim_costs_all_insns): Declare.
25665         * ira-costs.c: Include "reload.h".
25666         (regno_equiv_gains): New static variable.
25667         (init_costs): Allocate it.
25668         (finish_costs): Free it.
25669         (ira_costs): Call calculate_elim_costs_all_insns.
25670         (find_costs_and_classes): Take estimated elimination costs
25671         into account.
25672         (ira_adjust_equiv_reg_cost): New function.
25673         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
25674         * reload1.c (init_eliminable_invariants, free_reg_equiv,
25675         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
25676         (elim_bb): New static variable.
25677         (reload): Move code out of here into init_eliminable_invariants and
25678         free_reg_equiv.  Call them.
25679         (calculate_elim_costs_all_insns): New function.
25680         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
25681         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
25682         but call note_reg_elim_costly if we turned a valid memory address
25683         into an invalid one.
25684         * Makefile.in (ira-costs.o): Depend on reload.h.
25685
25686 2010-06-04  Julian Brown  <julian@codesourcery.com>
25687
25688         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
25689         for pool ranges.
25690
25691 2010-06-04  Richard Guenther  <rguenther@suse.de>
25692
25693         PR lto/41584
25694         * cgraph.h (struct varpool_node): Add lto_file_data field.
25695         * lto-cgraph.c (input_varpool_node): Initialize it.
25696
25697 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25698
25699         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
25700         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
25701         predicate in "type" attribute calculation.
25702         (*addsi_1_zext): Ditto.
25703         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
25704         (*addsi_2_zext): Ditto.
25705         (*add<mode>_3): Ditto.
25706         (*addsi_3_zext): Ditto.
25707         (*add<mode>_5): Ditto.
25708
25709 2010-06-03  Jan Hubicka  <jh@suse.cz>
25710
25711         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
25712         of bitmap_bit_p.
25713         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25714
25715 2010-06-03  Jan Hubicka  <jh@suse.cz>
25716
25717         * df-problems.c (df_create_unused_note, df_note_bb_compute):
25718         micro-optimize the checks when to add new note.
25719
25720 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
25721
25722         * final.c (output_asm_insn): Call
25723         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
25724         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
25725         (output_address): Call targetm.asm_out.print_operand_address.
25726         Update comments.
25727         * target.h (struct gcc_target): Add print_operand,
25728         print_operand_address, and print_operand_punct_valid_p fields.
25729         * targhooks.h (default_print_operand): Declare.
25730         (default_print_operand_address): Declare.
25731         (default_print_operand_punct_valid_p): Declare.
25732         * targhooks.c (default_print_operand): Define.
25733         (default_print_operand_address): Define.
25734         (default_print_operand_punct_valid_p): Define.
25735         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
25736         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
25737         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
25738         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
25739         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
25740         * vmsdbgout.c (addr_const_to_string): Update comment.
25741         * config/i386/i386.c (print_operand): Rename to...
25742         (ix86_print_operand): ...this.  Make static.
25743         (print_operand_address): Rename to...
25744         (ix86_print_operand_address): ...this.  Make static.  Call
25745         ix86_print_operand instead of PRINT_OPERAND.
25746         (ix86_print_operand_punct_valid_p): New function.
25747         (TARGET_PRINT_OPERAND): Define.
25748         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25749         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25750         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
25751         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25752         (PRINT_OPERAND): Delete.
25753         (PRINT_OPERAND_ADDRESS): Delete.
25754         * config/i386/i386-protos.h (print_operand): Delete prototype.
25755         (print_operand_address): Delete prototype.
25756
25757 2010-06-03  Richard Guenther  <rguenther@suse.de>
25758
25759         PR tree-optimization/44403
25760         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
25761         Preserve pointer qualifiers.
25762         (vect_create_data_ref_ptr): Likewise.
25763
25764 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
25765
25766         PR c++/44294
25767         * defaults.h (MAX_FIXED_MODE_SIZE): New.
25768
25769         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
25770
25771 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
25772
25773         PR debug/44375
25774         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
25775         return false if merging the bbs would lead to goto_locus
25776         location being lost from the IL.
25777
25778 2010-06-03  Jan Hubicka  <jh@suse.cz>
25779             Jakub Jelinek  <jakub@redhat.com>
25780
25781         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
25782         set->regs[i] is NULL or has just one entry.
25783
25784 2010-06-03  Jan Hubicka  <jh@suse.cz>
25785
25786         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
25787         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
25788
25789 2010-06-03  Paul Brook  <paul@codesourcery.com>
25790
25791         * config/arm/arm.c (FL_TUNE): Define.
25792         (arm_default_cpu, arm_cpu_select): Remove.
25793         (all_cores): Populate core field.
25794         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
25795         (arm_find_cpu): New function.
25796         (arm_handle_option): Lookup cpu/architecture names.
25797         (arm_override_options): Cleanup mcpu/march/mtune handling.
25798         (arm_file_start): Ditto.
25799
25800 2010-06-03  Alan Modra  <amodra@gmail.com>
25801
25802         PR target/44169
25803         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
25804         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
25805         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
25806         (rs6000_emit_load_toc_table): Likewise.
25807
25808 2010-06-02  Jan Hubicka  <jh@suse.cz>
25809
25810         * passes.c (init_optimization_passes): Put ipa reference
25811         after ipa pure-const.
25812
25813 2010-06-02  Jan Hubicka  <jh@suse.cz>
25814
25815         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
25816         calls_read_all and calls_write_all.
25817         (get_reference_optimization_summary): Fix formatting.
25818         (is_proper_for_analysis): Check that decl is not readonly.
25819         (propagate_bits): Check CONST/PURE/noreturn flags.
25820         (ipa_init): Move all_module_statics to optimization_summary_obstack.
25821         (analyze_function): Ignore indirect edges.
25822         (copy_global_bitmap): For all module statics, do nothing.
25823         (generate_summary): Do not print calls_read_all/calls_write_all.
25824         (read_write_all_from_decl): Take node as argument; check
25825         cgraph_node_cannot_return.
25826         (propagate): Reorganize read_all/write_all computation;
25827         check indirect edges; check ecf flags; use all_module_statics
25828         in the results; do not free all_module_statics.
25829         (stream_out_bitmap): Handle all_module_statics.
25830         (ipa_reference_write_optimization_summary): Likewise; use
25831         varpool/cgraph encoders to get boundaries.
25832         (ipa_reference_read_optimization_summary): Read in all_module_statics;
25833         use it when possible.
25834
25835 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25836
25837         PR target/44218
25838         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
25839         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
25840
25841         * doc/extend.texi (powerpc builtins): Document vec_recip,
25842         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
25843
25844         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
25845         (rs6000_emit_swrsqrt): Ditto.
25846         (rs6000_emit_swdivsf): Delete.
25847         (rs6000_emit_swdivdf): Ditto.
25848         (rs6000_emit_swrsqrtsf): Ditto.
25849
25850         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
25851         describe the reciprocal estimate support for each type.
25852         (recip_options): Map -mrecip=<opt> into option bits.
25853         (gen_2arg_fn_t): New typedef for binary rtx gen function.
25854         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
25855         reciprocal estimate instructions.
25856         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
25857         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
25858         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
25859         cost information if -mdebug=cost or -mdebug=reg.
25860         (rs6000_override_options): Set -mrecip-precision for power6, and
25861         power7 machines.  If -mvsx or -mdfp, enable various options that
25862         came in previous instruction set ISAs, unless the option was
25863         explicitly disabled by the command line option.  Parse
25864         -mrecip=<opt> options.
25865         (rs6000_builtin_vectorized_function): Add support for vectorizing
25866         the reciprocal estimate builtins and expansions.
25867         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
25868         (bdesc_2arg): Add reciprocal estimate builtins.
25869         (bdesc_1arg): Add reciprocal square root estimate builtins.
25870         (rs6000_expand_builtin): Rewrite to use a switch statement,
25871         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
25872         (rs6000_init_builtins): Create declarations for reciprocal
25873         estimate builtins.
25874         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
25875         sized, prefer traditional floating point registers, if integer
25876         vector types, prefer altivec registers.  Don't actually look at
25877         the memory address any more.
25878         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
25879         builtins.
25880         (rs6000_load_constant_and_splat): New helper function to load up
25881         the constant for reciprocal estimate instructions.
25882         (rs6000_emit_madd): New helper function for generating
25883         multiply/add type instructions, based on the current switches.
25884         (rs6000_emit_msub): Ditto.
25885         (rs6000_emit_mnsub): Ditto.
25886         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
25887         replace a divide with a reciprocal estimate and fixup, adding
25888         support for machines with high precision and vectors.
25889         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
25890         low precision machines.
25891         (rs6000_emit_swdiv): New common function to be called to replace a
25892         division with reciprocal estimate and fixup.
25893         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
25894         for double and vector types.  Add support for high precision machines.
25895
25896         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
25897         the reciprocal estimate instructions can be generated.
25898         (TARGET_FRE): Ditto.
25899         (TARGET_FRSQRTES): Ditto.
25900         (TARGET_FRSQRTE): Ditto.
25901         (RS6000_RECIP_*): New macros for reciprocal estimate support.
25902
25903         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
25904         square root estimate on vectors.
25905         (re<mode>2): New insn for reciprocal division estimate on vectors.
25906
25907         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
25908         New builtin.
25909         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
25910         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
25911         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
25912         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
25913         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
25914         (RS6000_BUILTIN_RSQRT): Ditto.
25915         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
25916         floating point builtin.
25917
25918         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
25919         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
25920         __RECIP_PRECISION__ based on the command line switches.
25921         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
25922
25923         * config/rs6000/rs6000.opt (-mrecip): Document add support for
25924         replacing division instructions with reciprocal estimate and fixup.
25925         (-mrecip=<opt>): New option.
25926         (-mrecip-precision): Ditto.
25927
25928         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
25929         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
25930         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
25931         precision scalar.
25932
25933         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
25934         (UNSPEC_VREFP): Ditto.
25935         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
25936         conterparts with regard to support of -mno-fused-madd and -ffast-math.
25937         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
25938         reciprocal estimate instructions to be generated.
25939         (altivec_vrefp): Ditto.
25940
25941         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
25942         estimate support.
25943         (rreg): New mode attribute for reciprocal estimate support.
25944         (recip<mode>3): New insn for division using reciprocal estimate
25945         and fixup builtins.
25946         (divide define_split): New define_split to convert floating point
25947         division to use reciprocal estimate if the user used the
25948         appropriate options and the split is run when we can add new
25949         pseudo registers for the fixup.
25950         (rsqrt<mode>2): New insn for reciprocal square root support.
25951         (recipsf3): Move into recip<mode>3.
25952         (recipdf3): Ditto.
25953         (fres): Use TARGET_FRES.
25954         (rsqrtsf2): Move into rsqrt<mode>2.
25955         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
25956         (copysignsf3): Add support for VSX.
25957         (fred): Use TARGET_FRE.
25958         (fred_fpr): Ditto.
25959         (rsqrtdf_internal1): New function for frsqrte instruciton.
25960
25961         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
25962         (vec_rsqrt): Ditto.
25963
25964 2010-06-03  Richard Guenther  <rguenther@suse.de>
25965
25966         PR middle-end/44291
25967         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
25968         (set_user_assembler_libfunc): Likewise.
25969
25970 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25971
25972         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
25973         defaults.h.
25974         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
25975         to defaults.h
25976         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
25977         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
25978         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
25979         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
25980         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
25981         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
25982         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
25983         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
25984         * defaults.h: Updated for above mentioned changes.
25985
25986 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
25987
25988         * c-common.c: Remove header include of tm_p.h.
25989         * Makefile.in (c-common.o): Remove TM_P_H dependency.
25990
25991 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
25992
25993         * tree.h (struct tree_decl_map): New type.
25994         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
25995         (tree_decl_map_hash): New prototype.
25996         (debug_expr_for_decl, value_expr_for_decl): Change into
25997         tree_decl_map hashtab from tree_map.
25998         (init_ttree): Adjust initialization.
25999         (tree_decl_map_hash): New function.
26000         (decl_debug_expr_lookup, decl_debug_expr_insert,
26001         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
26002
26003 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26004
26005         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
26006         linker emulations.
26007         * configure: Regenerate.
26008         * config.in: Regenerate.
26009
26010         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
26011         (X86_64_EMULATION): Define.
26012         (TARGET_LD_EMULATION): Use them.
26013
26014         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
26015         (SPARC64_EMULATION): Define.
26016         (LINK_ARCH_SPEC): Use them.
26017
26018 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26019
26020         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
26021         smallest_mode_for_size for computing the precision types of new
26022         graphite IVs.  Do not call lang_hooks.types.type_for_size.
26023
26024 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26025
26026         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
26027         information.
26028         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
26029
26030 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26031
26032         PR middle-end/44363
26033         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
26034         return false instead.
26035
26036 2010-06-02  Jan Hubicka  <jh@suse.cz>
26037
26038         PR middle-end/44295
26039         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
26040         create new cgraph node to check callee.
26041
26042 2010-06-02  Richard Guenther  <rguenther@suse.de>
26043
26044         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
26045
26046 2010-06-02  Richard Guenther  <rguenther@suse.de>
26047
26048         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
26049         (lto_wrapper_cleanup): ... this.  Do not exit.
26050         (fatal): Adjust.  Exit here.
26051         (fatal_perror): Likewise.
26052         (fatal_signal): New function.
26053         (main): Set up signal handlers to cleanup temporary files.
26054         * Makefile.in (lto-wrapper.o): Adjust dependencies.
26055
26056 2010-06-02  Richard Guenther  <rguenther@suse.de>
26057
26058         PR tree-optimization/44377
26059         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
26060
26061 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26062
26063         * config/s390/2097.md (z10_fhex): Remove insn reservation.
26064         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
26065         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
26066         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
26067         instruction.
26068         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
26069
26070 2010-06-02  Jan Hubicka  <jh@suse.cz>
26071
26072         * bitmap.c (bitmap_descriptor): Add search_iter.
26073         (bitmap_find_bit): Increment it.
26074         (print_statistics): Print it.
26075
26076 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
26077
26078         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
26079         instead of gimple_build_call_vec.  Delete unnecessary local variable.
26080
26081 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26082
26083         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
26084         change from yesterday.
26085
26086 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26087
26088         * c-ada-spec.c: Clean up redundant includes.
26089
26090 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
26091
26092         * gimplify.c: Do not include except.h and optabs.h.
26093         (gimplify_body): Do not initialize RTL profiling.
26094         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
26095         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
26096         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
26097         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
26098         langhooks.h.
26099
26100         * tree-pretty-print.h: Include pretty-print.h.
26101         * gimple-pretty-print.h: Include pretty-print.h.
26102
26103         * tree-pretty-print.c: Do not include diagnostic.h.
26104         * tree-vrp.c: Likewise.
26105         * tree-tailcall.c: Likewise
26106         * tree-scalar-evolution.c: Likewise
26107         * tree-ssa-dse.c: Likewise
26108         * tree-chrec.c: Likewise
26109         * tree-ssa-sccvn.c: Likewise
26110         * tree-ssa-copyrename.c: Likewise
26111         * tree-nomudflap.c: Likewise
26112         * tree-call-cdce.c: Likewise
26113         * tree-stdarg.c: Likewise
26114         * tree-ssa-math-opts.c: Likewise
26115         * tree-nrv.c: Likewise
26116         * tree-ssa-sink.c: Likewise
26117         * tree-browser.c: Likewise
26118         * tree-ssa-loop-ivcanon.c: Likewise
26119         * tree-ssa-loop.c: Likewise
26120         * tree-parloops.c: Likewise
26121         * tree-ssa-address.c: Likewise
26122         * tree-ssa-ifcombine.c: Likewise
26123         * tree-if-conv.c: Likewise
26124         * tree-data-ref.c: Likewise
26125         * tree-affine.c: Likewise
26126         * tree-ssa-phiopt.c: Likewise
26127         * tree-ssa-coalesce.c: Likewise
26128         * tree-ssa-pre.c: Likewise
26129         * tree-ssa-live.c: Likewise
26130         * tree-predcom.c: Likewise
26131         * tree-ssa-forwprop.c: Likewise
26132         * tree-ssa-dce.c: Likewise
26133         * tree-ssa-ter.c: Likewise
26134         * tree-ssa-loop-prefetch.c: Likewise
26135         * tree-optimize.c: Likewise
26136         * tree-ssa-phiprop.c: Likewise
26137         * tree-object-size.c: Likewise
26138         * tree-outof-ssa.c: Likewise
26139         * tree-ssa-structalias.c: Likewise
26140         * tree-switch-conversion.c: Likewise
26141         * tree-ssa-reassoc.c: Likewise
26142         * tree-ssa-operands.c: Likewise
26143         * tree-vectorizer.c: Likewise
26144         * tree-vect-data-refs.c: Likewise
26145         * tree-vect-generic.c: Likewise
26146         * tree-vect-stmts.c: Likewise
26147         * tree-vect-patterns.c: Likewise
26148         * tree-vect-slp.c: Likewise
26149         * tree-vect-loop.c: Likewise
26150         * tree-ssa-loop-ivopts.c: Likewise
26151         * tree-ssa-loop-im.c: Likewise
26152         * tree-ssa-loop-niter.c: Likewise
26153         * tree-ssa-loop-unswitch.c: Likewise
26154         * tree-ssa-loop-manip.c: Likewise
26155         * tree-ssa-loop-ch.c: Likewise
26156         * tree-dump.c: Likewise
26157         * tree-complex.c: Likewise
26158
26159         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
26160         * tree-ssa-uninit.c: Likewise
26161         * tree-ssa-threadupdate.c: Likewise
26162         * tree-ssa-uncprop.c: Likewise
26163         * tree-ssa-ccp.c: Likewise
26164         * tree-ssa-dom.c: Likewise
26165         * tree-ssa-propagate.c: Likewise
26166         * tree-ssa-alias.c: Likewise
26167         * tree-dfa.c: Likewise
26168         * tree-cfgcleanup.c: Likewise
26169         * tree-sra.c: Likewise
26170         * tree-ssa-copy.c: Likewise
26171         * tree-ssa.c: Likewise
26172         * tree-profile.c: Likewise
26173         * tree-cfg.c: Likewise
26174         * tree-ssa-threadedge.c: Likewise
26175         * tree-vect-loop-manip.c: Likewise
26176
26177         * tree-inline.c: Do not include diagnostic.h and expr.h.
26178         Include rtl.h.
26179         (copy_decl_for_dup_finish): Do not use NULL_RTX.
26180
26181         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
26182         * tree-loop-distribution.c: Likewise.
26183
26184 2010-06-01  Jan Hubicka  <jh@suse.cz>
26185
26186         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
26187
26188 2010-06-01  Jan Hubicka  <jh@suse.cz>
26189
26190         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
26191         remove return value.
26192         (split_bbs_on_noreturn_calls) .... here.
26193         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
26194         * tree-flow.h (fixup_noreturn_call): New.
26195
26196 2010-06-01  Jan Hubicka  <jh@suse.cz>
26197
26198         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
26199
26200 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
26201
26202         * tree.h (build_nt_call_list): Delete.
26203         * tree.c (build_nt_call_list): Delete.
26204
26205 2010-06-01  Jan Hubicka  <jh@suse.cz>
26206
26207         * fwprop.c: Make emit-rtl.h include last.
26208         * rtlanal.c: Include emit-rtl.h.
26209         * genautomata.c: Output emit-rtl include into insn-automata.c
26210         * df-scan.c: Include emit-rtl.h.
26211         * haifa-sched.c: Indlude emit-rtl.h.
26212         * mode-switching.c: Indlude emit-rtl.h.
26213         * graph.c: Indlude emit-rtl.h.
26214         * sel-sched.c: Include emit-rtl.h.
26215         * sel-sched-ir.c: Include emit-rtl.h.
26216         * ira-build.c: Include emit-rtl.h.
26217         * emit-rtl.c (first_insn, last_insn): Remove defines.
26218         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
26219         Move to emit-rtl.h.
26220         (set_new_first_and_last_insn, get_last_insn_anywhere,
26221         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
26222         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
26223         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
26224         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
26225         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
26226         Use accessor functions.
26227         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26228          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26229         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26230         mem_expr_equal_p): Move here from rtl.h.
26231         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
26232         Move here from emit-rtl.c; make inline.
26233         * cfglayout.h: Include emit-rtl.h.
26234         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26235          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26236         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26237         mem_expr_equal_p, get_insns, set_first-insn,
26238         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
26239         * reg-stack.c: Include emit-rtl.h.
26240         * dce.c: Likewise.
26241
26242 2010-06-01  Jan Hubicka  <jh@suse.cz>
26243
26244         * cgraph.h (tree_function_versioning): Update prototype.
26245         (cgraph_function_versioning): Update prototype.
26246         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
26247         bitmap.
26248         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
26249         (cgraph_materialize_clone, save_inline_function_body): Update use of
26250         tree_function_versioning.
26251         * tree-inline.c (copy_bb): Look for previous copied block to link
26252         after; fix debug output.
26253         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
26254         (copy_body): Likewise.
26255         (expand_call_inline): Update use of copy_body.
26256         (tree_function_versioning): Update use of copy body; accept
26257         blocks_to_copy and new_entry.
26258
26259 2010-06-01  Jan Hubicka  <jh@suse.cz>
26260
26261         * gegenrtl.c: Remove unnecesary prototypes.
26262         (gendecl): Remove.
26263         (gendef): Produce static inline.
26264         (gencode): Remove.
26265         (main): Do not decode parameters; generate header only.
26266         * Makefile.in (genrtl.c): Remove.
26267
26268 2010-06-01  Jan Hubicka  <jh@suse.cz>
26269
26270         * tree-switch-conversion.c (build_one_array): Make it readonly.
26271
26272 2010-06-01  Richard Guenther  <rguenther@suse.de>
26273
26274         * optabs.c (init_optabs): Guard all accesses to reinit.
26275         * ipa-pure-const.c (propagate): Fix another typo.
26276         * opts.c (common_handle_option): Split assignment to bool.
26277         * c-opts.c (c_common_handle_option): Likewise.
26278
26279 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
26280             Matthew Gingell  <gingell@adacore.com>
26281
26282         * doc/invoke.texi: Mention -fdump-ada-spec.
26283         * tree-dump.c (dump_files): Add ada-spec.
26284         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
26285         * tree-pass.h (tree_dump_index): Add TDI_ada.
26286         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
26287         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
26288         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
26289         * c-decl.c: Include c-ada-spec.h.
26290         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
26291         functions.
26292         (c_write_global_declarations): Add handling of -fdump-ada-spec.
26293         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
26294         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
26295         * c-ada-spec.h, c-ada-spec.c: New files.
26296
26297 2010-06-01  Richard Guenther  <rguenther@suse.de>
26298
26299         PR lto/43853
26300         * ipa-pure-const.c (get_function_state): Hand back varying state
26301         if we do not have one.
26302         (has_function_state): New function.
26303         (duplicate_node_data): Adjust.
26304         (remove_node_data): Likewise.
26305         (pure_const_write_summary): Likewise.
26306         (propagate): Likewise.  Fix typo.
26307
26308 2010-06-01  Jan Hubicka  <jh@suse.cz>
26309
26310         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
26311         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
26312         (execute_all_ipa_transforms): Do not play with the states.
26313
26314 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
26315
26316         * config/arm/t-linux-androideabi: New.
26317         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
26318
26319 2010-06-01  Jan Hubicka  <jh@suse.cz>
26320
26321         * tree-inline.c (estimate_num_insns): For stdarg functions look
26322         into call statement to count cost of argument passing.
26323
26324 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
26325
26326         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
26327         argument for fprintf.
26328         (ix86_output_addr_diff_elt): Likewise.
26329         (x86_function_profiler): Likewise.
26330         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
26331         (LPREFIX): Likewise.
26332         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
26333
26334 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26335
26336         PR target/44338
26337         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
26338         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
26339         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
26340         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
26341         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
26342         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
26343         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
26344         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
26345         TARGET_FUSED_MADD.
26346
26347 2010-05-31  Jan Hubicka  <jh@suse.cz>
26348
26349         * tree.h (tree_range_check_failed): Declare noreturn.
26350
26351 2010-05-31  Jan Hubicka  <jh@suse.cz>
26352
26353         * gimple.c (gimple_call_builtin_p): New function.
26354         * gimple.h (gimple_call_builtin_p): Declare.
26355         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
26356         to exit.
26357         (execute_warn_function_return): BUILT_IN_RETURN is return.
26358         (split_critical_edges): Return edges are not critical.
26359         (is_ctrl_altering_stmt): Builtin_in_return is altering.
26360         (gimple_verify_flow_info): Handle built_in_return.
26361         (execute_warn_function_return): Handle built_in_return.
26362         * ipa-pure-const.c (check_call): Ignore builtin_return.
26363
26364 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26365
26366         PR middle-end/44337
26367         * expr.c (expand_assignment): Don't store anything for out-of-bounds
26368         array accesses with non-MEM.
26369
26370         PR tree-optimization/44182
26371         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
26372         newly needs to end a bb is followed by debug stmts, instead return
26373         true from the function at the end.
26374         (maybe_move_debug_stmts_to_successors): New function.
26375         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
26376
26377 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
26378
26379         PR target/44161
26380         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
26381
26382 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
26383
26384         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
26385         for nested functions in non-optimized compilation.
26386
26387 2010-05-31  Richard Guenther  <rguenther@suse.de>
26388
26389         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
26390
26391 2010-05-30  Jan Hubicka  <jh@suse.cz>
26392
26393         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
26394
26395 2010-05-30  Richard Guenther  <rguenther@suse.de>
26396
26397         PR lto/42975
26398         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
26399         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
26400         no longer needed.
26401
26402 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
26403
26404         * config/darwin.c (output_objc_section_asm_op): Add comment.
26405         (name_needs_quotes): Add '_' to list of valid comment chars.
26406         (machopic_output_function_base_name): Remove unneeded quotes.
26407         (darwin_encode_section_info): Adjust asm whitespace.
26408         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
26409         (ASM_OUTPUT_LOCAL): Ditto.
26410         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
26411         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
26412         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
26413
26414 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
26415
26416         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
26417         RS6000_OUTPUT_BASENAME unconditionally.
26418         (rs6000_output_function_epilogue): Likewise.
26419
26420 2010-05-30  Jan Hubicka  <jh@suse.cz>
26421
26422         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
26423         nodes.
26424
26425 2010-05-30  Richard Guenther  <rguenther@suse.de>
26426
26427         * tree-cfg.c (verify_gimple_assign_single): Implement
26428         verification for COND_EXPR rhs.
26429
26430 2010-05-30  Jan Hubicka  <jh@suse.cz>
26431
26432         * cgraph.h (cgraph_dump_file): Declare.
26433         * cgraphunit.c (cgraph_dump_file): Export.
26434         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
26435
26436 2010-05-30  Jan Hubicka  <jh@suse.cz>
26437
26438         * dwarf2out.c (reference_to_unused,
26439         premark_types_used_by_global_vars_helper): Avoid creation of new
26440         varpool nodes.
26441
26442 2010-05-30  Jan Hubicka  <jh@suse.cz>
26443
26444         * cgraph.h (cgraph_node_cannot_return,
26445         cgraph_edge_cannot_lead_to_return): New functions.
26446         * cgraph.c (cgraph_node_cannot_return,
26447         cgraph_edge_cannot_lead_to_return): Use them.
26448         * ipa-pure-const.c (pure_const_names): New static var.
26449         (check_call): Handle calls not leading to return.
26450         (pure_const_read_summary): Dump info read.
26451         (propagate): Dump info about propagation process; ignore side effects
26452         of functions not leading to exit; fix handling of pure functions.
26453
26454 2010-05-30  Jan Hubicka  <jh@suse.cz>
26455
26456         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
26457         for tail call epilogues.
26458
26459 2010-05-30  Jan Hubicka  <jh@suse.cz>
26460
26461         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
26462         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
26463         dump files.
26464
26465 2010-05-29  Jan Hubicka  <jh@suse.cz>
26466
26467         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
26468         node; remove references in node we no longer keep in cgrpah but need
26469         body of.
26470
26471 2010-05-29  Jan Hubicka  <jh@suse.cz>
26472
26473         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
26474
26475 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26476
26477         PR target/44165
26478         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
26479
26480 2010-05-29  Jan Hubicka  <jh@suse.cz>
26481
26482         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
26483         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
26484         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
26485         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
26486         debug_names_replaced_by, debug_update_ssa): Likewise.
26487         * sbitmap.c (debug_sbitmap): Likewise.
26488         * genrecog.c (debug_decision, debug_decision_list): Likewise.
26489         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
26490         debug_tree_chain): Likewise.
26491         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
26492         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
26493         * optabs.c (debug_optab_libfuncs): Likewise.
26494         (verify_loop_closed_ssa): Likewise.
26495         * value-prof.c (verify_histograms): Likewise.
26496         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
26497         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
26498         * cfghooks.c (verify_flow_info): Likewise.
26499         * fold-const.c (debug_fold_checksum): Likewise.
26500         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
26501         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
26502         Likewise.
26503         * omega.c (debug_omega_problem): Likewise.
26504         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
26505         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
26506         * dominance.c (verify_dominators, debug_dominance_info,
26507         debug_dominance_tree): Likewise.
26508         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
26509         * df_regno_debug, df_ref_debug,
26510         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
26511         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
26512         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
26513         * sel-sched.c (debug_state): Likewise.
26514         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
26515         Likewise.
26516         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
26517         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
26518         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
26519         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
26520         Likewise.
26521         * c-pretty-print.c (debug_c_tree): Likewise.
26522         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
26523         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
26524         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
26525         * ebitmap.c (debug_ebitmap): Likewise.
26526         * function.c (debug_find_var_in_block_tree): Likewise.
26527         * print-rtl.c (debug_rtx): Likewise.
26528         (debug_rtx_count): Likewise.
26529         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
26530         * stor-layout.c (debug_rli): Likewise.
26531         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
26532         * tree-data-ref.c (debug_data_references,
26533         debug_data_dependence_relations, debug_data_reference,
26534         debug_data_dependence_relation, debug_rdg_vertex,
26535         debug_rdg_component, debug_rdg): Likewise.
26536         * tree-affine.c (debug_aff): Likewise.
26537         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
26538         Likewise.
26539         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
26540         * emit-rtl.c (verify_rtl_sharing): Likewise.
26541         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
26542         debug_value_expressions): Likewise.
26543         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
26544         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
26545         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
26546         * cfglayout.c (verify_insn_chain): Likewise.
26547         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
26548         debug_clast_stmt, debug_generated_program): Likewise.
26549         * ggc-page.c (debug_print_page_list): Likewise.
26550         * tree-ssa-ter.c (debug_ter): Likewise.
26551         * graphite-dependences.c (debug_pddr): Likewise.
26552         * sched-deps.c (debug_ds): Likewise.
26553         * tree-ssa.c (verify_ssa): Likewise.
26554         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
26555         debug_scattering_functions, debug_iteration_domains, debug_pdr,
26556         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
26557         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
26558         * tree-inline.c (debug_find_tree): Likewise.
26559         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
26560         debug_ppl_powerset_matrix): Likewise.
26561         * var-tracking.c (debug_dv): Likewise.
26562         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
26563         * cfgloop.c (verify_loop_structure): Likewise.
26564         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
26565         * c-common.c (verify_sequence_points): Likewise.
26566         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
26567         debug_candidates, debug_rgn_dependencies): Likewise.
26568         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
26569         * debug_constraint_graph, debug_solution_for_var,
26570         debug_sa_points_to_info): Likewise.
26571         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
26572         Likewie.
26573         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
26574         debug_loops, debug_loop, debug_loop_num): Likewise.
26575         * passes.c (debug_pass): Likewise.
26576         (dump_properties): Likewise; add cfglayout property.
26577         (debug_properties): Likewise.
26578         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
26579         * varpool.c (debug_varpool): Likewise.
26580         * regcprop.c (debug_value_data): Likewise.
26581         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
26582         debug_immediate_uses_for): Likewise.
26583
26584 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26585
26586         PR bootstrap/44315
26587         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
26588         Filter out insn-flags.h.
26589
26590 2010-05-29  Jan Hubicka  <jh@suse.cz>
26591
26592         * cgraph.h (struct varpool_node_set_def,
26593         struct cgraph_node_set_def): Remove unused AUX pointer.
26594         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
26595         VEC_empty macro.
26596
26597 2010-05-29  Jan Hubicka  <jh@suse.cz>
26598
26599         PR middle-end/44324
26600         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
26601
26602 2010-05-29  Richard Guenther  <rguenther@suse.de>
26603
26604         * lto-streamer.c (cached_bp): New global variable.
26605         (bitpack_create): Return the cached bitpack, if available.
26606         (bitpack_delete): Clear and cache the bitpack, if appropriate.
26607         (bp_pack_value): Remove redundant asserts.
26608
26609 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26610
26611         PR middle-end/44306
26612         * tree-if-conv.c (is_true_predicate): New.
26613         (is_predicated): Use is_true_predicate.
26614         (add_to_predicate_list): Same.  Do not use unshare_expr.
26615         (add_to_dst_predicate_list): Same.
26616
26617 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26618
26619         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
26620         field on edges.
26621         (predicate_bbs): Same.
26622         (clean_predicate_lists): Same.
26623         (find_phi_replacement_condition): Do not AND the predicate from
26624         edge->aux.
26625
26626 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26627
26628         PR bootstrap/44315
26629         * Makefile.in (build/gencondmd.o): Add a missing `\'.
26630
26631 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26632
26633         PR target/44261
26634         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
26635         (negdf2): Adjust expander pattern and use negdf2_slow.
26636         (negsf2): Likewise.
26637
26638 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
26639
26640         * basic-block.h (struct control_flow_graph): Move last_label_uid field
26641         up.
26642         * df.h (struct df_base_ref): Move regno field up.
26643         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
26644         * expr.h (struct separate_ops): Move location field up.
26645         * optabs.h (struct optab_d): Move libcall_basename field down.
26646         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
26647         * config/i386/i386.h (struct machine_function): Convert call_abi field
26648         into a bitfield.  Move cfa field to the end of the structure.
26649
26650 2010-05-29  Jan Hubicka  <jh@suse.cz>
26651
26652         * varpool.c (varpool_get_node): Fix lookup.
26653
26654 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26655
26656         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
26657         RTL specific prototypes with #ifdef RTX_CODE.
26658         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
26659         * config/spu/t-spu-elf: Fix dependencies.
26660
26661         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
26662
26663 2010-05-29  Mike Stump  <mikestump@comcast.net>
26664
26665         PR bootstrap/44315
26666         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
26667         TM_H when building to avoid dependency loops.
26668
26669 2010-05-29  Jan Hubicka  <jh@suse.cz>
26670
26671         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
26672         refs and body; not the whole node for masters of materialized clones.
26673
26674 2010-05-29  Mike Stump  <mikestump@comcast.net>
26675
26676         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
26677
26678 2010-05-29  Jan Hubicka  <jh@suse.cz>
26679
26680         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
26681         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
26682         use of clone_function_name.
26683         * cgraph.h (cgraph_create_virtual_clone,
26684         cgraph_function_versioning): update prototypes.
26685         (clone_function_name): Declare.
26686         * ipa-cp.c (ipcp_insert_stage): Update call of
26687         cgraph_create_virtual_clone.
26688         * omp-low.c (create_omp_child_function_name): Use
26689         cgraph_create_virtual_clone.
26690         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
26691         (cgraph_function_versioning): Take SUFFIX argument; produce new name
26692         and make decl local.
26693
26694 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26695
26696         * vec.h: Include statistics.h
26697         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
26698         with VEC_H.
26699
26700 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26701
26702         * c-lex.c: Do not include c-tree.h.
26703         * c-pretty-print.c: Likewise.
26704         * c-opts.c: Likewise.
26705         * c-gimplify.c: Likewise.
26706         * c-common.c: Likewise.
26707         * c-dump.c: Likewise.  Include c-common.h.
26708
26709 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26710
26711         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
26712         before including diagnostic-core.h.
26713         (c_cpp_error): New prototype moved from c-tree.h.
26714         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
26715         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
26716         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
26717         (c_cpp_error): Prototype moved to c-common.h.
26718         * Makefile.in: Update dependency for C_COMMON_H.
26719
26720 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26721
26722         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
26723         * c-common.c (c_register_addr_space): Remove here.
26724         * c-decl.c (c_register_addr_space): Re-add here.
26725
26726 2010-05-28  Mike Stump  <mikestump@comcast.net>
26727
26728         * config/darwin-c.c: Remove c-tree.h include.
26729
26730 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26731
26732         * gcc.c: Include diagnostic.h.
26733         (error_count): Remove.  All users changed to use errorcount.
26734         (programname): Remove.  All users changed to use progname.
26735         (fancy_abort, internal_error, fatal_error, error, warning, inform,
26736         fnotice): Remove.
26737         (execute): Don't include "Internal error" and bug reporting
26738         information in argument of internal_error call.
26739         (process_command): Don't increment error_count after calling
26740         perror_with_name.
26741         (input_filename): Rename to gcc_input_filename.  All users
26742         changed.
26743         (main): Call diagnostic_initialize.  Register delete_temp_files
26744         with atexit.  Use seen_error to test for errors.
26745         * gcc.h: Include diagnostic-core.h.
26746         (fatal_error, error, warning): Remove.
26747         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
26748         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
26749         (gcc.o): Update dependencies.
26750
26751 2010-05-28  Jeff Law  <law@redhat.com>
26752
26753         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
26754         functions.
26755         * ira.h (ira_bad_reload_regno): Declare
26756         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
26757
26758         * ira-color.c (update_curr_costs): Free updated hard reg costs.
26759         (ira_reassign_conflict_allocnos): Remove bogus asserts.
26760         (allocno_reload_assign): Likewise.
26761
26762 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
26763
26764         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
26765         build1_stat.
26766
26767 2010-05-28  Richard Guenther  <rguenther@suse.de>
26768
26769         PR lto/44312
26770         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
26771         Stream fixed-point constants mode.
26772         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
26773         and TYPE_PRECISION.
26774         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
26775         Stream fixed-point constants mode.
26776         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
26777         and TYPE_PRECISION.
26778
26779 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26780
26781         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
26782         only place it was called from.
26783         (number_of_latch_executions): Do not return chrec_dont_know when the
26784         may_be_zero is a runtime condition: instead, return a COND_EXPR
26785         including the may_be_zero condition.
26786         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
26787         of nb_iterations.
26788         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
26789         COND_EXPRs.
26790
26791 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26792
26793         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
26794         generate COND_EXPRs for degenerate_phi_result.
26795
26796 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26797
26798         PR middle-end/44293
26799         * tree-if-conv.c (if_convertible_loop_p): Check the
26800         if-convertibility of phi nodes in non predicated BBs.
26801
26802 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26803
26804         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
26805
26806 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26807
26808         PR driver/15303
26809         * gcc.c (inform, warning, inform): New functions.
26810         (fatal_ice): Rename to internal_error; change cmsgid parameter to
26811         gmsgid.  All callers changed.
26812         (notice): Rename to fnotice; add parameter fp.  All callers changed.
26813         (fatal_error): Rename to fatal_signal.  All users changed.
26814         (fatal): Rename to fatal_error; change cmsgid parameter to
26815         gmsgid.  All callers changed.
26816         (process_command): Use warning instead of error for warnings.
26817         (end_going_arg): Don't use _() around argument of error.
26818         (do_spec_1): Use inform for message from %n specs.  Use warning
26819         instead of error for warnings.
26820         (main): Use inform for comparison messages.  Use warning for
26821         message about unused linker input.
26822         (error): Increment error_count.  Print "error: ".
26823         * gcc.h (fatal): Change to fatal_error.
26824         (warning): Declare.
26825         * config/darwin-driver.c (darwin_default_min_version): Use warning
26826         instead of fprintf for warnings.
26827         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
26828
26829 2010-05-28  Julian Brown  <julian@codesourcery.com>
26830
26831         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
26832         (*thumb2_addsi3_compare0_scratch): New.
26833         * config/arm/constraints.md (Pv): New.
26834         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
26835         for ARM mode only.
26836         (*addsi3_compare0_scratch): Likewise.
26837
26838 2010-05-28  Jan Hubicka  <jh@suse.cz>
26839
26840         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
26841         check.
26842         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
26843         only on local statics.
26844
26845 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
26846
26847         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
26848
26849 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
26850
26851         PR bootstrap/44314
26852         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
26853         (OPTION_GLIBC): Define.
26854
26855 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26856
26857         PR debug/41048
26858         * dwarf2out.c (double_int_type_size_in_bits): New function.
26859         (round_up_to_align): Change first argument and return value to
26860         double_int.
26861         (field_byte_offset): Work internally on double_ints.
26862
26863         PR target/43636
26864         * builtins.c (expand_movstr): Use a temporary pseudo instead
26865         of target even when target is not NULL and not const0_rtx, but
26866         fails movstr predicate.
26867         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
26868
26869 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26870
26871         * final.c (rest_of_clean_state): Use %m in errors instead of
26872         strerror (errno).
26873         * gengtype.c (read_input_list, close_output_files): Use xstrerror
26874         instead of strerror.
26875         * toplev.c (process_options): Use %m in errors instead of strerror
26876         (errno).
26877         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
26878         (errno).
26879
26880 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
26881
26882         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
26883         (ix86_canonical_va_list_type): Make static.  Add declaration.
26884         (ix86_enum_va_list): Make static.  Reindent.
26885         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
26886         (ix86_canonical_va_list_type): Ditto.
26887         (ix86_enum_va_list): Ditto.
26888
26889 2010-05-28  Richard Guenther  <rguenther@suse.de>
26890
26891         * lto-wrapper.c (run_gcc): With -save-temps generate a
26892         user-visible ltrans filename.  Fixup ltrans unit numbering.
26893
26894 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
26895
26896         * c-common.c (c_common_nodes_and_builtins): Replace use
26897         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
26898         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
26899         to ix86_enum_va_list.
26900         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
26901         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
26902         (TARGET_ENUM_VA_LIST_P): Add hook description.
26903         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
26904         * target.h (gcc_target): Add enum_va_list hook.
26905
26906         PR bootstrap/44299
26907         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
26908         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
26909         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
26910
26911 2010-05-28  Alan Modra  <amodra@gmail.com>
26912
26913         PR target/44266
26914         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
26915         emit_library_call machinery to set up __tls_get_addr calls.
26916
26917 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26918
26919         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
26920
26921 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
26922
26923         Revert fix for PR c++/44188
26924         * c-common.c (is_typedef_decl): Revert the moving of  this
26925         definition ...
26926         * tree.c (is_typedef_decl): ... here.
26927         (typdef_variant_p): Revert the moving of this  definition
26928         here from cp/tree.c.
26929         * c-common.h (is_typedef_decl): Revert the moving of this
26930         declaration ...
26931         * tree.h (is_typedef_decl): ... here.
26932         (typedef_variant_p): Revert the moving of this  declaration here
26933         from cp/cp-tree.h
26934         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
26935         (gen_tagged_type_die): Revert the splitting out of ...
26936         (gen_type_die_with_usage): ... this function. Revert the anonymous
26937         tagged type handling.
26938         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
26939         typedefs naming anonymous tagged types.
26940
26941 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26942
26943         * config/rs6000/rs6000-modes.def (PSImode): Delete.
26944
26945 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26946
26947         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
26948         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
26949         throughout.
26950         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
26951         "xer" to "ca".
26952         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
26953         XER_REGS to CA_REGS throughout.
26954         * config/rs6000/rs6000.h: Same.
26955         (ADDITIONAL_REGISTER_NAMES): Add "xer".
26956         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
26957         that mode_iterator "P" is the size for arithmetic carries as well.
26958         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
26959
26960 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26961
26962         PR bootstrap/44255
26963         * combine.c (struct rtx_subst_pair): Define unconditionally.
26964         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
26965         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
26966         Call make_compound_operation on pair->to.
26967         (propagate_for_debug): Don't call make_compound_operation here.
26968         Always use simplify_replace_fn_rtx.
26969
26970 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
26971
26972         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
26973         * config/xtensa/xtensa.c (override_options): Check
26974           TARGET_FORCE_NO_PIC and set flag_pic.
26975         * config/xtensa/xtensa.opt: Document -mforce-no-pic
26976
26977 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
26978
26979         PR bootstrap/44299
26980         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
26981         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
26982
26983 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
26984
26985         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
26986         toplev.h.
26987         * diagnostic.c: Don't include toplev.h.
26988         (progname): Define.  Moved from toplev.c.
26989         (seen_error): New function.
26990         * diagnostic.h: Include diagnostic-core.h.
26991         (diagnostic_t, emit_diagnostic): Don't declare here.
26992         * toplev.c (progname): Move to toplev.c.
26993         (emit_debug_global_declarations, compile_file, finalize,
26994         do_compile, toplev_main): Use seen_error.
26995         * toplev.h: Include diagnostic-core.h.
26996         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
26997         internal_error, warning, warning_at, error, error_n, error_at,
26998         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
26999         verbatim, fnotice, progname): Move to diagnostic-core.h.
27000         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
27001         (expand_builtin_expect): Use seen_error.
27002         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
27003         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
27004         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
27005         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
27006         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
27007         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
27008         errorcount for errors.
27009         * c-opts.c (c_common_finish): Use seen_error.
27010         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
27011         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
27012         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
27013         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
27014         (get_coverage_counts): Use seen_error.
27015         * dwarf2out.c (dwarf2out_finish): Use seen_error.
27016         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
27017         gimplify_body): Use seen_error.
27018         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
27019         * ipa-pure-const.c (gate_pure_const): Use seen_error.
27020         * ipa-reference.c (gate_reference): Use seen_error.
27021         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
27022         * lambda-code.c: Include diagnostic-core.h instead of
27023         diagnostic.h.
27024         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
27025         * lto-compress.c: Include diagnostic-core.h instead of
27026         diagnostic.h.
27027         * lto-section-in.c: Include diagnostic-core.h instead of
27028         diagnostic.h.
27029         * lto-streamer-out.c: Include diagnostic-core.h instead of
27030         diagnostic.h.
27031         * lto-streamer.c: Include diagnostic-core.h instead of
27032         diagnostic.h.
27033         (gate_lto_out): Use seen_error.
27034         * matrix-reorg.c: Include diagnostic-core.h instead of
27035         diagnostic.h.
27036         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
27037         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
27038         (gate_expand_omp, lower_omp_1): Use seen_error.
27039         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
27040         (rest_of_decl_compilation, rest_of_type_compilation,
27041         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
27042         * tree-cfg.c (label_to_block_fn): Use seen_error.
27043         * tree-inline.c (optimize_inline_calls): Use seen_error.
27044         * tree-mudflap.c (mudflap_finish_file): Use
27045         seen_error.
27046         * tree-optimize.c (gate_all_optimizations,
27047         gate_all_early_local_passes, gate_all_early_optimizations): Use
27048         seen_error.
27049         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
27050         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
27051         (varpool_remove_unreferenced_decls,
27052         varpool_assemble_pending_decls): Use seen_error.
27053         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
27054         (TOPLEV_H, DIAGNOSTIC_H): Update.
27055         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
27056         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
27057         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
27058         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
27059         coverage.o, lambda-code.o): Update dependencies.
27060
27061 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
27062
27063         PR c++/44188
27064         * c-common.c (is_typedef_decl): Move this definition ...
27065         * tree.c (is_typedef_decl): ... here.
27066         (typdef_variant_p): Move definition here from cp/tree.c.
27067         * c-common.h (is_typedef_decl): Move this declaration ...
27068         * tree.h (is_typedef_decl): ... here.
27069         (typedef_variant_p): Move declaration here from cp/cp-tree.h
27070         * dwarf2out.c (is_naming_typedef_decl): New function.
27071         (gen_tagged_type_die): Split out of ...
27072         (gen_type_die_with_usage): ... this function. When an anonymous
27073         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
27074         is emitted for the typedef.
27075         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
27076         anonymous tagged types.
27077
27078 2010-05-27  Jason Merrill  <jason@redhat.com>
27079
27080         * print-tree.c (debug_vec_tree): New fn.
27081         (print_vec_tree): New fn.
27082         * tree.h: Declare them.
27083         * gdbinit.in (pvt): New command.
27084
27085         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
27086
27087         * gdbinit.in (pdd): New command.
27088
27089 2010-05-27  Jan Hubicka  <jh@suse.cz>
27090
27091         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
27092         (update_caller_keys): Return early if there are no callers;
27093         only update fibheap when decresing the key.
27094         (update_callee_keys): Avoid recursion.
27095         (decide_inlining_of_small_functions): When badness does not match;
27096         re-insert into fibheap.
27097
27098 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
27099
27100         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
27101         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
27102         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
27103         (ALL_HOST_OBJS): Now a union of the above two.
27104         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
27105         all files in ALL_HOST_FRONTEND_OBJS.
27106         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
27107
27108         * c-common.c: Pretend to be a backend file by undefining
27109         IN_GCC_FRONTEND (still need rtl.h here).
27110
27111 2010-05-27  Jan Hubicka  <jh@suse.cz>
27112
27113         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
27114         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
27115
27116 2010-05-27  Jan Hubicka  <jh@suse.cz>
27117
27118         * sched-ebb.c: Rename struct deps to struct deps_desc.
27119         * ddg.c: Likewise.
27120         * sel-sched-ir.c: Likewise.
27121         * sched-deps.c: Likewise.
27122         * sched-int.h: Likewise.
27123         * sched-rgn.c: Likewise.
27124
27125 2010-05-27  Jon Beniston  <jon@beniston.com>
27126
27127         PR 43726
27128         * config/lm32/lm32.h: Remove definition of
27129         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
27130
27131 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
27132
27133         PR lto/44230
27134         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
27135
27136 2010-05-27  Richard Guenther  <rguenther@suse.de>
27137
27138         PR tree-optimization/44284
27139         * tree-vect-stmts.c (vectorizable_assignment): Handle
27140         sign-changing conversions as simple copy.
27141
27142 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27143
27144         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
27145         Bionic C library.
27146         (__gthread_active_p): Check for pthread_create if compiling against
27147         Bionic C library.
27148
27149 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27150
27151         Support compilation for Android platform.  Reimplement -mandroid.
27152
27153         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
27154         (*android*): Set ANDROID_DEFAULT.
27155         (arm*-*-linux*): Include linux-android.h.
27156         (arm*-*-eabi*): Don't include previous -mandroid implementation.
27157         * config/arm/eabi.h: Remove, move Android-specific parts ...
27158         * config/linux-android.h: ... here.  New file.
27159         * config/arm/eabi.opt: Rename to ...
27160         * config/linux-android.opt: ... this.
27161         (mandroid): Allow -mno-android option.  Initialize based on
27162         ANDROID_DEFAULT.
27163         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
27164         Move logic to corresponding LINUX_TARGET_* macros.
27165         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
27166         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
27167         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
27168         Android definitions.
27169         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
27170         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
27171         Document.
27172
27173 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27174
27175         Add support for Bionic C library
27176
27177         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
27178         macro.
27179         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
27180         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
27181
27182         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
27183         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
27184         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
27185         to support multiple C libraries.  Handle Bionic.
27186         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
27187         (BIONIC_DYNAMIC_LINKER64): Define.
27188         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
27189         Update.
27190         (TARGET_HAS_SINCOS): Enable for Bionic.
27191
27192         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
27193         the last option specified on command line take effect.
27194         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
27195         (mbionic): New.
27196         (mglibc, muclibc): Update.
27197
27198         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
27199         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
27200         DEFAULT_LIBC.
27201
27202         * doc/invoke.texi (-mglibc, -muclibc): Update.
27203         (-mbionic): Document.
27204
27205 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27206
27207         * c-common.h (c_register_addr_space): Add prototype.
27208         (ADDR_SPACE_KEYWORD): Remove.
27209         * c-common.c (c_register_addr_space): New function.
27210         (c_addr_space_name): Reimplement.
27211         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
27212
27213         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
27214         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
27215
27216         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
27217         Remove TARGET_ADDR_SPACE_KEYWORDS.
27218
27219 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
27220
27221         * input.c: New file.
27222         * input.h (main_input_filename): Move declaration to toplev.h.
27223         * toplev.c (input_location, line_table): Move to input.c
27224         * toplev.h (main_input_filename): Move declaration from input.h.
27225         * tree.c (expand_location): Move to input.c.
27226         * Makefile.in (OBJS-common): Add input.o.
27227         (input.o): Add dependencies.
27228
27229 2010-05-27  Richard Guenther  <rguenther@suse.de>
27230
27231         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
27232         for non-existant files.
27233         (fork_execute): Mark args_name file as deleted.
27234
27235 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
27236
27237         PR bootstrp/44287
27238         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
27239         (narrow_signed_type): Likewise.
27240
27241 2010-05-26  Jan Hubicka  <jh@suse.cz>
27242
27243         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
27244         edge only when checking is enabled; check using former_clone_of;
27245         check inline clones too.
27246         (cgraph_materialize_clone): Record former_clone_of pointer.
27247         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
27248         combining redirections; dump args_to_skip bitmap
27249         (cgraph_materialize_all_clones): Do no redirection here.
27250         * ipa-inline.c (inline_transform): Do redirection here.
27251         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
27252         cheking only).
27253
27254 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27255
27256         * config/avr/avr-c.c: Do not include regs.h.
27257         Include cpplib.h for cpp_define and tree.h for c-common.h.
27258         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
27259         * config/avr/t-avr: Fix dependencies for avr-c.o.
27260
27261 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27262
27263         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
27264         string instead of SYMBOL_REF rtx.
27265         * rtl.h (set_stack_check_libfunc): Move prototype from here...
27266         * libfuncs.h: ...to here.  Adjust for explow.c change.
27267
27268 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27269
27270         * pretty-print.c: Don't include ggc.h.
27271         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
27272         (identifier_to_locale): Use them for allocation.
27273         * pretty-print.h (identifier_to_locale_alloc,
27274         identifier_to_locale_free): Declare.
27275         * toplev.c (alloc_for_identifier_to_locale): New.
27276         (general_init): Set identifier_to_locale_alloc and
27277         identifier_to_locale_free.
27278         * Makefile.in (pretty-print.o): Update dependencies.
27279
27280 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27281
27282         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
27283         pointer types if they have different alignment or mode.
27284
27285 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
27286
27287         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
27288         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27289         * config/sparc/sparc-protos.h (function_value): Remove declaration.
27290         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
27291         sparc_function_value_regno_p): New functions.
27292         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27293         TARGET_FUNCTION_VALUE_REGNO_P): Define.
27294         (function_value): Rename to...
27295         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
27296         argument to 'outgoing'.
27297         (function_arg_record_value, function_arg_union_value,
27298         function_arg_vector_value): Update comment.
27299
27300 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27301
27302         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
27303         (fde_needed_for_eh_p): New predicate.
27304         (output_call_frame_info): Use it throughout to decide whether FDEs
27305         are needed for EH purpose.
27306         (dwarf2out_begin_prologue): Reorder assignments.
27307
27308 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27309
27310         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
27311         special case loop->header.
27312         (is_predicated): New.
27313         (if_convertible_loop_p): Call it.
27314
27315 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27316
27317         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
27318         iterator in parameter.  Do not generate code during the analysis.
27319         (tree_if_convert_cond_stmt): Removed.
27320         (tree_if_convert_stmt): Removed.
27321         (predicate_bbs): New.
27322         (if_convertible_loop_p): Call predicate_bbs.
27323         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
27324         now contains all the analysis part.
27325
27326 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27327
27328         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
27329         statements in the analysis part.
27330         (tree_if_convert_stmt): Update comment.
27331         (remove_conditions_and_labels): New.
27332         (combine_blocks): Call remove_conditions_and_labels.
27333         (tree_if_conversion): Update comment.
27334
27335 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27336
27337         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
27338         than 2 predecessors or more than 2 successors.
27339
27340 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27341
27342         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
27343         of loops in which the data dependence analysis fails.
27344
27345 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27346
27347         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
27348         CDI_POST_DOMINATORS.
27349         (tree_if_conversion): Same.
27350
27351 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27352
27353         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
27354
27355 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27356
27357         * tree-if-conv.c: Update copyright years.  Fix comments.
27358         Fix indentation.
27359
27360 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
27361
27362         * builtin-types.def (BT_INT128): New primitive type.
27363         (BT_UINT128): Likewise.
27364         * c-common.c (c_common_r): Add __int128 keyword.
27365         (c_common_type_for_size): Handle __int128.
27366         (c_common_type_for_mode): Likewise.
27367         (c_common_signed_or_unsigned_type): Likewise.
27368         (c_common_nodes_and_builtins): Add builtin type
27369         if target supports 128-bit integer scalar.
27370         * c-common.h (enum rid): Add RID_INT128.
27371         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
27372         if target supports 128-bit integer scalar.
27373         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
27374         (finish_declspecs): Likewise.
27375         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
27376         (c_token_starts_declspecs): Likewise.
27377         (c_parser_declspecs): Likewise.
27378         (c_parser_attributes): Likewise.
27379         (c_parser_objc_selector): Likewise.
27380         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
27381         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
27382         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
27383         * tree.c (make_or_reuse_type): Likewise.
27384         (make_unsigned_type): Likewise.
27385         (build_common_tree_nodes_2): Likewise.
27386         * tree.h (enum integer_type_kind): Add itk_int128 and
27387         itk_unsigned_int128.
27388         (int128_integer_type_node): New define.
27389         (int128_unsigned_type_node): New define.
27390         * doc/extend.texi: Add documentation about __int128 type.
27391
27392 2010-05-26  Richard Guenther  <rguenther@suse.de>
27393
27394         * tree-ssa-sccvn.c (copy_nary): Adjust.
27395         (copy_phis): Rename to ...
27396         (copy_phi): ... this.  Adjust.
27397         (copy_references): Rename to ...
27398         (copy_reference): ... this.  Adjust.
27399         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
27400         result into the valid table.
27401
27402 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27403
27404         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
27405         insn-config.h, insn-codes.h, recog.h, and optabs.h.
27406
27407 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27408
27409         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
27410
27411 2010-05-26  Richard Guenther  <rguenther@suse.de>
27412
27413         * opts.c (common_handle_option): Handle OPT_Ofast.
27414
27415 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27416
27417         * diagnostic.c: Don't include opts.h.
27418         (permissive_error_option): Define.
27419         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
27420         for classify_diagnostic.  Don't use memset for
27421         classify_diagnostic.  Initialize new and recently added fields.
27422         (diagnostic_classify_diagnostic): Use context->n_opts instead of
27423         N_OPTS.
27424         (diagnostic_report_diagnostic): Pass context parameter to
27425         diagnostic_report_warnings_p.  Use option_enabled and option_name
27426         hooks from context.
27427         (emit_diagnostic): Use permissive_error_option.
27428         (permerror): Likewise.
27429         * diagnostic.h: Don't include options.h.
27430         (struct diagnostic_context): Add n_opts, opt_permissive,
27431         inhibit_warnings, warn_system_headers, option_enabled and
27432         option_name fields.  Change classify_diagnostic to a pointer.
27433         * opts-diagnostic.h: New file.
27434         * opts.c: Include opts-diagnostic.h.
27435         (common_handle_option): Set global_dc fields for -Wfatal-errors,
27436         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
27437         (option_name): New function.
27438         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
27439         (c_common_handle_option): Set global_dc->permissive for
27440         -fpermissive.
27441         * c-common.c (c_cpp_error): Save and restore
27442         global_dc->warn_system_headers, not variable warn_system_headers.
27443         * toplev.c: Include opts-diagnostic.h.
27444         (general_init): Update call to diagnostic_initialize.  Set
27445         global_dc->show_column, global_dc->option_enabled and
27446         global_dc->option_name.
27447         (process_options): Don't set global_dc fields here.
27448         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
27449         (diagnostic.o, opts.o, toplev.o): Update dependencies.
27450
27451 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
27452
27453         * config/picochip/picochip.md (movsi): Split a movsi from a
27454         const after reload.
27455
27456 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27457
27458         * ggc-zone.c: Update copyright year.
27459         (poison_region): Mark memory for Valgrind as undefined before
27460         memset () call and inaccessible afterwards.
27461         (ggc_pch_total_size): Change type of i to int.
27462
27463 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27464
27465         * ggc-common.c (ggc_free_overhead): Allow empty slot.
27466
27467 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27468
27469         * ggc-common.c: Update copyright year.
27470         (ggc_rlimit_bound): Remove prototype.  Compile only if
27471         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
27472         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
27473         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
27474         (ggc_min_heapsize_heuristic): Likewise.
27475
27476 2010-05-26  Richard Guenther  <rguenther@suse.de>
27477
27478         PR rtl-optimization/44164
27479         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
27480         no-common access-path disambiguation.
27481         (indirect_ref_may_alias_decl_p): Adjust.
27482         (indirect_refs_may_alias_p): Likewise.
27483         (refs_may_alias_p_1): Likewise.
27484
27485 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27486
27487         * c-typeck.c: Do not include expr.h.
27488
27489 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27490
27491         * rtl.h (decl_default_tls_model): Move prototype from here...
27492         * output.h: ...to here.
27493         * c-decl.c: Do not include rtl.h.
27494         * c-pragma.c: Likewise.
27495         * c-parser.c: Likewise.
27496         * c-gimplify.c: Likewise.  And also not hard-reg-set.
27497         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
27498         FIXME note for it.  Add a FIXME note for expr.h.
27499         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
27500         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
27501         defined.
27502
27503 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
27504
27505         PR target/44199
27506         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
27507         or total_size is larger than red zone size for non-V4 ABI, emit a
27508         stack_tie resp. frame_tie insn before stack pointer restore.
27509         * config/rs6000/rs6000.md (frame_tie): New insn.
27510
27511 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
27512
27513         * function.h (struct function): Add can_throw_non_call_exceptions bit.
27514         * lto-streamer-in.c (input_function): Stream it in.
27515         * lto-streamer-out.c (output_function): Stream it out.
27516         * function.c (allocate_struct_function): Set it.
27517         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
27518         for flag_non_call_exceptions.
27519         * cfgbuild.c (control_flow_insn_p): Likewise.
27520         (make_edges): Likewise.
27521         * cfgexpand.c (expand_stack_alignment): Likewise.
27522         * combine.c (distribute_notes): Likewise.
27523         * cse.c (cse_extended_basic_block): Likewise.
27524         * except.c (insn_could_throw_p): Likewise.
27525         * gcse.c (simple_mem): Likewise.
27526         * ipa-pure-const.c (check_call): Likewise.
27527         (check_stmt ): Likewise.
27528         * lower-subreg.c (lower-subreg.c): Likewise.
27529         * optabs.c (emit_libcall_block): Likewise.
27530         (prepare_cmp_insn): Likewise.
27531         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
27532         * postreload.c (rest_of_handle_postreload): Likewise.
27533         * reload1.c (reload_as_needed): Likewise.
27534         (emit_input_reload_insns): Likewise.
27535         (emit_output_reload_insns): Likewise.
27536         (fixup_abnormal_edges): Likewise.
27537         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
27538         * store-motion.c (find_moveable_store): Likewise.
27539         * tree-eh.c (stmt_could_throw_p): Likewise.
27540         (tree_could_throw_p): Likewise.
27541         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
27542         * config/arm/arm.c (arm_expand_prologue): Likewise.
27543         (thumb1_expand_prologue): Likewise.
27544         * config/rx/rx.md (cbranchsf4): Likewise.
27545         (cmpsf): Likewise.
27546         * config/s390/s390.c (s390_emit_prologue): Likewise.
27547         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
27548         (inline_forbidden_into_p): New predicate.
27549         (expand_call_inline): Use it to forbid inlining.
27550         (tree_can_inline_p): Likewise.
27551
27552 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27553
27554         * config/i386/i386-c.c: Do not include rtl.h.
27555         * config/i386/t-i386: Update dependencies.
27556
27557 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27558
27559         * attribs.c: Do not include rtl.h.
27560         * Makefile.in: Update dependencies.
27561
27562 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
27563
27564         * double-int.h (double_int_and): New.
27565         * combine.c (try_combine): Clean up, use double_int_* and
27566         immed_double_int_const functions.
27567
27568 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27569
27570         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
27571         stderr to /dev/null instead of grep -q.
27572         * configure: Regenerate.
27573
27574 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27575
27576         * Makefile.in (EXCEPT_H): Fix typo.
27577
27578 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
27579
27580         * ira-build.c (update_conflict_hard_reg_costs): New.
27581         (ira_build): Call update_conflict_hard_reg_costs.
27582
27583 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27584
27585         PR debug/41371
27586         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
27587         ENABLE_CHECKING.
27588         (intersect_loc_chains): Walk the s2var's loc_chain together
27589         with s1node chain as long as the locations are equal, don't
27590         call find_loc_in_1pdv in that case.
27591
27592         PR debug/42801
27593         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
27594         (copy_bind_expr): ... instead of here.
27595         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
27596         if the block hasn't been remapped.
27597         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
27598         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
27599
27600 2010-05-25  Richard Guenther  <rguenther@suse.de>
27601
27602         PR middle-end/44069
27603         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
27604         out-of-bounds array accesses.
27605
27606 2010-05-25  Richard Guenther  <rguenther@suse.de>
27607
27608         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
27609         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
27610         (run_gcc): Re-organize to make cleanup easier.
27611
27612 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27613
27614         * config/s390/s390.c (optimization_options): Fix and move the
27615         flag_prefetch_loop_arrays override ...
27616         (override_options): ... here.
27617
27618 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
27619
27620         * diagnostic.c: Don't include plugin.h.
27621         (diagnostic_report_diagnostic): Don't handle plugins specially
27622         here.  Pass context to internal_error callback.
27623         * diagnostic.h (struct diagnostic_context): Add context parameter
27624         to internal_error callback.
27625         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
27626         * plugin.h (struct diagnostic_context): Declare.
27627         (warn_if_plugins, plugins_internal_error_function): Declare.
27628         * toplev.c (general_init): Set global_dc->internal_error.
27629         * Makefile.in (diagnostic.o): Update dependencies.
27630
27631 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
27632
27633         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
27634         * config/rs6000/t-darwin64: New.
27635         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
27636         build crt2.
27637
27638 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
27639
27640         PR 44203
27641         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
27642         match the original (and intended) behaviour before r159557.  This
27643         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
27644         in two ways.
27645
27646 2010-05-25  Richard Guenther  <rguenther@suse.de>
27647
27648         * doc/invoke.texi: Document -Ofast.
27649         * target.h (struct gcc_target): Add handle_ofast.
27650         * target-def.h (TARGET_HANDLE_OFAST): Add.
27651         (TARGET_INITIALIZER): Adjust.
27652         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
27653         * common.opt (Ofast): Add.
27654
27655 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27656
27657         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
27658         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
27659
27660 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27661
27662         PR target/43610
27663         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
27664         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
27665         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
27666         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
27667
27668 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27669
27670         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
27671         DW_OP_minus with negated offset instead of DW_OP_plus.
27672         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
27673
27674 2010-05-25  Wei Guozhi  <carrot@google.com>
27675
27676         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
27677         tst instruction and a new alternative.
27678         * config/arm/constraints.md (Pu): New constraint.
27679
27680 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
27681
27682         * function.c (assign_stack_local_1): Initialize variable
27683         to avoid warning when bootstrapping at -O3.
27684
27685 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
27686
27687         * configure.ac (all_lang_makefiles): Remove everything related to it.
27688         * configure: Regenerate.
27689         * Makefile.in: Fix reference to ada Make-lang.in.
27690         Remove support for LANG_MAKEFILES.
27691
27692 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
27693             Sandra Loosemore  <sandra@codesourcery.com>
27694
27695         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
27696         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
27697         description.  Add arm_neon_fp16_ok.
27698         (Add Options): Add arm_neon and arm_neon_fp16.
27699
27700 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
27701
27702         * diagnostic.c: Don't include flags.h.
27703         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
27704         context parameters.  Check flags in the context passed as a parameter.
27705         (diagnostic_build_prefix): Add context parameter.  Check
27706         show_column flag in context.
27707         (diagnostic_action_after_output): Check fatal_errors flag in context.
27708         (diagnostic_report_current_module): Check show_column flag in context.
27709         (default_diagnostic_starter): Update call to
27710         diagnostic_build_prefix.
27711         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
27712         (emit_diagnostic): Pass context to permissive_error_kind.
27713         (permerror): Pass context to permissive_error_kind.
27714         * diagnostic.h (struct diagnostic_context): Add show_column,
27715         pedantic_errors, permissive and fatal_errors fields.
27716         (diagnostic_build_prefix): Update prototype.
27717         * langhooks.c
27718         * toplev.c (process_options): Set flags in global_dc from
27719         flag_show_column, flag_pedantic_errors, flag_permissive,
27720         flag_fatal_errors.
27721         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
27722         to diagnostic_build_prefix.
27723         * Makefile.in (diagnostic.o): Update dependencies.
27724
27725 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
27726
27727         * config/i386/ia32intrin.h (__crc32q): Define only if
27728         __SSE4_2__ is defined.
27729
27730 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
27731
27732         PR target/44132
27733         PR middle-end/43602
27734         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
27735         DECL_VISIBILITY_SPECIFIED.
27736         (emutls_decl): Set DECL_PRESERVE_P and copy
27737         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
27738         (emutls_finalize_control_var): New callback.
27739         (emutls_finish): Finalize emutls control variables.
27740         * toplev.c (compile_file): Move the call to emutls_finish ()
27741         before varpool_assemble_pending_decls ().
27742
27743 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
27744
27745         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
27746         added to the preprocessor condition.
27747
27748 2010-05-24  Paul Brook  <paul@codesourcery.com>
27749
27750         * gengtype-lex.l: Add HARD_REG_SET.
27751         * expr.c (expand_expr_real_1): Record writes to hard registers.
27752         * function.c (rtl_data): Add asm_clobbers.
27753         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
27754         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
27755         Use crtl->asm_clobbers.
27756
27757 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27758
27759         * doc/makefile.texi (Makefile): Mention stages 'profile'
27760         and 'feedback' for profiledbootstrap.
27761
27762 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
27763
27764         PR target/44245
27765         * config/i386/i386.c (def_builtin): Properly check
27766         OPTION_MASK_ISA_64BIT.
27767
27768 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
27769
27770         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
27771         typedefs with different but compatible types.  Allow duplicate
27772         typedefs with the same type except for pedantic non-C1X, but give
27773         warning for variably modified types.
27774         * c-typeck.c (tagged_types_tu_compatible_p,
27775         function_types_compatible_p, type_lists_compatible_p,
27776         comptypes_internal): Add parameter different_types_p; set
27777         *different_types_p for different but compatible types.  All
27778         callers changed.
27779         (comptypes_check_different_types): New.
27780         * c-tree.h (comptypes_check_different_types): Declare.
27781
27782 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27783
27784         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
27785         * jump.c: Include basic-block.h.
27786         * profile.c: Likewise.
27787         * tree-profile.c: Likewise.
27788         * coverage.c: Likewise.
27789         * basic-block.h (optimize_function_for_size_p): Move to function.h.
27790         (optimize_function_for_speed_p): Likewise.
27791         * function.h (optimize_function_for_size_p,
27792         optimize_function_for_speed_p): Moved here from basic-block.h.
27793         * Makefile.in: Update dependencies.
27794
27795 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27796
27797         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
27798         before calling make; allow override through $MAKE.
27799         * doc/invoke.texi (Optimize Options): Document override.
27800
27801 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
27802
27803         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
27804         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27805         (rs6000_mode_dependent_address_ptr): Make static.
27806         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27807         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
27808         Remove.
27809
27810 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
27811
27812         PR target/43869
27813         * config/i386/i386.c: Make sure that the correct regparm is passed.
27814
27815 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27816
27817         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
27818         * sbitmap.c: ...to here to internalize sbitmap element access.
27819         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
27820         Explain why basic-block.h is included.
27821         * function.h: Include tm.h for CUMULATIVE_ARGS.
27822         * Makefile.in: Update dependencies.
27823
27824 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27825
27826         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
27827         New core types.
27828         * sbitmap.h (struct sbitmap_def): Do not typedef here.
27829         * sbitmap.c: Include sbitmap.h.
27830         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
27831         hard-reg-set.h.  Split everything related to regsets out from here...
27832         * regset.h: ...to here.  New file.
27833         * df.h: Include regset.h and sbitmap.h.
27834         * tree-flow.h: Likewise.
27835         * cfgloop.h: Likewise.
27836         * except.h: Do not include sbitmap.h.  Include hashtab.h.
27837         * cgraph.h: Include vec.h and function.h.
27838         * reload.h (struct insn_chain): Change types of live_throughout
27839         and dead_or_set from regset_head to bitmap_head.
27840         (compute_use_by_pseudos): Be defined also if regset.h is not included.
27841         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
27842         spilled_regs from regset_head to bitmap_head to avoid dependency
27843         in regset.h.
27844         * sel-sched-ir.h: Include regset.h.
27845         * reload.c: Include df.h before reload.h.
27846         * caller-save.c: Likewise.
27847         * reload1.c: Likewise.
27848         * ira.c: Likewise.
27849         (mark_elimination): Update type of r to bitmap, consistent with
27850         DF_LR_IN.
27851         * dominance.c: Include bitmap.h.
27852         * modulo-sched.c: Include df.h.
27853         * cfganal.c: Include bitmap.h and sbitmap.h.
27854         * cfgbuild.c: Include sbitmap.h.
27855         * lcm.c: Include sbitmap.h.
27856         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
27857         * domwalk.c: Include sbitmap.h, exclude ggc.h.
27858         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
27859         * cselib.c: Include bitmap.h.
27860         * tree-optimize.c: Include regset.h.
27861         * stmt.c: Include bitmap.h.
27862         * Makefile.in: Update dependencies.
27863
27864 2010-05-22  Jan Hubicka  <jh@suse.cz>
27865
27866         * cgraph.h (struct varpool_node): Add same_comdat_group.
27867         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
27868         pointer.
27869         (output_varpool): Update call of lto_output_varpool_node.
27870         (input_varpool): Read same_comdat_group pointer.
27871         (input_varpool_1): Fixup same_comdat_group pointer.
27872         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
27873         group is needed, all are.
27874         * varpool.c (varpool_remove_node): Remove node from same comdat group
27875         linklist too.
27876         (varpool_analyze_pending_decls): Walk same comdat groups.
27877
27878 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27879
27880         * rtl.h (union rtunion_def): Remove rt_bit member.
27881         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
27882         * print-rtl (print_rtx): Do not print the member.
27883         * gengtype.c (adjust_field_rtx_def): Do not handle it.
27884         * gengenrtl.c (type_from_format): Likewise.
27885         (accessor_from_format): Likewise.
27886
27887 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
27888
27889         * dbgcnt.c: Include toplev.h instead of errors.h.
27890         * ira-emit.c: Don't include errors.h.
27891         * ira.c: Include toplev.h instead of errors.h.
27892         * lto-compress.c: Include toplev.h instead of errors.h.
27893         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
27894         ira.o, dbgcnt.o): Update dependencies.
27895
27896 2010-05-22  Richard Guenther  <rguenther@suse.de>
27897
27898         * gimple.c (gimple_types_compatible_p): Check type qualifications
27899         before merging pointer to complete and pointer to incomplete type.
27900         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
27901         we use our own resolution algorithm.  The gold linker plugin
27902         doesn't do the job we want it to do here.
27903
27904 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
27905
27906         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27907         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27908         (sparc_mode_dependent_address_p): New function.
27909
27910 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27911
27912         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
27913
27914         * timevar.c: Do not include any core headers.
27915         (timevar_print): De-i18n-ize.
27916         (print_time): Likewise.
27917         * timevar.h (timevar_push, timevar_pop): Make inline functions.
27918
27919 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
27920
27921         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
27922         langhooks-def.h.
27923         (diagnostic_initialize): Initialize x_data not last_function.
27924         (diagnostic_report_current_function): Move to tree-diagnostic.c.
27925         (default_diagnostic_starter): Call
27926         diagnostic_report_current_module not
27927         diagnostic_report_current_function.
27928         (diagnostic_report_diagnostic): Initialize x_data not
27929         abstract_origin.
27930         (verbatim): Likewise.
27931         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
27932         x_data.
27933         (struct diagnostic_context): Change last_function to x_data.
27934         (diagnostic_auxiliary_data): Replace with
27935         diagnostic_context_auxiliary_data and
27936         diagnostic_info_auxiliary_data.
27937         (diagnostic_last_function_changed, diagnostic_set_last_function,
27938         diagnostic_report_current_function): Move to tree-diagnostic.h.
27939         (print_declaration, dump_generic_node, print_generic_stmt,
27940         print_generic_stmt_indented, print_generic_expr,
27941         print_generic_decl, debug_c_tree, dump_omp_clauses,
27942         print_call_name, debug_generic_expr, debug_generic_stmt,
27943         debug_tree_chain, default_tree_printer): Move to
27944         tree-pretty-print.h.
27945         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
27946         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
27947         gimple-pretty-print.h.
27948         * pretty-print.c: Don't include tree.h
27949         (pp_base_format): Don't handle %K here.
27950         (pp_base_tree_identifier): Move to tree-pretty-print.c.
27951         * pretty-print.h (text_info): Change abstract_origin to x_data.
27952         (pp_tree_identifier, pp_unsupported_tree,
27953         pp_base_tree_identifier): Move to tree-pretty-print.h.
27954         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
27955         tree-pretty-print.h: New files.
27956         * tree-pretty-print.c: Include tree-pretty-print.h.
27957         (percent_K_format): New.  Moved from pretty-print.c.
27958         (pp_base_tree_identifier): Move from pretty-print.c.
27959         * c-objc-common.c: Include tree-pretty-print.h.
27960         (c_tree_printer): Handle %K here.
27961         * langhooks.c: Include tree-diagnostic.h.
27962         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
27963         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
27964         (default_tree_printer): Handle %K using percent_K_format.
27965         (general_init): Use default_tree_diagnostic_starter.
27966         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
27967         (free_lang_data): Use default_tree_diagnostic_starter.
27968         * c-pretty-print.c: Include tree-pretty-print.h.
27969         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27970         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27971         * dwarf2out.c: Include tree-pretty-print.h.
27972         * except.c: Include tree-pretty-print.h.
27973         * gimple-pretty-print.c: Include tree-pretty-print.h and
27974         gimple-pretty-print.h.
27975         * gimplify.c: Include tree-pretty-print.h.
27976         * graphite-poly.c: Include tree-pretty-print.h and
27977         gimple-pretty-print.h.
27978         * ipa-cp.c: Include tree-pretty-print.h.
27979         * ipa-inline.c: Include gimple-pretty-print.h.
27980         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27981         * ipa-pure-const.c: Include gimple-pretty-print.h.
27982         * ipa-struct-reorg.c: Include tree-pretty-print.h and
27983         gimple-pretty-print.h.
27984         * ipa-type-escape.c: Include tree-pretty-print.h.
27985         * print-rtl.c: Include tree-pretty-print.h.
27986         * print-tree.c: Include gimple-pretty-print.h.
27987         * sese.c: Include tree-pretty-print.h.
27988         * tree-affine.c: Include tree-pretty-print.h.
27989         * tree-browser.c: Include tree-pretty-print.h.
27990         * tree-call-cdce.c: Include gimple-pretty-print.h.
27991         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27992         * tree-chrec.c: Include tree-pretty-print.h.
27993         * tree-data-ref.c: Include tree-pretty-print.h and
27994         gimple-pretty-print.h.
27995         * tree-dfa.c: Include tree-pretty-print.h.
27996         * tree-if-conv.c: Include tree-pretty-print.h and
27997         gimple-pretty-print.h.
27998         * tree-inline.c: Include tree-pretty-print.h.
27999         * tree-into-ssa.c: Include tree-pretty-print.h and
28000         gimple-pretty-print.h.
28001         * tree-nrv.c: Include tree-pretty-print.h.
28002         * tree-object-size.c: Include tree-pretty-print.h and
28003         gimple-pretty-print.h.
28004         * tree-outof-ssa.c: Include tree-pretty-print.h and
28005         gimple-pretty-print.h.
28006         * tree-parloops.c: Include tree-pretty-print.h and
28007         gimple-pretty-print.h.
28008         * tree-predcom.c: Include tree-pretty-print.h and
28009         gimple-pretty-print.h.
28010         * tree-scalar-evolution.c: Include tree-pretty-print.h and
28011         gimple-pretty-print.h.
28012         * tree-sra.c: Include tree-pretty-print.h.
28013         * tree-ssa-address.c: Include tree-pretty-print.h.
28014         * tree-ssa-alias.c: Include tree-pretty-print.h.
28015         * tree-ssa-ccp.c: Include tree-pretty-print.h and
28016         gimple-pretty-print.h.
28017         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
28018         * tree-ssa-copy.c: Include tree-pretty-print.h and
28019         gimple-pretty-print.h.
28020         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
28021         * tree-ssa-dce.c: Include tree-pretty-print.h and
28022         gimple-pretty-print.h.
28023         * tree-ssa-dom.c: Include tree-pretty-print.h and
28024         gimple-pretty-print.h.
28025         * tree-ssa-dse.c: Include gimple-pretty-print.h.
28026         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
28027         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
28028         * tree-ssa-live.c: Include tree-pretty-print.h and
28029         gimple-pretty-print.h.
28030         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
28031         gimple-pretty-print.h.
28032         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
28033         gimple-pretty-print.h.
28034         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
28035         gimple-pretty-print.h.
28036         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
28037         gimple-pretty-print.h.
28038         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
28039         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
28040         * tree-ssa-operands.c: Include tree-pretty-print.h and
28041         gimple-pretty-print.h.
28042         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
28043         gimple-pretty-print.h.
28044         * tree-ssa-pre.c: Include tree-pretty-print.h and
28045         gimple-pretty-print.h.
28046         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
28047         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
28048         gimple-pretty-print.h.
28049         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
28050         gimple-pretty-print.h.
28051         * tree-ssa-sink.c: Include gimple-pretty-print.h.
28052         * tree-ssa-ter.c: Include tree-pretty-print.h and
28053         gimple-pretty-print.h.
28054         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
28055         * tree-ssa.c: Include tree-pretty-print.h and
28056         gimple-pretty-print.h.
28057         * tree-stdarg.c: Include gimple-pretty-print.h.
28058         * tree-switch-conversion.c: Include gimple-pretty-print.h.
28059         * tree-tailcall.c: Include tree-pretty-print.h and
28060         gimple-pretty-print.h.
28061         * tree-vect-data-refs.c: Include tree-pretty-print.h and
28062         gimple-pretty-print.h.
28063         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
28064         gimple-pretty-print.h.
28065         * tree-vect-loop.c: Include tree-pretty-print.h and
28066         gimple-pretty-print.h.
28067         * tree-vect-patterns.c: Include gimple-pretty-print.h.
28068         * tree-vect-slp.c: Include tree-pretty-print.h and
28069         gimple-pretty-print.h.
28070         * tree-vect-stmts.c: Include tree-pretty-print.h and
28071         gimple-pretty-print.h.
28072         * tree-vectorizer.c: Include tree-pretty-print.h.
28073         * tree-vrp.c: Include tree-pretty-print.h and
28074         gimple-pretty-print.h.
28075         * value-prof.c: Include tree-pretty-print.h and
28076         gimple-pretty-print.h.
28077         * var-tracking.c: Include tree-pretty-print.h.
28078         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
28079         (tree-diagnostic.o): New dependencies.
28080         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
28081         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
28082         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
28083         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
28084         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
28085         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
28086         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
28087         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
28088         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
28089         tree-ssa-address.o, tree-ssa-loop-niter.o,
28090         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
28091         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
28092         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
28093         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
28094         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
28095         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
28096         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
28097         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
28098         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
28099         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
28100         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
28101         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
28102         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
28103         tree-switch-conversion.o, var-tracking.o, value-prof.o,
28104         cfgexpand.o, pretty-print.o): Update dependencies.
28105
28106 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
28107
28108         * tree-ssa-structalias.c: Remove tm_p.h from include.
28109
28110 2010-05-21  Jeff Law  <law@redhat.com>
28111
28112         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
28113
28114 2010-05-21  Jason Merrill  <jason@redhat.com>
28115
28116         * tree-eh.c (cleanup_is_dead_in): New.
28117         (lower_try_finally): Don't generate a dead cleanup region.
28118         (lower_cleanup): Likewise.
28119
28120 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28121
28122         PR debug/44223
28123         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
28124         unchain each use from the cyclic next_regno_use chain first.
28125
28126 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28127
28128         * real: Do not include gmp.h, mpfr.h, and mpc.h.
28129         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
28130         (real_value_negate, real_value_abs): New prototypes.
28131         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
28132         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
28133         new include file for interface between MPFR and REAL_VALUE_TYPE.
28134         * real.c: Include realmpfr.h.
28135         (real_arithmetic2): Remove legacy function.
28136         (real_value_negate): New.
28137         (real_value_abs): New.
28138         (mfpr_from_real, real_from_mpfr): Move from here...
28139         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
28140         * builtins.c: Include realmpfr.h.
28141         * fold-const.c: Include realmpfr.h.
28142         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
28143         (fold_negate_const): Likewise.
28144         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
28145         * toplev.c: Include realmpfr.h.
28146         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
28147         and real_value_negate.
28148         * fixed-value.c (check_real_for_fixed_mode): Likewise.
28149         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
28150         (vfp3_const_double_index): Likewise.
28151         (arm_print_operand): Likewise.
28152         * Makefile.in: Update dependencies.
28153
28154 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28155
28156         * config/s390/s390.c (override_options): Increase the default
28157         of max-completely-peel-times.
28158
28159 2010-05-21  Julian Brown  <julian@codesourcery.com>
28160             Mark Mitchell  <mark@codesourcery.com>
28161
28162         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
28163         sibling calls for Thumb-1.
28164         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
28165         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
28166         Thumb-2.
28167         (*call_insn, *call_value_insn): Don't use for Thumb-2.
28168         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
28169         for Thumb-2.
28170         (return): New expander.
28171         (*arm_return): New name for ARM return insn.
28172         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
28173
28174 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
28175
28176         * config.gcc (sparc64-*-rtems*): New target.
28177
28178 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28179
28180         * tree.c (build_function_decl_skip_args): Fix grammar.
28181         (build_function_type_list_1): Fix typos, adjust formatting.
28182
28183 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28184
28185         * tree.h: Include real.h and fixed-value.h as basic datatypes.
28186         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
28187         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
28188         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
28189         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
28190         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
28191         tree-pretty-print.c, tree-loop-distribution.c,
28192         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
28193         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
28194         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
28195         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
28196         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
28197         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
28198         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
28199         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
28200         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
28201         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
28202         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
28203         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
28204         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
28205         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
28206         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
28207         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
28208         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
28209         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
28210         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
28211         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
28212         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
28213         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
28214         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
28215         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
28216         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
28217         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
28218         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
28219         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
28220         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
28221         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
28222         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
28223         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
28224         config/score/score7.c, config/score/score.c, config/arm/arm.c,
28225         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
28226         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
28227         config/bfin/bfin.c: Clean up redundant includes.
28228         * Makefile.in: Update accordingly.
28229
28230 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28231
28232         PR middle-end/44204
28233         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
28234         statement has no arguments.
28235
28236 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
28237
28238         PR/44139
28239         * varasm.c (emutls_decl): Merge attributes to new decl.
28240
28241 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
28242
28243         PR middle-end/44101
28244         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
28245         around the uniquized constructor if its type requires a conversion.
28246
28247 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28248
28249         PR debug/44205
28250         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
28251         at -O0 goto_locus of any of the incoming edges differs from
28252         goto_locus of outgoing edge, or gimple_location of any of the
28253         labels differs.
28254
28255 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
28256
28257         * ira.c (ira_non_ordered_class_hard_regs): Define.
28258         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
28259         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
28260         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
28261         cost of unaligned hard regs when allocating multi-reg pseudos.
28262
28263 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
28264
28265         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
28266         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
28267         for TARGET_NO_FLOAT.
28268         * config/mips/mips.c (mips_file_start): Expand conditional expression
28269         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
28270         (mips_override_options): Move -mno-float override -msoft-float and
28271         -mhard-float.
28272         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
28273         Condition(TARGET_SUPPORTS_NO_FLOAT).
28274         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
28275         __mips_no_float here.
28276         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
28277         (TARGET_SUPPORTS_NO_FLOAT): Define.
28278         * config/mips/sdemtk.opt: Delete.
28279
28280 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
28281
28282         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
28283
28284 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
28285
28286         PR target/43733
28287         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
28288         * configure: Regenerate.
28289         * config.in: Regenerate.
28290         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
28291         instead of sahf only for 64bit targets.
28292
28293 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28294
28295         PR debug/44178
28296         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
28297         setup_ref_regs for DEBUG_INSNs.
28298
28299 2010-05-20  Jan Hubicka  <jh@suse.cz>
28300
28301         PR middle-end/44197
28302         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
28303
28304 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
28305
28306         PR bootstrap/43870
28307         * df-scan.c (df_ref_compare): Stabilize sort.
28308
28309 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28310
28311         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
28312         argument.  Don't use DW_OP_piece if offset is non-zero,
28313         put offset into second DW_OP_bit_piece argument.
28314         (dw_sra_loc_expr): Adjust callers.  For memory expressions
28315         compute offset.
28316
28317 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
28318
28319         PR target/44202
28320         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
28321         settings for 16-bit-constant "addo" alternative.
28322
28323 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
28324
28325         * config/mips/mips-dsp.md (add<DSPV:mode>3,
28326         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
28327
28328         PR target/43764
28329         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
28330         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
28331         Use it.
28332
28333 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
28334
28335         * diagnostic.c (FLOAT, FFS): Don't undefine.
28336         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
28337         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
28338         include ordering.
28339
28340 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
28341
28342         * combine.c (propagate_for_debug): Call make_compound_operation
28343         on the source value.
28344         (try_combine): When implementing a split chosen by find_split_point,
28345         either copy i2src or set it to null.  Assert that i2src is not null
28346         before substituting into CALL_INSN_FUNCTION_USAGE.
28347
28348 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
28349
28350         * double-int.h (double_int_ior): New function.
28351         * tree.h (build_int_cst_wide_type): Remove.
28352         * tree.c (build_int_cst_wide_type): Remove.
28353         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
28354         of build_int_cst_wide_type.
28355         * stor-layout.c (set_sizetype): (Ditto.).
28356         * dojump.c (do_jump): Use build_int_cstu instead of
28357         build_int_cst_wide_type.
28358
28359 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
28360
28361         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
28362         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
28363         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
28364         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
28365         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
28366         propagate the 'data' argument to copy_tree_r.
28367         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
28368         Propagate 'data' argument to walk_tree.
28369         (copy_if_shared): New function.
28370         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
28371         (unmark_visited): New function.
28372         (unshare_body): Call copy_if_shared instead of doing it manually.
28373         (unvisit_body): Call unmark_visited instead of doing it manually.
28374
28375 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
28376
28377         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
28378         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
28379         * hooks.c: Likewise.
28380         * target-def.h (TARGET_FOLD_BUILTIN): Define to
28381         hook_tree_tree_int_treep_bool_null.
28382         * target.h (struct gcc_target): Update signature of fold_builtin
28383         field.
28384         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
28385         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
28386         instead of the call expression.
28387         (fold_builtin_call_array): Pass n and argarray directly.
28388         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
28389         consing a list.
28390         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
28391         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
28392         `i' and use it in place of `arity'.
28393         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
28394         Dereference `args' directly.
28395         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
28396
28397 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28398
28399         * doc/sourcebuild.texi (Effective-Target Keywords): Document
28400         3dnow, sse3, sse2.
28401         (Directives): Document optional dg-require-effective-target
28402         selector.
28403
28404 2010-05-19  Richard Guenther  <rguenther@suse.de>
28405
28406         PR lto/44196
28407         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
28408
28409 2010-05-19  Richard Guenther  <rguenther@suse.de>
28410
28411         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
28412         * common.opt (fwhopr=): New.
28413         * opts.c (common_handle_option): Handle OPT_fwhopr.
28414         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
28415         * collect2.c (main): Match -fwhopr*.
28416         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
28417         Execute ltrans stage in parallel when jobs is bigger than 1.
28418
28419 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28420
28421         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
28422         pentiumpro on Solaris 8/x86 with Sun as.
28423         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
28424         hidden alias bug.
28425         (gcc_cv_as_ix86_quad): Check for .quad directive.
28426         * configure: Regenerate.
28427         * config.in: Regenerate.
28428         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
28429
28430 2010-05-19  Martin Jambor  <mjambor@suse.cz>
28431
28432         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
28433         also for indirect edges.  Actual printing moved...
28434         (ipa_print_node_jump_functions_for_edge): ...here.
28435         (ipa_compute_jump_functions): Renamed to
28436         ipa_compute_jump_functions_for_edge and made static.
28437         (ipa_compute_jump_functions): New function.
28438         (make_edge_direct_to_target): Check if the number of arguments on
28439         the newly direct edge is the same as the number of parametrs of
28440         the callee.
28441         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
28442         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
28443         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
28444         analysis functions unconditionally, call the new
28445         ipa_analyze_params_uses on the node instead of every edge.
28446
28447 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
28448
28449         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
28450         to tree.
28451         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
28452         also checks for a constant int vs.  non-constant but
28453         loop-invariant steps.
28454         (find_or_create_group): Change the sort algorithm to only consider
28455         steps that are constant ints.
28456         (idx_analyze_ref): Adopt code to handle a tree instead of a
28457         HOST_WIDE_INT for step.
28458         (gather_memory_references_ref): Handle tree instead of int and be
28459         prepared to see a NULL_TREE.
28460         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
28461         prefetches if the step cannot be calculated at compile time.
28462         (issue_prefetch_ref): Issue prefetches for non-constant but
28463         loop-invariant steps.
28464
28465 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28466
28467         Revert:
28468         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28469
28470         * tree.h (build_call_list): Remove.
28471         * tree.c (build_call_list): Remove.
28472
28473 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28474
28475         * tree.h (build_call_list): Remove.
28476         * tree.c (build_call_list): Remove.
28477
28478 2010-05-18  Jan Hubicka  <jh@suse.cz>
28479
28480         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
28481
28482 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
28483
28484         PR rtl-optimization/43332
28485         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
28486
28487 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
28488
28489         * tree.h (build_int_cstu): Implement as static inline.
28490         * tree.c (build_int_cstu): Remove function.
28491         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
28492         sign extended.
28493
28494 2010-05-18  Richard Guenther  <rguenther@suse.de>
28495
28496         PR lto/44143
28497         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
28498         (debug): Initialize from -save-temps.
28499         (collect_execute): Print command-line when verbose.
28500         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
28501         for ltrans invocation.  Produce -dumpbase flag again.
28502         (process_args): Remove.
28503         (main): Simplify.
28504         * collect2.c (maybe_run_lto_and_relink): Only pass object
28505         files to lto-wrapper.
28506         * gcc.c (LINK_COMMAND_SPEC): Likewise.
28507
28508 2010-05-18  Jan Hubicka  <jh@suse.cz>
28509
28510         * opts.c (decode_options): Do not disable whopr at ipa_cp.
28511         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
28512
28513 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28514
28515         PR lto/44184
28516         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
28517         in a GIMPLE_ASM.
28518         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
28519         in a GIMPLE_ASM.
28520
28521 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
28522
28523         PR debug/41371
28524         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
28525         rtx_equal_p inline.
28526
28527 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28528
28529         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
28530         lto-macho as lto_binary_reader.
28531
28532         * darwin.c (darwin_asm_named_section): Do not add assembler comment
28533         after .section directive; just print it before the directive instead.
28534
28535 2010-05-17  Jan Hubicka  <jh@suse.cz>
28536
28537         * cgraph.c (cgraph_create_virtual_clone): Only check
28538         versionable_function_p when not in wpa and checking is enabled.
28539         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
28540         there are no more functions to materialize.
28541
28542 2010-05-17  Jan Hubicka  <jh@suse.cz>
28543
28544         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
28545         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
28546         New functions.
28547         (output_cgraph): Call output_cgraph_opt_summary.
28548         (input_cgrpah): Call input_cgraph_opt_summary.
28549         (output_cgraph_opt_summary_p, output_node_opt_summary,
28550         input_node_opt_summary, input_cgraph_opt_section): New functions.
28551         * lto-section-in.c (lto_section_name): Add cgraphopt.
28552         * tree-inline.c (tree_function_versioning): Handle parm_num.
28553         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
28554         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
28555
28556 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28557
28558         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
28559         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
28560         the insn to prefetch ratio heuristic to loops with known trip count.
28561
28562 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28563
28564         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
28565         (schedule_prefetches): Do not generate a prefetch if the unroll factor
28566         is far from what is required by the prefetch.
28567
28568 2010-05-17  Jan Hubicka  <jh@suse.cz>
28569
28570         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
28571         (ipcp_estimate_growth): Likewise.
28572         (ipcp_const_param_count): Likewise.
28573         (ipcp_insert_stage): Likewise.
28574         * ipa-prop.c (visit_load_for_mod_analysis): New function.
28575         (visit_store_addr_for_mod_analysis): Set used flag.
28576         (ipa_detect_param_modifications): Set used flag for SSE params;
28577         update use of walk_stmt_load_store_addr_ops.
28578         (ipa_print_node_params): Print used flag.
28579         (ipa_write_node_info): Stream used flag.
28580         (ipa_read_node_info): Likewise.
28581         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
28582         (ipa_is_param_used): New function.
28583         (lto_ipa_fixup_call_notes): Remove unused declaration.
28584
28585 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28586
28587         PR target/44074
28588         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
28589         * configure: Regenerate.
28590         * config.in: Regenerate.
28591         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
28592         !HAVE_AS_IX86_REP_LOCK_PREFIX.
28593         Don't emit whitespace.
28594         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
28595         (*rep_movsi): Likewise.
28596         (*rep_movsi_rex64): Likewise.
28597         (*rep_movqi): Likewise.
28598         (*rep_movqi_rex64): Likewise.
28599         (*rep_stosdi_rex64): Likewise.
28600         (*rep_stossi): Likewise.
28601         (*rep_stossi_rex64): Likewise.
28602         (*rep_stosqi): Likewise.
28603         (*rep_stosqi_rex64): Likewise.
28604         (*cmpstrnqi_nz_1): Use {%;} after repz.
28605         (*cmpstrnqi_nz_rex_1): Likewise.
28606         (*cmpstrnqi_1): Likewise.
28607         (*cmpstrnqi_rex_1): Likewise.
28608         (*strlenqi_1): Use {%;} after repnz.
28609         (*strlenqi_rex_1): Likewise.
28610         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
28611         (*sync_compare_and_swap<mode>): Likewise.
28612         (sync_double_compare_and_swap<mode>): Likewise.
28613         (*sync_double_compare_and_swapdi_pic): Likewise.
28614         (sync_old_add<mode>): Likewise.
28615         (sync_add<mode>): Likewise.
28616         (sync_sub<mode>): Likewise.
28617         (sync_<code><mode>): Likewise.
28618
28619 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28620
28621         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
28622         otr_token and polymorphic.
28623         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
28624         (cgraph_clone_edge): Copy the above fields.
28625         * tree.c (get_binfo_at_offset): New function.
28626         * tree.h (get_binfo_at_offset): Declare.
28627         * ipa-prop.h (enum jump_func_type): Added known_type jump function
28628         type, reordered items, updated comments.
28629         (union jump_func_value): Added base_type field, reordered fields.
28630         (enum ipa_lattice_type): Moved down in the file.
28631         (struct ipa_param_descriptor): New field polymorphic.
28632         (ipa_is_param_polymorphic): New function.
28633         * ipa-prop.c: Include gimple.h and gimple-fold.h.
28634         (ipa_print_node_jump_functions): Print known type jump functions.
28635         (compute_complex_pass_through): Renamed to...
28636         (compute_complex_assign_jump_func): this.
28637         (compute_complex_ancestor_jump_func): New function.
28638         (compute_known_type_jump_func): Likewise.
28639         (compute_scalar_jump_functions): Create known type and complex ancestor
28640         jump functions.
28641         (ipa_note_param_call): New parameter polymorphic, set the corresponding
28642         flag in the call note accordingly.
28643         (ipa_analyze_call_uses): Renamed to...
28644         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
28645         variable var only in the block where it is used.
28646         (ipa_analyze_virtual_call_uses): New function.
28647         (ipa_analyze_call_uses): Likewise.
28648         (combine_known_type_and_ancestor_jfs): Likewise.
28649         (update_jump_functions_after_inlining): Implemented handling of a
28650         number of new jump function types combination.
28651         (print_edge_addition_message): Removed.
28652         (make_edge_direct_to_target): New function.
28653         (try_make_edge_direct_simple_call): Likewise.
28654         (try_make_edge_direct_virtual_call): Likewise.
28655         (update_call_notes_after_inlining): Renamed to...
28656         (update_indirect_edges_after_inlining): this.  Moved edge creation for
28657         indirect calls to try_make_edge_direct_simple_call, also calls
28658         try_make_edge_direct_virtual_call for virtual calls.
28659         (ipa_print_node_params): Changed the header message.
28660         (ipa_write_jump_function): Stream also known type jump functions.
28661         (ipa_read_jump_function): Likewise.
28662         (ipa_write_indirect_edge_info): Stream new fields in
28663         cgraph_indirect_call_info.
28664         (ipa_read_indirect_edge_info): Likewise.
28665         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
28666         GIMPLE_FOLD_H.
28667
28668 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28669
28670         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
28671
28672 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28673
28674         * tree.h (CALL_EXPR_ARGS): Delete.
28675         (call_expr_arglist): Delete.
28676         * tree.c (call_expr_arglist): Delete.
28677         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
28678         targetm.fold_builtin.
28679         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
28680         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
28681         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
28682         arglist parameter.  Use CALL_EXPR_ARG.
28683         (picochip_expand_builtin_3op): Likewise.
28684         (picochip_expand_builtin_2opvoid): Likewise.
28685         (picochip_expand_array_get): Likewise.
28686         (picochip_expand_array_put): Likewise.
28687         (picochip_expand_array_testport): Likewise.
28688         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
28689         rather than arglist.
28690         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
28691         CALL_EXPR_ARGS.
28692         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
28693         than TREE_VALUE and TREE_CHAIN.
28694         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
28695         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
28696         the arglist.
28697
28698 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28699
28700         PR bootstrap/42347
28701         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
28702         to have no fallthru edge.
28703
28704         PR middle-end/44102
28705         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
28706         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
28707         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
28708         add BARRIER after previous bb if needed.
28709
28710 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28711
28712         * tree.c (build_function_type_list_1): Remove bogus assert condition.
28713
28714 2010-05-17  Alan Modra  <amodra@gmail.com>
28715
28716         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
28717         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
28718         with copy_reg rtx param.
28719         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
28720         Correct cases where code for ABI_V4 did not initialise the reg
28721         used to access frame.  Also leave frame_reg_rtx as sp for large
28722         frames that save no regs.
28723
28724 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28725
28726         PR middle-end/44133
28727         * tree-sra.c (create_access_replacement): New parameter rename, mark
28728         the replaement for renaming only when it is true.
28729         (get_access_replacement): Pass true in the rename parameter of
28730         create_access_replacement.
28731         (get_unrenamed_access_replacement): New function.
28732         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
28733         replacement declaration from it.
28734
28735 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
28736
28737         * function.c (try_fit_stack_local, add_frame_space): New static
28738         functions.
28739         (assign_stack_local_1): Use them.  Look for opportunities to use
28740         space previously wasted on alignment.
28741         * function.h (struct frame_space): New.
28742         (struct rtl_data): Add FRAME_SPACE_LIST member.
28743         * reload1.c (something_was_spilled): New static variable.
28744         (alter_reg): Set it.
28745         (reload): Test it in addition to testing if the frame size changed.
28746
28747 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
28748
28749         * config/s390/s390.c: Define sane prefetch settings and activate
28750         flag_prefetch_loop_arrays on -O3.
28751         * config/s390/s390.h: Declare that read can use write prefetch.
28752
28753 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28754
28755         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
28756         build.
28757
28758 2010-05-16  Jan Hubicka  <jh@suse.cz>
28759
28760         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
28761         function body; do not check stdarg field of struct function.
28762
28763 2010-05-16  Jan Hubicka  <jh@suse.cz>
28764
28765         * cgraph.c (dump_cgraph_node): Dump versionable flag.
28766         * cgraph.h (cgraph_local_info): Add versionable flag.
28767         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
28768         (ipcp_versionable_function_p): Use it.
28769         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
28770         versionable flag.
28771
28772 2010-05-16  Jan Hubicka  <jh@suse.cz>
28773
28774         * cgraph.c (cgraph_clone_node): Take decl argument and insert
28775         clone into hash when it is different from orig.
28776         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
28777         * cgraph.h (cgraph_clone_node): Update prototype.
28778         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
28779         (lto_cgraph_encoder_delete): Delete body map.
28780         (lto_cgraph_encoder_size): Move to header.
28781         (lto_cgraph_encoder_encode_body_p,
28782         lto_set_cgraph_encoder_encode_body): New.
28783         (lto_output_node): Do not take written_decls argument; output clone_of
28784         pointer.
28785         (add_node_to): Add include_body_argument; call
28786         lto_set_cgraph_encoder_encode_body on master of the clone.
28787         (add_references): Update use of add_node_to.
28788         (compute_ltrans_boundary): Likewise.
28789         (output_cgraph): Do not create written_decls bitmap.
28790         (input_node): Take nodes argument; stream in clone_of correctly.
28791         (input_cgraph_1): Update use of input_node.
28792         * lto-streamer-out.c (lto_output): Use encoder info to decide
28793         what bodies to output.
28794         * ipa-inline.c (cgraph_clone_inlined_nodes,
28795         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
28796         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
28797         (lto_cgraph_encoder_size): Define here.
28798         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
28799         Declare.
28800
28801 2010-05-16  Richard Guenther  <rguenther@suse.de>
28802
28803         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
28804         -fipa-type-escape.
28805         * ipa-type-escape.c (gate_type_escape_vars): Run when
28806         -fipa-struct-reorg runs.
28807         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
28808         * common.opt (fipa-type-escape): Remove.
28809
28810 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28811
28812         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
28813         (decode_options): Likewise.
28814         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
28815
28816 2010-05-16  Jan Hubicka  <jh@suse.cz>
28817
28818         * ipa.c (function_and_variable_visibility): Also bring local all
28819         aliases.
28820
28821 2010-05-16  Richard Guenther  <rguenther@suse.de>
28822
28823         * alias.c (nonoverlapping_memrefs_p): Remove use of
28824         IPA type-escape information.
28825
28826 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
28827
28828         * c-common.c (c_common_reswords): Add _Static_assert for C.
28829         * c-parser.c (c_token_starts_declaration,
28830         c_parser_next_token_starts_declaration,
28831         c_parser_static_assert_declaration_no_semi,
28832         c_parser_static_assert_declaration): New.
28833         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
28834         Handle static assertions if static_assert_ok.
28835         (c_parser_external_declaration, c_parser_declaration_or_fndef,
28836         c_parser_compound_statement_nostart, c_parser_label,
28837         c_parser_for_statement, c_parser_objc_methodprotolist,
28838         c_parser_omp_for_loop): All callers of
28839         c_parser_declaration_or_fndef changed.
28840         (c_parser_struct_declaration): Handle static assertions.
28841         (c_parser_compound_statement_nostart): Use
28842         c_parser_next_token_starts_declaration and
28843         c_token_starts_declaration to detect start of declarations.
28844         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
28845         Likewise.
28846
28847 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
28848
28849         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
28850         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
28851         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
28852         TARGET_FUNCTION_VALUE_REGNO_P): Define.
28853         (mmix_function_outgoing_value): Rename to...
28854         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
28855         (mmix_function_value_regno_p): Make static.
28856         (mmix_libcall_value): New function.
28857         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
28858         mmix_function_value_regno_p): Remove declaration.
28859
28860 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28861
28862         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
28863         BUILT_IN_ALLOCA if stack checking is enabled.
28864
28865 2010-05-16  Richard Guenther  <rguenther@suse.de>
28866
28867         * var-tracking.c (vars_copy_1): Inline ...
28868         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28869         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
28870         (variable_merge_over_cur): Adjust.  Merge asserts.
28871         (variable_merge_over_src): Likewise.
28872         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
28873         (variable_post_merge_new_vals): Merge asserts.
28874         (variable_post_merge_perm_vals): Likewise.
28875         (find_mem_expr_in_1pdv): Likewise.
28876         (dataflow_set_different_value): Remove.
28877         (onepart_variable_different_p): Merge asserts.
28878         (variable_different_p): Likewise.
28879         (dataflow_set_different_1): Inline ...
28880         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28881         (emit_notes_for_differences_1): Merge asserts.
28882
28883 2010-05-16  Richard Guenther  <rguenther@suse.de>
28884
28885         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
28886         * optabs.c (libfunc_decl_hash): Likewise.
28887         * varasm.c (emutls_decl): Likewise.
28888
28889 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
28890
28891         * c-decl.c: Don't include gimple.h.
28892         (merge_decls): Do not copy gimple_body.
28893
28894 2010-05-15  Jason Merrill  <jason@redhat.com>
28895
28896         * c.opt: Add -fnothrow-opt.
28897
28898 2010-05-15  Jan Hubicka  <jh@suse.cz>
28899
28900         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
28901         analyzed.
28902         * passes.c (ipa_write_summaries): Write all analyzed nodes.
28903
28904 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
28905
28906         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
28907         * Makefile.in: Add it.
28908         Fix all other Makefile dependencies for changes below.
28909         * tree.h: Include it instead of defining VEC primitives here.
28910         * gimple.h: Likewise.
28911         * rtl.h: Likewise.
28912         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
28913         * except.h: Include vecir.h, break dependence on tree.h.
28914
28915         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
28916         Move from here...
28917         * tree-iterator.c: ...to here.
28918         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
28919
28920         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
28921         tm_p.h.
28922         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
28923         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
28924         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
28925         tree-mudflap.h, and target.h.
28926         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
28927         predict.h, tree-inline.h, gimple.h, and langhooks.h.
28928         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
28929         Add FIXME for why gimple.h is still included (should be unnecessary
28930         since GCC 4.5 gimplification unit-at-a-time).
28931         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
28932         * c-pragma.c: Add FIXME for why function.h needs to be included just
28933         for cfun, at front-end level.
28934         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
28935         Do not include ggc.h, but include vecprim.h for VEC(char).
28936         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
28937         Explain why target.h is included.
28938         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
28939         Explain why gimple.h is included.
28940         * c-ppoutput.c: Do not include tm.h.
28941         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
28942         * c-parses.c: Explain why rtl.h is included, and that this (and only
28943         this) is also why tm.h must be included.
28944         Do not include except.h.
28945         * c-lang.c: Do not include ggc.h.
28946
28947 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
28948
28949         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
28950
28951 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
28952
28953         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
28954         unions by default if those structs and unions have no tags.  Do
28955         not condition anonymous struct and unions handling on flag_iso.
28956         Allow anonymous structs and unions for C1X.
28957         (finish_struct): Do not diagnose lack of named fields when
28958         anonymous structs and unions present for C1X.  Accept flexible
28959         array members in structure with anonymous structs or unions but no
28960         directly named fields.
28961         * doc/extend.texi (Unnamed Fields): Update.
28962
28963 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
28964
28965         * gimple.h (compare_field_offset): Rename into...
28966         (gimple_compare_field_offset): ...this.
28967         * gimple.c (compare_field_offset): Rename into...
28968         (gimple_compare_field_offset): ...this.  Compare the full access if
28969         the offset is self-referential.
28970         (gimple_types_compatible_p): Adjust for above renaming.
28971         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
28972         DECL_NONADDRESSABLE_P flag of fields before merging them.
28973
28974 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
28975
28976         * tree.h (ctor_to_list): Delete.
28977         * tree.c (ctor_to_list): Delete.
28978
28979 2010-05-15  Jan Hubicka  <jh@suse.cz>
28980
28981         * ipa-reference.c: Include toplev.h
28982         (is_proper_for_analysis): Only add to all_module_statics
28983         if it is allocated.
28984         (write_node_summary_p, stream_out_bitmap,
28985         ipa_reference_write_optimization_summary,
28986         ipa_reference_read_optimization_summary): New.
28987         (struct ipa_opt_pass_d pass_ipa_reference): Add
28988         optimization summary streaming.
28989         * lto-cgraph.c (referenced_from_this_partition_p,
28990         reachable_from_this_partition_p): New functions.
28991         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
28992         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
28993         * opts.c (decode_options): Enable ipa_reference.
28994         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
28995         * lto-streamer.h (referenced_from_this_partition_p,
28996         reachable_from_this_partition_p): Declare.
28997
28998 2010-05-15  Richard Guenther  <rguenther@suse.de>
28999
29000         PR tree-optimization/44038
29001         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
29002         taking the address of a V_C_E of a constant.
29003
29004 2010-05-14  Jan Hubicka  <jh@suse.cz>
29005
29006         * tree.h (memory_identifier_string): Remove.
29007         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
29008         (ipa_reference_global_vars_info_d): Remove statics_not_read and
29009         statics_not_written.
29010         (ipa_reference_optimization_summary_d): New structure.
29011         (ipa_reference_optimization_summary_t): New type and vector.
29012         (ipa_reference_vars_info_d): Embedd structures instead of using
29013         pointers.
29014         (reference_vars_to_consider): Remove out of GGC space.
29015         (module_statics_escape): Remove.
29016         (global_info_obstack): Rename to ...
29017         (optimization_summary_obstack): ... this one.
29018         (initialization_status_t): Remove.
29019         (memory_identifier_string): Remove.
29020         (get_reference_vars_info): Fix indenting.
29021         (set_reference_vars_info): Likewise.
29022         (get_reference_optimization_summary): New.
29023         (set_reference_optimization_summary): New.
29024         (get_global_reference_vars_info): Remove.
29025         (ipa_reference_get_read_global): Remove.
29026         (ipa_reference_get_written_global): Remove.
29027         (ipa_reference_get_not_read_global): Update.
29028         (ipa_reference_get_not_written_global): Update.
29029         (is_proper_for_analysis): Outlaw addressable.
29030         (propagate_bits): Update for new datastructures.
29031         (analyze_variable): Remove.
29032         (init_function_info): Update for new datastructures.
29033         (clean_function_local_data): Remove.
29034         (clean_function): Remove.
29035         (copy_global_bitmap): Use optimizations_summary_obstack.
29036         (duplicate_node_data): Duplicate optimization summary only.
29037         (remove_node_data): Remove optimization summary only.
29038         (generate_summary): Do not analyze variables; do not compute
29039         module_statics_escape; do not prune solutions by it.
29040         (read_write_all_from_decl): Fix typos in comments.
29041         (propagate): Doscover readonly and nonaddressable first;
29042         update for new datastructures; share global bitmaps.
29043         * ipa-reference.h (ipa_reference_get_read_global,
29044         ipa_reference_get_written_global): Remove.
29045         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
29046         * Makefile.in: Remove ipa-refereference from GT files.
29047
29048 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29049
29050         PR debug/44112
29051         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
29052         for all SYMBOL_REF_DECLs.
29053
29054 2010-05-14  Jan Hubicka  <jh@suse.cz>
29055
29056         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
29057         (varpool_all_refs_explicit_p): New inline function.
29058         * ipa-reference.c: Update comment.
29059         (module_statics_written): Remove.
29060         (get_static_decl): Remove.
29061         (ipa_init): Do not initialize module_statics_written.
29062         (analyze_function): Likewise.
29063         (generate_summary): Likewise; do not compute module_statics_readonly
29064         and do not update variable flags.
29065         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
29066         * ipa.c: Inlucde flags.h
29067         (cgraph_local_node_p): New.
29068         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
29069         promote functions to local.
29070         (ipa_discover_readonly_nonaddressable_vars): New function.
29071         (function_and_variable_visibility): Use cgraph_local_node_p.
29072         * varpool.c (varpool_finalize_decl): Set force_output for
29073         DECL_PRESERVE_P vars.
29074
29075 2010-05-14  Jan Hubicka  <jh@suse.cz>
29076
29077         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
29078
29079 2010-05-14  Richard Guenther  <rguenther@suse.de>
29080
29081         PR tree-optimization/44119
29082         * tree-ssa-pre.c (eliminate): Properly mark replacement of
29083         a PHI node necessary.
29084
29085 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
29086
29087         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
29088
29089 2010-05-14  Jason Merrill  <jason@redhat.com>
29090
29091         PR c++/44127
29092         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
29093         (gimple_call_set_nothrow): New.
29094         * gimple.c (gimple_build_call_from_tree): Call it.
29095         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
29096
29097         PR c++/44127
29098         * gimplify.c (gimplify_seq_add_stmt): No longer static.
29099         * gimple.h: Declare it.
29100         * gimple.c (gimple_build_eh_filter): No ops.
29101
29102 2010-05-14  Jan Hubicka  <jh@suse.cz>
29103
29104         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
29105         nodes already in queue.
29106         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
29107         re-enqueueing node.
29108
29109 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29110
29111         PR debug/44136
29112         * cfgexpand.c (expand_debug_expr): If non-memory op0
29113         has BLKmode, return NULL.
29114
29115 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
29116
29117         * config.gcc: Add support for --with-cpu option for bdver1.
29118         * config/i386/i386.h (TARGET_BDVER1): New macro.
29119         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
29120         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29121         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
29122         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29123         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
29124         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
29125         (processor_type): Add PROCESSOR_BDVER1.
29126         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
29127         processor_type in config/i386/i386.h.
29128         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
29129         movaps <reg, reg> instead of movapd <reg, reg> when replacing
29130         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
29131         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
29132         to emit packed xor instead of packed double/packed integer
29133         xor for SSE and AVX when moving a zero value.
29134         * config/i386/sse.md: Add check for
29135         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
29136         movapd/movdqa for SSE and AVX.
29137         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
29138         single logical operations i.e and, or and xor instead of packed double
29139         logical operations for SSE and AVX.
29140         * config/i386/i386-c.c (ix86_target_macros_internal):
29141         Add PROCESSOR_BDVER1.
29142         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
29143         (has_fma4, has_xop): New.
29144         * config/i386/i386.c (bdver1_cost): New variable.
29145         (m_BDVER1): New macro.
29146         (m_AMD_MULTIPLE): Add m_BDVER1.
29147         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
29148         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
29149         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
29150         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
29151         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
29152         x86_tune_sse_partial_reg_dependency,
29153         x86_tune_sse_unaligned_load_optimal,
29154         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
29155         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
29156         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
29157         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
29158         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
29159         Enable/disable for bdver1.
29160         (processor_target_table): Add bdver1_cost.
29161         (cpu_names): Add bdver1.
29162         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
29163          processor_alias_table.
29164         (ix86_expand_vector_move_misalign): Change.
29165         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
29166         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
29167         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
29168         of movupd/movdqu for SSE and AVX.
29169         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
29170         (ix86_tune_adjust_cost): Add code for bdver1.
29171         (standard_sse_constant_opcode): Add check for
29172         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
29173         of packed double xor for SSE and AVX.
29174
29175 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
29176
29177         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
29178         result to unsigned.
29179
29180 2010-05-14  Tristan Gingold  <gingold@adacore.com>
29181
29182         * toplev.c (default_debug_hooks): Remove this variable.
29183         (process_options): Remove assignments to default_debug_hooks.
29184
29185 2010-05-14  Martin Jambor  <mjambor@suse.cz>
29186
29187         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
29188         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
29189         * langhooks.h (struct lang_hooks_for_decls): Removed field
29190         fold_obj_type_ref.
29191         * tree.c (free_lang_data): Remove assignment to
29192         lang_hooks.fold_obj_type_ref.
29193         * tree.def (OBJ_TYPE_REF): Update comment.
29194
29195 2010-05-14  Richard Guenther  <rguenther@suse.de>
29196
29197         PR tree-optimization/44124
29198         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
29199
29200 2010-05-14  Alan Modra  <amodra@gmail.com>
29201
29202         PR target/44075
29203         * config/rs6000/rs6000.c (struct machine_function): Reorder
29204         fields for better packing.  Add lr_save_state.
29205         (rs6000_ra_ever_killed): Return lr_save_state if set.
29206         (rs6000_emit_eh_reg_restore): Set lr_save_state.
29207
29208 2010-05-13  Jan Hubicka  <jh@suse.cz>
29209
29210         * varpool.c (decide_is_variable_needed): Drop code checking
29211         TREE_SYMBOL_REFERENCED.
29212
29213 2010-05-13  Jan Hubicka  <jh@suse.cz>
29214
29215         * final.c (output_addr_const): Do not call mark_decl_referenced.
29216         * cgraphunit.c (process_function_and_variable_attributes): Use
29217         mark_needed_node dirrectly.
29218         (assemble_thunk): Do not call mark_decl_referenced.
29219
29220 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
29221
29222         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
29223
29224 2010-05-13  Jeff Law  <law@redhat.com>
29225
29226         * ira-conflicts.c (print_allocno_conflicts): New function broken out
29227         from...
29228         (print_conflicts): Call print_allocno_conflicts.
29229
29230 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29231
29232         PR debug/44104
29233         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
29234         if it is NULL.
29235
29236 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
29237
29238         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
29239         t-mingw-w64 or t-mingw-w32 for multilib configuration.
29240         * config/i386/t-mingw-w32: New.
29241         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
29242
29243 2010-05-13  Martin Jambor  <mjambor@suse.cz>
29244
29245         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
29246         gimple-fold.c).
29247         * gimple-fold.c (get_base_binfo_for_type): New function.
29248         (gimple_get_relevant_ref_binfo): Likewise.
29249         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29250         (gimple_fold_obj_type_ref): Likewise.
29251         (fold_gimple_call): Simplify condition for folding virtual calls
29252         and call gimple_fold_obj_type_ref.
29253         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
29254         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29255
29256 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
29257
29258         * config/rs6000/rs6000-protos.h
29259         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
29260         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
29261         (rs6000_debug_mode_dependent_address)
29262         (rs6000_mode_dependent_address_ptr): Likewise.
29263
29264 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29265
29266         PR debug/43983
29267         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
29268         by SRA.
29269         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
29270         * tree-sra.c (create_access_replacement): Call unshare_expr before
29271         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
29272         * dwarf2out.c: Include tree-flow.h.
29273         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
29274         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
29275         Handle DW_OP_bit_piece.
29276         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
29277         construct_piece_list, adjust_piece_list): New functions.
29278         (add_var_loc_to_decl): Handle SRA optimized variables.
29279         Adjust for var_loc_note to loc field renaming.
29280         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
29281         in VAR_LOCATION note.
29282         (new_loc_descr_op_bit_piece): New function.
29283         (dw_sra_loc_expr): New function.
29284         (dw_loc_list): Use it.  Don't handle the last range after the
29285         loop, handle it inside of the loop.  Adjust for var_loc_note
29286         to loc field renaming.
29287         (add_location_or_const_value_attribute): Only special case
29288         single entry loc lists if loc is NOTE_P.  Adjust for
29289         var_loc_note to loc field renaming.
29290         (dwarf2out_var_location): Don't set newloc->var_loc_note
29291         and newloc->next here.
29292
29293 2010-05-12  Jan Hubicka  <jh@suse.cz>
29294
29295         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
29296         flag.
29297         * cgraph.h (cgraph_only_called_directly_p,
29298         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
29299         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
29300         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
29301         (assemble
29302         * ipa.c (cgraph_remove_unreachable_nodes): Use
29303         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
29304         flags.
29305         * tree-inline.c (copy_bb): Check address_taken flag.
29306         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
29307         externally_visible flag.
29308
29309 2010-05-12  Jason Merrill  <jason@redhat.com>
29310
29311         PR bootstrap/44048
29312         PR target/44099
29313         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
29314         * sdbout.c (plain_type_1): Likewise.
29315         * dwarf2out.c (is_base_type): Likewise.
29316         (gen_type_die_with_usage): Likewise.  Generate
29317         DW_TAG_unspecified_type for any LANG_TYPE.
29318
29319 2010-05-12  Jan Hubicka  <jh@suse.cz>
29320
29321         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
29322         indrect edges too.
29323         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
29324         (cgraph_clone_edge): Update.
29325         (cgraph_node_remove_callees): Remove indirect calls too.
29326         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
29327         (cgraph_create_indirect_edge): Update prototype.
29328         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
29329         is_proper_for_analysis.
29330         (add_new_function, visited_nodes, function_insertion_hook_holder,
29331         get_local_reference_vars_info, mark_address_taken, mark_address,
29332         mark_load, mark_store, check_asm_memory_clobber, check_call,
29333         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
29334         (ipa_init): Do not initialize visited_nodes;
29335         function_insertion_hook_holder.
29336         (analyze_variable): Rewrite.
29337         (analyze_function): Rewrite.
29338         (copy_local_bitmap): Remove.
29339         (duplicate_node_dat): Do not duplicate local info.
29340         (generate_summary): Simplify to only walk cgraph.
29341         (write_node_summary_p, ipa_reference_write_summary,
29342         ipa_reference_read_summary): Remove.
29343         (propagate): Do not remove function insertion;
29344         generate summary.
29345         (pass_ipa_reference): NULLify summary handling fields.
29346         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
29347         (input_edge): Input ecf_flags.
29348         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
29349         (update_indirect_edges_after_inlining): Ignore edges with unknown
29350         param.
29351
29352 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
29353
29354         * implicit-zee.c: New file.
29355         * tree-pass.h (pass_implicit_zee): Declare.
29356         * passes.c (init_optimization_passes): Add zee pass.
29357         * common.opt (fzee): New flag.
29358         * timevar.def (TV_ZEE): Define.
29359         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
29360         and beyond.
29361         * Makefile.in (implicit-zee.o): Add new build file.
29362
29363 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29364             Nathan Froyd  <froydnj@codesourcery.com>
29365
29366         * c-common.c (sync_resolve_params): Remove write-only variable.
29367
29368 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
29369
29370         * target.h (struct gcc_target): Add mode_dependent_address_p field.
29371         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29372         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
29373         * targhooks.c (default_mode_dependent_address_p): New function.
29374         * targhooks.h (default_mode_dependent_address_p): Declare function.
29375         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29376         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
29377         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
29378         target hook. Change return type to bool.
29379         * recog.h (mode_dependent_address_p): Change return type to bool.
29380
29381 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29382             Nathan Froyd  <froydnj@codesourcery.com>
29383
29384         * tree-mudflap.c (build_function_type_0, build_function_type_1,
29385         build_function_type_2, build_function_type_3): Remove.
29386         (mudflap_init): Use build_function_type_list.
29387
29388 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29389             Nathan Froyd  <froydnj@codesourcery.com>
29390
29391         * coverage.c (build_fn_info_value): Call build_constructor instead of
29392         build_constructor_from_list.
29393         (build_ctr_info_value): Likewise.
29394         (build_gcov_info): Likewise.
29395
29396 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
29397
29398         * tree.c (build_constructor): Compute TREE_CONSTANT for the
29399         resultant constructor.
29400         (build_constructor_single): Don't set TREE_CONSTANT.
29401         (build_constructor_from_list): Don't compute TREE_CONSTANT.
29402
29403 2010-05-12  Jan Hubicka  <jh@suse.cz>
29404
29405         * cgraph.h (struct varpool_node): Add aux.
29406         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
29407         * varpool.c (varpool_remove_node): Do not remove initializer.
29408         (varpool_reset_queue): Export.
29409         (varpool_finalize_decl): Volatile vars are forced to be output.
29410         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
29411         replaced decl.
29412         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
29413         process_references, varpool_can_remove_if_no_refs): New functions.
29414         (cgraph_remove_unreachable_nodes): Handle variables too.
29415
29416 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
29417
29418         PR target/44088
29419         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
29420
29421 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
29422
29423         PR middle-end/44085
29424         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
29425         change value of ORT_TASK.
29426         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
29427         (omp_notice_threadprivate_variable): New function.
29428         (omp_notice_variable): Call it for threadprivate variables.
29429         If enclosing ctx is a task, print enclosing task rather than
29430         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
29431         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
29432         if task has untied clause.
29433
29434         PR debug/42278
29435         * dwarf2out.c (base_type_die): Don't add name attribute here.
29436         (modified_type_die): Instead of sizetype use
29437         its underlying original type.  If a DW_TAG_base_type doesn't
29438         have name added, add __unknown__.
29439         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
29440         always call force_type_die instead.
29441
29442 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
29443
29444         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
29445         for __stack_chk_guard.
29446
29447 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29448
29449         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
29450         don't call start_source_file debug hook here...
29451         (finish_options): ... but here, after outputting predefined and
29452         command line defines and undefs.
29453
29454         PR middle-end/44071
29455         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
29456         no fallthru edge.
29457         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
29458         optimizing away empty bb with no successors, move over its
29459         footer chain to fallthru predecessor.
29460         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
29461         (rtl_split_edge): For asm goto call patch_jump_insn even if
29462         splitting fallthru edge.
29463
29464         PR c++/44059
29465         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
29466         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
29467         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
29468         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
29469         on DW.ref.* decls.
29470
29471         PR c++/44062
29472         * c-parser.c (c_parser_expression): Mark LHS of a comma
29473         expression as read if it is a decl, handled component or
29474         COMPOUND_EXPR with that on the RHS.
29475         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
29476         if it is a decl or handled component.
29477
29478 2010-05-11  Jan Hubicka  <jh@suse.cz>
29479
29480         * lto-symtab.c (lto_symtab_free): New function.
29481         * lto-streamer.h (lto_symtab_free): Declare.
29482
29483 2010-05-11  Jan Hubicka  <jh@suse.cz>
29484
29485         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
29486         that if function is needed it is reachable.
29487         (lto_output_node): See if it the function is reachable or referenced.
29488         (output_cgraph): Update call of lto_output_node.
29489         * lto-streamer.h (reachable_from_other_partition_p): Declare.
29490
29491 2010-05-11  Jan Hubicka  <jh@suse.cz>
29492
29493         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
29494         Mark as used.
29495
29496 2010-05-11  Jan Hubicka  <jh@suse.cz>
29497
29498         PR tree-optimize/44063
29499         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
29500         queue.
29501         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
29502         limits.
29503         (estimate_function_body_sizes): Compute sizes even when disregarding.
29504
29505 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
29506
29507         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
29508
29509 2010-05-11  Jan Hubicka  <jh@suse.cz>
29510
29511         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
29512         into every boundary.
29513
29514 2010-05-11  Jan Hubicka  <jh@suse.cz>
29515
29516         * matrix-reorg.c (matrix_reorg): Rebuild edges.
29517
29518 2010-05-11  Jan Hubicka  <jh@suse.cz>
29519
29520         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
29521         lto_streamer_cache_delete): Put nodes into heap.
29522         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
29523         heap.
29524
29525 2010-05-11  Jan Hubicka  <jh@suse.cz>
29526
29527         * cgraphbuild.c (cgraph_rebuild_references): New.
29528         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
29529         out extern inlines.
29530         * cgraph.h (cgraph_rebuild_references): Declare.
29531         * tree-inline.c (tree_function_versioning): Use it.
29532         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
29533
29534 2010-05-11  Jan Hubicka  <jh@suse.cz>
29535
29536         * cgraph.c: Include ipa-utils.h
29537         (cgraph_create_virtual_clone): Update references.
29538         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
29539
29540 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29541
29542         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
29543         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
29544         cache size.
29545
29546 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29547
29548         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
29549
29550 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29551
29552         * gcc.c (execute): For -### don't quote arguments that
29553         contain just alphanumerics and _/-. characters.
29554         * doc/invoke.texi: Document that change for -###.
29555
29556         PR debug/44023
29557         * df-problems.c (struct dead_debug): Add to_rescan field.
29558         (dead_debug_init): Clear to_rescan field.
29559         (dead_debug_finish): Rescan all debug insns in to_rescan
29560         bitmap and free the bitmap.
29561         (dead_debug_insert_before): Instead of rescanning debug insns
29562         immediately queue their rescanning until dead_debug_finish.
29563         (df_note_bb_compute): After dead_debug_add do continue instead
29564         of break.
29565
29566 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
29567
29568         PR debug/44028
29569         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
29570         clear also INSN_REG_USE_LIST.
29571
29572 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29573
29574         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
29575
29576 2010-05-10  Jan Hubicka  <jh@suse.cz>
29577
29578         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
29579         commited change.
29580
29581 2010-05-10  Jan Hubicka  <jh@suse.cz>
29582
29583         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
29584         Allocate encoders.
29585         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
29586         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
29587         (lto_streamer_cache_create): Init alloc pool.
29588         (lto_streamer_cache_delete): Free alloc pool.
29589         * lto-streamer.h: Include alloc pool.
29590         (lto_streamer_cache_d): Use alloc pool.
29591         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
29592
29593 2010-05-10  Jan Hubicka  <jh@suse.cz>
29594
29595         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
29596         * cgraphbuild.c: Include except.h
29597         (record_type_list, record_eh_tables): New function.
29598         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
29599
29600 2010-05-10  Jan Hubicka  <jh@suse.cz>
29601
29602         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
29603         __frame_dummy_init_array_entry, force_to_data): Attribute as used
29604         rather than unused.
29605
29606 2010-05-10  Michael Matz  <matz@suse.de>
29607
29608         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
29609         (can_reassociate_p): Use FLOAT_TYPE_P.
29610         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
29611         (vect_force_simple_reduction): ... this.
29612         * tree-parloops.c (gather_scalar_reductions): Use
29613         vect_force_simple_reduction.
29614         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
29615         vect_is_simple_reduction, add modify argument, if true rewrite
29616         "a-b" into "a+(-b)".
29617         (vect_is_simple_reduction, vect_force_simple_reduction): New
29618         functions.
29619         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
29620
29621 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
29622             Vladimir Makarov  <vmakarov@redhat.com>
29623
29624         PR rtl-optimization/44012
29625         * ira-build.c (remove_unnecessary_allocnos): Nullify
29626         regno_allocno_map of the removed allocno.
29627
29628 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29629
29630         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
29631         to /dev/null.
29632         * configure: Regenerate.
29633
29634 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29635
29636         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
29637         unused.
29638         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
29639         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
29640         support in Sun ld.
29641         * configure: Regenerate.
29642
29643 2010-05-10  Richard Guenther  <rguenther@suse.de>
29644
29645         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
29646         marked if the entry identifier is marked.
29647
29648 2010-05-10  Richard Guenther  <rguenther@suse.de>
29649
29650         * c-common.c (struct c_common_attributes): Add fnspec attribute.
29651         (handle_fnspec_attribute): New function.
29652         * gimple.h (gimple_call_return_flags): Declare.
29653         (gimple_call_arg_flags): Likewise.
29654         * gimple.c (gimple_call_arg_flags): New function.
29655         (gimple_call_return_flags): Likewise.
29656         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
29657         New argument flags.
29658         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
29659         return value flags.
29660         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
29661         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
29662         main work to ...
29663         (make_heapvar_for): ... this new function.
29664         (handle_rhs_call): Handle fnspec attribute argument specifiers.
29665         (handle_lhs_call): Likewise.
29666         (find_func_aliases): Adjust.
29667
29668 2010-05-10  Richard Guenther  <rguenther@suse.de>
29669
29670         PR tree-optimization/44050
29671         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
29672
29673 2010-05-10  Wei Guozhi  <carrot@google.com>
29674
29675         PR target/42879
29676         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
29677
29678 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29679
29680         PR c/10676
29681         * c-typeck.c (lookup_field): Take a type directly.  Update
29682         recursive calls.
29683         (build_component_ref): Update call to lookup_field.
29684         (set_init_label): Use lookup_field to find initialized field.
29685         Handle returned list of fields like a sequence of designators.
29686
29687 2010-05-09  Richard Guenther  <rguenther@suse.de>
29688
29689         PR middle-end/44024
29690         * fold-const.c (tree_single_nonzero_warnv_p): Properly
29691         handle &FUNCTION_DECL.
29692
29693 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29694
29695         PR c/4784
29696         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
29697         structures and unions recursively.
29698         (detect_field_duplicates): Move duplicate detection with a hash to
29699         detect_field_duplicates_hash.  Always use a hash if anonymous
29700         structures or unions are present.
29701         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
29702         give errors.
29703
29704 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
29705
29706         PR target/44046
29707         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
29708         detect Atom, Core 2 and Core i7.
29709
29710 2010-05-09  Richard Guenther  <rguenther@suse.de>
29711
29712         * gcc.c (store_arg): Handle temporary file deletion for
29713         joined arguments.
29714
29715 2010-05-09  Richard Guenther  <rguenther@suse.de>
29716
29717         PR middle-end/44043
29718         * ipa-inline.c (estimate_function_body_sizes): Return after
29719         disregarding inline limits.
29720
29721 2010-05-09  Richard Guenther  <rguenther@suse.de>
29722
29723         * gcc.c (store_arg): Revert last change.
29724
29725 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
29726
29727         PR middle-end/28685
29728         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
29729         (optimize_ops_list): Call it.
29730
29731 2010-05-08  Richard Guenther  <rguenther@suse.de>
29732
29733         PR tree-optimization/44030
29734         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
29735         NECESSARY flag if we propagate from a inserted expression.
29736
29737 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
29738
29739         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
29740         domain types as equal if they are both PLACEHOLDER_EXPRs.
29741
29742 2010-05-08  Richard Guenther  <rguenther@suse.de>
29743
29744         * lto-wrapper.c (run_gcc): Remove linker output from
29745         command line for LTRANS invocation.
29746
29747 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29748
29749         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
29750         lto-macho as lto_binary_reader.
29751         * target.h (struct gcc_target): New hooks lto_start and lto_end.
29752         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
29753         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
29754         in lto_start and lto_end calls.
29755         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
29756         magic numbers.
29757         (scan_prog_file): Update is_elf_or_coff call.
29758         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
29759
29760         * collect2.c (main): Fix enum comparison.
29761
29762         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
29763         Add prototypes.
29764         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
29765         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
29766         and TARGET_ASM_LTO_END.
29767         * darwin.c: Include obstack.h and lto-streamer.h.
29768         (lto_section_names_offset, lto_section_names_obstack,
29769         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
29770         global variables.
29771         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
29772         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
29773         to a temporary file.
29774         (darwin_asm_lto_end): New function.  Restore asm_out_file.
29775         (darwin_asm_named_section): For LTO sections, replace the name with
29776         the offset of the section name in a string table, and build this
29777         table.
29778         (darwin_file_start): Initialize global vars for LTO support.
29779         (darwin_file_end): If output to asm_out_file was redirected, append it
29780         to the proper asm_out_file here.  Add the section names section.
29781
29782 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29783
29784         * c-pragma.c (pending_weak_d, pending_weak): New.
29785         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
29786         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
29787         handle_pragma_weak): Update the uses of pending_weaks.
29788
29789 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29790
29791         PR documentation/44016
29792         * doc/standards.texi (Standards): Link to unversioned
29793         cxx0x_status.html page.
29794
29795 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
29796
29797         PR target/43708
29798         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
29799         in addition to TREE_USED, to avoid "set but unused" warnings.
29800
29801 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29802
29803         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
29804         (is_loop_prefetching_profitable): Do not insert prefetches
29805         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
29806         times the prefetch ahead distance.
29807
29808 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29809
29810         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
29811         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
29812         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
29813         the unroll_factor.
29814
29815 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29816
29817         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
29818         a diagnostic info when the insn-to-mem ratio is too small.
29819
29820 2010-05-07  Richard Guenther  <rguenther@suse.de>
29821
29822         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
29823         the linker plugin.
29824         (store_arg): Queue temp_filename for deletion instead of
29825         the whole argument.
29826
29827 2010-05-07  Richard Guenther  <rguenther@suse.de>
29828
29829         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
29830         (run_gcc): Handle LTRANS phase invocation.
29831         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
29832
29833 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
29834
29835         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
29836         this is also meaningful on PARM_DECLs and RESULT_DECLs.
29837
29838 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29839
29840         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
29841
29842 2010-05-07  Richard Guenther  <rguenther@suse.de>
29843
29844         PR tree-optimization/44020
29845         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
29846         code when PRE is not yet initialized.
29847
29848 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29849
29850         * config/mips/dbxmdebug.h: Remove.
29851         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
29852
29853 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
29854
29855         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
29856         with null pointer and also warn about ordered comparison of zero with
29857         pointer if -Wextra.
29858
29859 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29860
29861         * graphite-blocking.c
29862         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
29863         * graphite-clast-to-gimple.c
29864         (clast_to_gcc_expression): Same.
29865         (precision_for_value): Same.
29866         (precision_for_interval): Same.
29867         (gcc_type_for_interval): Same.
29868         (graphite_create_new_guard): Same.
29869         (compute_bounds_for_level): Same.
29870         (graphite_create_new_loop_guard): Same.
29871         * graphite-interchange.c
29872         (build_linearized_memory_access): Same.
29873         (pdr_stride_in_loop): Same.
29874         (memory_strides_in_loop_1): Same.
29875         (memory_strides_in_loop): Same.
29876         (extend_scattering): Same.
29877         (psct_scattering_dim_for_loop_depth): Same.
29878         (pbb_number_of_iterations): Same.
29879         * graphite-poly.h
29880         (debug_iteration_domains): Same.
29881         * graphite-ppl.c
29882         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
29883         (ppl_set_inhomogeneous_gmp): Same.
29884         (ppl_strip_loop): Same.
29885         (ppl_lexico_compare_linear_expressions): Same.
29886         (ppl_read_polyhedron_matrix): Same.
29887         (ppl_max_for_le_pointset): Same.
29888         * graphite-ppl.h
29889         (ppl_read_polyhedron_matrix): Same.
29890         (tree_int_to_gmp): Same.
29891         (gmp_cst_to_tree): Same.
29892         (ppl_set_inhomogeneous): Same.
29893         (ppl_set_inhomogeneous_tree): Same.
29894         (ppl_set_coef): Same.
29895         (ppl_set_coef_tree): Same.
29896         * graphite-sese-to-poly.c
29897         (build_pbb_scattering_polyhedrons): Same.
29898         (build_scop_scattering): Same.
29899         (scan_tree_for_params_right_scev): Same.
29900         (scan_tree_for_params): Same.
29901         (find_params_in_bb): Same.
29902         (find_scop_parameters): Same.
29903         (add_upper_bounds_from_estimated_nit): Same.
29904         (build_loop_iteration_domains): Same.
29905         (add_condition_to_domain): Same.
29906         (pdr_add_memory_accesses): Same.
29907
29908 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29909
29910         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
29911         CLooG's value_* macros to their respective mpz_* counterparts.
29912         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
29913         (graphite_create_new_loop_guard): Same.
29914         * graphite-interchange.c (build_linearized_memory_access): Same.
29915         (pdr_stride_in_loop): Same.
29916         (memory_strides_in_loop_1): Same.
29917         (1st_interchange_profitable_p): Same.
29918         * graphite-poly.c (extend_scattering): Same.
29919         (psct_scattering_dim_for_loop_depth): Same.
29920         (pbb_number_of_iterations): Same.
29921         (pbb_number_of_iterations_at_time): Same.
29922         * graphite-poly.h (new_1st_loop): Same.
29923         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
29924         (oppose_constraint): Same.
29925         (insert_constraint_into_matrix): Same.
29926         (ppl_set_inhomogeneous_gmp): Same.
29927         (ppl_set_coef_gmp): Same.
29928         (ppl_strip_loop): Same.
29929         (ppl_lexico_compare_linear_expressions): Same.
29930         (ppl_max_for_le_pointset): Same.
29931         (ppl_min_for_le_pointset): Same.
29932         (ppl_build_realtion): Same.
29933         * graphite-ppl.h (gmp_cst_to_tree): Same.
29934         (ppl_set_inhomogeneous): Same.
29935         (ppl_set_inhomogeneous_tree): Same.
29936         (ppl_set_coef): Same.
29937         (ppl_set_coef_tree): Same.
29938         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
29939         (build_scop_scattering): Same.
29940         (add_value_to_dim): Same.
29941         (scan_tree_for_params_right_scev): Same.
29942         (scan_tree_for_params_int): Same.
29943         (scan_tree_for_params): Same.
29944         (find_params_in_bb): Same.
29945         (find_scop_parameters): Same.
29946         (add_upper_bounds_from_estimated_nit): Same.
29947         (build_loop_iteration_domains): Same.
29948         (create_linear_expr_from_tree): Same.
29949         (add_condition_to_domain): Same.
29950         (pdr_add_memory_accesses): Same.
29951
29952 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
29953             Jason Merrill  <jason@redhat.com>
29954
29955         * c-common.c (c_common_reswords): Add nullptr.
29956         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
29957         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
29958         (gen_type_die_with_usage): Likewise.
29959         * dbxout.c (dbxout_type): Likewise.
29960         * sdbout.c (plain_type_1): Likewise.
29961
29962 2010-05-06  Jason Merrill  <jason@redhat.com>
29963
29964         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
29965         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
29966         ret appropriately.
29967         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
29968
29969         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
29970         stripping WITH_SIZE_EXPR.
29971         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
29972         change.
29973
29974 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29975
29976         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
29977         list of obsolete configurations.
29978         Disabled check for obsolete configurations.
29979         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
29980         Removed support for previous versions.
29981         * config/mips/iris.h: Removed.
29982         * config/mips/iris5.h: Removed.
29983         * config/mips/iris6.h: Merged old iris.h contents.
29984         (TARGET_IRIX): Removed.
29985         (DRIVER_SELF_SPECS): Removed mabi=32.
29986         (IDENT_ASM_OP): Removed undef.
29987         (STARTFILE_SPEC): Removed mabi=32.
29988         (ENDFILE_SPEC): Likewise.
29989         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
29990         (MACHINE_TYPE): Update for IRIX 6.5.
29991         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
29992         TARGET_IRIX by TARGET_IRIX6.
29993         (mips_file_start): Likewise.
29994         (mips_output_external): Remove IRIX 5/6 O32 support.
29995         (mips_output_function_prologue): Likewise.
29996         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
29997         TARGET_IRIX6.
29998         (TARGET_CPU_CPP_BUILTINS): Likewise.
29999         (TARGET_IRIX): Removed.
30000         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
30001         (MULTILIB_DIRNAMES): Removed 32.
30002         (MULTILIB_OSDIRNAMES): Removed ../lib.
30003         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
30004         (Specific, mips-sgi-irix5): Document removal.
30005         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
30006         Remove references to older IRIX 6 releases and the O32 ABI.
30007
30008 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
30009
30010         PR bootstrap/43994
30011         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
30012         instead of DF_REF_REAL_REG.
30013
30014 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
30015
30016         PR target/43888
30017         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
30018         handling to still return true for x64 targets.
30019
30020 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
30021
30022         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
30023
30024 2010-05-06  Jan Hubicka  <jh@suse.cz>
30025
30026         PR tree-optimization/43791
30027         * ipa-inline.c (update_caller_keys): Remove bogus
30028         disregard_inline_limits check.
30029
30030 2010-05-06  Michael Matz  <matz@suse.de>
30031
30032         PR tree-optimization/43984
30033         * tree-ssa-pre.c (inserted_phi_names): Remove.
30034         (inserted_exprs): Change to bitmap.
30035         (create_expression_by_pieces): Set bits, don't append to vector.
30036         (insert_into_preds_of_block): Don't handle inserted_phi_names.
30037         (eliminate): Don't look at inserted_phi_names, remove deleted
30038         insns from inserted_exprs.
30039         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
30040         (init_pre, fini_pre): Allocate and free bitmaps.
30041         (execute_pre): Insert insns on edges before elimination.
30042
30043 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
30044
30045         * tree.c (initializer_zerop): Handle STRING_CST.
30046
30047 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30048
30049         PR 40989
30050         * doc/invoke.texi (Wimplicit): Document as C only.
30051         * opts.c (common_handle_option): Add argument kind.
30052         (handle_option): Rename as read_cmdline_option. Factor out code to...
30053         (handle_option): ... here. New.
30054         (handle_options): Rename as read_cmdline_options.
30055         (decode_options): Update call.
30056         (set_option): Use option index instead of option pointer. Classify
30057         diagnostics correctly.
30058         (enable_warning_as_error): Call handle_option.
30059         * opts.h (set_option): Update declaration.
30060         (handle_option): Declare.
30061         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
30062         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
30063         * c-opts.c (set_Wimplicit): Delete.
30064         (c_family_lang_mask): New static constant.
30065         (c_common_handle_option): Add argument kind. Use handle_option
30066         instead of set_Wimplicit.
30067         (c_common_post_options): warn_implicit and warn_implicit_int
30068         are disabled by default.
30069         * c-common.c (warn_implicit): Do not define here.
30070         * c-common.h (warn_implicit): Do not declare here.
30071         (c_common_handle_option): Update declaration.
30072         * lto-opts.c (lto_reissue_options): Update call to set_option.
30073
30074 2010-05-06  Richard Guenther  <rguenther@suse.de>
30075
30076         PR tree-optimization/43571
30077         * domwalk.c (walk_dominator_tree): Walk the dominator
30078         sons in more optimal order.
30079
30080 2010-05-06  Richard Guenther  <rguenther@suse.de>
30081
30082         PR tree-optimization/43934
30083         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
30084         (stmt_cost): Likewise.
30085         (extract_true_false_args_from_phi): New helper.
30086         (determine_max_movement): For PHI nodes verify we can hoist them
30087         and compute their cost.
30088         (determine_invariantness_stmt): Handle PHI nodes.
30089         (move_computations_stmt): Likewise.  Hoist PHI nodes in
30090         if-converted form using COND_EXPRs.
30091         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
30092         (tree_ssa_lim): Likewise.
30093         * tree-flow.h (tree_ssa_lim): Adjust prototype.
30094         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
30095
30096 2010-05-06  Richard Guenther  <rguenther@suse.de>
30097
30098         PR tree-optimization/43987
30099         * tree-ssa-structalias.c (could_have_pointers): For possibly
30100         address-taken variables force pointers to be recorded.
30101         (create_variable_info_for_1): Likewise.
30102         (push_fields_onto_fieldstack): Pass in wheter all fields
30103         must have pointers.
30104         (find_func_aliases): Query types instead of vars whether
30105         they contain pointers where appropriate.
30106
30107 2010-05-06  Jan Hubicka  <jh@suse.cz>
30108
30109         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
30110         (record_reference, mark_address, mark_load, mark_store): Record
30111         references.
30112         (record_references_in_initializer): Update call of record_references.
30113         (rebuild_cgraph_edges): Remove all references before rebuiding.
30114         * cgraph.c (cgraph_create_node): Clear ref list.
30115         (cgraph_remove_node): Remove references.
30116         (dump_cgraph_node): Dump references.
30117         (cgraph_clone_node): Clone references.
30118         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
30119         (struct cgraph_node, varpool_node): Add ref_lst.
30120         * ipa-ref.c: New file.
30121         * ipa-ref.h: New file.
30122         * ipa-ref-inline.h: New file.
30123         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
30124         (referenced_from_other_partition_p): New function.
30125         (lto_output_varpool_node): Take set arugment; call
30126         referenced_from_other_partition.
30127         (lto_output_ref): New.
30128         (add_references): New.
30129         (output_refs): New.
30130         (output_cgraph): Compute boundary based on references; output refs.
30131         (output_varpool): Accept cgraph_node_set argument.
30132         (input_ref): New.
30133         (input_refs): New.
30134         (input_cgraph): Call input_refs.
30135         * lto-section-in.c (lto_section_name): Add refs.
30136         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
30137         (ipa-ref.o): New file.
30138         * varpool.c (varpool_node): Clear ipa ref list.
30139         (varpool_remove_node): Remove references.
30140         (dump_varpool_node): Dump references.
30141         (varpool_assemble_decl): Only compile finalized ones.
30142         (varpool_extra_name_alias): Initialize ref list.
30143         * lto-streamer.c (lto-get_section_name): Add .refs section.
30144         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
30145         (referenced_from_other_partition_p): Declared.
30146
30147 2010-05-06  Ira Rosen  <irar@il.ibm.com>
30148
30149         PR tree-optimization/43901
30150         * tree-vect-stmts.c (vectorizable_call): Assert that vector
30151         type is not NULL if it's transformation phase, and return
30152         FALSE if it's analysis.
30153         (vectorizable_conversion, vectorizable_operation,
30154         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
30155
30156 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
30157
30158         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30159         Delete.
30160         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30161         New define.
30162         * config/mips/mips-protos.h
30163         (mips_small_register_classes_for_mode_p): Delete prototype.
30164
30165 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
30166
30167         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
30168         * config/arm/arm.c (multiple_operation_profitable_p,
30169         compute_offset_order): New static functions.
30170         (load_multiple_sequence, store_multiple_sequence): Use them.
30171         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
30172         memory offsets, not register numbers.
30173         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
30174
30175 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
30176
30177         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
30178         (get_pending_sizes, put_pending_size, put_pending_sizes):
30179         Update the uses of pending_sizes.
30180         * c-decl.c (store_parm_decls): Likewise.
30181         * c-tree.h (struct c_arg_info): Likewise.
30182         * tree.h: Update the prototype for get_pending_sizes and
30183         put_pending_sizes.
30184
30185 2010-05-05  Jason Merrill  <jason@redhat.com>
30186
30187         PR debug/43370
30188         * c-common.c (handle_aligned_attribute): Respect
30189         ATTR_FLAG_TYPE_IN_PLACE.
30190
30191         PR testsuite/43758
30192         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
30193         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30194         (TARGET_INITIALIZER): Use it.
30195         * c-common.c (attribute_takes_identifier_p): Call it.
30196         * c-common.h: Update prototype.
30197         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
30198         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30199
30200 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30201
30202         PR debug/43950
30203         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
30204         DW_ID_down_case for Fortran compilation units.
30205
30206 2010-05-05  Jan Hubicka  <jh@suse.cz>
30207
30208         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
30209         handle aliases.
30210
30211 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
30212
30213         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
30214         a variable-sized RESULT_DECL.
30215
30216 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
30217
30218         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
30219
30220 2010-05-05  Jason Merrill  <jason@redhat.com>
30221
30222         PR c++/43787
30223         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
30224         returns GS_OK.
30225         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
30226
30227 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
30228             Jakub Jelinek  <jakub@redhat.com>
30229
30230         PR debug/43478
30231         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
30232         (dead_debug_init, dead_debug_finish): New functions.
30233         (dead_debug_add, dead_debug_insert_before): Likewise.
30234         (df_note_bb_compute): Initialize a dead_debug object, add dead
30235         debug uses to it, insert debug bind insns before death insns,
30236         reset debug insns that refer to pending uses at the end.
30237         * rtl.h (make_debug_expr_from_rtl): New prototype.
30238         * varasm.c (make_debug_expr_from_rtl): New function.
30239
30240 2010-05-05  Jan Hubicka  <jh@suse.cz>
30241
30242         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
30243         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
30244         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
30245         lto_varpool_encoder_deref, lto_varpool_encoder_size,
30246         lto_varpool_encoder_encode_initializer_p,
30247         lto_set_varpool_encoder_encode_initializer): New functions.
30248         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
30249         call output_varpool.
30250         (input_varpool_node): Do not always set analyzed.
30251         (input_cgraph_1): Return vector of cgraph nodes.
30252         (input_varpool_1): Return vector of varpools.
30253         (input_cgraph): Free the vectors.
30254         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
30255         output only initializers needed.
30256         (lto_output): Only call output_cgraph.
30257         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
30258         * lto-section-out.c (lto_new_out_decl_state): Initialize
30259         state->varpool_node_encoder.
30260         * lto-streamer.h (lto_varpool_encoder_d): New.
30261         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
30262         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
30263         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
30264         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
30265         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
30266         Declare.
30267         (output_varpool, input_varpool): Remove declarations.
30268
30269 2010-05-05  Jan Hubicka  <jh@suse.cz>
30270
30271         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
30272         with body can prevail.
30273
30274 2010-05-05  Jan Hubicka  <jh@suse.cz>
30275
30276         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
30277         size.
30278
30279 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30280
30281         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
30282
30283         * gengtype.h (erro_at_line): Constify pos argument.
30284
30285         * gengtype.c: Include hashtab.h.
30286         (enum gc_used): Document GC_MAYBE_POINTED_TO.
30287         (error_at_line): Constify pos argument.
30288         (do_typedef): Initialize p->opt field.
30289         (get_file_gtfilename): Fix comment typo.
30290         (struct walk_type_data): Constify line field.
30291         (get_output_file_for_structure): New function.
30292         (write_local_func_for_structure): Constify orig_s argument.
30293         Use get_output_file_for_structure.
30294         (write_func_for_structure): Use get_output_file_for_structure.
30295         (INDENT): New define.
30296         (dump_pair, dump_type, dump_type_list, dump_typekind)
30297         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
30298         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
30299         functions.
30300         (seen_types): New variable.
30301         (main): New variable do_dump.  Process "-d" command line option.
30302         Call dump_everything if dump requested.
30303
30304 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30305
30306         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
30307         in a temporary instead of invoking the macro multiple times.
30308         (track_expr_p): Likewise.
30309
30310 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
30311
30312         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
30313         per new semantics.
30314         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
30315         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
30316         conditions for printing notes.
30317         * common.opt (-Wcoverage-mismatch): Allow negative, default to
30318         true, update documentation.
30319         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
30320
30321 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
30322
30323         PR c/43981
30324         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
30325         on dimen.
30326
30327 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30328
30329         PR target/43799
30330         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
30331         (*sse_prologue_save_insn1): Likewise.
30332         (SSE prologue save splitter): Likewise.
30333
30334 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
30335
30336         * tree.c (free_lang_data_in_one_sizepos): New inline function.
30337         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
30338         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
30339         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
30340         all decls.  Call it on DECL_FIELD_OFFSET of fields.
30341         (find_decls_types_r): Follow DECL_VALUE_EXPR.
30342         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
30343
30344 2010-05-04  Martin Jambor  <mjambor@suse.cz>
30345
30346         * tree-sra.c (build_access_from_expr_1): The first parameter type
30347         changed to simple tree.
30348         (build_access_from_expr): Likewise, gsi parameter was eliminated.
30349         (scan_assign_result): Renamed to assignment_mod_result, enum elements
30350         renamed as well.
30351         (build_accesses_from_assign): Removed all parameters except for a
30352         simple gimple statement.  Now returns a simple bool.
30353         (scan_function): All non-analysis parts moved to separate functions
30354         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
30355         parameters and updated both callers.
30356         (sra_modify_expr): Removed parameter data.
30357         (sra_modify_function_body): New function.
30358         (perform_intra_sra): Call sra_modify_function_body to modify the
30359         function body.
30360         (replace_removed_params_ssa_names): Parameter data changed into
30361         adjustments vector.
30362         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
30363         changed the parameter dont_convert to convert with the opposite
30364         meaning.
30365         (sra_ipa_modify_assign): Parameter data changed into adjustments
30366         vector, return value changed to bool.
30367         (ipa_sra_modify_function_body): New function.
30368         (sra_ipa_reset_debug_stmts): Updated a comment.
30369         (modify_function): Use ipa_sra_modify_function_body to modify function
30370         body.
30371
30372 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30373
30374         PR middle-end/43671
30375         * alias.c (true_dependence): Handle the same VALUE in x and mem.
30376         (canon_true_dependence): Likewise.
30377         (write_dependence_p): Likewise.
30378
30379 2010-05-04  Jan Hubicka  <jh@suse.cz>
30380
30381         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
30382         * cgraphbuild.c: Include ipa-utils.h
30383         (record_reference_ctx): New struct.
30384         (record_reference): Simplify to work on initializers; not statements.
30385         (mark_address, mark_load, mark_store): New.
30386         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30387         walk PHI nodes too.
30388         (record_references_in_initializer): Update use of record_reference.
30389         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30390         walk PHI nodes too.
30391
30392 2010-05-04  Jan Hubicka  <jh@suse.cz>
30393
30394         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
30395         node will be removed anyway.
30396         (lto_varpool_replace_node): Allow also unanalyzed nodes;
30397         relink aliases of node into prevailing node.
30398         * varpool.c (varpool_remove_node): Remove aliases properly;
30399         when removing node, remove all its aliases too; remove DECL_INITIAL
30400         of removed node; ggc_free the varpool node.
30401
30402 2010-05-04  Richard Guenther  <rguenther@suse.de>
30403
30404         PR tree-optimization/43879
30405         * tree-ssa-structalias.c (alias_get_name): Use
30406         DECL_ASSEMBLER_NAME if available.
30407         (create_function_info_for): Return the varinfo node.
30408         (ipa_pta_execute): Associate same-body aliases and extra names
30409         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
30410
30411 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
30412
30413         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
30414
30415 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
30416
30417         PR bootstrap/43964
30418         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
30419         only if HONOR_REG_ALLOC_ORDER is not defined.
30420
30421 2010-05-04  Richard Guenther  <rguenther@suse.de>
30422
30423         PR tree-optimization/43949
30424         * tree-vrp.c (extract_range_from_binary_expr): Only handle
30425         TRUNC_MOD_EXPR.
30426
30427 2010-04-26  Jason Merrill  <jason@redhat.com>
30428
30429         * c.opt (-fstrict-enums): New.
30430         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
30431
30432 2010-05-03  David Ung  <davidu@mips.com>
30433             James E. Wilson  <wilson@codesourcery.com>
30434
30435         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
30436         emit the trap instruction before the divide for TUNE_74K.
30437
30438 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
30439
30440         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
30441         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
30442         based on the above, for new target hook.
30443
30444         * hooks.c (hook_bool_mode_true): New generic hook.
30445         * hooks.h (hook_bool_mode_true): Add prototype.
30446
30447         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
30448         target hook.
30449         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
30450         target hook, set to hook_bool_mode_false.
30451         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
30452         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
30453         with targetm.small_register_classes_for_mode_p.
30454         (find_reusable_reload): Likewise.
30455         (combine_reloads): Likewise.
30456         * reload1.c (reload_as_needed): Likewise.
30457         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
30458         * ifcvt.c (noce_process_if_block, check_cond_move_block,
30459         dead_or_predicable): Likewise.
30460         * regmove.c (optimize_reg_copy_1): Likewise.
30461         * calls.c (prepare_call_address): Likewise.
30462         (precompute_register_parameters): Likewise.
30463
30464         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
30465         hook definition.
30466         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
30467         implementation of the hook that considers all register classes
30468         small except for SH64.
30469         (sh_override_options): Use the new hook.
30470         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
30471         Add prototype.
30472
30473         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
30474         hook definition.
30475         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
30476         implementation of the hook that considers all register classes
30477         small for THUMB1.
30478         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
30479         Add prototype.
30480
30481         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
30482         hook definition.
30483         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
30484         implementation of the hook that considers all register classes
30485         small for MIPS16.
30486         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
30487         Add prototype.
30488
30489         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
30490         hook definition.
30491         * config/m32c/m32c.h: Likewise.
30492         * config/pdp11/pdp11.h: Likewise.
30493         * config/avr/avr.h: Likewise.
30494         * config/xtensa/xtensa.h: Likewise.
30495         * config/m68hc11/m68hc11.h: Likewise.
30496         * config/mn10300/mn10300.h: Likewise.
30497         * config/mcore/mcore.h: Likewise.
30498         * config/h8300/h8300.h: Likewise.
30499         * config/bfin/bfin.h: Likewise.
30500
30501         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
30502         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
30503
30504 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
30505
30506         * double-int.h (tree_to_double_int): Remove macro.
30507         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
30508         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30509         (tree_to_double_int): New function.
30510         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
30511         Move ...
30512         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30513
30514 2010-05-03  Richard Guenther  <rguenther@suse.de>
30515
30516         PR tree-optimization/43971
30517         * tree-ssa-structalias.c (get_constraint_for_1): Fix
30518         constraints in the !flag_delete_null_pointer_checks case.
30519
30520 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
30521
30522         PR debug/43972
30523         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
30524         result mode matches original rtl mode.
30525
30526 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
30527
30528         PR target/43888
30529         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
30530
30531 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30532
30533         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
30534         when processing flag options.
30535
30536 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30537
30538         * gcov-iov.c (main): Change format string placeholder
30539         from %#08x to 0x%08x.
30540         * genchecksum.c (dosum): Change format string placeholder
30541         from %#02x to 0x%02x.
30542
30543 2010-05-02  Richard Guenther  <rguenther@suse.de>
30544
30545         PR tree-optimization/43879
30546         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
30547
30548 2010-05-02  Bruno Haible  <bruno@clisp.org>
30549
30550         * doc/extend.texi (Function Attributes): Fix a typo.
30551
30552 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30553
30554         Revert:
30555         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
30556         placeholder from 0x%x to %#x.
30557         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30558         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
30559         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
30560         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
30561         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
30562         * config/i386/i386.c (ix86_target_string): Ditto.
30563         * config/i386/i386.c (output_pic_addr_const): Ditto.
30564         (print_operand): Ditto.
30565
30566 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30567
30568         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
30569         placeholder from 0x%x to %#x.
30570         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
30571         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
30572         (ASM_OUTPUT_DEBUG_DATA): Ditto.
30573         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
30574         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
30575         * optc-gen.awk: Ditto.
30576         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
30577         (HOST_WIDE_INT_PRINT_HEX): Ditto.
30578         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
30579         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30580
30581 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30582
30583         * target.h (struct calls): Add function_value_regno_p field.
30584         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
30585         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
30586         * targhooks.c (default_function_value_regno_p): New function.
30587         * targhooks.h (default_function_value_regno_p): Declare function.
30588         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
30589         * builtins.c. (apply_result_size): (Ditto.).
30590         * combine.c. (likely_spilled_retval_p): (Ditto.).
30591         * mode-switching.c. Include 'target.h'.
30592         (create_pre_exit): Use function_value_regno_p hook.
30593         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
30594         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
30595         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
30596
30597         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
30598         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
30599         (ix86_function_value_regno_p): Declare as static, change argument
30600         type to const unsigned int.
30601         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
30602
30603 2010-05-01  Richard Guenther  <rguenther@suse.de>
30604
30605         PR tree-optimization/43949
30606         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
30607         types.
30608         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
30609
30610 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30611
30612         * rtl.h (CONST_DOUBLE_P): Define.
30613         (rtx_to_double_int): Declare.
30614         * emit-rtl.c (rtx_to_double_int): New function.
30615         * dwarf2out.c (insert_double): New function.
30616         (loc_descriptor, add_const_value_attribute): Clean up, use
30617         rtx_to_double_int and insert_double functions.
30618
30619 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
30620
30621         * doc/extend.texi (Inline): Add missing return keyword to examples.
30622         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
30623         "command-line".
30624
30625 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
30626
30627         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
30628         the variable part of the offset as well.  Use highest_pow2_factor for
30629         all alignment checks.
30630
30631 2010-04-30  Richard Guenther  <rguenther@suse.de>
30632
30633         PR tree-optimization/43879
30634         * tree-ssa-structalias.c (type_could_have_pointers): Functions
30635         can have pointers.
30636
30637 2010-04-30  Jan Hubicka  <jh@suse.cz>
30638
30639         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
30640         varpool.
30641         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
30642
30643 2010-04-30  Jan Hubicka  <jh@suse.cz>
30644
30645         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
30646         New.
30647         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
30648         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
30649         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
30650         cgraph_node_set_needs_ltrans_p): Remove.
30651
30652 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30653
30654         * sdbout.c: Include vec.h, do not include varray.h.
30655         (deferred_global_decls, sdbout_global_decl,
30656         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
30657         * toplev.c: Do not include varray.h.
30658         (dump_memory_report): Do not dump VARRAY statistics.
30659         * gengtype.c (open_base_file): Ignore varray.h.
30660         * Makefile.in: Update for abovementioned changes.
30661         Remove all traces of varray.c and varray.h.
30662         * varray.c: Remove file.
30663         * varray.h: Remove file.
30664
30665 2010-04-30  Jan Hubicka  <jh@suse.cz>
30666
30667         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
30668         references.
30669
30670 2010-04-30  Jan Hubicka  <jh@suse.cz>
30671
30672         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
30673         needed.
30674
30675 2010-04-30  Richard Guenther  <rguenther@suse.de>
30676
30677         * tree-ssa-structalias.c (get_constraint_for_1): Generate
30678         constraints for CONSTRUCTOR.
30679
30680 2010-04-30  Richard Guenther  <rguenther@suse.de>
30681
30682         PR lto/43946
30683         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
30684         first after all lowering passes.
30685
30686 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30687
30688         * toplev.c: Include varray.h for statistics dumping.
30689         * tree.h: Do not declare varray_head_tag.
30690         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
30691         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
30692         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
30693         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
30694         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
30695         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
30696         c-common.c, c-common.h, reg-stack.c, basic-block.h,
30697         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
30698         include varray.h.
30699         * Makefile.in: Update for abovementioned changes.
30700
30701 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
30702
30703         PR debug/43942
30704         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
30705
30706 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
30707
30708         * config/picochip/picochip.c (picochip_legitimize_address): Define.
30709         Use this function to do machine-specific conversion.
30710         (picochip_legitimize_reload_address): Likewise.
30711         (picochip_legitimate_address_p): Check valid base register only if
30712         strict.
30713         (picochip_check_conditional_copy): Check for modw only if opnd is
30714         register.
30715         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
30716         to call the function in c.
30717         * config/picochip/picochip-protos.h
30718         (picochip_legitimize_reload_address): Define.
30719         * config/picochip/picochip.md (supported_compare1): Define.
30720
30721 2010-04-30  Jan Hubicka  <jh@suse.cz>
30722
30723         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
30724         (cgraph_global_info): Remove inlined.
30725         (LTO_cgraph_tag_names): Remove.
30726         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
30727         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
30728         simplify cgraph tags and document.
30729         (lto_output_node): Use only LTO_cgraph_unavail_node and
30730         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
30731         for_functions_valid, global info, process and output flags.
30732         (input_overwrite_node): Initialize estimated stack size and
30733         estimated growth.  Do not read flags we no longer store.
30734         (input_node): Likewise do not read info no longer stored.
30735         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
30736         flag.
30737
30738 2010-04-30  Richard Guenther  <rguenther@suse.de>
30739
30740         PR tree-optimization/43879
30741         * tree-ssa-structalias.c (get_constraint_for_1): Properly
30742         handle non-zero initializers.
30743
30744 2010-04-30  Richard Guenther  <rguenther@suse.de>
30745
30746         * builtins.c (fold_builtin_1): Delete free (0).
30747
30748 2010-04-29  Jan Hubicka  <jh@suse.cz>
30749
30750         * gengtype.c (open_base_files): Add lto-streamer.h
30751         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
30752         (pass_ipa_cp): GGC collect.
30753         * toplev. (compile_file): Do not output symbols.
30754         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
30755         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
30756         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
30757         * lto-section-in.c: Include ggc.h
30758         (lto_new_in_decl_state): Alloc in GGC.
30759         (lto_delete_in_decl_state): Likewise.
30760         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
30761         Collect.
30762
30763 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30764
30765         PR target/42895
30766         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
30767         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
30768         (HONOR_REG_ALLOC_ORDER): Describe new macro.
30769         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
30770         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
30771         account only if HONOR_REG_ALLOC_ORDER is not defined.
30772         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
30773         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
30774
30775 2010-04-29  Jon Grant  <04@jguk.org>
30776
30777         * collect2.c (vflag): Change type from int to bool.
30778         (debug): Likewise.
30779         (helpflag): New global bool.
30780         (main): Set vflag and debug with boolean, not integer truth values.
30781         Accept new "--help" option and output usage text if found.
30782         * collect2.h (vflag): Update prototype.
30783         (debug): Likewise.
30784
30785 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30786
30787         PR bootstrap/43936
30788         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
30789
30790 2010-04-29  Richard Guenther  <rguenther@suse.de>
30791
30792         PR bootstrap/43935
30793         * plugin.h (invoke_plugin_callbacks): Annotate arguments
30794         with ATTRIBUTE_UNUSED.
30795
30796 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30797
30798         PR target/43921
30799         * config/i386/i386.c (get_some_local_dynamic_name): Replace
30800         INSN_P with NONDEBUG_INSN_P.
30801         (distance_non_agu_define): Likewise.
30802         (distance_agu_use): Likewise.
30803
30804 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30805
30806         From Dominique d'Humieres  <dominiq@lps.ens.fr>
30807         PR bootstrap/43858
30808         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
30809         test_set.
30810
30811 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
30812
30813         * plugin.h (invoke_plugin_callbacks): New inline function.
30814         * plugin.c (flag_plugin_added): New global flag.
30815         (add_new_plugin): Initialize above flag.
30816         (invoke_plugin_callbacks): Rename to ...
30817         (invoke_plugin_callbacks_full): ... this.
30818
30819 2010-04-28  Jan Hubicka  <jh@suse.cz>
30820
30821         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
30822         (lto_varpool_replace_node): New.
30823         (lto_symtab_resolve_symbols): Resolve varpool nodes.
30824         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
30825         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
30826         * cgraph.h (varpool_node_ptr): New type.
30827         (varpool_node_ptr): New vector.
30828         (varpool_node_set_def): New structure.
30829         (varpool_node_set): New type.
30830         (varpool_node_set): New vector.
30831         (varpool_node_set_element_def): New structure.
30832         (varpool_node_set_element, const_varpool_node_set_element): New types.
30833         (varpool_node_set_iterator): New type.
30834         (varpool_node): Add prev pointers, add used_from_other_partition,
30835         in_other_partition.
30836         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
30837         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
30838         varpool_get_node, varpool_remove_node): Declare.
30839         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
30840         varpool_node_set_size): New inlines.
30841         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
30842         * tree-pass.h (varpool_node_set_def): Forward declare.
30843         (ipa_opt_pass_d): Summary writting takes vnode sets too.
30844         (ipa_write_optimization_summaries): Update prototype.
30845         * ipa-cp.c (ipcp_write_summary): Update.
30846         * ipa-reference.c (ipa_reference_write_summary): Update.
30847         * lto-cgraph.c (lto_output_varpool_node): New static function.
30848         (output_varpool): New function.
30849         (input_varpool_node): New static function.
30850         (input_varpool_1): New function.
30851         (input_cgraph): Input varpool.
30852         * ipa-pure-const.c (pure_const_write_summary): Update.
30853         * lto-streamer-out.c (lto_output): Update, output varpool too.
30854         (write_global_stream): Kill WPA hack.
30855         (produce_asm_for_decls): Update.
30856         (output_alias_pair_p): Handle variables.
30857         (output_unreferenced_globals): Output only needed partition of varpool.
30858         * ipa-inline.c (inline_write_summary): Update.
30859         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
30860         cgraph.
30861         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
30862         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
30863         varpool_node_set_new, varpool_node_set_add,
30864         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
30865         debug_varpool_node_set): New functions.
30866         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
30867         (execute_one_pass): Process new decls too.
30868         (ipa_write_summaries_2): Pass around vsets.
30869         (ipa_write_summaries_1): Likewise.
30870         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
30871         to add.
30872         (ipa_write_optimization_summaries_1): Pass around vsets.
30873         (ipa_write_optimization_summaries): Likewise.
30874         * varpool.c (varpool_get_node): New.
30875         (varpool_node): Update doubly linked lists.
30876         (varpool_remove_node): New.
30877         (dump_varpool_node): More dumping.
30878         (varpool_enqueue_needed_node): Update doubly linked lists.
30879         (decide_is_variable_needed): Kill ltrans hack.
30880         (varpool_finalize_decl): Kill lto hack.
30881         (varpool_assemble_decl): Skip decls in other partitions.
30882         (varpool_assemble_pending_decls): Update doubly linkes lists.
30883         (varpool_empty_needed_queue): Likewise.
30884         (varpool_extra_name_alias): Likewise.
30885         * lto-streamer.c (lto_get_section_name): Add vars section.
30886         * lto-streamer.h (lto_section_type): Update.
30887         (output_varpool, input_varpool): Declare.
30888
30889 2010-04-28  Mike Stump  <mikestump@comcast.net>
30890
30891         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
30892
30893 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30894
30895         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
30896         record or union type with RECORD_OR_UNION_TYPE_P predicate.
30897         (lto_input_ts_type_tree_pointers): Likewise.
30898         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
30899         (lto_output_ts_type_tree_pointers): Likewise.
30900
30901 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30902
30903         Uniquization of constants at the Tree level
30904         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
30905         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
30906         bit to the end.
30907         (tree_output_constant_def): Declare.
30908         * gimplify.c (gimplify_init_constructor): When using block copy, first
30909         uniquize the constant constructor on the RHS.
30910         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
30911         DECL_IN_CONSTANT_POOL flag.
30912         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
30913         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
30914         constant pool.
30915         (assemble_variable): Deal with symbols belonging to the tree constant
30916         pool.
30917         (get_constant_section): Add ALIGN parameter and simplify.
30918         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
30919         (assemble_constant_contents): Use the expression of the VAR_DECL.
30920         (output_constant_def_contents): Use the alignment of the VAR_DECL.
30921         (tree_output_constant_def): New global function.
30922         (mark_constant): Use the expression of the VAR_DECL.
30923         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
30924         its expression.
30925         (output_object_block): Likewise and assemble the expression.
30926
30927 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30928
30929         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
30930         hash_tree, eq_tree): New tree hash table.
30931         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
30932         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
30933         lto_orig_address_remove): Reimplement.
30934
30935 2010-04-28  Xinliang David Li  <davidxl@google.com>
30936
30937         PR c/42643
30938         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
30939         (compute_uninit_opnds_pos): New function.
30940         (is_non_loop_exit_postdominating): New function.
30941         (compute_control_dep_chain): New function.
30942         (find_pdom): New function.
30943         (convert_control_dep_chain_into_preds): New function.
30944         (find_predicates): New function.
30945         (find_control_equiv_block): New function.
30946         (collect_phi_def_edges): New function.
30947         (find_def_preds): New function.
30948         (find_dom): New function.
30949         (dump_predicates): New function.
30950         (get_cmp_code): New function.
30951         (is_value_included_in): New function.
30952         (find_matching_predicate_in_rest_chains): New function.
30953         (use_pred_not_overlap_with_undef_path_pred): New function.
30954         (is_use_properly_guarded): New function.
30955         (normalize_cond_1): New function.
30956         (is_and_or_or): New function.
30957         (normalize_cond): New function.
30958         (is_gcond_subset_of): New function.
30959         (is_subset_of_any): New function.
30960         (is_or_set_subset_of): New function.
30961         (is_and_set_subset_of): New function.
30962         (is_norm_cond_subset_of): New function.
30963         (is_pred_expr_subset_of): New function.
30964         (is_pred_chain_subset_of): New function.
30965         (is_included_in): New function.
30966         (is_superset_of): New function.
30967         (find_uninit_use): New function.
30968         (warn_uninitialized_phi): New function.
30969         (compute_possibly_undefined_names): New function.
30970         (ssa_undefined_value_p): New function.
30971         (execute_late_warn_uninitialized): New function.
30972         * tree-ssa.c (ssa_undefined_value_p): Removed.
30973         (warn_uninit): Changed to extern.
30974         (warn_uninitialized_phi): Removed.
30975         (warn_uninitialized_vars): Changed to extern.
30976         (execute_late_warn_uninitialized): Removed
30977         * tree-flow.h: Add new prototypes.
30978         * timevar.def: Add new time variable.
30979         * Makefile.in: Add new build file.
30980
30981 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
30982
30983         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
30984         type if available.
30985
30986 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30987
30988         PR target/22224
30989         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
30990
30991 2010-04-28  Martin Jambor  <mjambor@suse.cz>
30992
30993         * cgraph.h (struct cgraph_node): New field indirect_calls.
30994         (struct cgraph_indirect_call_info): New type.
30995         (struct cgraph_edge): Removed field indirect_call. New fields
30996         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
30997         (cgraph_create_indirect_edge): Declare.
30998         (cgraph_make_edge_direct): Likewise.
30999         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
31000         * ipa-prop.h (struct ipa_param_call_note): Removed.
31001         (struct ipa_node_params): Removed field param_calls.
31002         (ipa_create_all_structures_for_iinln): Declare.
31003         * cgraph.c: Described indirect edges and uids in initial comment.
31004         (cgraph_add_edge_to_call_site_hash): New function.
31005         (cgraph_edge): Search also among the indirect edges, use
31006         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
31007         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
31008         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
31009         site hash.
31010         (initialize_inline_failed): Assign a reason to indirect edges.
31011         (cgraph_create_edge_1): New function.
31012         (cgraph_create_edge): Moved some functionality to
31013         cgraph_create_edge_1.
31014         (cgraph_create_indirect_edge): New function.
31015         (cgraph_edge_remove_callee): Add an assert checking for
31016         non-indirectness.
31017         (cgraph_edge_remove_caller): Special-case indirect edges.
31018         (cgraph_remove_edge): Likewise.
31019         (cgraph_set_edge_callee): New function.
31020         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
31021         (cgraph_make_edge_direct): New function.
31022         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
31023         the declaration of the call statement matches.
31024         (cgraph_node_remove_callees): Special-case indirect edges.
31025         (cgraph_clone_edge): Likewise.
31026         (cgraph_clone_node): Clone also the indirect edges.
31027         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
31028         indirect_call, dump count of indirect_calls edges.
31029         * ipa-prop.c (iinlining_processed_edges): New variable.
31030         (ipa_note_param_call): Create indirect edges instead of
31031         creating notes.  New parameter node.
31032         (ipa_analyze_call_uses): New parameter node, pass it on to
31033         ipa_note_param_call.
31034         (ipa_analyze_stmt_uses): Likewise.
31035         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
31036         (print_edge_addition_message): Work on edges rather than on notes.
31037         (update_call_notes_after_inlining): Likewise, renamed to
31038         update_indirect_edges_after_inlining.
31039         (ipa_create_all_structures_for_iinln): New function.
31040         (ipa_free_node_params_substructures): Do not free notes.
31041         (ipa_edge_duplication_hook): Propagate bits within
31042         iinlining_processed_edges bitmap.
31043         (ipa_node_duplication_hook): Do not duplicate notes.
31044         (free_all_ipa_structures_after_ipa_cp): Renamed to
31045         ipa_free_all_structures_after_ipa_cp.
31046         (free_all_ipa_structures_after_iinln): Renamed to
31047         ipa_free_all_structures_after_iinln.
31048         (ipa_write_param_call_note): Removed.
31049         (ipa_read_param_call_note): Removed.
31050         (ipa_write_indirect_edge_info): New function.
31051         (ipa_read_indirect_edge_info): Likewise.
31052         (ipa_write_node_info): Do not stream notes, do stream information
31053         in indirect edges.
31054         (ipa_read_node_info): Likewise.
31055         (lto_ipa_fixup_call_notes): Removed.
31056         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
31057         * ipa-inline.c (pass_ipa_inline): Likewise.
31058         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
31059         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
31060         * tree-inline.c (copy_bb): Removed an unnecessary double check for
31061         is_gimple_call.
31062         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
31063         edges.
31064         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
31065         (output_cgraph): Stream also indirect edges.
31066         (lto_output_edge): Added capability to stream indirect edges.
31067         (input_edge): Likewise.
31068         (input_cgraph_1): Likewise.
31069         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
31070         of indirect edges.
31071
31072 2010-04-28  Richard Guenther  <rguenther@suse.de>
31073
31074         PR tree-optimization/43879
31075         PR tree-optimization/43909
31076         * tree-ssa-structalias.c (struct variable_info): Add
31077         only_restrict_pointers flag.
31078         (new_var_info): Initialize it.  Increment stats.total_vars here.
31079         (create_function_info_for): Do not increment stats.total_vars here.
31080         (get_function_part_constraint): Fix build with C++.
31081         (insert_into_field_list): Remove.
31082         (push_fields_onto_fieldstack): Properly merge fields.
31083         (create_variable_info_for): Split and simplify.
31084         (create_variable_info_for_1): New piece.
31085         (intra_create_variable_infos): Properly make restrict constraints
31086         from parameters.
31087
31088 2010-04-28  Richard Guenther  <rguenther@suse.de>
31089
31090         PR c++/43880
31091         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
31092
31093 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31094             Jan Hubicka  <hubicka@ucw.cz>
31095
31096         * doc/invoke.texi (-Wsuggest-attribute=const,
31097         -Wsuggest-attribute=pure): Document.
31098         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
31099         (function_always_visible_to_compiler_p,
31100         suggest_attribute, warn_function_pure, warn_function_const):
31101         New functions.
31102         (check_call): Improve debug info.
31103         (analyze_function): Do not check availability.
31104         (add_new_function): Check availability.
31105         (propagate): Output warnings.
31106         (skip_function_for_local_pure_const): New function.
31107         (local_pure_const): Use it; output warnings.
31108         * common.opt (Wsuggest-attribute=const,
31109         Wsuggest-attribute=pure): New.
31110
31111 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31112
31113         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
31114         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
31115         or DW_CFA_def_cfa_offset{,_sf}.
31116
31117 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31118
31119         * tree.h: Fix truncated long macros.
31120
31121 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
31122
31123         * collect2.c (TARGET_64BIT): Redefine to target's default.
31124         * tlink.c: Likewise.
31125         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
31126         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
31127         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
31128         for underscoring __USER_LABEL_PREFIX__.
31129         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
31130         (SUB_LINK_ENTRY32): New.
31131         (SUB_LINK_ENTRY64): New.
31132         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
31133         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
31134         (SUB_LINK_ENTRY64): New.
31135         (SUB_LINK_ENTRY): New.
31136         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
31137         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
31138         x64 target is choosen.
31139         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
31140         * configure: Regenerated.
31141         * configure.ac (leading-mingw64-underscores): Option added.
31142
31143 2010-04-27  Jan Hubicka  <jh@suse.cz>
31144
31145         * doc/invoke.texi (-fipa-profile): Document.
31146         * opts.c (decode_options): Enable ipa-profile at -O1.
31147         * timevar.def (TV_IPA_PROFILE): Define.
31148         * common.opt (fipa-profile): Add.
31149         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
31150         flag for clones.
31151         (cgraph_propagate_frequency): Handle only local ones.
31152         * tree-pass.h (pass_ipa_profile): Declare.
31153         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
31154         (pass_ipa_profile): Use TV_IPA_PROFILE.
31155         * ipa.c (ipa_profile): New function.
31156         (gate_ipa_profile): Likewise.
31157         (pass_ipa_profile): New global variable.
31158         * passes.c (pass_ipa_profile): New.
31159
31160 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
31161
31162         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
31163
31164 2010-04-27  Martin Jambor  <mjambor@suse.cz>
31165
31166         PR middle-end/43812
31167         * ipa.c (dissolve_same_comdat_group_list): New function.
31168         (function_and_variable_visibility): Call
31169         dissolve_same_comdat_group_list when comdat group contains external or
31170         newly local nodes.
31171         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
31172         lists are circular and that they contain only DECL_ONE_ONLY nodes.
31173
31174 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31175
31176         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
31177         (const_hash_1) <VECTOR_CST>: New case.
31178         (compare_constant) <VECTOR_CST>: Likewise.
31179         <ADDR_EXPR>: Deal with LABEL_REFs.
31180         (copy_constant) <VECTOR_CST>: New case.
31181
31182 2010-04-27  Jan Hubicka  <jh@suse.cz>
31183
31184         * cgraph.c (cgraph_propagate_frequency): New function.
31185         * cgraph.h (cgraph_propagate_frequency): Declare.
31186         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
31187         cgraph_propagate_frequency.
31188
31189 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31190
31191         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
31192
31193 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
31194
31195         PR target/40657
31196         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
31197         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
31198         here to determine which regs to push and how much stack to reserve.
31199
31200 2010-04-27  Jie Zhang  <jie@codesourcery.com>
31201
31202         * doc/gimple.texi (gimple_statement_with_ops): Remove
31203         addresses_taken field.
31204         (gimple_statement_with_memory_ops): Likewise.
31205
31206 2010-04-27  Jan Hubicka  <jh@suse.cz>
31207
31208         * tree-inline.c (eni_inlining_weights): Remove.
31209         (estimate_num_insns): Special case more builtins.
31210
31211 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
31212
31213         PR c/32207
31214         * c-typeck.c (build_binary_op): Move forward check for comparison
31215         pointer with null pointer constant and adjust the diagnostic message.
31216
31217 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
31218
31219         PR lto/42776
31220         * configure.ac (gcc_cv_as_section_has_align): Set if installed
31221         binutils supports extended .section directive needed by LTO, or
31222         warn if older binutils found.
31223         (LTO_BINARY_READER): New AC_SUBST'd variable.
31224         (LTO_USE_LIBELF): Likewise.
31225         * config.gcc (lto_binary_reader): New target-specific configure
31226         variable.
31227         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
31228         (LTO_USE_LIBELF): Likewise.
31229         * configure: Regenerate.
31230
31231         * collect2.c (is_elf): Rename from this ...
31232         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
31233          object files in addition to ELF-formatted ones.
31234         (scan_prog_file): Caller updated.  Also allow for LTO info marker
31235         symbol to be prefixed or not by an extra underscore.
31236
31237         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
31238         * config/i386/winnt.c: Also #include lto-streamer.h
31239         (i386_pe_asm_named_section): Specify 1-byte section alignment for
31240         LTO named sections.
31241         (i386_pe_asm_output_aligned_decl_common): Add comment.
31242         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
31243
31244 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
31245
31246         PR target/43889
31247         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
31248         Add missing earlyclobber for second alternative.
31249
31250 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
31251
31252         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
31253         bits for artificial defs at the top of the block.
31254         * fwprop.c (single_def_use_enter_block): Don't call it.
31255
31256 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
31257
31258         PR 43715
31259         * configure.ac: Use "$gcc_cv_nm -g" on darwin
31260         instead of "$gcc_cv_objdump -T".
31261         Use "-undefined dynamic_lookup" on darwin.
31262         * configure: Regenerate.
31263
31264 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
31265
31266         PR c/43893
31267         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
31268
31269 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31270
31271         * c-parser.c (struct c_token): Move location field up.
31272         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
31273         (struct c_declspecs): Convert typespec_word, storage_class, and
31274         default_int_p into bitfields.
31275         (struct c_declarator): Move loc field up.
31276
31277 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31278
31279         * cfgloop.h (struct loop): Move can_be_parallel field up.
31280         * ipa-prop.h (struct ip_node_params): Move bitfields up.
31281         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
31282         down.
31283         (struct iv_cand): Convert pos field into a bitfield.
31284         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
31285         field up.
31286         (struct _stmt_vec_info): Shuffle fields for better packing.
31287
31288 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31289
31290         * varasm.c (IN_NAMED_SECTION): Remove guard.
31291         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
31292         (IN_NAMED_SECTION_P): ...this.
31293         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
31294         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
31295
31296 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31297
31298         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
31299         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
31300         of shadowing it.  Fix comments.
31301
31302 2010-04-26  Jan Hubicka  <jh@suse.cz>
31303
31304         * cgraph.c (cgraph_create_node): Set node frequency to normal.
31305         (cgraph_clone_node): Copy function frequency.
31306         * cgraph.h (node_frequency): New enum
31307         (struct cgraph_node): Add.
31308         * final.c (rest_of_clean_state): Update.
31309         * lto-cgraph.c (lto_output_node): Output node frequency.
31310         (input_overwrite_node): Input node frequency.
31311         * tre-ssa-loop-ivopts (computation_cost): Update.
31312         * lto-streamer-out.c (output_function): Do not output function
31313         frequency.
31314         * predict.c (maybe_hot_frequency_p): Update and handle functions
31315         executed once.
31316         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
31317         attribute lookup.
31318         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
31319         (compute_function_frequency): Set noreturn functions to be executed
31320         once.
31321         (choose_function_section): Update.
31322         * lto-streamer-in.c (input_function): Do not input function frequency.
31323         * function.c (allocate_struct_function): Do not initialize function
31324         frequency.
31325         * function.h (function_frequency): Remove.
31326         (struct function): Remove function frequency.
31327         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
31328         (try_update): Update.
31329         * tree-inline.c (initialize_cfun): Do not update function frequency.
31330         * passes.c (pass_init_dump_file): Update.
31331         * i386.c (ix86_compute_frame_layout): Update.
31332         (ix86_pad_returns): Update.
31333
31334 2010-04-26  Jie Zhang  <jie@codesourcery.com>
31335
31336         PR tree-optimization/43833
31337         * tree-vrp.c (range_int_cst_p): New.
31338         (range_int_cst_singleton_p): New.
31339         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
31340         when both operands are constants.  Use range_int_cst_p in
31341         BIT_IOR_EXPR case.
31342
31343 2010-04-26  Jan Hubicka  <jh@suse.cz>
31344
31345         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
31346
31347 2010-04-26  Richard Guenther  <rguenther@suse.de>
31348
31349         PR lto/43080
31350         * gimple.c (gimple_decl_printable_name): Deal gracefully
31351         with a NULL DECL_NAME.
31352
31353 2010-04-26  Richard Guenther  <rguenther@suse.de>
31354
31355         PR lto/42425
31356         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
31357         if emitting debug information and it is either a function
31358         or a namespace decl.
31359
31360 2010-04-26  Ira Rosen  <irar@il.ibm.com>
31361
31362         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
31363         determine if the statement is vectorizable, and a macro to access it.
31364         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31365         Skip statements that can't be vectorized. If the analysis fails,
31366         mark the statement as unvectorizable if vectorizing basic block.
31367         (vect_compute_data_refs_alignment): Likewise.
31368         (vect_verify_datarefs_alignment): Skip statements marked as
31369         unvectorizable. Add print.
31370         (vect_analyze_group_access): Skip statements that can't be
31371         vectorized. If the analysis fails, mark the statement as
31372         unvectorizable if vectorizing basic block.
31373         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
31374         * tree-vect-stmts.c (vectorizable_store): Fix the number of
31375         generated stmts for SLP.
31376         (new_stmt_vec_info): Initialize the new field.
31377         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
31378         statements marked as unvectorizable.
31379
31380 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
31381
31382         * c-common.c (flag_isoc1x): New.
31383         (flag_isoc99): Update comment.
31384         * c-common.h (flag_isoc1x): New.
31385         (flag_isoc99): Update comment.
31386         * c-cppbuiltin.c (builtin_define_float_constants): Also define
31387         __<type>_DECIMAL_DIG__.
31388         * c-opts.c (set_std_c1x): New.
31389         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
31390         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
31391         * c.opt (-std=c1x, -std=gnu1x): New options.
31392         * doc/cpp.texi: Mention -std=c1x.
31393         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
31394         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
31395         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
31396         * doc/standards.texi: Mention C1X.
31397         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
31398         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
31399         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
31400         Define for C1X.
31401
31402 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
31403
31404         * config/i386/gmon-sol2.c (_mcleanup): Change format string
31405         placeholder from 0x%x to %#x.
31406         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
31407         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
31408         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
31409         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
31410         * config/i386/i386.c (ix86_target_string): Ditto.
31411         (output_pic_addr_const): Ditto.
31412         (print_operand): Ditto.
31413
31414 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
31415
31416         * combine.c (find_split_point): Add third argument.  Use it
31417         to find nested multiply-accumulate instructions.  Adjust calls.
31418         (try_combine): Adjust call to find_split_point.
31419
31420 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
31421
31422         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
31423
31424 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
31425
31426         PR tree-optimization/41442
31427         * fold-const.c (merge_truthop_with_opposite_arm): New function.
31428         (fold_binary_loc): Call it.
31429
31430 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31431
31432         * toplev.c (general_init): Set default for fdiagnostics-show-option.
31433         * opts.c (common_handle_option): Allow disabling it.
31434         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
31435
31436 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
31437
31438         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
31439         between modes if both types are integral.
31440
31441 2010-04-23  Richard Guenther  <rguenther@suse.de>
31442
31443         PR tree-optimization/43572
31444         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
31445
31446 2010-04-23  Richard Guenther  <rguenther@suse.de>
31447
31448         PR lto/43455
31449         * tree-inline.c (tree_can_inline_p): Also check compatibility
31450         of return types.
31451
31452 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31453
31454         PR tree-optimization/43846
31455         * tree-sra.c (struct access): New flag grp_assignment_read.
31456         (build_accesses_from_assign): Set grp_assignment_read.
31457         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
31458         (enum mark_read_status): New type.
31459         (analyze_access_subtree): Propagate grp_assignment_read, create
31460         accesses also if both direct_read and root->grp_assignment_read.
31461
31462 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31463
31464         PR middle-end/43835
31465         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
31466         function does not have type attributes.
31467
31468 2010-04-23  Richard Guenther  <rguenther@suse.de>
31469
31470         PR lto/42653
31471         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
31472         of FUNCTION_DECLs.
31473
31474 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31475
31476         * sese.h (create_if_region_on_edge): Remove.
31477
31478         * sese.c (create_if_region_on_edge): Make static.
31479
31480         * tree-inline.c: Do not include ggc.h.
31481
31482         * expr.c: Do not include ggc.h.
31483
31484         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
31485         dependencies.
31486
31487 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
31488
31489         PR target/43744
31490         * config/sh/sh.c (find_barrier): Don't emit a constant pool
31491         in the middle of insns for casesi_worker_2.
31492
31493 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
31494
31495         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
31496
31497 2010-04-22  Ira Rosen  <irar@il.ibm.com>
31498
31499         PR tree-optimization/43842
31500         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
31501         loop unrolling in update of exit phis. Fix comment.
31502         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
31503         least two reduction statements in the loop before starting SLP
31504         analysis.
31505
31506 2010-04-22  Nick Clifton  <nickc@redhat.com>
31507
31508         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
31509
31510 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
31511
31512         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
31513         to simplify a + ~a.
31514
31515 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31516
31517         * tree-parloops.c (loop_parallel_p): New argument
31518         parloop_obstack.  Pass it down.
31519         (parallelize_loops): New variable parloop_obstack.  Initialize it,
31520         pass it down, free it.
31521
31522         * tree-loop-linear.c (linear_transform_loops): Pass down
31523         lambda_obstack.
31524
31525         * tree-data-ref.h (lambda_compute_access_matrices): New argument
31526         of type struct obstack *.
31527
31528         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
31529         scratch_obstack.  Initialize it, pass down, free it.
31530
31531         * lambda.h (lambda_loop_new): Remove.
31532         (lambda_matrix_new, lambda_matrix_inverse)
31533         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
31534         argument of type struct obstack *.
31535
31536         * lambda-trans.c (lambda_trans_matrix_new): New argument
31537         lambda_obstack.  Pass it down, use obstack allocation for ret.
31538         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
31539         it down.
31540
31541         * lambda-mat.c (lambda_matrix_get_column)
31542         (lambda_matrix_project_to_null): Remove.
31543         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
31544         allocation for mat.
31545         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
31546         lambda_obstack.
31547
31548         * lambda-code.c (lambda_loop_new): New function.
31549         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
31550         (lambda_compute_auxillary_space, lambda_compute_target_space)
31551         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
31552         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
31553         (build_access_matrix): New argument lambda_obstack.  Use obstack
31554         allocation for am.
31555         (lambda_compute_step_signs, lambda_compute_access_matrices): New
31556         argument lambda_obstack.  Pass it down.
31557
31558 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31559
31560         * optabs.h (expand_widening_mult): Declare.
31561
31562 2010-04-22  Richard Guenther  <rguenther@suse.de>
31563
31564         PR tree-optimization/43845
31565         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
31566         lookup the CALL_EXPR function and arguments.
31567
31568 2010-04-22  Nick Clifton  <nickc@redhat.com>
31569
31570         * config/stormy16/stormy16.c
31571         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
31572         * config/stormy16/stormy16.h: Tidy up formatting.
31573         (DONT_USE_BUILTIN_SETJMP): Remove definition.
31574         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
31575         (ineqbranchsi): Delete pattern.
31576         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
31577         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
31578         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
31579         stormy16-lib2-ucmpsi2.c.
31580
31581 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31582
31583         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
31584         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
31585         extra set merge_set_noclobber, and use it to relax the final test
31586         slightly.
31587         * df.h (df_simulate_find_noclobber_defs): Declare.
31588         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
31589         conditional defs.
31590         (df_simulate_find_noclobber_defs): New function.
31591
31592 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
31593
31594         * config/i386/i386.md: Use {} around multi-line preparation statements.
31595
31596 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31597
31598         * c-tree.h (push_init_level, pop_init_level, set_init_index)
31599         (process_init_element): New argument of type struct obstack *.
31600
31601         * c-typeck.c (push_init_level, pop_init_level, set_designator)
31602         (set_init_index, set_init_label, set_nonincremental_init)
31603         (set_nonincremental_init_from_string, find_init_member)
31604         (output_init_element, output_pending_init_elements)
31605         (process_init_element): New argument braced_init_obstack.  Pass it
31606         down.
31607         (push_range_stack, add_pending_init): New argument
31608         braced_init_obstack.  Use obstack allocation.
31609
31610         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
31611         braced_init_obstack.  Pass it down.
31612         (c_parser_braced_init): New variables ret, braced_init_obstack.
31613         Initialize obstack, pass it down and finally free it.
31614
31615 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31616
31617         PR middle-end/29274
31618         * tree-pass.h (pass_optimize_widening_mul): Declare.
31619         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
31620         gate_optimize_widening_mul): New static functions.
31621         (pass_optimize_widening_mul): New.
31622         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
31623         <case MULT_EXPR>: Remove support for widening multiplies.
31624         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
31625         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
31626         simplify_gen_unary rather than directly building extensions.
31627         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
31628         WIDEN_MULT_EXPR.
31629         * expmed.c (expand_widening_mult): New function.
31630         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
31631
31632 2010-04-21  Jan Hubicka  <jh@suse.cz>
31633
31634         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
31635         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
31636         * lto-wpa-fixup.c: Remove.
31637         * Makefile.in (lto-wpa-fixup.o): Remove.
31638         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
31639         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
31640         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
31641
31642 2010-04-21  Jan Hubicka  <jh@suse.cz>
31643
31644         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
31645         add write_optimization_summary, read_optimization_summary.
31646         (ipa_write_summaries_of_cgraph_node_set): Remove.
31647         (ipa_write_optimization_summaries): Declare.
31648         (ipa_read_optimization_summaries): Declare.
31649         * ipa-cp.c (pass_ipa_cp): Update.
31650         * ipa-reference.c (pass_ipa_reference): Update.
31651         * ipa-pure-const.c (pass_ipa_pure_const): Update.
31652         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
31653         Update.
31654         * ipa-inline.c (pass_ipa_inline): Update.
31655         * ipa.c (pass_ipa_whole_program): Update.
31656         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
31657         * passes.c (ipa_write_summaries_1): Do not test wpa.
31658         (ipa_write_optimization_summaries_1): New.
31659         (ipa_write_optimization_summaries): New.
31660         (ipa_read_summaries): Do not test ltrans.
31661         (ipa_read_optimization_summaries_1): New.
31662         (ipa_read_optimization_summaries): New.
31663
31664 2010-04-21  Jan Hubicka  <jh@suse.cz>
31665
31666         * lto-cgraph.c (lto_output_node): Do not output comdat groups
31667         for boundary nodes.
31668         (output_cgraph): Do not arrange comdat groups for boundary nodes.
31669
31670 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31671
31672         PR debug/40040
31673         * dwarf2out.c (add_name_and_src_coords_attributes): Add
31674         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
31675
31676 2010-04-21  Jan Hubicka  <jh@suse.cz>
31677
31678         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
31679
31680 2010-04-21  Jan Hubicka  <jh@suse.cz>
31681
31682         * varpool.c (decide_is_variable_needed): Variable is always needed
31683         during ltrans.
31684
31685 2010-04-21  Jan Hubicka  <jh@suse.cz>
31686
31687         * opts.c (decode_options): Enable pure-const pass for whopr.
31688
31689 2010-04-21  Jan Hubicka  <jh@suse.cz>
31690
31691         * cgraph.c (dump_cgraph_node): Dump also assembler name.
31692         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
31693         at WPA dumping.
31694         (cgraph_decide_inlining): Do not expect callee to be removed in all
31695         cases.
31696
31697 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
31698
31699         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
31700
31701 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31702
31703         * config/i386/i386.md (x86_shrd): Add athlon_decode and
31704         amdfam10_decode attributes.
31705
31706 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31707
31708         PR middle-end/43570
31709         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
31710         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
31711         (lower_copyprivate_clauses): Use private var in outer
31712         context instead of original var.  Make sure the types
31713         are correct for VLAs.
31714
31715 2010-04-21  Richard Guenther  <rguenther@suse.de>
31716
31717         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
31718         to non-pointer objects.
31719
31720 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31721
31722         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
31723         last chain entry if it starts with the still current label.
31724         (add_location_or_const_value_attribute): Check that
31725         loc_list->first->next is NULL instead of comparing ->first with ->last.
31726         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
31727         to add_var_loc_to_decl.
31728
31729         * dwarf2out.c (output_call_frame_info): For dw_cie_version
31730         >= 4 add also address size and segment size fields into CIE header.
31731
31732         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
31733         long as address size is the same as sizeof (void *) and
31734         segment size is 0.
31735         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
31736         address size or segment size is unexpected, return DW_EH_PE_omit.
31737         (classify_object_over_fdes): If get_cie_encoding returned
31738         DW_EH_PE_omit, return -1.
31739         (init_object): If classify_object_over_fdes returned -1,
31740         pretend there were no FDEs at all.
31741
31742 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31743
31744         * config/i386/i386.md (bswap<mode>2): Macroize expander from
31745         bswap{si,di}2 using SWI48 mode iterator.
31746         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
31747         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
31748         set modrm attribute of bswap insn to 0 and remove length attribute.
31749         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
31750         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
31751         set mode attribute to <MODE> and remove length attribute.
31752
31753 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
31754
31755         PR rtl-optimization/43520
31756         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
31757         zero available registers.
31758
31759 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31760
31761         * builtins.c (fold_builtin_cproj): Fold more cases.
31762
31763 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31764
31765         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
31766         (fold_builtin_1): Fold builtin cproj.
31767         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
31768         Use ATTR_CONST_NOTHROW_LIST.
31769
31770 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
31771
31772         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
31773         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
31774         ffsi2_no_cmove for !TARGET_CMOVE.
31775         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
31776         (ffssi2): Remove expander.
31777         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
31778         mode iterator.
31779         (ctz<mode>2): Ditto from ctz{si,di}2.
31780         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
31781         mode iterator.
31782         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
31783         mode iterator.
31784
31785 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31786
31787         * dwarf2out.c (AT_linkage_name): Define.
31788         (clone_as_declaration): Handle DW_AT_linkage_name.
31789         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
31790         of DW_AT_MIPS_linkage_name.
31791         (move_linkage_attr): Likewise.
31792         (dwarf2out_finish): Likewise.
31793
31794 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
31795
31796         PR middle-end/41952
31797         * fold-const.c (fold_comparison): New folding rule.
31798
31799 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
31800
31801         * double-int.h (double_int_setbit): Declare.
31802         * double-int.c (double_int_setbit): New function.
31803         * rtl.h (immed_double_int_const): Declare.
31804         * emit-rtl.c (immed_double_int_const): New function.
31805         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
31806         and immed_double_int_const functions.
31807         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
31808         expand_copysign_bit): (Ditto.).
31809         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
31810         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
31811         * dojump.c (prefer_and_bit_test): (Ditto.).
31812         * expr.c (convert_modes, reduce_to_bit_field_precision,
31813         const_vector_from_tree): (Ditto.).
31814         * expmed.c (mask_rtx, lshift_value): (Ditto.).
31815
31816 2010-04-20  Jan Hubicka  <jh@suse.cz>
31817
31818         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
31819         (dump_cgraph_node): Dump new flags.
31820         * cgraph.h (struct cgraph_node): Add flags
31821         reachable_from_other_partition and in_other_partition.
31822         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
31823         other partition can not be removed.
31824         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
31825         the other partition must be output; silence sanity checking on
31826         leaking functions bodies from other paritition.
31827         * lto-cgraph.c (reachable_from_other_partition_p): New function.
31828         (lto_output_node): Output new flags; do not sanity check that inline
31829         clones are output; drop lto_forced_extern_inline_p code; do not mock
31830         visibility flags at partition boundaries.
31831         (add_node_to): New function.
31832         (output_cgraph): Use it to sort functions so masters appear before
31833         clones.
31834         (input_overwrite_node): Input new flags.
31835         * passes.c (ipa_write_summaries): Do not call
31836         lto_new_extern_inline_states.
31837         * lto-section-out.c (forced_extern_inline,
31838         lto_new_extern_inline_states lto_delete_extern_inline_states,
31839         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
31840         * lto-streamer.h (lto_new_extern_inline_states,
31841         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
31842         lto_forced_extern_inline_p): Kill.
31843
31844 2010-04-20  Richard Guenther  <rguenther@suse.de>
31845
31846         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
31847         from vars that can have pointers.
31848         (process_constraint): Dump useless constraints.
31849
31850 2010-04-20  Richard Guenther  <rguenther@suse.de>
31851
31852         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
31853         (dump_sa_points_to_info): Remove asserts.
31854         (init_base_vars): nothing_id isn't an escape point nor does it
31855         have pointers.
31856
31857 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31858
31859         * tree.h (TYPE_REF_IS_RVALUE): Define.
31860         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
31861         should_move_die_to_comdat, prune_unused_types_walk): Handle
31862         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
31863         (modified_type_die, gen_reference_type_die): Emit
31864         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
31865         if TYPE_REF_IS_RVALUE and -gdwarf-4.
31866
31867 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31868
31869         PR target/43635
31870         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
31871         calls for -fpic -m31 if they have been sibcall optimized.
31872
31873 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
31874
31875         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
31876         ar.lc fixed and call-used.
31877
31878         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
31879
31880 2010-04-19  Jan Hubicka  <jh@suse.cz>
31881
31882         * opts.c (decode_options): Disable whpr incompatible passes.
31883         * lto/lto.c (lto_1_to_1_map): Skip clones.
31884         (read_cgraph_and_symbols): Do not mark everything as needed.
31885         (do_whole_program_analysis): Do map only after optimizing;
31886         set proper cgraph_state; use passmanager.
31887
31888 2010-04-19  DJ Delorie  <dj@redhat.com>
31889
31890         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
31891         POINTER_PLUS_EXPR and fix them.
31892
31893 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
31894
31895         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
31896         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
31897         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
31898         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
31899         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
31900         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
31901         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
31902         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
31903         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
31904         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
31905         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
31906
31907 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
31908
31909         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
31910         (check_cond_move_block): Likewise.
31911         (cond_move_process_if_block): Likewise.
31912         (noce_find_if_block): Improve formatting.
31913         (find_if_header): Pass 0 to memset and tweak conditions.
31914         (cond_exec_find_if_block): Fix long lines and tweak conditions.
31915
31916 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31917
31918         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
31919         for -gdwarf-4.
31920
31921         PR middle-end/43337
31922         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
31923         with non-local decl doesn't need chain.
31924
31925 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
31926
31927         * ira-color.c (allocno_reload_assign): Avoid accumulating
31928         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
31929
31930 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31931
31932         * gimple.h (create_tmp_reg): Declare.
31933         * gimplify.c (create_tmp_reg): New function.
31934         (gimplify_return_expr): Use create_tmp_reg.
31935         (gimplify_omp_atomic): Likewise.
31936         (gimple_regimplify_operands): Likewise.
31937         * tree-dfa.c (make_rename_temp): Likewise.
31938         * tree-predcom.c (predcom_tmp_var): Likewise.
31939         (reassociate_to_the_same_stmt): Likewise.
31940         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
31941         (get_replaced_param_substitute): Likewise.
31942         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
31943         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
31944         * tree-ssa-pre.c (get_representative_for): Likewise.
31945         (create_expression_by_pieces): Likewise.
31946         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
31947         (create_tailcall_accumulator): Likewise.
31948
31949 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31950
31951         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
31952         new_stmt.
31953         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
31954
31955 2010-04-19  Richard Guenther  <rguenther@suse.de>
31956
31957         PR tree-optimization/43796
31958         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
31959         from SCEV in the lattice.
31960         (vrp_visit_phi_node): Dump change.
31961
31962 2010-04-19  Richard Guenther  <rguenther@suse.de>
31963
31964         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
31965         * configure: Re-generated.
31966
31967 2010-04-19  Richard Guenther  <rguenther@suse.de>
31968
31969         PR tree-optimization/43783
31970         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
31971         constant ARRAY_REF operands two and three if possible.
31972
31973 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
31974
31975         PR target/43766
31976         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
31977
31978 2010-04-19  Jie Zhang  <jie@codesourcery.com>
31979
31980         PR target/43662
31981         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
31982
31983 2010-04-19  Ira Rosen  <irar@il.ibm.com>
31984
31985         PR tree-optimization/37027
31986         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
31987         and macro to access it.
31988         (vectorizable_reduction): Add argument.
31989         (vect_get_slp_defs): Likewise.
31990         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
31991         statements for possible use in SLP.
31992         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
31993         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
31994         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
31995         add new argument.
31996         (vectorizable_reduction): Likewise.
31997         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
31998         vect_get_slp_defs.
31999         (vectorizable_type_demotion, vectorizable_type_promotion,
32000         vectorizable_store): Likewise.
32001         (vect_analyze_stmt): Update call to vectorizable_reduction.
32002         (vect_transform_stmt): Likewise.
32003         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
32004         (vect_build_slp_tree): Fix indentation. Check that there are no loads
32005         from different interleaving chains in same node.
32006         (vect_slp_rearrange_stmts): New function.
32007         (vect_supported_load_permutation_p): Allow load permutations for
32008         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
32009         inside SLP nodes if necessary.
32010         (vect_analyze_slp_instance): Handle reductions.
32011         (vect_analyze_slp): Try to build SLP instances originating from groups
32012         of reductions.
32013         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
32014         (vect_get_constant_vectors): Create initial vectors for reductions
32015         according to reduction code. Add new argument.
32016         (vect_get_slp_defs): Add new argument, pass it to
32017         vect_get_constant_vectors.
32018         (vect_schedule_slp_instance): Remove SLP tree root statements.
32019
32020 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
32021
32022         * tree.h (ENUM_IS_SCOPED): Define.
32023         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
32024         for ENUM_IS_SCOPED enums.
32025
32026 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
32027
32028         * fold-const.c (fold_comparison): Use ssizetype.
32029         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
32030         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
32031         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
32032         * tree-object-size.c (compute_object_sizes): Use size_type_node.
32033
32034         * tree.h (initialize_sizetypes): Remove parameter.
32035         (build_common_tree_nodes): Remove second parameter.
32036         * stor-layout.c (initialize_sizetypes): Remove parameter.
32037         Always create an unsigned type.
32038         (set_sizetype): Assert that the passed type is unsigned and simplify.
32039         * tree.c (build_common_tree_nodes): Remove second parameter.
32040         Adjust call to initialize_sizetypes.
32041         * c-decl.c (c_init_decl_processing): Remove second argument in call to
32042         build_common_tree_nodes.
32043
32044 2010-04-18  Matthias Klose  <doko@ubuntu.com>
32045
32046         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
32047
32048 2010-04-18  Ira Rosen  <irar@il.ibm.com>
32049
32050         PR tree-optimization/43771
32051         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
32052         load permutation doesn't have gaps.
32053
32054 2010-04-18  Jan Hubicka  <jh@suse.cz>
32055
32056         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
32057         (sse_prologue_save_insn expander): Use new pattern.
32058         (sse_prologue_save_insn1): New pattern and splitter.
32059         (sse_prologue_save_insn): Update to deal also with 64bit aligned
32060         blocks.
32061         * i386.c (setup_incoming_varargs_64): Do not compute jump
32062         destination here.
32063         (ix86_gimplify_va_arg): Update alignment needed.
32064         (ix86_local_alignment): Do not align all local arrays to 128bit.
32065
32066 2010-04-17  Jan Hubicka  <jh@suse.cz>
32067
32068         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
32069
32070 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32071
32072         * arm.md (negdi2): Remove redundant code to force values into a
32073         register.
32074
32075 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32076
32077         * arm/bpabi.S: Add EABI alignment attributes to objects.
32078         * arm/bpabi-v6m.S: Likewise.
32079         * arm/crti.asm: Likewise.
32080         * arm/crtn.asm: Likewise.
32081         * arm/lib1funcs.asm: Likewise.
32082         * arm/libunwind.S: Likewise.
32083
32084 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32085
32086         * arm-protos.h (tune_params): New structure.
32087         * arm.c (current_tune): New variable.
32088         (arm_constant_limit): Delete.
32089         (struct processors): Add pointer to the tune parameters.
32090         (arm_slowmul_tune): New tuning option.
32091         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
32092         (all_cores): Adjust to pick up the tuning model.
32093         (arm_constant_limit): New function.
32094         (arm_override_options): Select the appropriate tuning model.  Delete
32095         initialization of arm_const_limit.
32096         (arm_split_constant): Use the new constant-limit model.
32097         (arm_rtx_costs): Pick up the current tuning model.
32098         * arm.md (is_strongarm, is_xscale): Delete.
32099         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
32100         for Xscale variant architectures.
32101         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
32102
32103 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32104
32105         * config/arm/arm.c (arm_gen_constant): Remove unused variable
32106         can_shift.
32107         (arm_rtx_costs_1): Remove unused variable extra_cost.
32108         (arm_unwind_emit_set): Use variable offset.
32109         (thumb1_output_casesi): Remove unused variable flags.
32110
32111 2010-04-16  Jeff Law  <law@redhat.com>
32112
32113         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
32114         needing assignment rather than doing a two-phase assignment.  Remove
32115         unused variable 'm'.
32116
32117 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32118
32119         PR bootstrap/43767
32120         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
32121
32122 2010-04-16  Doug Kwan  <dougkwan@google.com>
32123
32124         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
32125         (next_operand_entry_id): New static variable.
32126         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
32127         (add_to_ops_vec): Assigned unique ID to operand entry.
32128         (struct oecount_s): New field ID.
32129         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
32130         (undistribute_ops_list): Assign unique IDs to oecounts.
32131         (init_reassoc): reset next_operand_entry_id.
32132
32133 2010-04-16  Doug Kwan  <dougkwan@google.com>
32134
32135         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
32136         missing left parenthesis.
32137
32138 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
32139
32140         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
32141         *btdi_rex64 using SWI48 mode iterator.
32142         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
32143         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
32144         *jcc_btdi_mask_rex64.
32145
32146 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
32147
32148         * double-int.h (tree_to_double_int): Convert to macro.
32149         * double-int.c (tree_to_double_int): Remove.
32150
32151 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32152
32153         PR debug/43762
32154         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
32155         with want_address 2 and in case a single element list might be
32156         possible, call it again with want_address 0.
32157
32158 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32159
32160         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
32161         case 'W' print operands for HI mode.
32162         * config/h8300/h8300.h (Y0, Y2) : New constraints.
32163         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
32164         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
32165         * config/h8300/predicate.md (bit_register_indirect_operand): New.
32166
32167         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
32168
32169         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
32170         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
32171         #xx:3 and #xx:4 mode.
32172
32173         * config/h8300/h8300.md (inverted load with HImode dest): Add
32174         support for H8300SX.
32175
32176         * config/h8300/predicate.md (bit_operand): Allow immediate values that
32177         satisfy 'U' constraint.
32178
32179 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32180
32181         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
32182         * configure: Regenerate.
32183         * config.in: Regenerate.
32184         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
32185         works.
32186
32187 2010-04-16  Richard Guenther  <rguenther@suse.de>
32188
32189         * tree.h (struct tree_decl_minimal): Move pt_uid ...
32190         (struct tree_decl_common): ... here.
32191         (DECL_PT_UID): Adjust.
32192         (SET_DECL_PT_UID): Likewise.
32193         (DECL_PT_UID_SET_P): Likewise.
32194
32195 2010-04-16  Richard Guenther  <rguenther@suse.de>
32196
32197         PR tree-optimization/43572
32198         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
32199         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
32200         * tree-flow.h (is_call_clobbered): Remove.
32201         * tree-flow-inline.h (is_call_clobbered): Likewise.
32202         * tree-dfa.c (dump_variable): Do not dump call clobber state.
32203         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
32204         (execute_return_slot_opt): Adjust.
32205         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
32206         check for call clobbered vars here.
32207         (find_tail_calls): Move tailcall verification to the
32208         proper place.
32209
32210 2010-04-16  Diego Novillo  <dnovillo@google.com>
32211
32212         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
32213
32214 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32215
32216         PR target/40603
32217         * config/arm/arm.md (cbranchqi4): New pattern.
32218         * config/arm/predicates.md (const0_operand,
32219         cbranchqi4_comparison_operator): New predicates.
32220
32221 2010-04-16  Richard Guenther  <rguenther@suse.de>
32222
32223         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
32224         (dump_gimple_stmt): Likewise.
32225
32226 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32227
32228         * recog.h (struct recog_data): New field is_operator.
32229         (struct insn_operand_data): New field is_operator.
32230         * recog.c (extract_insn): Set recog_data.is_operator.
32231         * genoutput.c (output_operand_data): Emit code to set the
32232         is_operator field.
32233         * reload.c (find_reloads): Use it rather than testing for an
32234         empty constraint string.
32235
32236         PR target/41514
32237         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
32238         If the previous insn is a cbranchsi4_insn with the same arguments,
32239         omit the compare instruction.
32240
32241         * config/arm/arm.md (addsi3_cbranch): If destination is a high
32242         register, inputs must be low registers and we need a low register
32243         scratch.  Handle alternative 2 like alternative 3.
32244
32245 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32246
32247         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
32248         don't call get_addr on both.  If one expression is a VALUE and
32249         the other a REG, check VALUE's locs if the REG isn't among them.
32250
32251 2010-04-16  Christian Bruel  <christian.bruel@st.com>
32252
32253         * config/sh/sh.h (sh_frame_pointer_required): New function.
32254         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
32255         (flag_omit_frame_pointer) Set.
32256         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
32257         (rounded_frame_size): Adjust size with outgoing_args_size.
32258         (sh_set_return_address): Must return from stack pointer.
32259         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
32260         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
32261         (ACCUMULATE_OUTGOING_ARGS): Define.
32262         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
32263         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
32264
32265 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32266
32267         PR target/43471
32268         * config/sh/sh.c (sh_legitimize_reload_address): Use
32269         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
32270         Remove a unneeded check for offset_base.
32271
32272 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
32273
32274         * configure: Regenerated.
32275
32276 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32277
32278         * config/s390/s390.c (s390_call_save_register_used): Switch back
32279         to HARD_REGNO_NREGS.
32280
32281 2010-04-15  Richard Guenther  <rguenther@suse.de>
32282
32283         * alias.c (alias_set_subset_of): Handle alias-set zero
32284         child properly.
32285
32286 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
32287             Julian Brown  <julian@codesourcery.com>
32288
32289         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
32290         alternatives according to use of high and low regs.
32291         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
32292         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
32293         optimizing for size on Thumb-2.
32294
32295 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
32296
32297         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
32298
32299 2010-04-15  Richard Guenther  <rguenther@suse.de>
32300
32301         * tree-ssa-structalias.c (struct variable_info): Add
32302         is_fn_info flag.
32303         (new_var_info): Initialize it.
32304         (dump_constraints): Support printing last added constraints.
32305         (debug_constraints): Adjust.
32306         (dump_constraint_graph): Likewise.
32307         (make_heapvar_for): Check for NULL cfun.
32308         (get_function_part_constraint): New function.
32309         (get_fi_for_callee): Likewise.
32310         (find_func_aliases): Properly implement IPA PTA constraints.
32311         (process_ipa_clobber): New function.
32312         (find_func_clobbers): Likewise.
32313         (insert_into_field_list_sorted): Remove.
32314         (create_function_info_for): Properly allocate vars for IPA mode.
32315         Do not use insert_into_field_list_sorted.
32316         (create_variable_info_for): Properly generate constraints for
32317         global vars in IPA mode.
32318         (dump_solution_for_var): Always dump the solution.
32319         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
32320         (find_what_var_points_to): Adjust.
32321         (pt_solution_set): Change.
32322         (pt_solution_ior_into): New function.
32323         (pt_solution_empty_p): Export.
32324         (pt_solution_includes_global): Adjust.
32325         (pt_solution_includes_1): Likewise.
32326         (pt_solutions_intersect_1): Likewise.
32327         (dump_sa_points_to_info): Check some invariants.
32328         (solve_constraints): Move constraint dumping ...
32329         (compute_points_to_sets): ... here.
32330         (ipa_pta_execute): ... and here.
32331         (compute_may_aliases): Do not re-compute points-to info
32332         locally if IPA info is available.
32333         (ipa_escaped_pt): New global var.
32334         (ipa_pta_execute): Properly implement IPA PTA.
32335         * tree-into-ssa.c (dump_decl_set): Support dumping
32336         decls not in referenced-vars.
32337         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
32338         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
32339         (dump_points_to_solution): Likewise.
32340         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
32341         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
32342         (remap_gimple_stmt): Reset call clobber/use information if necessary.
32343         (copy_decl_to_var): Copy DECL_PT_UID.
32344         (copy_result_decl_to_var): Likewise.
32345         * tree.c (make_node_stat): Initialize DECL_PT_UID.
32346         (copy_node_stat): Copy it.
32347         * tree.h (DECL_PT_UID): New macro.
32348         (SET_DECL_PT_UID): Likewise.
32349         (DECL_PT_UID_SET_P): Likewise.
32350         (struct tree_decl_minimal): Add pt_uid member.
32351         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
32352         (pt_solution_empty_p): Declare.
32353         (pt_solution_set): Adjust.
32354         (ipa_escaped_pt): Declare.
32355         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
32356         * gimple-pretty-print.c (pp_points_to_solution): New function.
32357         (dump_gimple_call): Dump call clobber/use information.
32358         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
32359         * tree-pass.h (TDF_ALIAS): New dump option.
32360         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
32361         * doc/invoke.texi (-fipa-pta): Update documentation.
32362
32363 2010-04-15  Richard Guenther  <rguenther@suse.de>
32364
32365         * Makefile.in (OBJS-common): Add gimple-fold.o.
32366         (gimple-fold.o): New rule.
32367         * tree.h (maybe_fold_offset_to_reference,
32368         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
32369         prototypes ...
32370         * gimple.h: ... here.
32371         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
32372         may_propagate_address_into_dereference): Move prototypes ...
32373         * gimple.h: ... here.
32374         * tree-ssa-ccp.c (get_symbol_constant_value,
32375         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
32376         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
32377         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
32378         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
32379         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
32380         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
32381         gimplify_and_update_call_from_tree): Move ...
32382         * gimple-fold.c: ... here.  New file.
32383         (ccp_fold_builtin): Rename to ...
32384         (gimple_fold_builtin): ... this.
32385         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
32386
32387 2010-04-15  Richard Guenther  <rguenther@suse.de>
32388
32389         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
32390         fit_double_type, force_fit_type_double, add_double_with_sign,
32391         neg_double, mul_double_with_sign, lshift_double, rshift_double,
32392         lrotate_double, rrotate_double, div_and_round_double): Move ...
32393         * double-int.c: ... here.
32394         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
32395         add_double, neg_double, mul_double_with_sign, mul_double,
32396         lshift_double, rshift_double, lrotate_double, rrotate_double,
32397         div_and_round_double): Move prototypes ...
32398         * double-int.h: ... here.
32399
32400 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
32401
32402         PR target/43742
32403         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
32404         matching constraints to ensure inputs match the output.
32405
32406 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32407
32408         PR target/43742
32409         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
32410         in an input-only operand.
32411
32412 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
32413
32414         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
32415         (double_int_not, double_int_lshift, double_int_rshift): Declare.
32416         (double_int_negative_p): Convert to static inline function.
32417         * double-int.c (double_int_lshift, double_int_lshift): New functions.
32418         (double_int_negative_p): Remove.
32419         * tree.h (lshift_double, rshift_double):
32420         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
32421         * fold-const.c (fold_convert_const_int_from_real,
32422         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
32423         (lshift_double): Change type of arith argument to bool.
32424         (rshift_double): Change type of arith argument to bool. Correct
32425         comment.
32426         * expmed.c (mask_rtx, lshift_value): (Ditto.).
32427
32428 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
32429
32430         PR target/21803
32431         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
32432         at the start and end of the then/else blocks, and omit them from the
32433         conversion.
32434         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
32435         argument; all callers changed.  Pass zero to old_insns_match_p instead.
32436         (flow_find_head_matching_sequence): New function.
32437         (old_insns_match_p): Check REG_EH_REGION notes for calls.
32438         * basic-block.h (flow_find_cross_jump,
32439         flow_find_head_matching_sequence): Declare functions.
32440
32441 2010-04-14  Jason Merrill  <jason@redhat.com>
32442
32443         PR c++/36625
32444         * c-common.c (attribute_takes_identifier_p): New fn.
32445         * c-common.h: Declare it.
32446
32447 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32448
32449         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
32450         splitter condition.
32451         (*udivmod<mode>4): Ditto.
32452
32453 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32454
32455         * config/i386/i386.md (maxmin_int): Rename code attribute from
32456         maxminiprefix and update all users.
32457         (maxmin_float): Ditto from maxminfprefix.
32458         (logic): Ditto from logicprefix.
32459         (absneg_mnemonic): Ditto from absnegprefix.
32460         * config/i386/mmx.md: Update all users of maxminiprefix,
32461         maxminfprefix and logicprefix for rename.
32462         * config/i386/sse.md: Ditto.
32463         * config/i386/sync.md (sync_<code><mode>): Update for
32464         logicprefix rename.
32465
32466 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32467
32468         PR 42966
32469         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
32470         warnings converted to errors.
32471
32472 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32473
32474         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
32475         used insn_type variable.
32476         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
32477         to avoid set-but-not-used warning.
32478
32479 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32480
32481         * df-core.c (df_ref_debug): Change format string placeholder
32482         from 0x%x to %#x.
32483         * dwarf2asm.c (dw2_asm_output_data_raw,
32484         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
32485         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
32486         * dwarf2out.c (output_cfi, output_cfi_directive,
32487         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
32488         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
32489         Ditto.
32490         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
32491         * print-rtl.c (print_rtx): Ditto.
32492
32493 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
32494
32495         PR middle-end/42694
32496         * builtins.c (expand_builtin_pow_root): New function to expand pow
32497         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
32498         series of sqrt and cbrt calls under -ffast-math.
32499         (expand_builtin_pow): Call it.
32500
32501 2010-04-14  Michael Matz  <matz@suse.de>
32502
32503         PR tree-optimization/42963
32504         * tree-cfg.c (touched_switch_bbs): New static variable.
32505         (group_case_labels_stmt): New function broken out from ...
32506         (group_case_labels): ... here, use the above.
32507         (start_recording_case_labels): Allocate touched_switch_bbs.
32508         (end_recording_case_labels): Deallocate it, call
32509         group_case_labels_stmt.
32510         (gimple_redirect_edge_and_branch): Remember index of affected BB.
32511
32512 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32513
32514         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
32515         from insn template.
32516
32517 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32518
32519         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
32520
32521 2010-04-13  Jan Hubicka  <jh@suse.cz>
32522
32523         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
32524         of optimized out static functions.
32525         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
32526         cost computation.  Also sanity check for overflows.
32527         (update_caller_keys): Update cgraph_edge_badness call; properly
32528         update fibheap and sanity check that it is up to date.
32529         (add_new_edges_to_heap): Update cgraph_edge_badness.
32530         (cgraph_decide_inlining_of_small_function): Likewise;
32531         add sanity checking that badness in heap is up to date;
32532         improve dumping of reason; Update badness of calls to the
32533         offline copy of function currently inlined; dump badness
32534         of functions not inlined because of unit growth limits.
32535
32536 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32537
32538         PR middle-end/32628
32539         * c-common.c (pointer_int_sum): Disregard overflow that occured only
32540         because of sign-extension change when converting to sizetype here...
32541         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
32542
32543         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
32544         the folding to constants.  Remove redundant final conversion.
32545         (fold_binary) <associate>: Do not associate if the re-association of
32546         constants alone overflows.
32547         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
32548         to the end of the list.
32549         (multiple_of_p) <COND_EXPR>: New case.
32550
32551 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32552
32553         * opt-functions.awk (opt_sanitized_name): New.
32554         (opt_enum): New.
32555         * optc-gen.awk: Use it
32556         * opth-gen.awk: Use it.
32557
32558 2010-04-13  Martin Jambor  <mjambor@suse.cz>
32559
32560         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
32561         (sra_modify_assign): Delete stmts loading dead data even if racc has no
32562         children.  Call replace_uses_with_default_def_ssa_name to handle
32563         SSA_NAES on lhs.
32564
32565 2010-04-13  Michael Matz  <matz@suse.de>
32566
32567         PR middle-end/43730
32568         * builtins.c (expand_builtin_interclass_mathfn): Also create
32569         a register if the predicate doesn't match.
32570
32571 2010-04-13  Diego Novillo  <dnovillo@google.com>
32572
32573         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
32574         * c-pch.c: Include timevar.h.
32575         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
32576         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
32577         * ggc-common.c: Include timevar.h.
32578         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
32579         * timevar.def (TV_PCH_SAVE): Define.
32580         (TV_PCH_CPP_SAVE): Define.
32581         (TV_PCH_PTR_REALLOC): Define.
32582         (TV_PCH_PTR_SORT): Define.
32583         (TV_PCH_RESTORE): Define.
32584         (TV_PCH_CPP_RESTORE): Define.
32585
32586 2010-04-13  Michael Matz  <matz@suse.de>
32587
32588         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
32589         into MINUS_EXPRs.
32590         (can_reassociate_p): New function.
32591         (break_up_subtract_bb, reassociate_bb): Use it.
32592
32593 2010-04-13  Richard Guenther  <rguenther@suse.de>
32594
32595         PR bootstrap/43737
32596         * builtins.c (c_readstr): Fix assert.
32597
32598 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
32599
32600         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
32601         when generating cltd insn.
32602
32603         (*ashl<mode>3_1): Remove special handling for register operand 2.
32604         (*ashlsi3_1_zext): Ditto.
32605         (*ashlhi3_1): Ditto.
32606         (*ashlhi3_1_lea): Ditto.
32607         (*ashlqi3_1): Ditto.
32608         (*ashlqi3_1_lea): Ditto.
32609         (*<shiftrt_insn><mode>3_1): Ditto.
32610         (*<shiftrt_insn>si3_1_zext): Ditto.
32611         (*<shiftrt_insn>qi3_1_slp): Ditto.
32612         (*<rotate_insn><mode>3_1): Ditto.
32613         (*<rotate_insn>si3_1_zext): Ditto.
32614         (*<rotate_insn>qi3_1_slp): Ditto.
32615
32616 2010-04-13  Richard Guenther  <rguenther@suse.de>
32617
32618         * tree-ssa-structalias.c (callused_id): Remove.
32619         (call_stmt_vars): New.
32620         (get_call_vi): Likewise.
32621         (lookup_call_use_vi): Likewise.
32622         (lookup_call_clobber_vi): Likewise.
32623         (get_call_use_vi): Likewise.
32624         (get_call_clobber_vi): Likewise.
32625         (make_transitive_closure_constraints): Likewise.
32626         (handle_const_call): Adjust to do per-call call-used handling.
32627         (handle_pure_call): Likewise.
32628         (find_what_var_points_to): Remove general callused handling.
32629         (init_base_vars): Likewise.
32630         (init_alias_vars): Initialize call_stmt_vars.
32631         (compute_points_to_sets): Process call-used and call-clobbered
32632         vars for call statements.
32633         (delete_points_to_sets): Free call_stmt_vars.
32634
32635 2010-04-13  Richard Guenther  <rguenther@suse.de>
32636
32637         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
32638         Only add RW dependence for dependence distance zero.
32639         Adjust maximal vectorization factor according to dependences.
32640         Move alignment handling ...
32641         (vect_find_same_alignment_drs): ... here.  New function.
32642         (vect_analyze_data_ref_dependences): Adjust.
32643         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
32644         (vect_analyze_data_refs): Adjust minimal vectorization factor
32645         according to data references.
32646         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
32647         dependences before determining the vectorization factor.
32648         Analyze alignment after determining the vectorization factor.
32649         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
32650         dependences before alignment.
32651         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
32652         Adjust prototype.
32653         (vect_analyze_data_refs): Likewise.
32654         (MAX_VECTORIZATION_FACTOR): New define.
32655
32656 2010-04-13  Duncan Sands  <baldrick@free.fr>
32657
32658         * except.h (lang_eh_type_covers): Remove.
32659         * except.c (lang_eh_type_covers): Likewise.
32660
32661 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32662             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32663
32664         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
32665         * config/s390/s390.c: Replace UNTIS_PER_WORD with
32666         UNITS_PER_LONG where it is ABI relevant.
32667         (s390_return_addr_rtx): Likewise.
32668         (s390_back_chain_rtx): Likewise.
32669         (s390_frame_area): Likewise.
32670         (s390_frame_info): Likewise.
32671         (s390_initial_elimination_offset): Likewise.
32672         (save_gprs): Likewise.
32673         (s390_emit_prologue): Likewise.
32674         (s390_emit_epilogue): Likewise.
32675         (s390_function_arg_advance): Likewise.
32676         (s390_function_arg): Likewise.
32677         (s390_va_start): Likewise.
32678         (s390_gimplify_va_arg): Likewise.
32679         (s390_function_profiler): Likewise.
32680         (s390_optimize_prologue): Likewise.
32681         (s390_rtx_costs): Likewise.
32682         (s390_secondary_reload): Likewise.
32683         (s390_promote_function_mode): Likewise.
32684         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
32685         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
32686         registers available.
32687         (s390_unwind_word_mode): New function.
32688         (s390_function_value): Split 64 bit values into register pair if
32689         used as return value.
32690         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
32691         function call parameters.  Handle parallels.
32692         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
32693         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
32694         (DWARF_CIE_DATA_ALIGNMENT): New macro.
32695         (s390_expand_setmem): Remove unused variable src_addr.
32696         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
32697         deal with 64 bit registers.
32698         * config/s390/s390.h: Define __zarch__ predefined macro.
32699         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
32700         (UNITS_PER_LONG): New macro.
32701         * libjava/include/s390-signal.h: Define extended ucontext
32702         structure containing the upper halfs of the 64 bit registers.
32703
32704 2010-04-13  Simon Baldwin  <simonb@google.com>
32705
32706         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
32707
32708 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32709
32710         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
32711         rvalue on the RHS if the LHS is of a non-renamable type.
32712         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
32713
32714 2010-04-13  Matthias Klose  <doko@ubuntu.com>
32715
32716         * gcc.c (cc1_options): Handle -iplugindir before processing
32717         the cc1 spec. Only add -iplugindir once.
32718         (cpp_unique_options): Add -iplugindir option if -fplugin* options
32719         found.
32720         * common.opt (iplugindir): Remove `Separate' property, initialize.
32721         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
32722         option.
32723         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
32724         (distclean): Remove plugin dir.
32725         * doc/invoke.texi: Document -iplugindir.
32726
32727 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
32728
32729         * doc/plugins.texi (Loading Plugins): Document short
32730         -fplugin=foo option.
32731         (Plugin API): Mention default_plugin_dir_name function.
32732
32733         * gcc.c (find_file_spec_function): Add new declaration.
32734         (static_spec_func): Use it for "find-file".
32735         (find_file_spec_function): Add new function.
32736         (cc1_options): Add -iplugindir option if -fplugin* options found.
32737
32738         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
32739
32740         * plugin.c (add_new_plugin): Updated comment, and handle short
32741         plugin name.
32742         (default_plugin_dir_name): Added new function.
32743
32744         * common.opt (iplugindir): New option to set the plugin directory.
32745
32746 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
32747
32748         * config/i386/i386.md (any_rotate): New code iterator.
32749         (rotate_insn): New code attribute.
32750         (rotate): Ditto.
32751         (SWIM124): New mode iterator.
32752         (<rotate_insn>ti3): New expander.
32753         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
32754         any_rotate code iterator.
32755         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
32756         using any_rotate code iterator and SWIM124 mode iterator.
32757         (ix86_rotlti3): New insn_and_split pattern.
32758         (ix86_rotrti3): Ditto.
32759         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
32760         ix86_rotl{di,ti}3 patterns.
32761         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
32762         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
32763         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
32764         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
32765         code iterator and SWI mode iterator.
32766         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
32767         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
32768         code iterator.
32769         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
32770         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
32771         (bswap rotatert splitter): Add splitter.
32772         (bswap splitter): Macroize splitter using any_rotate code iterator.
32773         Add insn predicate to split only for TARGET_USE_XCHGB or when
32774         optimizing function for size.
32775
32776 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32777
32778         * config/pa/pa.c (emit_move_sequence): Remove use of
32779         deleted variable flag_argument_noalias.
32780
32781 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32782
32783         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
32784         configurations.
32785         Add to unsupported targets list.
32786         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
32787         sparc*-sun-solaris2.[567]* from target lists.
32788         * configure: Regenerate.
32789         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
32790         removal.
32791         Remove Solaris 7 patch references.
32792         (Specific, sparc-sun-solaris2.7): Removed.
32793         (sparc-sun-solaris2*): Update Solaris 7 example.
32794         (sparc64-*-solaris2*): Likewise.
32795
32796 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32797
32798         * config.build (alpha*-dec-osf4*): Remove.
32799         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
32800         of obsolete configurations.
32801         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
32802         support.
32803         * config/alpha/t-osf4: Renamed to ...
32804         * config/alpha/t-osf5: ... this.
32805         * config/alpha/osf.h: Renamed to ...
32806         * config/alpha/osf5.h: ... this.
32807         Merged old osf5.h contents.
32808         Update comments.
32809         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
32810         (EXTRA_SPECS): Removed.
32811         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
32812         reflect removal of Tru64 UNIX V4.0/V5.0 support.
32813         Document that.
32814
32815 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32816
32817         * doc/contrib.texi (Contributors, Rainer Orth): Update.
32818
32819 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
32820
32821         PR/43702
32822         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
32823         __thiscall convention.
32824
32825 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32826
32827         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
32828         orig_base.
32829         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
32830
32831 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32832
32833         * function.c (assign_parms_initialize_all): Add unused attribute
32834         to fntype.
32835
32836 2010-04-12  Richard Guenther  <rguenther@suse.de>
32837
32838         * gsstruct.def (GSS_CALL): New.
32839         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
32840         * gimple.h: Include tree-ssa-alias.h.
32841         (struct gimple_statement_call): New.
32842         (union gimple_statement_struct_d): Add gimple_call member.
32843         (gimple_call_reset_alias_info): Declare.
32844         (gimple_call_use_set): New function.
32845         (gimple_call_clobber_set): Likewise.
32846         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
32847         * gimple.c (gimple_call_reset_alias_info): New function.
32848         (gimple_build_call_1): Call it.
32849         * lto-streamer-in.c (input_gimple_stmt): Likewise.
32850         * tree-inline.c (remap_gimple_stmt): Likewise.
32851         (expand_call_inline): Remove callused handling.
32852         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
32853         * tree-dfa.c (dump_variable): Likewise.
32854         * tree-parloops.c (parallelize_loops): Likewise.
32855         * tree-ssa.c (init_tree_ssa): Likewise.
32856         (delete_tree_ssa): Likewise.
32857         * tree-flow-inline.h (is_call_used): Remove.
32858         * tree-flow.h (struct gimple_df): Remove callused member.
32859         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
32860         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
32861         (ref_maybe_used_by_call_p_1): Simplify.
32862         (call_may_clobber_ref_p_1): Likewise.
32863         * tree-ssa-structalias.c (compute_points_to_sets): Set
32864         the call stmt used and clobbered sets.
32865         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
32866         (find_tail_calls): Verify the tail call.
32867
32868 2010-04-12  Richard Guenther  <rguenther@suse.de>
32869
32870         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
32871         single-iteration always-inline inlining.
32872         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
32873         (cgraph_decide_inlining): Do not handle always-inline specially.
32874         (try_inline): Remove always-inline cycle detection special case.
32875         Do not recurse on always-inlines.
32876         (cgraph_early_inlining): Do not iterate if not optimizing.
32877         (cgraph_gate_early_inlining): remove.
32878         (pass_early_inline): Run unconditionally.
32879         (gate_cgraph_decide_inlining): New function.
32880         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
32881         not inlining or optimizing.
32882         (cgraph_decide_inlining_of_small_functions): Also consider
32883         always-inline functions.
32884         (cgraph_default_inline_p): Return true for nodes which should
32885         disregard inline limits.
32886         (estimate_function_body_sizes): Assume zero size and time for
32887         nodes which are marked as disregarding inline limits.
32888         (cgraph_decide_recursive_inlining): Do not perform recursive
32889         inlining on always-inline nodes.
32890
32891 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
32892
32893         PR bootstrap/43699
32894         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
32895         for exprs satisfying handled_component_p.
32896
32897 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
32898
32899         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
32900         non-constant aggregate elements.
32901
32902         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
32903         is a real initialization.
32904
32905 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
32906
32907         PR c/36774
32908         * c-decl.c (start_function): Move forward check for nested function.
32909
32910 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
32911
32912         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
32913         * config/sh/sh.c: Include reload.h.
32914         (sh_legitimize_reload_address): New.
32915         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
32916         sh_legitimize_reload_address.
32917
32918 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32919
32920         * config/sh/sh.md (*movqi_pop): New insn pattern.
32921         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
32922
32923 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32924
32925         * config/i386/i386.md (any_shiftrt): New code iterator.
32926         (shiftrt_insn): New code attribute.
32927         (shiftrt): Ditto.
32928         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
32929         using any_shiftrt code iterator.
32930         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
32931         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
32932         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
32933         pattern from corresponding peephole2 patterns.
32934         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
32935         using any_shiftrt code iterator.
32936         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
32937         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
32938         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
32939         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
32940         *{ashr,lshr}<mode>3_cmp_zext.
32941         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
32942
32943 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32944
32945         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
32946         scratch register.
32947         (*lshr<mode>3_cconly): Ditto.
32948
32949 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32950
32951         * config/i386/i386.md (lshr<mode>3): Macroize expander from
32952         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32953         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32954         pattern from *lshr{di,ti}3_1 and corresponding splitters using
32955         DWI mode iterator.
32956         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32957         from corresponding peephole2 patterns.
32958         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
32959         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
32960         and *lshrdi3_1_rex64 using SWI mode iterator.
32961         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
32962         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
32963         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
32964         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
32965         and *lshrdi3_cmp_rex64 using SWI mode iterator.
32966         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
32967         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
32968         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
32969         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
32970         SWI mode iterator.
32971
32972 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
32973
32974         * config/i386/i386.md (ashr<mode>3): Macroize expander from
32975         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32976         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32977         pattern from *ashr{di,ti}3_1 and corresponding splitters using
32978         DWI mode iterator.
32979         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32980         from corresponding peephole2 patterns.
32981         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
32982         (ashrsi3_cvt): Rename from ashrsi3_31.
32983         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
32984         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
32985         and x86_64_shift_adj_3 using SWI48 mode iterator.
32986         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
32987         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
32988         and *ashrdi3_1_rex64 using SWI mode iterator.
32989         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
32990         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
32991         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
32992         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
32993         and *ashrdi3_cmp_rex64 using SWI mode iterator.
32994         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
32995         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
32996         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
32997         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
32998         SWI mode iterator.
32999         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
33000         * config/i386/i386.c (ix86_split_ashr): Update for renamed
33001         x86_shift<mode>_adj_3 expanders.
33002
33003 2010-04-10  Wei Guozhi  <carrot@google.com>
33004
33005         PR target/42601
33006         * config/arm/arm.c (arm_pic_static_addr): New function.
33007         (legitimize_pic_address): Call arm_pic_static_addr when it detects
33008         a static symbol.
33009         (arm_output_addr_const_extra): Output expression for new pattern.
33010         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
33011
33012 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
33013
33014         * ira-costs.c (record_reg_classes): Ignore alternatives that are
33015         not enabled.
33016
33017         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
33018         * web.c: Include "insn-config.h" and "recog.h".
33019         (union_match_dups): New function.
33020         (web_main): Call it.
33021         (union_defs): Don't try to recognize match_dups.
33022
33023         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
33024         if doing so would replace the entire pattern.
33025
33026 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33027
33028         PR target/43707
33029         PR target/43709
33030         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
33031         and splitter pattern.  Change splitter operand 1 predicate to
33032         nonmemory_operand.
33033
33034 2010-04-09  Martin Jambor  <mjambor@suse.cz>
33035
33036         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
33037         lattices are addresses of CONST_DECLs with the same initial value.
33038         (ipcp_print_all_lattices): Print values of CONST_DECLs.
33039         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
33040
33041 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
33042             Bernd Schmidt  <bernds@codesourcery.com>
33043
33044         * loop-invariant.c (replace_uses): New static function.
33045         (move_invariant_reg): Use it to ensure we can replace the uses.
33046
33047 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
33048
33049         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
33050         function template.
33051         (picochip_override_options): Enable section anchors only above -O1.
33052         (picochip_reorg): Fixed a couple of build warnings.
33053
33054 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33055
33056         * configure.ac (plugin -rdynamic test): Log result.
33057         * configure: Regenerate.
33058         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
33059         (RDYNAMIC_SPEC): Define.
33060         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
33061
33062 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33063
33064         * configure.ac: Determine Sun ld version numbers.
33065         (comdat_group): Restrict GNU ld version checks to gld.
33066         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
33067         (enable_comdat): Support --enable-comdat.
33068         * configure: Regenerate.
33069         * doc/install.texi (Configuration): Document --enable-comdat.
33070
33071 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33072
33073         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
33074         * config/sol2-gld.h: ... here.
33075         * config.gcc (sparc*-*-solaris2*): Reflect this.
33076         (i[34567]86-*-solaris2*): Use it.
33077
33078 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
33079
33080         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
33081         setup_clocks_p.
33082         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
33083
33084 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33085
33086         PR 42965
33087         * diagnostic.c (diagnostic_initialize): Initialize
33088         some_warnings_are_errors.
33089         (diagnostic_finish): New.
33090         (diagnostic_action_after_output): Call it before exiting.
33091         (diagnostic_report_diagnostic): Do not print message here. Set
33092         some_warnings_are_errors.
33093         * diagnostic.h (diagnostic_context): Delete
33094         issue_warnings_are_errors_message. Add some_warnings_are_errors.
33095         (diagnostic_finish): Declare.
33096         * toplev.c (toplev_main): Call it before exit.
33097
33098 2010-04-09  Jason Merrill  <jason@redhat.com>
33099
33100         PR c++/42623
33101         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
33102         for incomplete type.
33103
33104         PR c++/41788
33105         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
33106         based on a warning flag.
33107
33108 2010-04-09  Richard Guenther  <rguenther@suse.de>
33109
33110         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
33111
33112 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
33113
33114         PR bootstrap/43684
33115         * varasm.c (default_assemble_visibility): Wrap vars that are
33116         set, but unused, by targets without GAS.
33117         * config/rs6000/rs6000.c (paired_emit_vector_compare):
33118         Remove set, but unused, vars.
33119         (rs6000_legitimize_tls_address): Likewise.
33120         (altivec_expand_dst_builtin): Likewise.
33121         * config/darwin.c (machopic_classify_symbol): Likewise.
33122         (machopic_indirection_name): Likewise.
33123
33124 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33125
33126         * config/i386/i386.md (DWI): New mode iterator.
33127         (S): New mode attribute.
33128         (shift_operand): Ditto.
33129         (shift_immediate_operand): Ditto.
33130         (ashl_input_operand): Ditto.
33131         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
33132         using SDWIM mode iterator.
33133         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33134         pattern from *ashl{di,ti}3_1 and corresponding splitters using
33135         DWI mode iterator.
33136         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
33137         from corresponding peephole2 patterns.
33138         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
33139         and x86_64_shift_adj_1 using SWI48 mode iterator.
33140         (x86_shift<mode>_adj_2): Ditto.
33141         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
33142         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
33143         using SWI48 mode iterator.
33144         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
33145         *ashldi3_cmp_rex64 using SWI mode iterator.
33146         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
33147         *ashldi3_cconly_rex64 using SWI mode iterator.
33148         * config/i386/i386.c (ix86_split_ashl): Update for renamed
33149         x86_shift<mode>_adj_{1,2}.
33150         (ix86_split_ashr): Ditto.
33151         (ix86_split_lshr): Ditto.
33152
33153 2010-04-09  Richard Guenther  <rguenther@suse.de>
33154
33155         * target.h (builtin_conversion): Pass in input and output types.
33156         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
33157         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
33158         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
33159         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
33160
33161         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
33162         Handle AVX modes.
33163         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
33164
33165 2010-04-09  Richard Guenther  <rguenther@suse.de>
33166
33167         PR target/43152
33168         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
33169
33170 2010-04-09  Richard Guenther  <rguenther@suse.de>
33171
33172         * tree-vectorizer.h (struct _stmt_vec_info): Document
33173         that vectype is the type of the LHS.
33174         (supportable_widening_operation, supportable_narrowing_operation):
33175         Get both input and output vector types as arguments.
33176         (vect_is_simple_use_1): Declare.
33177         (get_same_sized_vectype): Likewise.
33178         * tree-vect-loop.c (vect_determine_vectorization_factor):
33179         Set STMT_VINFO_VECTYPE to the vector type of the def.
33180         (vectorizable_reduction): Adjust.
33181         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
33182         Adjust.  Specify the output vector type.
33183         (vect_pattern_recog_1): Adjust.
33184         * tree-vect-stmts.c (get_same_sized_vectype): New function.
33185         (vectorizable_call): Adjust.
33186         (vectorizable_conversion): Likewise.
33187         (vectorizable_operation): Likewise.
33188         (vectorizable_type_demotion): Likewise.
33189         (vectorizable_type_promotion): Likewise.
33190         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
33191         the def.
33192         (vect_is_simple_use_1): New function.
33193         (supportable_widening_operation): Get both input and output
33194         vector types.
33195         (supportable_narrowing_operation): Likewise.
33196         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
33197
33198 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
33199
33200         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
33201         __thiscall and _thiscall as predefined macros.
33202         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
33203         thiscall attribute handling.
33204         (ix86_comp_type_attributes): Likewise.
33205         (ix86_function_regparm): Likewise.
33206         (ix86_return_pops_args): Likewise.
33207         (init_cumulative_args): Likewise.
33208         (find_drap_reg): Likewise.
33209         (ix86_static_chain): Likewise.
33210         (x86_this_parameter): Likewise.
33211         (x86_output_mi_thunk): Likewise.
33212         (ix86_attribute_table): Add description for thiscall attribute.
33213         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
33214         * doc/extend.texi: Add documentation for thiscall.
33215
33216 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33217
33218         PR c++/28584
33219         * c.opt (Wint-to-pointer-cast): Available in C++.
33220         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
33221
33222 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
33223
33224         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
33225         * calls.c (expand_call): Pass the function type to aggregate_value_p.
33226         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
33227         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
33228         function type instead.  Reorder and simplify checks.
33229
33230         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
33231
33232 2010-04-08  Jing Yu  <jingyu@google.com>
33233             Zdenek Dvorak  <ook@ucw.cz>
33234
33235         PR tree-optimization/42720
33236         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
33237         loop unswitch conditions here from ...
33238         (tree_unswitch_single_loop): ... here.
33239
33240 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33241
33242         * tree-if-conv.c: Fix comments and simplify logic.
33243
33244 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33245
33246         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
33247         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
33248         (main_tree_if_conversion): Update call to tree_if_conversion.
33249
33250 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33251
33252         PR 42485
33253         * doc/invoke.texi (-b,-V): Delete.
33254         * doc/tm.texi: Do not mention -b.
33255         * gcc.c (display_help): Delete -b and -V.
33256         (process_command): Delete -b and -V.
33257         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
33258
33259 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
33260             Wolfgang Gellerich  <gellerich@de.ibm.com>
33261
33262         Implement target hook for loop unrolling
33263         * target.h (loop_unroll_adjust): Add a new target hook function.
33264         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
33265         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
33266         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
33267         (s390_loop_unroll_adjust): Implement the new target hook for s390.
33268         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
33269         target hook.
33270         (decide_unroll_stupid): Likewise.
33271
33272 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33273
33274         PR target/43643
33275         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
33276
33277 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33278
33279         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
33280         (Specific, *-*-solaris2*): Likewise.
33281         Don't prefer Sun as over GNU as.
33282
33283 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
33284
33285         * config/s390/s390.c (override_options): Adjust the z10 defaults
33286         for max-unroll-times, max-completely-peeled-insns
33287         and max-completely-peel-times.
33288
33289 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33290
33291         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
33292         instructions for z10.
33293         (s390_expand_setmem): Likewise.
33294         (s390_expand_cmpmem): Likewise.
33295
33296 2010-04-08  Richard Guenther  <rguenther@suse.de>
33297
33298         PR tree-optimization/43679
33299         * tree-ssa-pre.c (eliminate): Only propagate copies.
33300
33301 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33302
33303         PR bootstrap/43681
33304         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
33305         set but not used variable warning.
33306
33307 2010-04-08  Wei Guozhi  <carrot@google.com>
33308
33309         PR target/41653
33310         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
33311         (arm_size_rtx_costs): Call the new function when optimized for size.
33312
33313 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33314
33315         PR debug/43670
33316         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
33317         op0 is not a MEM, just return NULL instead of assertion
33318         failure.
33319         (discover_nonconstant_array_refs): Don't walk debug stmts.
33320
33321 2010-04-08  Doug Kwan  <dougkwan@google.com>
33322
33323         * configure.ac: Recognize gold and do not use its version number
33324         to test ld features.
33325         * configure: Regenerate.
33326
33327 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
33328
33329         PR middle-end/40815
33330         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
33331         (negate_value): Move code to push elements to broken_up_substracts ...
33332         (eliminate_plus_minus_pair): ... here.  Push operands that have no
33333         negative pair to plus_negates.
33334         (repropagate_negates, init_reassoc, fini_reassoc): Update.
33335
33336 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33337
33338         * doc/install.texi (Configuration): Move description of
33339         --enable-lto, --with-libelf*, --enable-gold from Java section to
33340         general section.
33341
33342         * doc/generic.texi (Working with declarations)
33343         (Function Properties, C and C++ Trees): Fix typos.
33344         * doc/sourcebuild.texi (Top Level): Likewise.
33345
33346 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33347
33348         PR c/18624
33349         * tree.h (DECL_READ_P): Define.
33350         (struct tree_decl_common): Add decl_read_flag.
33351         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
33352         a set but not used warning.
33353         (merge_decls): Merge DECL_READ_P flag.
33354         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
33355         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
33356         * c-common.c (handle_used_attribute, handle_unused_attribute):
33357         Likewise.
33358         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
33359         New prototypes.
33360         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
33361         New functions.
33362         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
33363         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
33364         c_parser_binary_expression, c_parser_cast_expression,
33365         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
33366         Call default_function_array_read_conversion instead of
33367         default_function_array_conversion where needed.
33368         (c_parser_unary_expression, c_parser_conditional_expression,
33369         c_parser_postfix_expression_after_primary, c_parser_initelt):
33370         Likewise.  Call mark_exp_read where needed.
33371         (c_parser_statement_after_labels, c_parser_asm_operands,
33372         c_parser_typeof_specifier, c_parser_sizeof_expression,
33373         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
33374         where needed.
33375         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
33376         New.
33377         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
33378         (warn_unused_but_set_parameter): Default to warn_unused
33379         && extra_warnings.
33380         * doc/invoke.texi: Document -Wunused-but-set-variable and
33381         -Wunused-but-set-parameter.
33382
33383         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
33384         used count variable.
33385         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
33386         when operandN variables aren't used in the body of the expander
33387         or splitter.
33388         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
33389         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
33390         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
33391         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
33392         FOR_EACH_IMM_USE_ON_STMT): Likewise.
33393         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
33394         * tree.c (PROCESS_ARG): Likewise.
33395
33396 2010-04-07  Simon Baldwin  <simonb@google.com>
33397
33398         * diagnostic.h (diagnostic_override_option_index): New macro to
33399         set a diagnostic's option_index.
33400         * c-tree.h (c_cpp_error): Add warning reason argument.
33401         * opts.c (_warning_as_error_callback): New.
33402         (register_warning_as_error_callback): Store callback for
33403         warnings enabled via enable_warning_as_error.
33404         (enable_warning_as_error): Call callback, minor code tidy.
33405         * opts.h (register_warning_as_error_callback): Declare.
33406         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
33407         response to -Werror=.
33408         (c_common_init_options): Register warning_as_error_callback in opts.c.
33409         * common.opt: Add -Wno-cpp option.
33410         * c-common.c (struct reason_option_codes_t): Map cpp warning
33411         reason codes to gcc option indexes.
33412         * (c_option_controlling_cpp_error): New function, lookup the gcc
33413         option index for a cpp warning reason code.
33414         * (c_cpp_error): Add warning reason argument, call
33415         c_option_controlling_cpp_error for diagnostic_override_option_index.
33416         * doc/invoke.texi: Document -Wno-cpp.
33417
33418 2010-04-07  Richard Guenther  <rguenther@suse.de>
33419
33420         * ipa-reference.c (mark_load): Use get_base_address.
33421         (mark_store): Likewise.
33422
33423         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
33424         inserting GIMPLE_NOPs into the IL.
33425         * tree-ssa-structalias.c (get_constraint_for_component_ref):
33426         Explicitly strip handled components and indirect references.
33427
33428         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
33429         folding address expressions.
33430         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
33431         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
33432         operand_equal_p to compare decls.
33433         (ptr_deref_may_alias_decl_p): Likewise.
33434         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
33435         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
33436         Handle reversed comparison ops.
33437         * tree-sra.c (asm_visit_addr): Use get_base_address.
33438         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
33439         * ipa-reference.c (mark_address): Use get_base_address.
33440
33441 2010-04-07  Richard Guenther  <rguenther@suse.de>
33442
33443         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
33444         Propagate constants everywhere.
33445
33446 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33447
33448         PR debug/43516
33449         * tree.c (MAX_INT_CACHED_PREC): Define.
33450         (nonstandard_integer_type_cache): New array.
33451         (build_nonstandard_integer_type): Cache results for precision
33452         <= MAX_INT_CACHED_PREC.
33453
33454 2010-04-07  Richard Guenther  <rguenther@suse.de>
33455
33456         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
33457         -fargument-noalias-global, -fargument-noalias-anything): Remove.
33458         * common.opt: Likewise.
33459         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
33460         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
33461         (nonoverlapping_memrefs_p): Likewise.
33462         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
33463         * opts.c (common_handle_option): Handle OPT_fargument_alias,
33464         OPT_fargument_noalias, OPT_fargument_noalias_anything and
33465         OPT_fargument_noalias_global for backward compatibility.
33466
33467 2010-04-07  Richard Guenther  <rguenther@suse.de>
33468
33469         PR tree-optimization/43270
33470         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
33471         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
33472         * tree-ssa-pre.c (phi_translate_1): Adjust.
33473         (fully_constant_expression): Split out vn_reference handling to ...
33474         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
33475         Fold reads from constant strings.
33476         (vn_reference_lookup): Handle fully constant references.
33477         (vn_reference_lookup_pieces): Likewise.
33478         * Makefile.in (expmed.o-warn): Add -Wno-error.
33479
33480 2010-04-07  Martin Jambor  <mjambor@suse.cz>
33481
33482         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
33483
33484 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
33485
33486         PR driver/41594
33487         * gcc.c: Add -static-libstdc++ to list of recognized options.
33488
33489 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33490
33491         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
33492
33493 2010-04-07  Richard Guenther  <rguenther@suse.de>
33494
33495         PR middle-end/42617
33496         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
33497         bases build simple mem attributes to retain points-to information.
33498
33499 2010-04-07  Richard Guenther  <rguenther@suse.de>
33500
33501         PR middle-end/42617
33502         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
33503         preserve points-to related information.
33504
33505 2010-04-07  Richard Guenther  <rguenther@suse.de>
33506
33507         PR middle-end/42617
33508         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
33509         discard plain indirect references.
33510         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
33511         * tree.c (tree_nop_conversion): Likewise.
33512
33513 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
33514
33515         PR debug/43628
33516         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
33517
33518 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
33519
33520         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
33521         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
33522
33523 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33524
33525         * tree-if-conv.c: Fix indentation and comments.
33526
33527 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33528
33529         * tree-if-conv.c: Sort static functions in topological order.
33530
33531 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33532
33533         * tree-if-conv.c: Fix indentation and comments.
33534
33535 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33536
33537         PR middle-end/43519
33538         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
33539         lang_hooks.types.type_for_size instead of
33540         build_nonstandard_integer_type.
33541         When converting an unsigned type to signed, double its precision.
33542         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
33543         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
33544         (graphite_create_new_loop_guard): When ub + 1 wraps around,
33545         use lb <= ub.
33546
33547 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33548
33549         PR middle-end/43519
33550         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
33551         POINTER_PLUS_EXPR for pointer types.
33552
33553 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33554
33555         PR middle-end/43519
33556         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
33557         * graphite-clast-to-gimple.c: Include langhooks.h.
33558         (max_signed_precision_type): New.
33559         (max_precision_type): Takes two types as arguments.
33560         (precision_for_value): New.
33561         (precision_for_interval): New.
33562         (gcc_type_for_interval): New.
33563         (gcc_type_for_value): New.
33564         (gcc_type_for_clast_term): New.
33565         (gcc_type_for_clast_red): New.
33566         (gcc_type_for_clast_bin): New.
33567         (gcc_type_for_clast_expr): Split up into several functions.
33568         (gcc_type_for_clast_eq): Rewritten.
33569         (compute_bounds_for_level): New.
33570         (compute_type_for_level_1): New.
33571         (compute_type_for_level): New.
33572         (gcc_type_for_cloog_iv): Removed.
33573         (gcc_type_for_iv_of_clast_loop): Rewritten.
33574         (graphite_create_new_loop): Compute the lower and upper bound types
33575         with gcc_type_for_clast_expr.
33576         (graphite_create_new_loop_guard): Same.
33577         (find_cloog_iv_in_expr): Removed.
33578         (compute_cloog_iv_types_1): Removed.
33579         (compute_cloog_iv_types): Removed.
33580         (gloog): Do not call compute_cloog_iv_types.
33581         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
33582         GBB_CLOOG_IV_TYPES.
33583         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
33584         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
33585         (GBB_CLOOG_IV_TYPES): Removed.
33586
33587 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33588
33589         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
33590         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
33591         (detect_commutative_reduction): Same.
33592
33593 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33594
33595         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
33596         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
33597         argument.
33598         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
33599         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
33600         (rewrite_commutative_reductions_out_of_ssa): Same.
33601         * passes.c (execute_function_todo): Call verify_ssa for every pass
33602         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
33603         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
33604         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
33605         with an extra argument.
33606         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
33607         verify_ssa only when the extra argument is true.
33608         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
33609         with an extra argument.
33610         (tree_transform_and_unroll_loop): Same.
33611
33612 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33613
33614         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
33615         for all the passes of the LNO having LOOP_CLOSED_SSA.
33616         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
33617         * tree-loop-distribution.c (pass_loop_distribution): Same.
33618         * tree-pass.h (TODO_verify_loops): Removed.
33619         * tree-ssa-loop.c (pass_tree_loop_init): Same.
33620         (pass_lim): Same.
33621         (pass_tree_unswitch): Same.
33622         (pass_predcom): Same.
33623         (pass_vectorize): Same.
33624         (pass_linear_transform): Same.
33625         (pass_graphite_transforms): Same.
33626         (pass_iv_canon): Same.
33627         (pass_complete_unroll): Same.
33628         (pass_complete_unrolli): Same.
33629         (pass_parallelize_loops): Same.
33630         (pass_loop_prefetch): Same.
33631         (pass_iv_optimize): Same.
33632
33633 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
33634
33635         PR middle-end/32824
33636         * passes.c (init_optimization_passes): Move pass_lim before
33637         pass_copy_prop and pass_dce_loop.
33638
33639 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33640
33641         PR target/43667
33642         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
33643         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
33644         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
33645         MULTI_* defines for 4 argument vpermil2p* builtins.
33646
33647 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33648
33649         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
33650         * config/i386/i386.c (x86_maybe_negate_const_int): New.
33651         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
33652         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
33653         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
33654         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
33655         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
33656         Use x86_maybe_negate_const_int to output insn mnemonic.
33657         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
33658         check from instruction predicate.  Update comments.
33659         * config/i386/sync.md (sync_add<mode>): Use
33660         x86_maybe_negate_const_int to output insn mnemonic.
33661
33662 2010-04-06  Jan Hubicka  <jh@suse.cz>
33663
33664         PR tree-optimization/42906
33665         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
33666         IGNORE_SELF argument.  Set visited_control_parents for fully
33667         processed BBs.
33668         (find_obviously_necessary_stmts): Update call of
33669         mark_control_dependent_edges_necessary.
33670         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
33671
33672 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33673
33674         * config/i386/i386.md: Remove comment about 'e' and 'E'
33675         operand modifier.
33676
33677 2010-04-06  Richard Guenther  <rguenther@suse.de>
33678
33679         PR tree-optimization/43627
33680         * tree-vrp.c (extract_range_from_unary_expr): Widenings
33681         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
33682         not varying.
33683
33684 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33685
33686         * BASE-VER: Change to 4.6.0.
33687
33688         PR target/43638
33689         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
33690         handling.
33691
33692 2010-04-06  Richard Guenther  <rguenther@suse.de>
33693
33694         PR middle-end/43661
33695         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
33696
33697 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33698
33699         * doc/invoke.texi (Optimize Options): Document that LTO
33700         won't remove object access purely due to incompatible
33701         declarations.
33702
33703 2010-04-04  Matthias Klose  <doko@ubuntu.com>
33704
33705         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
33706         Initialize variable.
33707
33708 2010-04-03  Richard Guenther  <rguenther@suse.de>
33709
33710         PR middle-end/42509
33711         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
33712         require a non-NULL MEM_OFFSET.
33713
33714 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
33715
33716         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
33717         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
33718         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
33719         config/alpha/predicates.md, config/arm/arm.md,
33720         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
33721         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
33722         config/darwin9.h, config/darwin.c, config/darwin.h,
33723         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
33724         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
33725         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
33726         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
33727         config/mips/mips.md, config/mn10300/mn10300.c,
33728         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
33729         config/rs6000/aix.h, config/rs6000/dfp.md,
33730         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
33731         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
33732         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
33733         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
33734         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
33735         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
33736         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
33737         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
33738         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
33739         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
33740         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
33741         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
33742         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
33743         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
33744         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
33745         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
33746         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
33747         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
33748         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
33749         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
33750         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
33751         opt-functions.awk, opth-gen.awk, params.def, passes.c,
33752         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
33753         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
33754         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
33755         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
33756         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
33757         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
33758         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
33759         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
33760         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
33761         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
33762         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
33763         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
33764         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
33765         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
33766
33767 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33768
33769         PR other/43620
33770         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
33771         * aclocal.m4: Regenerate.
33772
33773 2010-04-02  Richard Guenther  <rguenther@suse.de>
33774
33775         PR tree-optimization/43629
33776         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
33777         if we have seen a constant value.
33778
33779 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
33780
33781         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
33782
33783 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
33784
33785         PR target/43469
33786         * arm.c (legitimize_tls_address): Adjust call to
33787         gen_tls_load_dot_plus_four.
33788         (arm_note_pic_base): New function.
33789         (arm_cannot_copy_insn_p): Use it.
33790         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
33791         constraint.
33792
33793 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33794
33795         PR bootstrap/43531
33796
33797         Revert:
33798         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33799
33800         * Makefile.in ($(out_object_file)): Depend on
33801         gt-$(basename $(notdir $(out_file))).h.
33802
33803 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
33804
33805         * config.gcc (lm32-*-rtems*): Add t-lm32.
33806
33807 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
33808
33809         * config.gcc: Add lm32-*-rtems*.
33810         * config/lm32/rtems.h: New file.
33811
33812 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
33813
33814         PR target/42609
33815         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
33816
33817 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
33818
33819         * dwarf2out.c (output_compilation_unit_header): For
33820         -gdwarf-4 use version 4 instead of version 3.
33821         (output_line_info): For version 4 and above emit additional
33822         maximum ops per insn header field.
33823         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
33824
33825         * dwarf2out.c (is_c_family, is_java): Remove.
33826         (lower_bound_default): New function.
33827         (add_bound_info, gen_descr_array_type_die): Use it.
33828
33829 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
33830
33831         PR debug/43325
33832         * dwarf2out.c (gen_variable_die): Allow debug info for variable
33833         re-declaration when it happens in a function.
33834
33835 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
33836
33837         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
33838         (cgraph_remove_function_insertion_hook): Same.
33839         (cgraph_call_function_insertion_hooks): Same.
33840
33841 2010-04-01  Richard Guenther  <rguenther@suse.de>
33842
33843         PR middle-end/43614
33844         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
33845         and TREE_THIS_VOLATILE.
33846         (copy_ref_info): Likewise.
33847         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
33848         * tree.c (build6_stat): Ignore side-effects of all but arg5
33849         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
33850         TARGET_MEM_REF.
33851
33852 2010-04-01  Richard Guenther  <rguenther@suse.de>
33853
33854         PR tree-optimization/43607
33855         * ipa-type-escape.c (check_call): Do not access non-existing
33856         arguments.
33857
33858 2010-04-01  Richard Guenther  <rguenther@suse.de>
33859
33860         PR middle-end/43602
33861         Revert
33862         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
33863                     Jack Howarth  <howarth@bromo.med.uc.edu>
33864
33865         * tree-profile.c (tree_init_ic_make_global_vars): Make static
33866         variables TLS.
33867
33868 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33869
33870         * doc/install.texi (Prerequisites): Document libelf usability on
33871         IRIX 5/6 and Solaris 2.
33872         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
33873         Update GNU as, GNU ld requirements.
33874         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
33875         Document Sun Studio compiler download.
33876         Update and simplify as, ld recommendations.
33877         (Specific, *-*-solaris2.7): Note obsoletion, removal.
33878
33879 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33880
33881         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
33882         with_tune_32 to pentium4.
33883
33884 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
33885
33886         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
33887
33888 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33889
33890         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
33891         obsoletion, removal.
33892         Update IDO URL.
33893         Document GNU as requirement.
33894         Update configure requirements.
33895         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
33896         Recomment IRIX 6.5.18+.
33897         Document IDF/IDL requirement.
33898         Document GNU as requirement.
33899         Document GNU ld bootstrap failure.
33900         Remove freeware.sgi.com reference.
33901
33902 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33903
33904         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
33905         UNIX V4.0, V5.0 obsoletion, removal.
33906         Remove --with-gc=simple reference.
33907         Update VM requirements during bootstrap.
33908         Remove -oldas bootstrap description.
33909         Update binutils reference.
33910         Remove comparison failure note.
33911
33912 2010-03-31  Richard Guenther  <rguenther@suse.de>
33913             Zdenek Dvorak  <ook@ucw.cz>
33914             Sebastian Pop  <sebastian.pop@amd.com>
33915
33916         PR middle-end/43464
33917         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
33918         with multiple arguments.
33919         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
33920
33921 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33922
33923         * graphite-dependences.c (print_pddr): Call print_pdr with an
33924         extra argument.
33925         * graphite-poly.c (debug_pdr): Add an extra argument for the
33926         verbosity level.
33927         (print_pdr): Same.
33928         (print_pbb_domain): Same.
33929         (print_pbb): Same.
33930         (print_scop_context): Same.
33931         (print_scop): Same.
33932         (print_cloog): Same.
33933         (debug_pbb_domain): Same.
33934         (debug_pbb): Same.
33935         (print_pdrs): Same.
33936         (debug_pdrs): Same.
33937         (debug_scop_context): Same.
33938         (debug_scop): Same.
33939         (debug_cloog): Same.
33940         (print_scop_params): Same.
33941         (debug_scop_params): Same.
33942         (print_iteration_domain): Same.
33943         (print_iteration_domains): Same.
33944         (debug_iteration_domain): Same.
33945         (debug_iteration_domains): Same.
33946         (print_scattering_function): Same.
33947         (print_scattering_functions): Same.
33948         (debug_scattering_function): Same.
33949         (debug_scattering_functions): Same.
33950         * graphite-poly.h (debug_pdr): Update declaration.
33951         (print_pdr): Same.
33952         (print_pbb_domain): Same.
33953         (print_pbb): Same.
33954         (print_scop_context): Same.
33955         (print_scop): Same.
33956         (print_cloog): Same.
33957         (debug_pbb_domain): Same.
33958         (debug_pbb): Same.
33959         (print_pdrs): Same.
33960         (debug_pdrs): Same.
33961         (debug_scop_context): Same.
33962         (debug_scop): Same.
33963         (debug_cloog): Same.
33964         (print_scop_params): Same.
33965         (debug_scop_params): Same.
33966         (print_iteration_domain): Same.
33967         (print_iteration_domains): Same.
33968         (debug_iteration_domain): Same.
33969         (debug_iteration_domains): Same.
33970         (print_scattering_function): Same.
33971         (print_scattering_functions): Same.
33972         (debug_scattering_function): Same.
33973         (debug_scattering_functions): Same.
33974
33975 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33976
33977         * graphite-poly.c (print_scattering_function_1): New.
33978         (print_scattering_function): Call it.
33979         (print_scop_params): Remove spaces at the end of lines.
33980         (print_cloog): New.
33981         (debug_cloog): New.
33982         * graphite-poly.h (print_cloog): Declared.
33983         (debug_cloog): Declared.
33984
33985 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33986
33987         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
33988         in loop->header.
33989         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
33990         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
33991         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
33992         to switch between adding the IV bump in loop->latch or in loop->header.
33993
33994 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33995
33996         * graphite-poly.c (print_scattering_function): Pretty print following
33997         the scoplib format.
33998         (print_pdr): Same.
33999         (print_pbb_domain): Same.
34000         (dump_gbb_cases): Same.
34001         (dump_gbb_conditions): Same.
34002         (print_pdrs): Same.
34003         (print_pbb): Same.
34004         (print_scop_params): Same.
34005         (print_scop_context): Same.
34006         (print_scop): Same.
34007         (print_pbb_body): New.
34008         (lst_indent_to): New.
34009         (print_lst): Start new lines with a #.
34010         * graphite-poly.h (pbb_bb): New.
34011         (pbb_index): Use pbb_bb.
34012         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
34013         disjuncts.
34014         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
34015
34016 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
34017
34018         * dwarf2out.c (size_of_die): For -gdwarf-4 use
34019         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
34020         and 0 instead of 1 for dw_val_class_flag.
34021         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
34022         dw_val_class_range_list, dw_val_class_loc_list,
34023         dw_val_class_lineptr and dw_val_class_macptr, use
34024         DW_FORM_flag_present for dw_val_class_flag and
34025         DW_FORM_exprloc for dw_val_class_loc.
34026         (output_die): For -gdwarf-4 print dw_val_class_loc
34027         size as uleb128 instead of 1 or 2 bytes and don't print
34028         anything for dw_val_class_flag.
34029
34030         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
34031         instead of cselib_lookup following by tweaking locs->setting_insn.
34032
34033         PR bootstrap/43596
34034         * cselib.c (cselib_process_insn): Clear cselib_current_insn
34035         even before returning from label, setjmp call or volatile asm
34036         handling.
34037
34038 2010-03-31  Richard Guenther  <rguenther@suse.de>
34039
34040         PR middle-end/43600
34041         * cgraphunit.c (cgraph_output_in_order): Do not allocate
34042         temporary data on stack.
34043
34044 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34045
34046         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
34047         (PUSHSECTION_ASM_OP): Remove.
34048         (POPSECTION_ASM_OP): Remove.
34049         (PUSHSECTION_FORMAT): Remove.
34050         * config/sol2.h (PUSHSECTION_FORMAT): Define.
34051         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
34052         * config/sol2.c (solaris_output_init_fini): Use it.
34053
34054 2010-03-31  Jie Zhang  <jie@codesourcery.com>
34055
34056         PR 43574
34057         * opt-functions.awk (var_type_struct): Use signed char type
34058         for simple variables.
34059
34060 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34061
34062         * config/sol2.c: Include output.h.
34063         (solaris_assemble_visibility): New function.
34064         * config/t-sol2 (sol2.o): Add output.h dependency.
34065         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
34066         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
34067         Redefine.
34068
34069 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
34070
34071         PR target/43580
34072         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
34073         V2SImode or XFmode on PRE_DEC.
34074
34075         PR debug/43557
34076         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
34077         BLKmode.
34078
34079 2010-03-31  Jie Zhang  <jie@codesourcery.com>
34080
34081         PR 43562
34082         * reload.h (caller_save_initialized_p): Declare.
34083         * toplev.c (backend_init_target): Don't call
34084         init_caller_save but set caller_save_initialized_p to false.
34085         * caller-save.c (caller_save_initialized_p): Define.
34086         (init_caller_save): Check caller_save_initialized_p.
34087         * ira.c (ira): Call init_caller_save if flag_caller_saves.
34088
34089 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34090
34091         PR target/39048
34092         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
34093         and soft-fp/t-softfp to tmake_file.
34094         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
34095         (LIBGCC2_TF_CEXT): Define.
34096         (TF_SIZE): Define.
34097
34098 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
34099
34100         PR debug/42977
34101         * cselib.c (n_useless_values): Document handling of debug locs.
34102         (n_useless_debug_values, n_debug_values): New variables.
34103         (new_elt_loc_list): Don't add to debug values, keep count.
34104         (promote_debug_loc): New.
34105         (cselib_reset_table): Zero new variables.
34106         (entry_and_rtx_equal_p): Promote debug locs.
34107         (discard_useless_locs): Increment n_useless_debug_values for
34108         debug values.
34109         (remove_useless_values): Adjust n_useless_values and n_debug_values
34110         with n_useless_debug_values.
34111         (add_mem_for_addr): Promote debug locs.
34112         (cselib_lookup_mem): Likewise.
34113         (cselib_lookup_addr): Renamed to...
34114         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
34115         (cselib_log_lookup): ... this.  Turn into...
34116         (cselib_lookup_addr): ... new wrapper.
34117         (cselib_lookup_from_insn): New.
34118         (cselib_invalidate_regno): Increment n_useless_debug_values for
34119         debug values.
34120         (cselib_invalidate_mem): Likewise.
34121         (cselib_process_insn): Take n_deleted and n_debug_values into
34122         account to guard remove_useless_value call.
34123         (cselib_finish): Zero n_useless_debug_values.
34124         * cselib.h (cselib_lookup_from_insn): Declare.
34125         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
34126         (sched_analyze_2): Likewise.
34127
34128 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
34129
34130         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
34131         functions.
34132         (adjust_mems): Replace narrowing SUBREG of expression containing
34133         just PLUS, MINUS, MULT and ASHIFT of registers and constants
34134         with operations in the narrower mode.
34135
34136         PR debug/43593
34137         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
34138         regs_invalidated_by_call instead all call_used_reg_set registers.
34139
34140 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
34141
34142         PR middle-end/43430
34143         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
34144         pointer comparisons with types_compatible_p.
34145         * tree-vect-stmts.c (vectorizable_call): Same.
34146         (vectorizable_condition): Same.
34147
34148 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34149
34150         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
34151         stack check if the mask would be zero.
34152
34153 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34154             Jack Howarth  <howarth@bromo.med.uc.edu>
34155
34156         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34157         variables TLS.
34158
34159 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
34160
34161         PR other/25232
34162         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
34163         and __unordtf2.
34164         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
34165         Include ___unordxf2 and ___unordtf2.
34166         * config/i386/libgcc-glibc.ver: Do not define inheritance from
34167         GCC_4.4.0 here.
34168
34169 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
34170
34171         * config/lm32/t-lm32: New file.
34172         * config.gcc: Use the above file when targetting lm32.
34173
34174 2010-03-28  Duncan Sands  <baldrick@free.fr>
34175
34176         * Makefile.in (PLUGIN_HEADERS): Add except.h.
34177
34178 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34179
34180         PR middle-end/43431
34181         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
34182         Improve vectorization cost model diagnostic.
34183
34184 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34185
34186         PR middle-end/43436
34187         * tree-vect-data-refs.c (vect_analyze_data_refs): When
34188         compute_data_dependences_for_loop returns false, early exit
34189         and output an extra diagnostic for the failed data reference
34190         analysis.
34191
34192 2010-03-29  Richard Guenther  <rguenther@suse.de>
34193
34194         PR tree-optimization/43560
34195         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
34196         (can_sm_ref_p): Treat stores to readonly locations as trapping.
34197
34198 2010-03-29  Jie Zhang  <jie@codesourcery.com>
34199
34200         PR 43564
34201         * toplev.c (process_options): Set optimization_default_node
34202         and optimization_current_node.
34203         * opts.c (decode_options): Don't set optimization_default_node
34204         and optimization_current_node.
34205
34206 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
34207
34208         * config/rtems.h: Abandon -qrtems_debug.
34209
34210 2010-03-28  Jan Hubicka  <jh@suse.cz>
34211
34212         PR tree-optimization/43505
34213         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
34214         map should not be copied.
34215
34216 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34217
34218         PR middle-end/41674
34219         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
34220         cdtors, set DECL_PRESERVE_P.
34221         * ipa.c (cgraph_externally_visible_p): Return true if declaration
34222         should be preseved.
34223
34224 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
34225
34226         PR tree-optimization/43528
34227         * stor-layout.c (place_field): Check that constant fits into
34228         unsigned HWI when skipping calculation of MS bitfield layout.
34229
34230 2010-03-27  Jan Hubicka  <jh@suse.cz>
34231
34232         PR middle-end/43391
34233         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
34234         notice_global_symbol work.
34235
34236 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
34237
34238         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
34239         instead of dwarf2out_decl.
34240         (struct var_loc_node): Remove section_label field.
34241         (dwarf2out_function_decl): New function.
34242         (dwarf2out_var_location): Don't set section_label field.
34243         (dwarf2out_begin_function): Don't empty decl_loc_table here.
34244
34245 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
34246
34247         PR tree-optimization/43544
34248         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
34249         First argument for builtin vectorized function hook is now a
34250         tree to be able to distinguish between machine specific and
34251         standard builtins.
34252         * targhooks.c (default_builtin_vectorized_function): Ditto.
34253         * targhooks.h (default_builtin_vectorized_function): Ditto.
34254         * target.h (struct gcc_target): Ditto.
34255         * tree-vect-stmts.c (vectorizable_function): Ditto.
34256         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
34257         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
34258         Ditto.
34259
34260 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
34261
34262         PR c/43381
34263         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
34264         nested binding iff it is a FUNCTION_DECL.
34265         (store_parm_decls_newstyle): Pass nested=true to bind for
34266         FUNCTION_DECLs amongst parameters.
34267
34268 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34269
34270         * var-tracking.c (vt_expand_loc_callback): Don't run
34271         cselib_expand_value_rtx_cb in dummy mode if
34272         cselib_dummy_expand_value_rtx_cb returned false.
34273
34274         * var-tracking.c (emit_note_insn_var_location): For one part
34275         notes with offset 0, don't add EXPR_LIST around the location.
34276         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
34277         add_location_or_const_value_attribute): Adjust for that change.
34278
34279         PR debug/43540
34280         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
34281         into first operand and location into second.
34282         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
34283         dw_cfi_oprnd_loc for DW_CFA_expression.
34284         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
34285         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
34286         assume first argument is regnum and second argument is location.
34287
34288 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34289
34290         PR target/42113
34291         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
34292         of scratch register to DImode.  Split to DImode comparison operator.
34293         Use SImode subreg of scratch register in the multiplication.
34294         (*cmp_sadd_sidi): Ditto.
34295         (*cmp_ssub_si): Ditto.
34296         (*cmp_ssub_sidi): Ditto.
34297
34298 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34299
34300         PR target/43524
34301         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
34302         Remove invalid assert and wrong comment.
34303
34304 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34305
34306         PR debug/43516
34307         * flags.h (final_insns_dump_p): New extern.
34308         * final.c (final_insns_dump_p): New variable.
34309         (rest_of_clean_state): Set it before -fdump-final-insns=
34310         dumping, clear afterwards.
34311         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
34312         MEM_ALIAS_SET on MEMs.
34313
34314 2010-03-26  David S. Miller  <davem@davemloft.net>
34315
34316         * configure.ac: Fix sparc GOTDATA_OP bug check.
34317         * configure: Rebuild.
34318
34319 2010-03-26  Alan Modra  <amodra@gmail.com>
34320
34321         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
34322
34323 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34324
34325         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
34326         TLS_SECTION_ASM_FLAG.
34327
34328 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
34329
34330         PR bootstrap/43511
34331         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
34332         Clear first_function_block_is_cold.
34333
34334         PR c/43385
34335         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
34336         argument if the argument is truth_value_p.
34337
34338 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
34339
34340         * config/rs6000/constraints.md: Update copyright year for my changes.
34341
34342         PR target/43484
34343         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
34344         used in reg+reg addressing, swap registers.
34345
34346 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34347
34348         PR debug/43293
34349         * target.h (struct gcc_target): Add code_end hook.
34350         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
34351         if not yet defined.
34352         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
34353         * toplev.c (compile_file): Call targetm.asm_out.code_end
34354         hook before unwind info/debug info output.
34355         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
34356         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
34357         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34358         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
34359         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34360         * config/i386/i386.c (ix86_file_end): Renamed to...
34361         (ix86_code_end): ... this.  Make static.  Don't call
34362         file_end_indicate_exec_stack.  Emit unwind info using
34363         final_start_function/final_end_function.
34364         (darwin_x86_file_end): Remove.
34365         (TARGET_ASM_CODE_END): Define.
34366         * config/i386/i386.h (TARGET_ASM_FILE_END,
34367         NEED_INDICATE_EXEC_STACK): Don't define.
34368         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
34369         (TARGET_ASM_FILE_END): Define to darwin_file_end.
34370         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
34371         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
34372
34373         PR target/43498
34374         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
34375         at the beginning and final_end_function at the end.
34376         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
34377
34378 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34379
34380         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
34381         and Sun as TLS syntax.
34382         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
34383         * configure: Regenerate.
34384         * config.in: Regenerate.
34385         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
34386         (default_elf_asm_named_section): Use it.
34387         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
34388         (i386_output_dwarf_dtprel): Likewise.
34389         (output_addr_const_extra): Likewise.
34390         (output_pic_addr_const): Lowercase @GOTTPOFF.
34391         (output_addr_const_extra): Likewise.
34392         (output_pic_addr_const): Lowercase @GOTNTPOFF.
34393         (output_addr_const_extra): Likewise.
34394         (output_pic_addr_const): Lowercase @INDNTPOFF.
34395         (output_addr_const_extra): Likewise.
34396         (output_pic_addr_const): Lowercase @NTPOFF.
34397         (output_addr_const_extra): Likewise.
34398         (output_pic_addr_const): Lowercase @TPOFF.
34399         (output_addr_const_extra): Likewise.
34400         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
34401         (*tls_global_dynamic_64): Likewise.
34402         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
34403         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
34404
34405         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
34406         (ASM_OUTPUT_TLS_COMMON): Use it.
34407         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
34408
34409         PR target/38118
34410         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
34411         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
34412         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
34413         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
34414         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34415         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
34416
34417 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34418
34419         * config/i386/i386.c (override_options): Don't accept
34420         -mtls-dialect=sun any longer.
34421         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
34422         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
34423         (*tls_local_dynamic_base_32_sun): Likewise.
34424         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34425
34426 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34427
34428         PR debug/43508
34429         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
34430         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
34431
34432         PR debug/43479
34433         * ira.c (adjust_cleared_regs): New function.
34434         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
34435
34436         PR debug/19192
34437         PR debug/43479
34438         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
34439         from gimple_block.
34440         * expr.c (expand_expr_real): Restore previous
34441         curr_insn_source_location and curr_insn_block after
34442         expand_expr_real_1 call.
34443         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
34444         instead of expand_expr_real_1.
34445
34446 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
34447
34448         PR rtl-optimization/43413
34449         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
34450         hard regs too.
34451
34452 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
34453
34454         PR target/43348
34455         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
34456         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
34457
34458 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
34459
34460         * config/i386/i386.c (ix86_target_string): Add -mfma.
34461         Fix a typo in comment.
34462
34463 2010-03-22  Mike Stump  <mikestump@comcast.net>
34464
34465         PR target/23071
34466         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
34467         Don't overly align based upon packed packed fields.
34468
34469 2010-03-22  Jason Merrill  <jason@redhat.com>
34470
34471         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
34472         Use () rather than [], and move before the element type.
34473
34474 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34475
34476         * doc/configfiles.texi (Configuration Files): Removed
34477         fixinc/Makefile*, intl/Makefile.*.
34478         * doc/makefile.texi: Fixed markup. Abstract from version
34479         control system used.
34480         (Makefile): Removed obsolete java/parse.y example.
34481         * doc/sourcebuild.texi: Likewise.
34482         (Top Level): Added config, gnattools, libdecnumber, libgcc,
34483         libgomp, libssp.  Removed fastjar.
34484         (Miscellaneous Docs): Clarify location.
34485         Added COPYING3, COPYING3.LIB.
34486         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
34487
34488 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34489
34490         PR target/38085
34491         * config/i386/i386.c (x86_function_profiler)
34492         [!NO_PROFILE_COUNTERS]: Fix typo.
34493         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
34494         instead of callq.
34495
34496 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
34497             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34498
34499         * doc/sourcebuild.texi (Test Directives): Split into six
34500         subsections, with most of the current text in new subsections
34501         Directives, Selectors, and Final Actions.
34502         (Directives): Split list of test directives into multiple
34503         subsubsections.
34504         (Selectors): Describe use and syntax of selectors.
34505         (Effective-Target Keywords): Describe all existing keywords.
34506         (Add Options): Describe features for dg-add-options.
34507         (Require Support): Describe variants of dg-require-support.
34508         (Final Actions): Describe commands to use in dg-final.
34509
34510 2010-03-22  Michael Matz  <matz@suse.de>
34511
34512         PR middle-end/43475
34513         * recog.c (validate_replace_rtx_group): Replace also in
34514         REG_EQUAL and REG_EQUIV notes.
34515
34516 2010-03-22  Richard Guenther  <rguenther@suse.de>
34517
34518         PR tree-optimization/43390
34519         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
34520         sure vector extracts are type correct.
34521
34522 2010-03-22  Richard Guenther  <rguenther@suse.de>
34523
34524         PR middle-end/40106
34525         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
34526         x * sqrt (x) even when optimizing for size if the target
34527         has native support for sqrt.
34528
34529 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
34530
34531         * varasm.c (make_decl_rtl_for_debug): Also clear
34532         flag_mudflap for the duration of make_decl_rtl call.
34533
34534         PR debug/43443
34535         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
34536         locs from preserved VALUEs.
34537
34538 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34539
34540         PR middle-end/42718
34541         * pa.md (movmemsi): Set align to one if zero.
34542         (movmemdi): Likewise.
34543
34544 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
34545
34546         PR target/42321
34547         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
34548         with their corresponding prologue pushes.
34549
34550 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
34551
34552         PR target/43156
34553         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
34554         at the begining or end.
34555         (spu_expand_epilogue): Likewise.
34556
34557 2010-03-20  Richard Guenther  <rguenther@suse.de>
34558
34559         PR rtl-optimization/43438
34560         * combine.c (make_extraction): Properly zero-/sign-extend an
34561         extraction of the low part of a CONST_INT.  Also handle
34562         CONST_DOUBLE.
34563
34564 2010-03-19  Mike Stump  <mikestump@comcast.net>
34565
34566         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
34567         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
34568         (override_options): Use SUBTARGET32_DEFAULT_CPU.
34569
34570 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
34571
34572         PR c/43211
34573         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
34574         an error.
34575
34576 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
34577
34578         PR rtl-optimization/42258
34579         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
34580         use that may match DEF.
34581
34582         PR target/40697
34583         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
34584         the cost of loading the constant rather than assuming
34585         COSTS_N_INSNS (1).
34586         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
34587         outer code is AND, do the same tests as the andsi3 expander and
34588         return COSTS_N_INSNS (1) if and is cheap.
34589
34590         * optabs.c (avoid_expensive_constant): Fix formatting.
34591
34592 2010-03-19  Michael Matz  <matz@suse.de>
34593
34594         PR c++/43116
34595         * attribs.c (decl_attributes): When rebuilding a function pointer
34596         type use the same qualifiers as the original pointer type.
34597
34598 2010-03-19  Martin Jambor  <mjambor@suse.cz>
34599
34600         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
34601         and is_gimple_ip_invariant_address.
34602
34603 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34604
34605         Revert
34606         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34607
34608         * config/arm/arm.c (arm_override_options): Turn off
34609         flag_dwarf2_cfi_asm for AAPCS variants.
34610
34611 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34612
34613         PR target/43399
34614         * config/arm/arm.c (emit_multi_reg_push): Update comments.
34615         Use PRE_MODIFY instead of PRE_DEC.
34616         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
34617         (vfp_emit_fstmd): Likewise.
34618
34619 2010-03-19  Michael Matz  <matz@suse.de>
34620
34621         PR target/43305
34622         * builtins.c (expand_builtin_interclass_mathfn,
34623         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
34624         if that fails.
34625
34626 2010-03-19  Richard Guenther  <rguenther@suse.de>
34627
34628         PR tree-optimization/43415
34629         * tree-ssa-pre.c (phi_translate): Split out worker to ...
34630         (phi_translate_1): ... this.
34631         (phi_translate): Move all caching here.  Cache all NARY
34632         and REFERENCE translations.
34633
34634 2010-03-19  David S. Miller  <davem@davemloft.net>
34635
34636         With help from Eric Botcazou.
34637         * config/sparc/sparc.c: Include dwarf2out.h.
34638         (emit_pic_helper): Delete.
34639         (pic_helper_symbol_name): Delete.
34640         (pic_helper_emitted_p): Delete.
34641         (pic_helper_needed): New.
34642         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
34643         (get_pc_thunk_name): New.
34644         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
34645         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
34646         Set pic_helper_needed to true.  Don't call emit_pic_helper.
34647         (sparc_expand_prologue): Update load_pic_register call.
34648         (sparc_output_mi_thunk): Likewise.
34649         (sparc_file_end): Emit a hidden comdat symbol for the PIC
34650         thunk if possible.  Output CFI information as needed.
34651
34652 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
34653             Jack Howarth  <howarth@bromo.med.uc.edu>
34654
34655         PR target/36399
34656         * config/i386/i386.h: Fix ABI on darwin x86-32.
34657
34658 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
34659
34660         * tree.h: Declare make_decl_rtl_for_debug.
34661         * varasm.c (make_decl_rtl_for_debug): New.
34662         * dwarf2out.c (rtl_for_decl_location): Call it.
34663         * cfgexpand.c (expand_debug_expr): Call it.
34664
34665 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34666
34667         PR bootstrap/43399
34668         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
34669         mem_mode.
34670
34671         PR bootstrap/43403
34672         * var-tracking.c (vt_init_cfa_base): Do nothing if
34673         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
34674
34675 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
34676
34677         PR debug/42873
34678         * var-tracking.c (canonicalize_vars_star): New.
34679         (dataflow_post_merge_adjust): Use it.
34680
34681 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34682
34683         PR debug/43058
34684         * var-tracking.c (non_suitable_const): New function.
34685         (add_uses): For DEBUG_INSNs with constants, don't record any
34686         value, instead just the constant value itself.
34687         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
34688         is not VAR_LOC_UNKNOWN_P, set var to the constant.
34689         (emit_notes_in_bb): Likewise.
34690         (emit_note_insn_var_location): For onepart variables if
34691         cur_loc is a VOIDmode constant, use DECL_MODE.
34692
34693 2010-03-18  Martin Jambor  <mjambor@suse.cz>
34694
34695         PR middle-end/42450
34696         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
34697         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
34698         all non-clones.  Moved call redirection...
34699         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
34700         (cgraph_materialize_all_clones): Dispose of all
34701         combined_args_to_skip bitmaps.
34702         (verify_cgraph_node): Do not check for edges pointing to wrong
34703         nodes in inline clones.
34704         * tree-inline.c (copy_bb): Call
34705         cgraph_redirect_edge_call_stmt_to_callee.
34706         * ipa.c (cgraph_remove_unreachable_nodes): Call
34707         cgraph_node_remove_callees even when there are used clones.
34708
34709 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34710
34711         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
34712
34713 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34714
34715         PR target/43383
34716         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
34717         for 32bit.
34718
34719 2010-03-18  Michael Matz  <matz@suse.de>
34720
34721         PR middle-end/43419
34722         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
34723         into sqrt(x) if we need to preserve signed zeros.
34724
34725 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
34726             Eric Botcazou  <ebotcazou@adacore.com>
34727
34728         PR rtl-optimization/43360
34729         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
34730         note if we don't know its invariant status.
34731
34732 2010-03-18  Michael Matz  <matz@suse.de>
34733
34734         PR tree-optimization/43402
34735         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
34736         PHI chains of ssa names registered for update.
34737
34738 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
34739
34740         PR target/42427
34741         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
34742         non-offsettable and pre_modify update addressing.
34743         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
34744         and "2" alternatives "#".
34745         (*movdd_softfloat32): Make all alternatives "#";
34746         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
34747         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
34748         (*movdf_softfloat32): Make all alternatives "#";
34749         (movdi): Use the new DIFD mode iterator to create a common splitter
34750         for movdi, movdf and movdd patterns.
34751
34752 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
34753
34754         * common.opt (dumpdir): Remove redundant tab.
34755
34756 2010-03-17  Martin Jambor  <mjambor@suse.cz>
34757
34758         PR tree-optimization/43347
34759         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
34760         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
34761
34762 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
34763
34764         PR rtl-optimization/42216
34765         * regrename.c (create_new_chain): New function, broken out from...
34766         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
34767         appending a use to an empty chain.
34768         (build_def_use): Remove previous changes that convert OP_INOUT to
34769         OP_OUT operands; instead detect the case where an OP_INOUT operand
34770         uses a previously untracked register and create an empty chain for it.
34771
34772 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34773
34774         * doc/extend.texi (Function Attributes): Rewrite unfinished
34775         sentence in ms_abi documentation.
34776
34777 2010-03-17  Alan Modra  <amodra@gmail.com>
34778
34779         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
34780         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
34781         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
34782         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
34783
34784 2010-03-16  Richard Henderson  <rth@redhat.com>
34785
34786         PR middle-end/43365
34787         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
34788         (lower_try_finally): Save and restore eh_seq around the expansion
34789         of the try-finally.
34790
34791 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34792
34793         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
34794         statements before splitting block.
34795
34796 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34797
34798         * doc/sourcebuild.texi (Testsuites): Fix markup.
34799         Use pathnames relative to gcc/testsuite.
34800         (Test Directives): Move description of how timeout is determined.
34801         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
34802         (C Tests): Correct gcc.misc-tests directory.
34803         Framework tests now live in gcc.test-framework.
34804
34805 2010-03-16  Richard Guenther  <rguenther@suse.de>
34806
34807         PR middle-end/43379
34808         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
34809         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
34810
34811 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34812             Alexandre Oliva  <aoliva@redhat.com>
34813
34814         PR tree-optimization/42917
34815         * lambda-code.c (remove_iv): Skip debug statements.
34816         (lambda_loopnest_to_gcc_loopnest): Likewise.
34817         (not_interesting_stmt): Debug statements are not interesting.
34818
34819 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
34820
34821         PR debug/43051
34822         PR debug/43092
34823         * cselib.c (cselib_preserve_constants,
34824         cfa_base_preserved_val): New static variables.
34825         (preserve_only_constants): New function.
34826         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
34827         clear its REG_VALUES.  If cselib_preserve_constants, don't
34828         empty the whole hash table, but preserve there VALUEs with constants,
34829         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
34830         (cselib_preserve_cfa_base_value): New function.
34831         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
34832         (cselib_init): Change argument to int bitfield.  Set
34833         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
34834         is in it.
34835         (cselib_finish): Clear cselib_preserve_constants and
34836         cfa_base_preserved_val.
34837         * cselib.h (enum cselib_record_what): New enum.
34838         (cselib_init): Change argument to int.
34839         (cselib_preserve_cfa_base_value): New prototype.
34840         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
34841         * dse.c (dse_step1): Likewise.
34842         * cfgcleanup.c (thread_jump): Likewise.
34843         * sched-deps.c (sched_analyze): Likewise.
34844         * gcse.c (local_cprop_pass): Likewise.
34845         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
34846         If FN is non-NULL, call the callback always and whenever it returns
34847         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
34848         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
34849         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
34850         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
34851         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
34852         * var-tracking.c: Include recog.h.
34853         (bb_stack_adjust_offset): Remove.
34854         (vt_stack_adjustments): Don't call it, instead just gather the
34855         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
34856         (adjust_stack_reference): Remove.
34857         (compute_cfa_pointer): New function.
34858         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
34859         (struct adjust_mem_data): New type.
34860         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
34861         functions.
34862         (get_address_mode): New function.
34863         (replace_expr_with_values): Use it.
34864         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
34865         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
34866         (adjust_sets): Remove.
34867         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
34868         Use get_address_mode.
34869         (get_adjusted_src): Remove.
34870         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
34871         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
34872         (add_with_sets): Don't call adjust_sets.
34873         (fp_setter, vt_init_cfa_base): New functions.
34874         (vt_initialize): Change return type to bool.  Move most of pool etc.
34875         initialization to the beginning of the function from end.  Pass
34876         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
34877         If !frame_pointer_needed, call vt_stack_adjustment before mos
34878         vector is filled, call vt_init_cfa_base if argp/framep has been
34879         eliminated to sp.  If frame_pointer_needed and argp/framep has
34880         been eliminated to hard frame pointer, set
34881         hard_frame_pointer_adjustment and call vt_init_cfa_base after
34882         encountering fp setter in the prologue.  For MO_ADJUST, call
34883         log_op_type before pusing the op into mos vector, not afterwards.
34884         Call adjust_insn before cselib_process_insn/add_with_sets,
34885         call cancel_changes (0) afterwards.
34886         (variable_tracking_main_1): Adjust for vt_initialize calling
34887         vt_stack_adjustments and returning whether it succeeded or not.
34888
34889 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
34890
34891         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
34892         debug statements.
34893
34894 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
34895
34896         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
34897         has been set.
34898         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
34899         drap_reg has not been set.
34900
34901 2010-03-15  Michael Matz  <matz@suse.de>
34902
34903         PR middle-end/43300
34904         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
34905         use it to expand block copies.
34906         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
34907         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
34908         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
34909
34910 2010-03-15  Richard Guenther  <rguenther@suse.de>
34911
34912         PR tree-optimization/43367
34913         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
34914         elimination check.
34915
34916 2010-03-15  Richard Guenther  <rguenther@suse.de>
34917
34918         PR tree-optimization/43317
34919         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
34920
34921 2010-03-15  Martin Jambor  <mjambor@suse.cz>
34922
34923         PR tree-optimization/43141
34924         * tree-sra.c (create_abstract_origin): New function.
34925         (modify_function): Call create_abstract_origin.
34926
34927 2010-03-15  Chris Demetriou  <cgd@google.com>
34928
34929         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
34930         wasn't copied.
34931
34932 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34933
34934         PR middle-end/43354
34935         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
34936         call insert_out_of_ssa_copy for default definitions.
34937
34938 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34939
34940         * graphite-clast-to-gimple.c (my_long_long): Defined.
34941         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
34942         * graphite-sese-to-poly.c (my_long_long): Defined.
34943         (scop_ivs_can_be_represented): Use it.
34944
34945 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34946
34947         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
34948         graphite-max-bbs-per-function, and loop-block-tile-size.
34949         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
34950         with "maximum".
34951         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
34952
34953 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34954
34955         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
34956         forward declaration.
34957         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
34958         (add_upper_bounds_from_estimated_nit): New.
34959         (build_loop_iteration_domains): Use it.
34960
34961 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34962
34963         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
34964
34965 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34966
34967         PR middle-end/43306
34968         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
34969         should be an INTEGER_CST.  Also handle CASE_CONVERT.
34970
34971 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34972
34973         * graphite.c (graphite_initialize): To bound the number of bbs per
34974         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
34975         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
34976         * doc/invoke.texi: Document it.
34977
34978 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34979
34980         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
34981         * graphite-sese-to-poly.h (build_poly_scop): Same.
34982
34983 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34984
34985         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
34986         the number of parameters in the scop.  Use as an upper bound
34987         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
34988         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
34989         * doc/invoke.texi: Document it.
34990
34991 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
34992
34993         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
34994         * doc/c-tree.texi: Remove.
34995         * doc/generic.texi: Merge c-tree.texi here.
34996         * doc/gccint.texi (Trees): Remove menu entry.
34997         (c-tree.texi): Remove @include.
34998         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
34999         * doc/languages.texi (Reading RTL): Ditto.
35000
35001 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
35002
35003         PR target/42869
35004         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
35005
35006 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
35007
35008         PR middle-end/42431
35009         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
35010         code added to work around reload clobbering CONST insns.
35011
35012 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
35013
35014         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
35015         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
35016         (cselib_preserve_only_values): Remove retain argument, don't
35017         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
35018         * cselib.h (cselib_preserve_only_values): Remove retain argument.
35019         * var-tracking.c (micro_operation): Move insn field before union.
35020         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
35021         (struct variable_tracking_info_def): Remove n_mos field, change
35022         mos into a vector of micro_operations.
35023         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
35024         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
35025         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
35026         changing into a vector.
35027         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
35028         come before all other uops generated by add_stores.
35029         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
35030         argument removal.
35031         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
35032         a vector.  Run just one pass over the bbs instead of separate counting
35033         and computation phase.
35034         (vt_finalize): Free VTI (bb)->mos vector instead of array.
35035
35036         PR debug/43329
35037         * tree-inline.c (remap_decls): Put old_var rather than origin_var
35038         into *nonlocalized_list vector.
35039         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
35040         even if origin is non-NULL.
35041         (gen_variable_die): Likewise.
35042         (process_scope_var): Don't change origin.
35043         (gen_decl_die): Likewise.
35044         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
35045         before adding new edges instead of after it, fix moving over
35046         debug stmts.
35047
35048 2010-03-11  David S. Miller  <davem@davemloft.net>
35049
35050         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
35051         of four.
35052         * configure: Rebuild.
35053
35054 2010-03-11  Martin Jambor  <mjambor@suse.cz>
35055
35056         PR tree-optimization/43257
35057         * tree.c (assign_assembler_name_if_neeeded): New function.
35058         (free_lang_data_in_cgraph): Assembler name assignment moved to the
35059         above new function.
35060         * tree.h (assign_assembler_name_if_neeeded): Declare.
35061         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
35062         the function if needed.
35063
35064 2010-03-11  Chris Demetriou  <cgd@google.com>
35065
35066         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
35067         include/stdint-gcc.h, and include/stdint.h world-readable.
35068
35069 2010-03-11  Richard Guenther  <rguenther@suse.de>
35070
35071         PR tree-optimization/43255
35072         * tree-vrp.c (process_assert_insertions_for): Do not insert
35073         asserts for trivial conditions.
35074
35075 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35076
35077         PR tree-optimization/43280
35078         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
35079         generation.  Move calculation of size out of the if branch.
35080         (find_bswap): Modify compare number generation.
35081
35082 2010-03-11  Richard Guenther  <rguenther@suse.de>
35083
35084         PR lto/43200
35085         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
35086         (input_gimple_stmt): Fixup handled component types during
35087         operand read.  Also fix up decls in ADDR_EXPRs.
35088
35089 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
35090
35091         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
35092         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
35093
35094 2010-03-10  Jan Hubicka  <jh@suse.cz>
35095
35096         PR c/43288
35097         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
35098         * varasm.c (get_variable_section): Don't do that here...
35099         (make_decl_rtl): ... and here.
35100         (do_assemble_alias): Produce decl RTL.
35101         (assemble_alias): Likewise.
35102
35103 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35104
35105         PR debug/43290
35106         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
35107         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
35108         of fde->vdrap_reg.
35109         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
35110         (based_loc_descr): Only express drap or vdrap regno based expressions
35111         using DW_OP_fbreg when not optimizing.
35112         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
35113         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
35114         REG_CFA_SET_VDRAP note.
35115
35116 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
35117
35118         PR tree-optimization/43236
35119         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
35120         error in calculation of base address in reverse iteration case.
35121         (generate_builtin): Take number of latch executions if the statement
35122         is in the latch.
35123
35124 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
35125
35126         PR middle-end/42859
35127         * tree-eh.c: Include pointer-set.h.
35128         (lower_eh_dispatch): Filter out duplicate case labels and
35129         remove the unneeded edge when the label is unused.  Return
35130         true when some edges are removed.
35131         (execute_lower_eh_dispatch): When any lowering resulted in
35132         removing an edge, also delete unreachable blocks.
35133
35134 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35135
35136         PR bootstrap/43287
35137         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
35138         UNSPEC_MACHOPIC_OFFSET.
35139
35140 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
35141
35142         PR target/43294
35143         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
35144         (m68k_delegitimize_address): New function.
35145
35146 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
35147
35148         PR debug/43299
35149         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
35150
35151         PR debug/43299
35152         * var-tracking.c (adjust_sets): New function.
35153         (count_with_sets, add_with_sets): Use it.
35154         (get_adjusted_src): New inline function.
35155         (add_stores): Use it.
35156
35157         PR debug/43304
35158         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
35159         call cselib_dummy_expand_value_rtx_cb instead of
35160         cselib_expand_value_rtx_cb.
35161
35162         PR debug/43293
35163         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
35164         * config/i386/i386.c: Include debug.h and dwarf2out.h.
35165         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
35166         and .cfi_endproc around the pic thunks.
35167         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
35168         all queued unwind info register saves are saved before the call.
35169         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
35170         considered as sp-=4 for unwind info and the pop as sp+=4 which
35171         also clobbers dest, but doesn't actually restore it.
35172
35173         PR debug/43290
35174         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
35175         RTX_FRAME_RELATED_P.
35176
35177 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35178
35179         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
35180         whitespaces in output template.
35181
35182 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35183
35184         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
35185         out array boundary.
35186
35187 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35188
35189         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
35190         builtins.exp in a separate job.
35191
35192 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35193
35194         * graphite-sese-to-poly.c (add_param_constraints): Use
35195         lower_bound_in_type and upper_bound_in_type.
35196
35197 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35198
35199         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
35200         instead of unsigned_type_node.
35201
35202 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35203             Reza Yazdani  <reza.yazdani@amd.com>
35204
35205         PR middle-end/43065
35206         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
35207         on pointer type parameters.
35208
35209 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35210
35211         PR middle-end/42644
35212         PR middle-end/42130
35213         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
35214         handle conversions from pointer to integers.
35215         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
35216         induction variable, to be able to work with code generated by CLooG.
35217         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
35218         (build_poly_scop): Bail out if we cannot codegen a loop.
35219
35220 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35221
35222         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
35223         code generation with gloog_error.
35224
35225 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35226
35227         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
35228         Call fold_convert on all the returned values.
35229         (expand_scalar_variables_expr): Pass to
35230         expand_scalar_variables_ssa_name the type of the resulting expression.
35231
35232 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35233
35234         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
35235         ppl_min_for_le_pointset.
35236         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
35237         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
35238
35239 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35240
35241         * graphite-dependences.c (map_into_dep_poly): Removed.
35242         (dependence_polyhedron_1): Use combine_context_id_scat.
35243
35244 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35245
35246         * graphite-poly.h (struct poly_scattering): Add layout documentation.
35247         (struct poly_bb): Same.
35248         (combine_context_id_scat): New.
35249
35250 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35251
35252         PR middle-end/42326
35253         * sese.c (name_defined_in_loop_p): Return false for default
35254         definitions.
35255
35256 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35257
35258         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
35259         and clean up the logic.
35260
35261 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35262
35263         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
35264         early return.
35265
35266 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35267
35268         * var-tracking.c (remove_cselib_value_chains): Define only for
35269         ENABLE_CHECKING.
35270         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
35271         delete_slot_part, emit_notes_for_differences_1): Don't call
35272         remove_cselib_value_chains here.
35273         (set_slot_part, emit_notes_for_differences_2): Don't call
35274         add_cselib_value_chains here.
35275         (preserved_values): New vector.
35276         (preserve_value): New function.
35277         (add_uses, add_stores, vt_add_function_parameters): Use it
35278         instead of cselib_preserve_value.
35279         (changed_values_stack): New vector.
35280         (check_changed_vars_0): New function.
35281         (check_changed_vars_1, check_changed_vars_2): Use it.
35282         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
35283         changed_values_stack VALUEs.
35284         (vt_emit_notes): For all preserved_values call
35285         add_cselib_value_chains.  If ENABLE_CHECKING call
35286         remove_cselib_value_chains before verifying value_chains is empty.
35287         Initialize and free changed_values_stack.
35288         (vt_initialize): Initialize preserved_values.
35289         (vt_finalize): Free preserved_values.
35290
35291 2010-03-08  Richard Guenther  <rguenther@suse.de>
35292
35293         PR tree-optimization/43269
35294         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
35295         region detection.
35296
35297 2010-03-08  Martin Jambor  <mjambor@suse.cz>
35298
35299         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
35300         (ipa_is_param_called): Removed.
35301         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
35302         (ipa_print_node_params): Do not print the called flag.
35303         (ipa_write_node_info): Do not stream the called flag.
35304         (ipa_read_node_info): Likewise.
35305
35306 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
35307
35308         PR debug/43176
35309         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
35310         * cselib.c (struct expand_value_data): Add dummy field.
35311         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
35312         dummy to false.
35313         (cselib_dummy_expand_value_rtx_cb): New function.
35314         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
35315         any rtl.
35316         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
35317         * var-tracking.c: Include pointer-set.h.
35318         (variable): Change n_var_parts to char from int.  Add
35319         cur_loc_changed and in_changed_variables fields.
35320         (variable_canonicalize): Remove.
35321         (shared_var_p): New inline function.
35322         (unshare_variable): Maintain cur_loc_changed and
35323         in_changed_variables fields.  If var was in changed_variables,
35324         replace it there with new_var.  Just copy cur_loc instead of
35325         resetting it to something else.
35326         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
35327         (dataflow_set_union): Don't call variable_canonicalize.
35328         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
35329         of their DEBUG_EXPR_TREE_DECLs.
35330         (canonicalize_loc_order_check): Verify that cur_loc is NULL
35331         and in_changed_variables and cur_loc_changed is false.
35332         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
35333         and cur_loc_changed.  Don't update cur_loc here.
35334         (variable_merge_over_src): Don't call variable_canonicalize.
35335         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
35336         removing loc that is equal to cur_loc, clear cur_loc,
35337         set cur_loc_changed and ensure variable_was_changed is called.
35338         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
35339         compare pointers in cur_loc check, if it is equal to loc,
35340         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
35341         (variable_different_p): Remove compare_current_location argument,
35342         don't compare cur_loc.
35343         (dataflow_set_different_1): Adjust variable_different_p caller.
35344         (variable_was_changed): If dv had some var in changed_variables
35345         already, reset in_changed_variables flag for it and propagate
35346         cur_loc_changed over to the new variable.  On empty var
35347         always set cur_loc_changed.  Set in_changed_variables on whatever
35348         var is added to changed_variables.
35349         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
35350         Use shared_var_p.  When removing loc that is equal to cur_loc,
35351         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
35352         end, don't set it to something else, just call variable_was_changed.
35353         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
35354         loc being removed, clear cur_loc and set cur_loc_changed.
35355         Set cur_loc_changed if all locations have been removed.
35356         (struct expand_loc_callback_data): New type.
35357         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
35358         allocated.  Always create SUBREGs if simplify_subreg failed.
35359         Prefer to use cur_loc, when that fails and still in
35360         changed_variables (and seen first time) recompute it.  Set
35361         cur_loc_changed of variables which had to change cur_loc and
35362         compute elcd->cur_loc_changed if any of the subexpressions used
35363         had to change cur_loc.
35364         (vt_expand_loc): Adjust to pass arguments in
35365         expand_loc_callback_data structure.
35366         (vt_expand_loc_dummy): New function.
35367         (emitted_notes): New variable.
35368         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
35369         that weren't used for any other decl in current
35370         emit_notes_for_changes call call vt_expand_loc_dummy to update
35371         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
35372         first loc_chain location if NULL before.  Always use just
35373         cur_loc instead of first loc_chain location.  When cur_loc_changed
35374         is false, when not --enable-checking=rtl just don't emit any note.
35375         When rtl checking, compute the note and assert it is the same
35376         as previous note.  Clear cur_loc_changed and in_changed_variables
35377         at the end before removing from changed_variables.
35378         (check_changed_vars_3): New function.
35379         (emit_notes_for_changes): Traverse changed_vars to call
35380         check_changed_vars_3 on each changed var.
35381         (emit_notes_for_differences_1): Clear cur_loc_changed and
35382         in_changed_variables.  Recompute cur_loc of new_var.
35383         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
35384         (vt_emit_notes): Initialize and destroy emitted_notes.
35385
35386 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
35387
35388         PR rtl-optimization/42220
35389         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
35390         Use verify_reg_tracked to determine if we should use OP_OUT rather
35391         than OP_INOUT.
35392         (build_def_use): If we see an in-out operand for a register that we
35393         know nothing about, treat is an output if possible, fail the block if
35394         not.
35395
35396 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35397
35398         PR debug/42897
35399         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
35400         permanently.
35401
35402 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35403
35404         PR debug/42897
35405         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
35406         uses of relevant DEFs that are dead outside the loop too.
35407
35408 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35409
35410         * var-tracking.c (dataflow_set_merge): Swap src and src2.
35411         Reverted:
35412         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
35413         PR debug/41371
35414         * var-tracking.c (values_to_unmark): New variable.
35415         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
35416         values_to_unmark vector.  Moved body to...
35417         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
35418         instead queue it into values_to_unmark vector.
35419         (vt_find_locations): Free values_to_unmark vector.
35420
35421 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
35422
35423         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
35424         (site.exp): Export them when plugins are enabled.
35425
35426 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
35427
35428         PR middle-end/42326
35429         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
35430         that contain scevs.
35431         (chrec_fold_multiply): Same.
35432
35433 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
35434
35435         PR c/43248
35436         * c-decl.c (build_compound_literal): Return early if init is
35437         an error_mark_node.
35438
35439 2010-03-04  Martin Jambor  <mjambor@suse.cz>
35440
35441         PR tree-optimization/43164
35442         PR tree-optimization/43191
35443         * tree-sra.c (type_consists_of_records_p): Reject records with
35444         zero-size bit-fields at the end.
35445
35446 2010-03-04  Mike Stump  <mikestump@comcast.net>
35447
35448         * Makefile.in (TAGS): Remove *.y.
35449
35450 2010-03-04  Richard Guenther  <rguenther@suse.de>
35451
35452         PR tree-optimization/40761
35453         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
35454         in reverse order.
35455         (my_rev_post_order_compute): New function.
35456         (init_pre): Call it.
35457
35458 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
35459
35460         PR middle-end/43209
35461         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
35462         decrease the cost of an IV candidate when the cost is infinite.
35463
35464 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35465
35466         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
35467         Use '3DNow!' for the extension of that name, ensure normal space
35468         after the string.
35469         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
35470
35471 2010-03-03  Jeff Law  <law@redhat.com>
35472
35473         * PR middle-end/32693
35474         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
35475         than gen_rtx_SUBREG.
35476         (extract_bit_field_1): Likewise.
35477
35478 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
35479
35480         * doc/sourcebuild.texi (Test directives): Document that arguments
35481         include-opts and exclude-opts are now optional for dg-skip-if,
35482         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
35483
35484 2010-03-03  Jason Merrill  <jason@redhat.com>
35485
35486         PR c++/12909
35487         * cgraph.h (varpool_node): Add extra_name field.
35488         * varpool.c (varpool_extra_name_alias): New.
35489         (varpool_assemble_decl): Emit extra name aliases.
35490         (varpool_mark_needed_node): Look past an extra name alias.
35491         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
35492         * lto-streamer-in.c (lto_input_tree): Read it.
35493         * lto-streamer-out.c (output_unreferenced_globals): Write it.
35494
35495 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
35496
35497         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
35498         (sparc*-*-solaris2*): ...this.
35499
35500 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
35501
35502         PR debug/43229
35503         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
35504         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
35505         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
35506         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
35507
35508         PR debug/43237
35509         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
35510         fallthrough to default handling, just with want_address 0 instead of 2.
35511         For single element lists, add_AT_loc directly, otherwise create an
35512         artificial variable DIE and stick location list to it.
35513
35514         PR debug/43177
35515         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
35516         (VAL_EXPR_HAS_REVERSE): Define.
35517         (reverse_op): New function.
35518         (add_stores): For reversible operations add an extra MO_VAL_USE.
35519
35520 2010-03-02  Jason Merrill  <jason@redhat.com>
35521
35522         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
35523
35524 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
35525
35526         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
35527         (sparc64-*-linux*): Likewise.
35528         (sparc64-*-solaris2*): Include assembler files before linker ones.
35529         (sparc-*-solaris2*): Simplify and reorder to match previous case.
35530         * config/sparc/gas.h: Delete.
35531         * config/sparc/sol2-64.h: Add copyright notice.
35532         * config/sparc/sol2-gas-bi.h: Likewise.
35533         * config/sparc/sol2-gld.h: Likewise.
35534         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
35535         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
35536         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
35537         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
35538         (sparc_elf_asm_named_section): Rename into...
35539         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
35540
35541 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
35542
35543         * config/alpha/alpha.c (override_options): Fix -mtune error message.
35544
35545 2010-03-02  Jeff Law  <law@redhat.com>
35546
35547         PR middle-end/42431
35548         * reload1.c (rtx_p, substitute_stack): Declare.
35549         (substitute): Record addresses of changed rtxs.
35550         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
35551         Restore the original rtx when complete.
35552         (reload): Free subsitute_stack when complete.
35553
35554 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
35555
35556         * doc/gccint.texi (menu): Add Testsuites as a chapter.
35557         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
35558         new chapter.
35559         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
35560         LTO Testing, gcov Testing, profopt Testing, compat Testing,
35561         Torture Tests): Change from subsection to section.
35562
35563 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
35564             Steven Bosscher  <steven@gcc.gnu.org>
35565
35566         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
35567         instead of bb.
35568
35569 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
35570
35571         PR middle-end/42640
35572         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
35573         the assignment from the new induction variable to the assignment
35574         of the value from the original loop PHI function.
35575
35576 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
35577             Daniel Jacobowitz  <dan@codesourcery.com>
35578
35579         * doc/sourcebuild.texi (Test directives): Clarify options to
35580         dg-skip-if.
35581
35582 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35583
35584         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
35585         Disable cfi directives unless GCC and gas agree on using read-only
35586         .eh_frame sections for 64-bit.
35587         * configure: Regenerate.
35588
35589 2010-03-01  Richard Guenther  <rguenther@suse.de>
35590
35591         PR tree-optimization/43220
35592         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
35593         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
35594
35595 2010-03-01  Richard Guenther  <rguenther@suse.de>
35596             Martin Jambor  <mjambor@suse.cz>
35597
35598         PR middle-end/41250
35599         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
35600         gimplified parameters.
35601
35602 2010-03-01  Christian Bruel  <christian.bruel@st.com>
35603
35604         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
35605
35606 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
35607
35608         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
35609
35610 2010-03-01  Richard Guenther  <rguenther@suse.de>
35611
35612         PR middle-end/43213
35613         * expr.c (expand_assignment): Use the alias-oracle to tell
35614         if the rhs aliases the result decl.
35615
35616 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35617
35618         PR pch/14940
35619         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
35620         to sol_gt_pch_get_address.
35621         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
35622         64-bit, SPARC and x86.
35623         (sol_gt_pch_get_address): New function.
35624
35625 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
35626
35627         * toplev.h (inform_n, error_n): Declare.
35628         * diagnostic.c (inform_n, error_n): New function.
35629
35630 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
35631
35632         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
35633         has no rtl yet when processing local_decls, queue it and recheck
35634         if deferred stack allocation hasn't assigned it rtl.
35635
35636 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
35637
35638         * config/sh/sh.c (unspec_bbr_uid): New.
35639         (gen_block_redirect): Use it instead of INSN_UID.
35640         (gen_far_branch): Likewise.
35641
35642 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
35643
35644         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
35645         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
35646
35647 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35648
35649         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
35650         (Warning Options): -Wno-conversion-null is valid for
35651         Objective-C++ as well.
35652         * doc/tm.texi (Named Address Spaces): Likewise.
35653         * doc/plugins.texi (Plugins): Replace TABs with spaces.
35654         * doc/tree-ssa.texi (Tree SSA): Likewise.
35655
35656 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35657
35658         PR bootstrap/43202
35659         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
35660         by default.  Don't set the default arch for
35661         i[34567]86-*-darwin*|x86_64-*-darwin*.
35662
35663 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35664
35665         PR bootstrap/43202
35666         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
35667         default.  Set the default 32bit/64bit archs with $with_arch
35668         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
35669
35670 2010-02-27  Richard Guenther  <rguenther@suse.de>
35671
35672         PR tree-optimization/43186
35673         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
35674         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
35675         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
35676         unroller iterations.
35677
35678 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35679
35680         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
35681         required and i[34567]86-*-* targets don't support 64bit ISA.
35682
35683 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
35684
35685         PR ada/43096
35686         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
35687         the same alias set.
35688
35689 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35690
35691         * config.gcc: Set the default arch at least to Prescott for
35692         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
35693         if SSE math is enabled.
35694
35695 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35696
35697         * diagnostic.c (diagnostic_initialize): Update.
35698         (diagnostic_report_diagnostic): Test inhibit_notes_p for
35699         informative notes.
35700         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
35701         (diagnostic_inhibit_notes): New.
35702         * toplev.c (process_options): inhibit notes with -fcompare-debug.
35703
35704 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35705
35706         PR c/20631
35707         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
35708         * doc/standards.texi: Likewise.
35709         * doc/extend.texi: Likewise.
35710         * doc/trouble.texi: Likewise.
35711         * doc/cppopts.texi: Likewise.
35712         * doc/install.texi: Likewise.
35713         * c.opt (std=c90,std=gnu90): New options.
35714         * c-opts.c (c_common_handle_option): Handle them.
35715
35716 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35717
35718         PR c/24577
35719         * c-decl.c (undeclared_variable): Use an informative note.
35720
35721 2010-02-26  Richard Guenther  <rguenther@suse.de>
35722
35723         PR tree-optimization/43186
35724         * gimple.h (gimple_fold): Remove.
35725         * gimple.c (gimple_fold): Remove.  Inline into single user ...
35726         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
35727         Try harder for conditions.
35728
35729 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35730
35731         PR debug/43190
35732         * function.c (used_types_insert): Don't skip through named pointer
35733         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
35734         and it is different from the main variant's type.
35735
35736 2010-02-26  Nick Clifton  <nickc@redhat.com>
35737
35738         * config/rx/rx.md (sminsi3): Remove bogus alternative.
35739
35740 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35741
35742         * config.gcc: Support --with-fpmath=sse for x86.
35743
35744         * config/i386/ssemath.h: New.
35745
35746         * doc/install.texi (--with-fpmath=sse): Documented.
35747
35748 2010-02-26  Richard Guenther  <rguenther@suse.de>
35749
35750         PR tree-optimization/43188
35751         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
35752         vector types of over-aligned element type.
35753
35754 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
35755
35756         PR target/43175
35757         * config/i386/i386.c (expand_vec_perm_blend): Use correct
35758         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
35759
35760 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
35761
35762         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
35763
35764 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35765
35766         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
35767         * var-tracking.c: Include diagnostic.h.
35768         (debug_dv): New function.
35769         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
35770
35771         PR debug/43160
35772         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
35773         (add_value_chain, add_value_chains, remove_value_chain,
35774         remove_value_chains): Handle DEBUG_EXPRs.
35775         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
35776
35777         PR debug/43161
35778         * regcprop.c (struct queued_debug_insn_change): New type.
35779         (struct value_data_entry): Add debug_insn_changes field.
35780         (struct value_data): Add n_debug_insn_changes field.
35781         (debug_insn_changes_pool): New variable.
35782         (free_debug_insn_changes, apply_debug_insn_changes,
35783         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
35784         (kill_value_one_regno): Call free_debug_insn_changes if needed.
35785         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
35786         fields.
35787         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
35788         changes for them.
35789         (copyprop_hardreg_forward_1): Don't call apply_change_group for
35790         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
35791         changes, call cprop_find_used_regs via note_stores.
35792         (copyprop_hardreg_forward): When copying vd from predecessor
35793         which has any queued DEBUG_INSN changes, make sure the pointers are
35794         cleared.  At the end call df_analyze and then if there are any
35795         DEBUG_INSN changes queued at the end of some basic block for still
35796         live registers, apply them.
35797         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
35798
35799 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
35800
35801         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
35802         (arm*-*-*): Ditto.
35803
35804 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
35805
35806         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
35807         targets.  Set the default with_cpu/with_arch from arch/cpu.
35808         Allow x86-64 and native for with_cpu/with_arch.
35809
35810 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
35811
35812         * ebitmap.c: Change calls to verify_popcount with calls to
35813         sbitmap_verify_popcount.
35814         (ebitmap_clear_bit): Fixed map->cacheindex test and
35815         map>cache update when bit clearing results in an empty
35816         element.
35817
35818 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
35819
35820         PR target/43154
35821         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
35822         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
35823         and support both V2DF and V2DI modes.
35824         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
35825         support both V2DF and V2DI modes.
35826         (general): Delete trailing whitespace from a few patterns.
35827
35828         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
35829         V2DF/V2DI interleave high/low builtins.
35830
35831         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
35832         new VSX builtins.
35833
35834         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
35835         interleave high/low functions.
35836
35837 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
35838
35839         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
35840         #pragma extern_prefix.
35841
35842 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
35843
35844         PR debug/43166
35845         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
35846         BLKmode, assert op0 is a MEM and just adjust its mode.
35847
35848         PR debug/43165
35849         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
35850         if bitpos isn't multiple of mode's bitsize.
35851
35852 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35853
35854         * c.opt (-ftemplate-depth=): New.
35855         (-ftemplate-depth-): Deprecate.
35856         * optc-gen.awk: Handle -ftemplate-depth=.
35857         * opth-gen.awk: Likewise.
35858         * c-opts.c (c_common_handle_option): Likewise.
35859         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
35860
35861 2010-02-24  Jason Merrill  <jason@redhat.com>
35862
35863         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
35864
35865 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35866
35867         * cfg.c (alloc_aux_for_block): Remove inline.
35868         (alloc_aux_for_edge): Likewise.
35869
35870 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35871
35872         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
35873
35874 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35875
35876         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
35877         * config/i386/sol2-gas.h: New file.
35878         * config.gcc (i[34567]86-*-solaris2*): Use it.
35879
35880 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35881
35882         PR c/43128
35883         * c-typeck.c (ep_convert_and_check): New.
35884         (build_conditional_expr): Use it.
35885         (build_binary_op): Likewise.
35886
35887 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
35888
35889         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
35890
35891         PR debug/43150
35892         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
35893         bounds even for -O+.
35894         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
35895         expr needs to have DECL_NAME set.
35896
35897 2010-02-24  Nick Clifton  <nickc@redhat.com>
35898
35899         * config/mep/mep.c: Include gimple.h.
35900         (mep_function_uses_sp): Delete unused function.
35901         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
35902         parameters.  Use unsigned integers to count args.  Return a
35903         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
35904
35905 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35906
35907         PR target/43107
35908         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
35909         greater or equal to nelt instead of 2 * nelt.
35910         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
35911         with nelt - 1.
35912
35913 2010-02-23  Jason Merrill  <jason@redhat.com>
35914
35915         PR debug/42800
35916         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
35917         in cfun->local_decls even if they have register types.
35918
35919         PR c++/42837
35920         * stor-layout.c (place_field): Don't warn about unnecessary
35921         DECL_PACKED if the type is packed.
35922
35923 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35924
35925         PR target/43139
35926         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
35927         GOTOFF relocs, even when the base reg isn't pic pointer.
35928
35929 2010-02-23  Michael Matz  <matz@suse.de>
35930
35931         PR debug/43077
35932         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
35933         (expand_gimple_basic_block): Generate and use debug temps if there
35934         are debug uses left after the last real use of TERed ssa names.
35935         Unlink debug immediate uses when they are expanded.
35936
35937 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35938
35939         PR 43123
35940         * config/i386/i386.c (override_options): Reorganise to provide
35941         better error messages.
35942
35943 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35944
35945         PR middle-end/43083
35946         * graphite-scop-detection.c (create_single_exit_edge): Move
35947         the call to find_single_exit_edge to....
35948         (create_sese_edges): ...here.  Don't handle multiple edges
35949         exiting the function.
35950         (build_graphite_scops): Don't handle multiple edges
35951         exiting the function.
35952
35953 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35954
35955         PR middle-end/43097
35956         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
35957         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
35958
35959 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35960
35961         PR middle-end/43026
35962         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
35963
35964 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35965
35966         PR c++/43126
35967         * c-typeck.c (convert_arguments): Print declaration location.
35968         * c-common.c (validate_nargs): Rename as
35969         builtin_function_validate_nargs.
35970         (check_builtin_function_arguments): Update.
35971
35972 2010-02-22  Richard Guenther  <rguenther@suse.de>
35973
35974         PR lto/43045
35975         * tree-inline.c (declare_return_variable): Use the type of
35976         the call stmt lhs if available.
35977
35978 2010-02-22  Duncan Sands  <baldrick@free.fr>
35979
35980         * passes.c (register_pass): Always consider all pass lists when
35981         ref_pass_instance_number is zero.
35982
35983 2010-02-22  Richard Guenther  <rguenther@suse.de>
35984
35985         PR tree-optimization/42749
35986         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
35987         parameter.  Do arithmetic in the original type.
35988         (update_accumulator_with_ops): Likewise.
35989         (adjust_accumulator_values): Adjust.
35990
35991 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35992
35993         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
35994         (QI to BLKmode splitter): New splitter.
35995
35996 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
35997
35998         * config/i386/i386.c (initial_ix86_tune_features): Turn on
35999         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
36000
36001 2010-02-22  Richard Guenther  <rguenther@suse.de>
36002
36003         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
36004
36005 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
36006
36007         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
36008         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
36009         ($(T)crti.o, $(T)crtn.o): Remove rules.
36010
36011 2010-02-21  Tobias Burnus  <burnus@net-b.de>
36012
36013         PR fortran/35259
36014         * doc/invoke.texi (-fassociative-math): Document that this
36015         option is automatically enabled for Fortran.
36016
36017 2010-02-20  David S. Miller  <davem@davemloft.net>
36018
36019         * configure.ac: Test if linker and assembler properly support
36020         GOTDATA_OP relocations.
36021         * configure: Rebuild.
36022         * config.in: Likewise.
36023         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
36024         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
36025         (movsi_high_pic): Likewise.
36026         (movdi_lo_sum_pic): Likewise.
36027         (movdi_high_pic): Likewise.
36028         (movsi_pic_gotdata_op): New pattern.
36029         (movdi_pic_gotdata_op): Likewise.
36030         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
36031         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
36032
36033 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
36034
36035         PR target/43067
36036         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
36037         attribute to ssemul.
36038         (xop_mulv2div2di3_high): Ditto.
36039
36040 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36041
36042         PR c++/35669
36043         * c.opt (Wconversion-null): New option.
36044         * doc/invoke.texi (Wconversion-null): Document.
36045
36046 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36047
36048         * common.opt (Wlarger-than-): Add Undocumented.
36049
36050 2010-02-19  Mike Stump  <mikestump@comcast.net>
36051
36052         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
36053
36054 2010-02-19  Jason Merrill  <jason@redhat.com>
36055
36056         PR target/40332
36057         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
36058         * configure: Likewise.
36059
36060 2010-02-20  Alan Modra  <amodra@gmail.com>
36061
36062         PR middle-end/42344
36063         * cgraph.h (cgraph_make_decl_local): Declare.
36064         * cgraph.c (cgraph_make_decl_local): New function.
36065         (cgraph_make_node_local): Use it.
36066         * cgraphunit.c (cgraph_function_versioning): Likewise.
36067         * ipa.c (function_and_variable_visibility): Likewise.
36068
36069 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36070
36071         PR bootstrap/43121
36072         * except.c (sjlj_emit_function_enter): Don't call
36073         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
36074         directly.
36075         * rtl.h (add_reg_br_prob_note): Remove prototype.
36076
36077 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36078
36079         PR 41779
36080         * c-common.c (conversion_warning): Remove widening conversions
36081         before checking the conversion of integers to reals.
36082
36083 2010-02-19  Mike Stump  <mikestump@comcast.net>
36084
36085         PR middle-end/43125
36086         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
36087
36088         PR objc/43061
36089         * cgraphunit.c (process_function_and_variable_attributes): Check
36090         DECL_PRESERVE_P instead of looking up attribute "used".
36091         * ipa-pure-const.c (check_decl): Likewise.
36092         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
36093         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
36094         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
36095         instead of attribute "used".
36096         * config/sol2-c.c (solaris_pragma_init): Likewise.
36097         (solaris_pragma_fini): Likewise.
36098
36099 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36100
36101         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
36102         Use XCNEW instead of xcalloc.
36103         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
36104         XNEW instead of xmalloc.
36105         (get_fields): Use XNEWVEC instead of xmalloc.
36106
36107         PR debug/43084
36108         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
36109         populate vars array.
36110         (create_new_general_access): For debug stmts just reset value.
36111         (get_stmt_accesses): For accesses within debug stmts just record them
36112         using add_access_to_acc_sites instead of preventing the peeling or
36113         counting them as accesses.
36114
36115         PR middle-end/42233
36116         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
36117
36118 2010-02-19  Richard Guenther  <rguenther@suse.de>
36119
36120         PR tree-optimization/42916
36121         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
36122         instructions.
36123
36124 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
36125
36126         * configure.ac: Replace all uses of changequote in macro arguments
36127         with proper quoting.
36128
36129 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36130
36131         PR middle-end/42233
36132         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
36133
36134 2010-02-19  Richard Guenther  <rguenther@suse.de>
36135
36136         PR tree-optimization/42944
36137         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
36138         test for aliasing with errno.
36139
36140 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36141
36142         PR middle-end/42233
36143         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
36144         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
36145         * dojump.c: Include output.h.
36146         (inv): New inline function.
36147         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
36148         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
36149         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
36150         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
36151         argument, pass it down to other calls.
36152         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
36153         add REG_BR_PROB note to the conditional jump.
36154         * cfgexpand.c (add_reg_br_prob_note): Removed.
36155         (expand_gimple_cond): Don't call it, add the probability
36156         as last argument to jumpif_1/jumpifnot_1.
36157         * Makefile.in (dojump.o): Depend on output.h.
36158         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
36159         callers.
36160         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
36161         * stmt.c (do_jump_if_equal): Likewise.
36162         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
36163         * loop-unswitch.c (compare_and_jump_seq): Likewise.
36164         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
36165         Likewise.
36166         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
36167         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
36168         jumpifnot_1 callers.
36169         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
36170         callers.
36171         (store_expr): Adjust jumpifnot caller.
36172         (store_constructor): Adjust jumpif caller.
36173
36174         PR middle-end/42233
36175         * gimplify.c (gimple_boolify): For __builtin_expect call
36176         gimple_boolify also on its first argument.
36177
36178 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
36179
36180         * configure.ac (gnu-unique-object): Wrap regexps using [] in
36181         changequote block.
36182         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
36183         * configure: Regenerated.
36184
36185 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
36186
36187         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
36188         lang_hooks.types_compatible_p instead of comptypes.
36189
36190 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
36191
36192         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
36193         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
36194         if __prefer_thumb__ is defined.
36195
36196 2010-02-18  Martin Jambor  <mjambor@suse.cz>
36197
36198         PR tree-optimization/43066
36199         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
36200         array with zero-sized element type.
36201
36202 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
36203
36204         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
36205         rtx, allocate struct var_loc_node here and return it to the
36206         caller, and only if it is actually needed.
36207         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
36208         move it earlier and return immediately if it returns NULL.
36209
36210 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
36211
36212         * config/sparc/gas.h: New file.  Restore
36213         TARGET_ASM_NAMED_SECTION to its ELF default.
36214         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
36215         check !HAVE_GNU_AS.
36216         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36217         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
36218         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
36219         after sparc/sysv4.h.
36220
36221 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
36222
36223         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
36224
36225 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
36226
36227         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
36228         patterns from predicated pattern.
36229
36230 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
36231
36232         PR target/43103
36233         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
36234         for insn mnemonic suffix.
36235
36236 2010-02-17  Richard Guenther  <rguenther@suse.de>
36237
36238         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
36239         to loop PHI nodes.
36240
36241 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
36242
36243         PR debug/42918
36244         * caller-save.c (save_call_clobbered_regs): If BB ends with
36245         a DEBUG_INSN, move any notes in between last real insn and the last
36246         DEBUG_INSN after the last DEBUG_INSN.
36247
36248 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
36249
36250         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
36251         Fix return type.  Fix argument type.  Explain meaning of return value.
36252
36253 2010-02-16  Richard Guenther  <rguenther@suse.de>
36254
36255         PR tree-optimization/41043
36256         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
36257         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
36258         statements ...
36259         (vrp_visit_phi_node): ... but only for loop PHI nodes.
36260
36261 2010-02-16  Ira Rosen  <irar@il.ibm.com>
36262
36263         PR tree-optimization/43074
36264         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
36265         * tree-vect-loop.c (vect_analyze_loop_operations): Add
36266         vectorizable cycles in hybrid SLP check.
36267         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
36268
36269 2010-02-16  Richard Guenther  <rguenther@suse.de>
36270
36271         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
36272         (true_dependence): If memrefs_conflict_p computes must-alias
36273         trust it.  Move TBAA check after offset-based disambiguation.
36274         (canon_true_dependence): Likewise.
36275
36276 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
36277
36278         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
36279         * doc/invoke.texi: Document it.
36280         * var-tracking.c: Include toplev.h and params.h.
36281         (vt_find_locations): Return bool indicating success.  Compute
36282         hash sizes unconditionally.  Check new parameter, report.
36283         (variable_tracking_main_1): Check vt_find_locations results and
36284         retry.  Renamed from...
36285         (variable_tracking_main): ... this.  New wrapper to preserve
36286         flag_var_tracking_assignments.
36287         * Makefile.in (var-tracking.o): Adjust dependencies.
36288
36289 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
36290             Jakub Jelinek  <jakub@redhat.com>
36291
36292         PR target/42854
36293         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
36294         if weak_import attribute is present.
36295         * config/darwin.c (machopic_select_section): Likewise.
36296
36297 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
36298
36299         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
36300         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
36301         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
36302         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
36303
36304         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
36305         types.
36306
36307         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
36308         Fix argument types.
36309
36310         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
36311         Rewrite text to refer to the names.
36312
36313 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
36314
36315         * config/i386/i386-builtin-types.def
36316         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
36317         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
36318         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
36319         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
36320         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
36321         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
36322         IX86_BUILTIN_VPERMIL2PS256.
36323         (MULTI_ARG_4_DF2_DI_I): Defined.
36324         (MULTI_ARG_4_DF2_DI_I1): Defined.
36325         (MULTI_ARG_4_SF2_SI_I): Defined.
36326         (MULTI_ARG_4_SF2_SI_I1): Defined.
36327         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
36328         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
36329         __builtin_ia32_vpermil2ps256.
36330         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36331         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36332         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
36333         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36334         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36335         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
36336         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
36337         CODE_FOR_xop_vpermil2v8sf3.
36338         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
36339         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
36340         * config/i386/xopintrin.h (_mm_permute2_pd): New.
36341         (_mm256_permute2_pd): New.
36342         (_mm_permute2_ps): New.
36343         (_mm256_permute2_ps): New.
36344
36345 2010-02-15  Nick Clifton  <nickc@redhat.com>
36346
36347         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
36348         boolean parameters.  Use emit_jump_insn when emitting a pop
36349         instruction containing a return insn.
36350         (push): Use 'true' rather than '1' as second parameter to F.
36351         (h8300_expand_prologue): Likewise.
36352         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
36353         (h8300_expand_epilogue): Likewise.
36354
36355 2010-02-15  Richard Guenther  <rguenther@suse.de>
36356
36357         PR middle-end/43068
36358         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
36359         if that is zero.
36360
36361 2010-02-15  Nick Clifton  <nickc@redhat.com>
36362
36363         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
36364         delta.
36365
36366 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
36367
36368         * intl.c (fake_ngettext): New function.
36369         * intl.h (fake_ngettext): Declare.
36370         (ngettext): Define macro.
36371         * collect2.c (notice_translated): New function.
36372         (main): Use notice_translated and ngettext.
36373         * collect2.h (notice_translated): Declare.
36374
36375 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
36376
36377         * reorg.c (delete_computation): Comment fixes.
36378         * caller-save.c (setup_save_areas): Idem.
36379         * sel-sched-dump.c (dump_lv_set): Idem.
36380         * rtl.def: Idem.
36381
36382 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36383
36384         * config/s390/s390.c (s390_sched_init): New function.
36385         (TARGET_SCHED_INIT): Target hook defined.
36386
36387 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
36388             Jack Howarth  <howarth@bromo.med.uc.edu>
36389             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
36390
36391         PR target/42982
36392         Partial revert of unintended change in fix for PR41605.
36393         * config/darwin.h: Fix typo.
36394         * config/darwin9.h: Same.
36395
36396 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36397
36398         * c-pch.c (pch_init): Clear v.
36399
36400 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36401
36402         PR middle-end/42930
36403         * graphite-scop-detection.c (graphite_can_represent_scev): Call
36404         graphite_can_represent_init for MULT_EXPR.
36405
36406 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36407
36408         PR middle-end/42914
36409         PR middle-end/42530
36410         * graphite-sese-to-poly.c (remove_phi): New.
36411         (translate_scalar_reduction_to_array): Call remove_phi.
36412
36413 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36414
36415         PR middle-end/42771
36416         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
36417         * graphite-clast-to-gimple.h (gloog): Update declaration.
36418         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
36419         * graphite-poly.h (struct poly_bb): Add missing comments.
36420         (struct scop): Add poly_scop_p field.
36421         (POLY_SCOP_P): New.
36422         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
36423         * graphite.c (graphite_transform_loops): Build the polyhedral
36424         representation for each scop before code generation.
36425         * sese.c (rename_variables_in_operand): Removed.
36426         (rename_variables_in_expr): Return the renamed expression.
36427         (rename_sese_parameters): New.
36428         * sese.h (rename_sese_parameters): Declared.
36429
36430 2010-02-11  Richard Guenther  <rguenther@suse.de>
36431
36432         PR tree-optimization/42998
36433         * tree-ssa-pre.c (create_expression_by_pieces): Treat
36434         POINTER_PLUS_EXPR properly.
36435
36436 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36437             Changpeng Fang  <changpeng.fang@amd.com>
36438
36439         PR middle-end/40886
36440         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
36441         the cost of an IV candidate when the IV is used in a test against zero.
36442
36443         * gcc.dg/tree-ssa/ivopts-3.c: New.
36444
36445 2010-02-11  Richard Guenther  <rguenther@suse.de>
36446
36447         PR lto/41664
36448         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
36449         pointer-vs-decl case by swapping refs.  Handle some cases
36450         of pointer-vs-decl disambiguations more conservatively.
36451         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
36452         to false after expanding.
36453
36454 2010-02-11  Richard Guenther  <rguenther@suse.de>
36455
36456         PR driver/43021
36457         * gcc.c (process_command): Handle LTO file@offset case more
36458         appropriately.
36459
36460 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36461
36462         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
36463         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
36464         of DEBUG_INSNs.
36465         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
36466
36467         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
36468         if MEM's mode size isn't DWARF2_ADDR_SIZE.
36469         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
36470         Optimize eq/ne comparisons when both arguments are known to be
36471         zero-extended.
36472         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
36473         Don't mask operands unnecessarily if they are known to be already
36474         zero-extended.
36475
36476 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
36477
36478         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
36479         instead of loop.
36480
36481 2010-02-10  Richard Guenther  <rguenther@suse.de>
36482
36483         PR tree-optimization/43017
36484         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
36485         for wrapping signed arithmetic.
36486
36487 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36488
36489         PR debug/43010
36490         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
36491         if no debug info should be emitted for it.
36492
36493 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
36494
36495         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
36496         note when flag_exceptions is set.
36497
36498 2010-02-10  Duncan Sands  <baldrick@free.fr>
36499
36500         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
36501
36502 2010-02-10  Richard Guenther  <rguenther@suse.de>
36503
36504         PR c/43007
36505         * tree.c (get_unwidened): Handle constants.
36506         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
36507
36508 2010-02-10  Martin Jambor  <mjambor@suse.cz>
36509
36510         PR lto/42985
36511         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
36512         check for variable argument counts independently.
36513
36514 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36515
36516         PR target/42841
36517         * config/sh/sh.c (find_barrier): Increase length for non delayed
36518         conditional branches.
36519
36520 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36521
36522         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
36523
36524 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36525
36526         * builtins.c (set_builtin_user_assembler_name): Also handle
36527         ffs if int is smaller than word.
36528
36529 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
36530
36531         PR middle-end/42973
36532         * ira-conflicts.c (get_dup): Remove.
36533         (process_reg_shuffles): Add new parameter.  Use it as an
36534         additional guard for copy generation.
36535         (add_insn_allocno_copies): Rewrite.
36536
36537 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
36538
36539         * common.opt (fsched2-use-traces): Preserved for backward
36540         compatibility.
36541         * doc/invoke.texi: Remove the documentation about option
36542         -fsched2-use-traces.
36543         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
36544         flag_sched2_use_traces.
36545         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
36546         the backward compatibility flag section.
36547
36548 2010-02-09  Richard Guenther  <rguenther@suse.de>
36549
36550         PR tree-optimization/43008
36551         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
36552         make HEAP variables initialized from global memory if they
36553         are not known builtin functions.
36554         (find_func_aliases): Adjust.
36555
36556 2010-02-09  Richard Guenther  <rguenther@suse.de>
36557
36558         PR tree-optimization/43000
36559         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
36560         arithmetic manually.
36561
36562 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
36563
36564         PR tree-optimization/42931
36565         * tree-loop-linear.c (try_interchange_loops): Don't call
36566         double_int_mul if estimated_loop_iterations failed.
36567
36568 2010-02-08  Martin Jambor  <mjambor@suse.cz>
36569
36570         PR middle-end/42898
36571         * tree-sra.c (build_accesses_from_assign): Do not mark in
36572         should_scalarize_away_bitmap if stmt has volatile ops.
36573         (sra_modify_assign): Do not process assigns piecemeal if if stmt
36574         has volatile ops.
36575
36576 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
36577
36578         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
36579
36580 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
36581
36582         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
36583         before the pattern.
36584
36585 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
36586
36587         PR middle-end/42946
36588         * df-core.c (df_finish_pass): Change type of saved_flags to int.
36589
36590 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36591
36592         PR middle-end/42988
36593         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
36594         to unknown_dependence.
36595         (graphite_legal_transform_dr): Handle the unknown_dependence.
36596         (graphite_carried_dependence_level_k): Same.
36597
36598 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36599
36600         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
36601
36602 2010-02-07  Richard Guenther  <rguenther@suse.de>
36603
36604         PR middle-end/42991
36605         * expr.c (get_inner_reference): Always initialize *pbitsize.
36606
36607 2010-02-07  Richard Guenther  <rguenther@suse.de>
36608
36609         PR middle-end/42956
36610         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
36611         new ARRAY_REFs on variable size element or minimal index arrays.
36612         Complete.
36613         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
36614         gimple_fold_indirect_ref.
36615
36616 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
36617
36618         PR target/42957
36619         * arm.c (arm_override_options): Just return if the user has specified
36620         an invalid fpu name.
36621
36622 2010-02-03  Jason Merrill  <jason@redhat.com>
36623
36624         PR c++/42870
36625         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
36626         i386_pe_maybe_record_exported_symbol.
36627
36628 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
36629
36630         PR target/42924
36631         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36632         (pa_delegitimize_address): New function.
36633
36634 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
36635
36636         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
36637         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
36638
36639 2010-02-05  Richard Guenther  <rguenther@suse.de>
36640
36641         PR lto/42762
36642         * lto-streamer-in.c (get_resolution): Deal with references
36643         to undefined functions.
36644
36645 2010-02-05  Richard Guenther  <rguenther@suse.de>
36646
36647         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
36648         (fold_const_aggregate_ref): Likewise.
36649         (ccp_fold_stmt): Substitute loads.
36650         (maybe_fold_reference): Verify types before substituting.
36651         Unshare properly.
36652         (fold_gimple_assign): Unshare properly.
36653         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
36654
36655 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
36656
36657         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
36658         for rs6000_gen_cell_microcode.
36659
36660 2010-02-04  Richard Guenther  <rguenther@suse.de>
36661
36662         PR rtl-optimization/42952
36663         * dse.c (const_or_frame_p): Remove MEM handling.
36664
36665 2010-02-04  Nick Clifton  <nickc@redhat.com>
36666
36667         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
36668         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
36669         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
36670         (mn10300_asm_output_mi_thunk): New function.
36671         (mn10300_can_output_mu_thunk): New function.
36672         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
36673         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
36674         (FUNCTION_ARG): Delete incorrect comment.
36675
36676 2010-02-03  Jason Merrill  <jason@redhat.com>
36677
36678         PR c++/40138
36679         * fold-const.c (operand_equal_p): Handle erroneous types.
36680
36681 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
36682
36683         * config/h8300/h8300.md (can_delay): Fix attibute condition.
36684
36685 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
36686
36687         PR rtl-optimization/42941
36688         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
36689         of xmalloc.
36690
36691 2010-02-03  Jason Merrill  <jason@redhat.com>
36692
36693         PR c++/35652
36694         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
36695
36696 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
36697
36698         PR debug/42896
36699         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
36700         (cselib_reset_table): Renamed from...
36701         (cselib_reset_table_with_next_value): ... this.
36702         (cselib_get_next_uid): Renamed from...
36703         (cselib_get_next_unknown_value): ... this.
36704         * cselib.c (next_uid): Renamed from...
36705         (next_unknown_value): ... this.
36706         (cselib_clear_table): Adjust.
36707         (cselib_reset_table): Adjust.  Renamed from...
36708         (cselib_reset_table_with_next_value): ... this.
36709         (cselib_get_next_uid): Adjust.  Renamed from...
36710         (cselib_get_next_unknown_value): ... this.
36711         (get_value_hash): Use hash.
36712         (cselib_hash_rtx): Likewise.
36713         (new_cselib_val): Adjust.  Set and dump uid.
36714         (cselib_lookup_mem): Pass next_uid as hash.
36715         (cselib_subst_to_values): Likewise.
36716         (cselib_log_lookup): Dump uid.
36717         (cselib_lookup): Pass next_uid as hash.  Adjust.
36718         (cselib_process_insn): Adjust.
36719         (cselib_init): Initialize next_uid.
36720         (cselib_finish): Adjust.
36721         (dump_cselib_table): Likewise.
36722         * dse.c (canon_address): Dump value uid.
36723         * print-rtl.c (print_rtx): Print value uid.
36724         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
36725         (dvuid): New type.
36726         (dv_uid): New function, sort of renamed from...
36727         (dv_htab_hash): ... this, reimplemented in terms of it and...
36728         (dv_uid2hash): ... this.  New.
36729         (variable_htab_eq): Drop excess assertions.
36730         (tie_break_pointers): Removed.
36731         (canon_value_cmp): Compare uids.
36732         (variable_post_merge_New_vals): Print uids.
36733         (vt_add_function_parameters): Adjust.
36734         (vt_initialize): Reset table.  Adjust.
36735
36736 2010-02-03  Richard Guenther  <rguenther@suse.de>
36737
36738         PR tree-optimization/42944
36739         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
36740         (call_may_clobber_ref_p_1): Likewise.  Properly handle
36741         malloc and calloc clobbering errno.
36742
36743 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
36744
36745         * doc/invoke.texi: Fix name of sched1 dump.
36746
36747         * opts.c (decode_options): Set flag_tree_switch_conversion
36748         only conditionally on optimize >= 2.
36749
36750         * gcse.c: Assorted comment fixes in pass description.
36751
36752 2010-02-03  Anthony Green  <green@moxielogic.com>
36753
36754         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
36755         nop padding in order to maintain alignment of storage location of
36756         target function address.
36757         (moxie_trampoline_init): Store target function address at newly
36758         aligned location.
36759         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
36760         to 32.
36761         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
36762
36763 2010-02-03  Richard Guenther  <rguenther@suse.de>
36764
36765         PR middle-end/42927
36766         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
36767
36768 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36769
36770         * config.gcc: Reenable check for obsolete targets.
36771         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
36772         mips-sgi-irix6.[0-4]*.
36773
36774 2010-02-02  Nick Clifton  <nickc@redhat.com>
36775
36776         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
36777         constant size of 4 as being the same as 0.
36778         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
36779         can take values in the range 0..4.
36780
36781 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
36782
36783         PR java/41991
36784         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
36785         as _darwin10_Unwind_FindEnclosingFunction().
36786         * libgcc-libsystem.ver: New.
36787
36788 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
36789
36790         PR target/41399
36791         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
36792         implicitly set registers.
36793
36794 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
36795
36796         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
36797         (arm_override_options): Allow automatic selection of the thread
36798         pointer register if thumb2.
36799         (legitimize_pic_address): Improve code sequences for Thumb2.
36800         (arm_call_tls_get_addr): Likewise.
36801         (legitimize_tls_address): Likewise.
36802         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
36803         (pic_load_addr_32bit): ... this.  New named pattern.
36804         * thumb2.md (pic_load_addr_thumb2): Delete.
36805         (pic_load_dot_plus_four): Delete.
36806         (tls_load_dot_plus_four): New named pattern.
36807
36808 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36809
36810         PR libgomp/29986
36811         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
36812         Document fix for TLS bug.
36813
36814 2010-01-31  Richard Guenther  <rguenther@suse.de>
36815
36816         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
36817         conservatively correct.
36818
36819 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36820
36821         PR target/42850
36822         Revert:
36823         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36824
36825         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
36826
36827 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
36828
36829         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
36830
36831 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
36832
36833         * config.gcc: Adjust order of makefile fragments for mingw targets.
36834
36835 2010-01-31  Richard Guenther  <rguenther@suse.de>
36836
36837         PR middle-end/42898
36838         * gimplify.c (gimplify_init_constructor): For volatile LHS
36839         initialize a temporary.
36840
36841 2010-01-31  Matthias Klose  <doko@ubuntu.com>
36842
36843         * configure.ac: Fix __stack_chk_fail check for cross builds configured
36844         --with-headers
36845         * configure: Regenerate.
36846
36847 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
36848
36849         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
36850         the same alias set and their sizes different constantness.
36851         (aliasing_component_refs_p): Revert 2009-10-24 change.
36852
36853 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36854
36855         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
36856         unused.
36857
36858 2010-01-29  Richard Guenther  <rguenther@suse.de>
36859
36860         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
36861         Assert we successfully updated the call.
36862
36863 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
36864
36865         PR rtl-optimization/42889
36866         * df.h (df_set_bb_dirty_nonlr): New prototype.
36867         * df-core.c (df_set_bb_dirty_nonlr): New function.
36868         * df-scan.c (df_insn_rescan): Call it instead of
36869         df_set_bb_dirty for DEBUG_INSNs.
36870
36871 2010-01-29  Richard Guenther  <rguenther@suse.de>
36872
36873         PR middle-end/37448
36874         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
36875         quadratic behavior in most cases.
36876
36877 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
36878
36879         PR target/42891
36880         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
36881         in the call to gen_x86_movsicc_0_m1.
36882
36883 2010-01-28  Richard Guenther  <rguenther@suse.de>
36884
36885         PR tree-optimization/42871
36886         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
36887
36888 2010-01-28  Richard Guenther  <rguenther@suse.de>
36889
36890         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
36891         into call arguments.
36892
36893 2010-01-28  Richard Guenther  <rguenther@suse.de>
36894
36895         PR middle-end/42883
36896         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
36897         the forwarder if the destination is an EH landing pad.
36898
36899 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
36900
36901         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
36902         block list passed to gimple_duplicate_sese_tail.
36903         (parallelize_loops): Avoid parallelization when the function
36904         has_nonlocal_label.
36905         Avoid parallelization when the preheader is IRREDUCIBLE.
36906         Try to optimize when estimated_loop_iterations_int is unresolved.
36907         Add the loop's location to the dump file.
36908         * tree-cfg.c (add_phi_args_after_redirect): Remove.
36909         (gimple_duplicate_sese_tail): Remove the check for the latch.
36910         Redirect nexits to the exit block.
36911         Remove handling of the incoming edges to the latch.
36912         Redirect the backedge from the copied latch to the exit bb.
36913
36914 2010-01-28  Michael Matz  <matz@suse.de>
36915
36916         PR target/42881
36917         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
36918         Wrap force_reg into a sequence, emit it before user.
36919
36920 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
36921
36922         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
36923         (arm_rev): New.
36924         (arm_legacy_rev): Likewise.
36925         (thumb_legacy_rev): Likewise.
36926
36927 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36928
36929         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
36930         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
36931         on MEM's address failed, try avoid_constant_pool_reference and
36932         recurse if it returned something different.
36933         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
36934         address, try avoid_constant_pool_reference and recurse if it
36935         returned something different.
36936         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
36937         address and avoid_constant_pool_reference returned something
36938         different, don't set have_address.
36939
36940 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
36941
36942         PR debug/42861
36943         * var-tracking.c (val_store): Add modified argument, obey it.
36944         Adjust callers.
36945         (count_uses): Move down logging of main.
36946         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
36947         don't need resolution.
36948         (emit_notes_in_bb): Likewise.
36949
36950 2010-01-27  Richard Guenther  <rguenther@suse.de>
36951
36952         PR middle-end/42878
36953         * tree-inline.c (remap_decl): Delay remapping of SSA name
36954         default definitions until we need them.
36955
36956 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36957
36958         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36959         (rs6000_delegitimize_address): New function.
36960
36961         * config/s390/s390.c (s390_delegitimize_address): Call
36962         delegitimize_mem_from_attrs.
36963
36964         PR middle-end/42874
36965         * tree-inline.c (cannot_copy_type_1): Removed.
36966         (copy_forbidden): Don't forbid copying of functions containing
36967         records/unions with variable length fields.
36968
36969 2010-01-27  Christian Bruel  <christian.bruel@st.com>
36970
36971         Revert:
36972         PR target/42841
36973         * config/sh/sh.c (find_barrier): Increase length for non delayed
36974         conditional branches.
36975
36976 2010-01-27  Matthias Klose  <doko@ubuntu.com>
36977
36978         * configure.ac (gnu-unique-object): Fix ldd version check.
36979         * configure: Regenerate.
36980
36981 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36982
36983         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
36984         HAVE_GNU_AS value.
36985         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
36986         Test for HAVE_GNU_AS value.
36987
36988 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36989
36990         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
36991         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
36992         INT64_TYPE): Define.
36993         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
36994         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
36995         INT_LEAST64_TYPE): Define.
36996         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
36997         UINT_LEAST64_TYPE): Define.
36998         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
36999         INT_FAST64_TYPE): Define.
37000         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
37001         UINT_FAST64_TYPE): Define.
37002         (INTMAX_TYPE, UINTMAX_TYPE): Define.
37003         (INTPTR_TYPE, UINTPTR_TYPE): Define.
37004         (SIG_ATOMIC_TYPE): Define.
37005
37006 2010-01-26  Richard Guenther  <rguenther@suse.de>
37007
37008         * df-scan.c (df_scan_set_bb_info): Remove assert.
37009         (df_insn_rescan_debug_internal): Merge asserts.
37010         (df_install_ref): Likewise.
37011         (df_mark_reg): Use bitmap_set_range.
37012         (df_hard_reg_used_p): Remove assert.
37013         (df_hard_reg_used_count): Likewise.
37014
37015 2010-01-26  Richard Guenther  <rguenther@suse.de>
37016
37017         PR rtl-optimization/42685
37018         * web.c (web_main): Ignore DEBUG_INSNs.
37019
37020 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
37021
37022         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
37023
37024         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
37025         Fix types of fndecl and arglist parameters.
37026
37027 2010-01-26  Richard Guenther  <rguenther@suse.de>
37028
37029         PR middle-end/42806
37030         * tree-eh.c (unsplit_eh): Skip debug insns.
37031
37032 2010-01-26  Richard Guenther  <rguenther@suse.de>
37033
37034         PR tree-optimization/42250
37035         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
37036
37037 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
37038
37039         PR fortran/42866
37040         * omp-low.c (expand_omp_sections): Only use single_pred if
37041         l2_bb is single_pred_p.
37042
37043 2010-01-25  Christian Bruel  <christian.bruel@st.com>
37044
37045         PR target/42841
37046         * config/sh/sh.c (find_barrier): Increase length for non delayed
37047         conditional branches.
37048         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
37049
37050 2010-01-24  David S. Miller  <davem@davemloft.net>
37051
37052         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
37053         define if not using GAS.
37054         * config/sparc/sparc.c (sparc_elf_asm_named_section):
37055         Likewise.  Delete SECTION_MERGE code, which is only applicable
37056         when using GAS.
37057
37058 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
37059
37060         PR c++/42748
37061         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
37062         mangling of va_list in system headers.
37063
37064 2010-01-23  Toon Moene  <toon@moene.org>
37065
37066         * tree-predcom.c (combine_chains): Return NULL, not false.
37067
37068 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
37069
37070         * tree-loop-distribution.c (distribute_loop): Fix declaration and
37071         initialization of variable res to agree with return type.
37072
37073 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
37074
37075         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
37076         * tree-sra.c: Add include of expr.h.
37077
37078 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
37079
37080         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
37081         insert the debug stmt on the single non-EH edge from the stmt.
37082
37083 2010-01-22  Richard Henderson  <rth@redhat.com>
37084
37085         PR tree-opt/42833
37086         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
37087         the RHS until after generate_subtree_copies has insertted its
37088         code before the current statement.
37089
37090 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
37091
37092         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
37093
37094         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
37095
37096 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37097
37098         PR tree-optimization/42585
37099         * tree-sra.c (struct access): New field grp_total_scalarization.
37100         (dump_access): Dump the new field.
37101         (should_scalarize_away_bitmap): New variable.
37102         (cannot_scalarize_away_bitmap): Likewise.
37103         (sra_initialize): Allocate new bitmaps.
37104         (sra_deinitialize): Free new bitmaps.
37105         (create_access_1): New function.
37106         (create_access): Parts moved to create_access_1.
37107         (type_consists_of_records_p): New function.
37108         (completely_scalarize_record): Likewise.
37109         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
37110         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
37111         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
37112         access.
37113         (analyze_all_variable_accesses): Completely scalarize small eligible
37114         records.
37115
37116 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37117
37118         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
37119
37120 2010-01-21  Andrew Haley  <aph@redhat.com>
37121
37122         * gcc.c (process_command): Move lang_specific_driver before
37123         setting cc_libexec_prefix.
37124
37125 2010-01-21  Richard Guenther  <rguenther@suse.de>
37126
37127         PR middle-end/19988
37128         * fold-const.c (negate_expr_p): Pretend only negative
37129         real constants are easily negatable.
37130
37131 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
37132             Jason Merrill  <jason@redhat.com>
37133
37134         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
37135         (TYPE_TRANSPARENT_AGGR): this, for union and record.
37136         * calls.c (initialize argument_information): Handle it.
37137         * c-common.c (handle_transparent_union_attribute): Use new name.
37138         * c-decl.c (finish_struct): Ditto.
37139         * c-typeck.c (type_lists_compatible_p): Ditto.
37140         (convert_for_assignment): Use new name and also handle record.
37141         * function.c (aggregate_value_p): Handle it.
37142         (pass_by_reference): Ditto.
37143         (assign_parm_data_types): Ditto.
37144         * print-tree.c (print_node): Ditto.
37145         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
37146         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
37147         * tree.c (first_field): New fn.
37148
37149 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
37150
37151         PR target/42818
37152         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
37153         even when linking statically, for now.
37154
37155 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37156
37157         PR debug/42715
37158         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
37159         without a cselib val.
37160         (count_uses): Accept MO_VAL_SET with no val on stores.
37161         (add_stores): Likewise.
37162
37163 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37164
37165         * var-tracking.c (check_value_val): Add a compile time assertion.
37166         (dv_is_decl_p): Simplify.
37167         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
37168         gcc_assert if ENABLE_CHECKING.
37169
37170 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37171
37172         PR debug/42782
37173         * var-tracking.c: Include tree-flow.h.
37174         (mem_dies_at_call): New.
37175         (dataflow_set_preserve_mem_locs): Use it.
37176         (dataflow_set_remove_mem_locs): Likewise.
37177         (dump_var): Renamed from dump_variable.  Adjust all callers.
37178         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
37179         * Makefile.in (var-tracking.o): Adjust deps.
37180
37181 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
37182
37183         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
37184
37185 2010-01-20  Richard Guenther  <rguenther@suse.de>
37186
37187         PR tree-optimization/42717
37188         * tree-ssa-dce.c (get_live_post_dom): Remove.
37189         (forward_edge_to_pdom): Take an arbitrary edge to copy
37190         degenerate PHI args from.
37191         (remove_dead_stmt): Use the first post-dominator even if it
37192         does not contain live statements as redirection destination.
37193
37194 2010-01-20  Richard Guenther  <rguenther@suse.de>
37195
37196         * tree-inline.c (estimate_num_insns): Handle EH builtins.
37197
37198 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37199
37200         * sel-sched.c (create_speculation_check): Remove set but not used
37201         variable twin.
37202         (try_transformation_cache): Remove set but not used variable ds.
37203         (calculate_privileged_insns): Remove set but not used variables
37204         cur_insn and min_spec_insn.
37205         (find_best_expr): Remove set but not used variable avail_n.
37206         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
37207         variable e.
37208         * cgraphunit.c (assemble_thunk): Remove set but not used variable
37209         false_label.
37210         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
37211         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
37212         new_scop_exit_edge.
37213
37214 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
37215
37216         PR bootstrap/42786
37217         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
37218         cpu types.  Add support for *-sse3 cpu types.
37219         (x86_64-*-*): Ditto.
37220
37221 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37222
37223         PR middle-end/42803
37224         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
37225         argument, call initializer_constant_valid_p_1 instead of
37226         initializer_constant_valid_p, pass CACHE to it, return NULL
37227         immediately if first call returns NULL.
37228         (initializer_constant_valid_p_1): New function.
37229         (initializer_constant_valid_p): Use it.
37230
37231 2010-01-20  Thomas Quinot  <quinot@adacore.com>
37232
37233         * tree.def (PLACEHOLDER_EXPR): Fix comment.
37234
37235 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37236
37237         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
37238         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
37239         (loc_list_from_tree): Don't handle unsigned division.  Handle
37240         signed modulo using DW_OP_{over,over,div,mul,minus}.
37241         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
37242         modulo instead of signed.
37243
37244 2010-01-20  DJ Delorie  <dj@redhat.com>
37245
37246         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
37247         (Fpa): Pass it
37248         (h8300_emit_stack_adjustment): Propogate it.
37249         (push): Pass it.
37250         (h8300_expand_prologue): Likewise.
37251         (h8300_expand_epilogue): Likewise.
37252
37253 2010-01-19  Michael Matz  <matz@suse.de>
37254
37255         PR tree-optimization/41783
37256         * tree-data-ref.c (toplevel): Include flags.h.
37257         (dump_data_dependence_relation):  Also dump the inputs if the
37258         result will be unknown.
37259         (split_constant_offset_1): Look through some conversions.
37260         * tree-predcom.c (determine_roots_comp): Restart a new chain if
37261         the offset from last element is too large.
37262         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
37263         (reassociate_to_the_same_stmt): Handle vector registers.
37264         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
37265         (e.g. conversions).
37266         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
37267         wide_prolog_niters argument, emit widening instructions.
37268         (vect_do_peeling_for_alignment): Adjust caller, use widened
37269         variant of the iteration cound.
37270         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
37271
37272 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37273
37274         PR target/38697
37275         * config/arm/neon-testgen.m (emit_automatics): New parameter
37276         features. Adjust for Fixed_return_reg feature.
37277         (test_intrinsic): Call emit_automatics with new feature.
37278         * config/arm/neon.ml: Update copyright years.
37279         (features): New Fixed_return_reg feature.
37280         (ops): Update feature for Vget_low.
37281
37282 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
37283
37284         PR tree-optimization/42719
37285         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
37286         stmt uses.
37287
37288         PR debug/42728
37289         * fwprop.c (all_uses_available_at): Return false if def_set dest
37290         is a REG that is used in def_insn.
37291
37292 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
37293
37294         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
37295
37296         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
37297         Add argument names.
37298
37299         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
37300
37301         * target.h (struct gcc_target) <secondary_reload>: Change type
37302         of last argument to secondary_reload_info *.
37303
37304 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
37305
37306         PR target/42774
37307         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
37308         memory references with unaligned offsets.  Remove CQImode handling.
37309         (unaligned_memory_operand): Return 1 for memory references with
37310         unaligned offsets.  Remove CQImode handling.
37311
37312 2010-01-18  Richard Guenther  <rguenther@suse.de>
37313
37314         PR middle-end/39954
37315         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
37316         builtin calls.
37317
37318 2010-01-18  Richard Guenther  <rguenther@suse.de>
37319
37320         PR tree-optimization/42781
37321         * tree-ssa-structalias.c (find_what_var_points_to): Skip
37322         restrict processing only if the original variable was artificial.
37323
37324 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
37325
37326         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
37327         find number of popped argument bytes.
37328
37329         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
37330         Fix the text that describes the return value for invalid insns.
37331
37332         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
37333
37334         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
37335         Clarify what 'cost of the -dependence' is.  Fix quoting.
37336
37337         * toplev.c (default_get_pch_validity): Rename argument to "sz".
37338         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
37339
37340 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
37341
37342         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
37343         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
37344
37345 2010-01-17  Richard Guenther  <rguenther@suse.de>
37346
37347         PR middle-end/42248
37348         * function.c (split_complex_args): Take a VEC to modify.
37349         (assign_parms_augmented_arg_list): Build a VEC instead of
37350         a chain of PARM_DECLs.
37351         (assign_parms_unsplit_complex): Take a VEC of arguments.
37352         Do not fixup unmodified parms.
37353         (assign_parms): Deal with the VEC.
37354         (gimplify_parameters): Likewise.
37355
37356 2010-01-17  Richard Guenther  <rguenther@suse.de>
37357
37358         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
37359         node existence check.
37360         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
37361         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
37362         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
37363         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
37364         (gimple_execute_on_growing_pred): Likewise.
37365
37366 2010-01-17  Richard Guenther  <rguenther@suse.de>
37367
37368         PR tree-optimization/42773
37369         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
37370         (compute_antic_aux): Likewise.
37371         (compute_partial_antic_aux): Likewise.
37372
37373 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
37374
37375         PR debug/42767
37376         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
37377         and US_TRUNCATE.
37378
37379 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
37380
37381         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
37382         appearance.
37383
37384         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
37385         Fix markup for strict argument.
37386
37387         (TARGET_SCHED_REORDER2): Fix argument types.
37388
37389         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
37390         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
37391
37392         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
37393         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
37394
37395         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
37396         Add argument name.
37397
37398         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
37399         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
37400         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
37401         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
37402         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
37403
37404         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
37405
37406         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
37407
37408         (TARGET_ASM_RELOC_RW_MASK): Add return type.
37409         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
37410
37411         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
37412
37413         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
37414         Use prototype.
37415
37416         (TARGET_ASM_NAMED_SECTION): Fix argument list.
37417
37418         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
37419         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
37420
37421         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
37422
37423         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
37424
37425         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
37426         referring to it.  Fix language.
37427
37428         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
37429
37430         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
37431
37432         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
37433
37434         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
37435
37436         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
37437         '@var{stream}.  Remove stray 'and'.
37438
37439         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
37440
37441         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
37442
37443         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
37444
37445         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
37446         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
37447
37448         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
37449         Fix description of return value.
37450         Rename argument "sz" to "len."
37451
37452         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
37453         Clarify meaning of 'true' return value.
37454
37455         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
37456
37457         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
37458         rep_mode versus mode_rep.
37459
37460         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
37461
37462         (TARGET_BUILTIN_DECL): Fix name.
37463
37464         (TARGET_COMMUTATIVE_P): Fix type of first argument.
37465
37466         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
37467
37468         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
37469
37470         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
37471
37472         (TARGET_RELAXED_ORDERING): Use @deftypevr.
37473
37474         (TARGET_GET_DRAP_RTX): Note that this is a hook.
37475         Clarify language.
37476
37477         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
37478         Rename argument tm_fn to md_fn.
37479
37480         (TARGET_OPTION_PRINT): Fix argument list.
37481
37482 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
37483
37484         PR target/42664
37485         * config/i386/i386.c (ix86_fixup_binary_operands):
37486         Revert FMA4 fixup of operands.
37487
37488 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37489
37490         PR other/42525
37491         * Makefile.in (write_entries_to_file, install-plugin):
37492         Use \012 instead of \n with tr.
37493
37494 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
37495
37496         * configure.ac (HAVE_AS_REF): New C macro.
37497         * configure: Regenerate.
37498         * config.in: Likewise.
37499         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
37500         if HAVE_AS_REF.
37501         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
37502         if HAVE_AS_REF.
37503
37504 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
37505
37506         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
37507
37508         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
37509
37510         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
37511
37512         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
37513
37514         (TARGET_IN_SMALL_DATA_P): Fix argument type.
37515
37516         (TARGET_BINDS_LOCAL_P): Fix argument type.
37517
37518         (TARGET_ASM_FILE_END): Use prototype.
37519
37520         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
37521
37522         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
37523
37524         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
37525
37526         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
37527
37528         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
37529         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
37530
37531         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
37532         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
37533
37534         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
37535         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
37536         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
37537         (TARGET_ADDR_SPACE_CONVERT): Likewise.
37538
37539         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
37540
37541         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
37542
37543         (TARGET_INIT_BUILTINS): Use prototype.
37544
37545         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
37546         Put 'const char *' in braces.  Fix parameter types.
37547         (TARGET_INVALID_CONVERSION): Fix parameter types.
37548         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
37549         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
37550
37551         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
37552         Fix argument type.
37553
37554         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
37555
37556         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
37557
37558 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
37559
37560         * doc/tm.texi (TARGET_HELP): Fix return type.
37561
37562         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
37563         in braces.  Fix argument types.
37564
37565         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
37566
37567         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
37568
37569         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
37570
37571         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
37572         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
37573
37574         (TARGET_MANGLE_TYPE): Fix argument types.
37575
37576         (TARGET_IRA_COVER_CLASSES): Use prototype.
37577
37578         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
37579
37580         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
37581
37582         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
37583
37584         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
37585
37586         (TARGET_CALLEE_COPIES): Fix argument types.
37587
37588         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
37589
37590         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
37591
37592         (TARGET_FUNCTION_VALUE): Fix argument types.
37593
37594         (TARGET_RETURN_IN_MSB): Fix argument type.
37595
37596         (TARGET_RETURN_IN_MEMORY): Fix argument types.
37597
37598         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
37599
37600         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
37601
37602         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
37603         agree with return type.
37604
37605         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
37606
37607 2010-01-15  Jing Yu  <jingyu@google.com>
37608
37609         PR rtl-optimization/42691
37610         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
37611         a pseudo to a constant and are merged, and adjust comments.
37612
37613 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
37614
37615         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
37616
37617 2010-01-15  Richard Guenther  <rguenther@suse.de>
37618
37619         PR middle-end/42739
37620         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
37621         labels of computed or non-local gotos to the destination.
37622         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
37623         landing pad label is the first label.
37624
37625 2010-01-15  Richard Guenther  <rguenther@suse.de>
37626
37627         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
37628
37629 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
37630
37631         PR target/42747
37632         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
37633         to allow generation of the xssqrtdp instruction on power7.
37634         (sqrtdf2_fpr): Ditto.
37635
37636 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37637
37638         PR middle-end/42674
37639         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
37640         functions with noreturn attribute.
37641
37642         PR c++/42608
37643         * varasm.c (declare_weak): Add weak attribute to decl if it
37644         doesn't have one already.
37645         (assemble_external): Only add decls to weak_decls if they also
37646         have weak attribute.
37647
37648 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
37649
37650         * var-tracking.c (var_reg_delete): Don't delete the association
37651         between REGs and values or one-part variables if the register
37652         isn't clobbered.
37653
37654 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37655
37656         PR debug/42657
37657         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
37658         because its first operand is a non-localized variable.
37659
37660 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37661
37662         PR tree-optimization/42706
37663         * tree-sra.c (encountered_recursive_call): New variable.
37664         (encountered_unchangable_recursive_call): Likewise.
37665         (sra_initialize): Initialize both new variables.
37666         (callsite_has_enough_arguments_p): New function.
37667         (scan_function): Call decl and flags check only for IPA-SRA, check
37668         whether there is a recursive call and whether it has enough arguments.
37669         (all_callers_have_enough_arguments_p): New function.
37670         (convert_callers): Look for recursive calls only when
37671         encountered_recursive_call is set.
37672         (ipa_early_sra): Bail out either if
37673         !all_callers_have_enough_arguments_p or
37674         encountered_unchangable_recursive_call.
37675
37676 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37677
37678         * sel-sched.c: Add 2010 to copyright years.
37679         * sel-sched-ir.c: Likewise.
37680         * sel-sched-ir.h: Likewise.
37681
37682 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37683
37684         PR tree-optimization/42714
37685         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
37686         constructors specially.
37687
37688 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37689
37690         * config/i386/drivers-i386.c (detect_caches_intel):
37691         Add l2sizekb parameter and fill in.
37692         (host_detect_local_cpu): Add l2sizekb, fill in.
37693         Add Atom small cache heuristic.
37694
37695 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37696
37697         * config/i386/drivers-i386.c (detect_caches_cpuid4):
37698         Add level3 parameter and fill in.
37699         (detect_caches_intel): Handle level3 cache.
37700
37701 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37702
37703         * config/i386/drivers-i386.c (host_detect_local_cpu):
37704         Fix core duo detection.
37705
37706 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37707
37708         * config/i386/drivers-i386.c (host_detect_local_cpu):
37709         Fix Atom detection.
37710
37711 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37712
37713         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
37714         (rs6000_variable_issue_1): this.  Use...
37715         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
37716
37717 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37718
37719         * sel-sched-ir.c (sel_restore_other_notes): Rename to
37720         sel_restore_notes.  Update all callers.  Call reemit_notes
37721         for all insns.
37722
37723 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37724
37725         PR rtl-optimization/42246
37726         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
37727         loops.
37728
37729 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37730
37731         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
37732         all successors is the same as number of successors in current region.
37733
37734 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37735
37736         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
37737         to rename is not separable.  Otherwise check that its LHS is not NULL.
37738
37739 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37740
37741         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
37742
37743 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37744
37745         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
37746         available registers when failed to discover LHS register class.
37747         Fix indentation.  Update comment.
37748
37749 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37750             Alexander Monakov  <amonakov@ispras.ru>
37751
37752         PR rtl-optimization/42389
37753         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
37754         to can_issue_more.
37755         (advance_state_on_fence): Likewise.
37756         (sel_target_adjust_priority): Print debug output only when
37757         sched_verbose >= 4, not 2.
37758         (get_expr_cost): Do not issue all unique insns on the next cycle.
37759         (fill_insns): Initialize can_issue_more from the value saved
37760         with the fence.
37761         * sel-sched-ir.c (flist_add): New parameter issue_more.
37762         Init FENCE_ISSUE_MORE with it.
37763         (merge_fences): Likewise.
37764         (init_fences): Update call to flist_add.
37765         (add_to_fences, add_clean_fence_to_fences)
37766         (add_dirty_fence_to_fences): Likewise.
37767         (move_fence_to_fences): Update call to merge_fences.
37768         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
37769         sched groups.
37770         * sel-sched-ir.h (struct _fence): New field issue_more.
37771         (FENCE_ISSUE_MORE): New accessor macro.
37772
37773 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37774
37775         PR rtl-optimization/42388
37776         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
37777         that have no predecessors nor successors.  Do not call move_bb_info
37778         for empty blocks outside of current region.
37779
37780 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37781
37782         PR rtl-optimization/42294
37783         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
37784         * sel-sched.c (move_exprs_to_boundary): Transitively add all
37785         originators' originators.
37786
37787 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37788
37789         PR rtl-optimization/39453
37790         PR rtl-optimization/42246
37791         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
37792         for pipelining_p.
37793         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
37794
37795 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37796             Alexander Monakov  <amonakov@ispras.ru>
37797
37798         PR middle-end/42245
37799         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
37800         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
37801         argument.  Update all callers.
37802         (tidy_control_flow): ... and here.  Recompute topological order
37803         of basic blocks in region if necessary.
37804         (sel_redirect_edge_and_branch): Change return type.  Return true
37805         if topological order might have been invalidated.
37806         (purge_empty_blocks): Export and move from...
37807         * sel-sched.c (purge_empty_blocks): ... here.
37808         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
37809         (maybe_tidy_empty_bb): Delete prototype.
37810         (purge_empty_blocks): Declare.
37811
37812 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37813
37814         PR rtl-optimization/42249
37815         * sel-sched.c (try_replace_dest_reg): When chosen register
37816         and original register is the same, do not bail out early, but
37817         still check all original insns for validity of replacing destination
37818         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
37819         in this case.
37820
37821 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37822
37823         PR c/42721
37824         Port from no-undefined-overflow branch:
37825         2009-03-09  Richard Guenther  <rguenther@suse.de>
37826
37827         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
37828
37829 2010-01-14  Richard Guenther  <rguenther@suse.de>
37830
37831         PR lto/42665
37832         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
37833
37834 2010-01-14  Ira Rosen  <irar@il.ibm.com>
37835
37836         PR tree-optimization/42709
37837         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
37838         as scalar type in creation of constant vector operand.
37839
37840 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37841
37842         PR testsuite/42414
37843         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
37844         (check-parallel-%): Match `testsuite' directory component only
37845         at the end.
37846
37847 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
37848
37849         PR translation/39521
37850         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
37851         strings with _().
37852
37853 2010-01-13  Richard Guenther  <rguenther@suse.de>
37854
37855         PR tree-optimization/42730
37856         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
37857         offset zero.
37858
37859 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
37860
37861         PR target/pr42542
37862         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
37863         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
37864         them signed.
37865
37866 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
37867
37868         * config/bfin/libgcc-bfin.ver: Regenerate based on current
37869         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
37870         ___umulsi3_highpart.
37871
37872         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
37873         rather than schedule_insns if the pass is enabled.
37874
37875 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37876
37877         PR tree-optimization/42704
37878         * tree-sra.c (sra_modify_assign): Do not delete assignments to
37879         SSA_NAMEs.
37880
37881 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37882
37883         PR tree-optimization/42703
37884         * tree-sra.c (analyze_access_subtree): Check that we can build a
37885         reference to the original data within the aggregate.
37886
37887 2010-01-13  Richard Guenther  <rguenther@suse.de>
37888
37889         PR tree-optimization/42705
37890         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
37891
37892 2010-01-13  Richard Guenther  <rguenther@suse.de>
37893
37894         PR middle-end/42716
37895         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
37896
37897 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
37898
37899         PR debug/41371
37900         * var-tracking.c (values_to_unmark): New variable.
37901         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
37902         values_to_unmark vector.  Moved body to...
37903         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
37904         instead queue it into values_to_unmark vector.
37905         (vt_find_locations): Free values_to_unmark vector.
37906
37907 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
37908
37909         * config/s390/s390.c (override_options): Set
37910         default of max-pending-list-length to 256
37911
37912 2010-01-13  Richard Guenther  <rguenther@suse.de>
37913
37914         PR lto/42678
37915         * tree-pass.h (PROP_gimple_lcx): New.
37916         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
37917         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
37918         before the final cleanup_eh.
37919         (dump_properties): Dump PROP_gimple_lcx.
37920         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
37921         (tree_lower_complex_O0): Remove.
37922         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
37923         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
37924         tree_lower_complex, schedule TODO_update_ssa.
37925         * lto-streamer-out.c (output_function): Stream the functions
37926         properties.
37927         * lto-streamer-in.c (input_function): Likewise.
37928         (lto_read_body): Do not override them here.
37929
37930 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
37931
37932         PR c/42708
37933         * c-typeck.c (build_c_cast): Fold value cast to union type before
37934         wrapping it in a CONSTRUCTOR.
37935
37936 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37937
37938         PR rtl-optimization/42699
37939         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
37940         involved.
37941
37942 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37943
37944         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37945         SUBTARGET_WARN_UNUSED_SPEC): Move ...
37946         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37947         SUBTARGET_WARN_UNUSED_SPEC): ... here
37948         * config/mips/iris5.h (LIBGCC_SPEC): Define.
37949
37950 2010-01-12  Julian Brown  <julian@codesourcery.com>
37951
37952         * config/arm/neon-schedgen.ml (Utils): Don't try to
37953         open missing module.
37954         (find_with_result): New.
37955
37956 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37957
37958         PR debug/42662
37959         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
37960         sharing when canonicalizing ({lt,ge}u (plus a b) b).
37961
37962         PR tree-optimization/42645
37963         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
37964         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
37965         decl_map, set processing_debug_stmt to -1 and return name without
37966         any remapping.
37967
37968 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
37969
37970         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
37971         binutils version, and reword target configuration description.
37972
37973 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
37974
37975         * config/avr/avr.h (LINKER_NAME): Remove.
37976
37977 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
37978
37979         PR target/42416
37980         * config/rs6000/rs6000.c (rs6000_override_options): On targets
37981         that support VSX, warn for -mno-altivec if vsx is not disabled,
37982         and disable vsx.
37983
37984 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
37985             Shujing Zhao  <pearly.zhao@oracle.com>
37986
37987         PR translation/42469
37988         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
37989         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
37990         character between option name and help text.
37991         * c.opt (imultilib): Likewise.
37992
37993 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
37994
37995         * lto-streamer-out.c (output_unreferenced_globals): Output static
37996         variables.
37997
37998 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
37999
38000         PR rtl-optimization/42621
38001         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
38002         optimizing for size.
38003         (duplicate_computed_gotos): Remove now-redundant check.
38004
38005 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
38006
38007         PR target/37454
38008         * configure.ac: Save and restore LDFLAGS and LIBS
38009         * configure: Regenerate.
38010
38011 2010-01-10  Richard Guenther  <rguenther@suse.de>
38012
38013         PR middle-end/42667
38014         * builtins.c (fold_builtin_strlen): Add type argument and
38015         convert the resulting length to it.
38016         (fold_builtin_1): Adjust.
38017
38018 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
38019
38020         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
38021         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
38022         1 insn.
38023         (num_insns_constant_wide): Adjust for that change.
38024
38025 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38026
38027         PR debug/42631
38028         * web.c (union_defs): Add used argument, to combine uses of
38029         uninitialized regs.
38030         (entry_register): Adjust type and tests of used argument.
38031         (web_main): Widen used for new use.  Pass it to union_defs.
38032         * df.h (union_defs): Adjust prototype.
38033
38034 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38035
38036         PR debug/42630
38037         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
38038         uses in new incoming argument.  Free body.
38039         (reset_debug_uses_in_loop): New.
38040         (analyze_insn_to_expand_var): Call the latter if the former found
38041         anything.  Fix whitespace.  Reject invalid dest overlaps before
38042         going through all insns in the loop.
38043
38044 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38045
38046         PR debug/42629
38047         * haifa-sched.c (dying_use_p): Debug insns don't count.
38048
38049 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38050
38051         PR middle-end/42363
38052         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
38053         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
38054         (verify_gimple_call): Reject LHS in noreturn calls.
38055
38056 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38057
38058         PR debug/42604
38059         PR debug/42395
38060         * tree-vect-loop-manip.c (adjust_info): New type.
38061         (adjust_vec): New pointer to vector.
38062         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
38063         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
38064         (slpeel_update_phis_for_duplicate_loop): Use them.
38065         (slpeel_update_phi_nodes_for_guard1): Likewise.
38066         (slpeel_update_phi_nodes_for_guard2): Likewise.
38067         (slpeel_tree_peel_loop_to_edge): Likewise.
38068         (vect_update_ivs_after_vectorizer): Likewise.
38069
38070 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38071
38072         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
38073         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
38074
38075 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38076
38077         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
38078         bogus uninitialized warning.
38079
38080 2010-01-09  Richard Guenther  <rguenther@suse.de>
38081
38082         PR middle-end/42512
38083         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
38084         the evolution is compatible with the initial condition.
38085
38086 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
38087
38088         * gcc.c (process_command): Update copyright notice dates.
38089         * gcov.c (print_version): Likewise.
38090         * gcov-dump.c (print_version): Likewise.
38091         * mips-tfile.c (main): Likewise.
38092         * mips-tdump.c (main): Likewise.
38093
38094 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
38095
38096         PR target/41885
38097         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
38098         (rotlhi3): Delete.
38099         (rotlhi3_8): Delete.
38100         (rotlsi3): Delete.
38101         (rotlsi3_8): Delete.
38102         (rotlsi3_16): Delete.
38103         (rotlsi3_24): Delete.
38104         (rotl<mode>3): New.
38105         (*rotw<mode>3): New.
38106         (*rotb<mode>3): New.
38107         * config/avr/avr.c (avr_rotate_bytes): New function.
38108         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
38109
38110 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
38111
38112         PR target/37454
38113         * configure.ac: Modify -rdynamic check.
38114         * configure: Regenerate.
38115
38116 2010-01-08  DJ Delorie  <dj@redhat.com>
38117
38118         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
38119         register popping order.
38120
38121 2010-01-08  Richard Guenther  <rguenther@suse.de>
38122
38123         PR lto/42528
38124         * c.opt (fsigned-char): Also let LTO handle this option.
38125         (funsigned-char): Likewise.
38126
38127 2010-01-07  Richard Guenther  <rguenther@suse.de>
38128
38129         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
38130         (gimple_op): Likewise.
38131         (gimple_op_ptr): Likewise.
38132         (gimple_assign_set_lhs): Remove gcc_assert.
38133         (gimple_assign_set_rhs1): Likewise.
38134         (gimple_assign_set_rhs2): Likewise.
38135         (gimple_call_set_lhs): Likewise.
38136         (gimple_call_set_fn): Likewise.
38137         (gimple_call_set_fndecl): Likewise.
38138         (gimple_call_fndecl): Likewise.
38139         (gimple_call_return_type): Likewise.
38140         (gimple_call_set_chain): Likewise.
38141         (gimple_call_num_args): Likewise.
38142         (gimple_call_set_arg): Likewise.
38143         (gimple_cond_set_code): Likewise.
38144         (gimple_cond_set_lhs): Likewise.
38145         (gimple_cond_set_rhs): Likewise.
38146         (gimple_cond_set_true_label): Likewise.
38147         (gimple_cond_set_false_label): Likewise.
38148         (gimple_label_set_label): Likewise.
38149         (gimple_goto_set_dest): Likewise.
38150         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
38151         (gimple_debug_bind_get_value): Likewise.
38152         (gimple_debug_bind_get_value_ptr): Likewise.
38153         (gimple_debug_bind_set_var): Likewise.
38154         (gimple_debug_bind_set_value): Likewise.
38155         (gimple_debug_bind_reset_value): Likewise.
38156         (gimple_debug_bind_has_value_p): Likewise.
38157         (gimple_return_retval_ptr): Remove gcc_assert.
38158         (gimple_return_retval): Likewise.
38159         (gimple_return_set_retval): Likewise.
38160         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
38161         (safe_referenced_var_iterator): Remove.
38162         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
38163         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
38164         (fill_referenced_var_vec): Remove.
38165         (first_readonly_imm_use): Remove redundant gcc_assert.
38166         (phi_arg_index_from_use): Combine gcc_asserts.
38167         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
38168         (first_imm_use_stmt): Remove redundant gcc_assert.
38169         * tree-cfg.c (verify_gimple_call): Verify function and chain
38170         operands.  Verify arguments.
38171         (verify_types_in_gimple_stmt): Verify condition code and labels.
38172
38173 2010-01-07  Richard Guenther  <rguenther@suse.de>
38174
38175         PR tree-optimization/42641
38176         * sese.c (rename_map_elt_info): Use the SSA name version, do
38177         not hash pointers.
38178
38179 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
38180
38181         PR tree-optimization/42625
38182         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
38183         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
38184
38185 2010-01-07  Duncan Sands  <baldrick@free.fr>
38186
38187         * Makefile.in (PLUGIN_HEADERS): Add version.h.
38188
38189 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
38190
38191         PR target/42511
38192         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
38193         note itself is not function_invariant_p.
38194
38195 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
38196
38197         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
38198         Do not add the DF_NOTE problem.
38199         * store-motion.c (execute_rtl_store_motion): Likewise.
38200
38201 2010-01-07  Martin Jambor  <mjambor@suse.cz>
38202
38203         PR tree-optimization/42157
38204         * tree-sra.c (compare_access_positions): Stabilize sort if both
38205         accesses have integer types, return zero immediately if they are the
38206         same.
38207
38208 2010-01-06  Richard Henderson  <rth@redhat.com>
38209
38210         PR middle-end/41883
38211         * haifa-sched.c (add_to_note_list): Merge into ...
38212         (concat_note_lists): ... here, and ...
38213         (unlink_other_notes, rm_other_notes): Merge into...
38214         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
38215         NOTE_INSN_EPILOGUE_BEG.
38216
38217 2010-01-06  Richard Guenther  <rguenther@suse.de>
38218
38219         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
38220         not inline regular functions into always-inline functions.
38221
38222 2010-01-06  Nick Clifton  <nickc@redhat.com>
38223
38224         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
38225         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
38226         used together.
38227         (OVERRIDE_OPTIONS): Delete.
38228         (OPTIMIZATION_OPTIONS): Define.
38229         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
38230         * config/rx/rx.c (rx_handle_option): Issue an error message if
38231         -mcpu=rx200 and -fpu are used together.
38232         (rx_set_optimization_options): New function.  Issue an error
38233         message if an optimization attribute attempts to reset the FPU/
38234         math optimization pairing.
38235         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
38236         * config/rx/rx.opt: Set the default to 32-bit doubles.
38237         * config/rx/t-rx: Add multilibs for -nofpu option.
38238         * doc/invoke.texi: Update documentation of RX options.
38239
38240 2010-01-06  Richard Guenther  <rguenther@suse.de>
38241
38242         * tree-ssa-pre.c (name_to_id): New global.
38243         (alloc_expression_id): Simplify SSA name handling.
38244         (lookup_expression_id): Likewise.
38245         (init_pre): Zero name_to_id.
38246         (fini_pre): Free it.
38247
38248 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
38249
38250         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
38251
38252 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
38253
38254         PR target/42542
38255         * config/i386/sse.md (smaxv2di3): New.
38256         (umaxv2di3): Likewise.
38257         (sminv2di3): Likewise.
38258         (uminv2di3): Likewise.
38259
38260 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
38261
38262         PR target/42564
38263         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
38264         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
38265         (legitimize_tls_address): Likewise.
38266         (sparc_tls_referenced_p): Likewise.
38267         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
38268         and adjust calls to legitimize_pic_address.
38269         (legitimate_constant_p) Use sparc_tls_referenced_p.
38270         (legitimate_pic_operand_p): Likewise.
38271         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
38272         (sparc_tls_symbol_ref_1): Delete.
38273         (sparc_tls_referenced_p): Make static, recognize specific patterns.
38274         (legitimize_tls_address): Make static, handle CONST patterns.
38275         (legitimize_pic_address): Make static, remove unused parameter and
38276         adjust recursive calls.
38277         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
38278         and adjust call to legitimize_pic_address.
38279         (sparc_output_mi_thunk): Likewise.
38280
38281 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
38282             H.J. Lu  <hongjiu.lu@intel.com>
38283
38284         PR target/42542
38285         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
38286         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
38287         operands to make them signed.
38288
38289         Revert:
38290         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38291
38292         PR target/42542
38293         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38294         GTU to GT for V4SI and V2DI.
38295
38296         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38297         (umin<mode>3): Removed.
38298         (uminv8hi3): New.
38299         (uminv4si3): Likewise.
38300
38301 2010-01-05  Martin Jambor  <mjambor@suse.cz>
38302
38303         PR tree-optimization/42462
38304         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
38305         current_function_decl to helper functions and macros.
38306
38307 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38308
38309         PR bootstrap/41771
38310         * flags.h: Don't include real.h.
38311         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
38312         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
38313         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
38314         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
38315         * dominance.c: Update copyright.
38316         * gimple.c (walk_gimple_op): Remove inline.
38317         * tree-ssa-reassoc.c: Include real.h.
38318         * Makefile.in (FLAGS_H): Remove $(REAL_H).
38319         (tree-ssa-reassoc.o): Depend on $(REAL_H).
38320
38321 2010-01-05  Nick Clifton  <nickc@redhat.com>
38322
38323         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
38324         register to push into the stack frame when the accumulator has to
38325         be saved during interrupts.
38326
38327 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
38328
38329         * doc/invoke.texi: Remove the documentation about option
38330         -Wunreachable-code.
38331         * common.opt (Wunreachable-code):  Preserved for backward
38332         compatibility.
38333         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
38334         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
38335         the backward compatibility flag section.
38336
38337 2010-01-05  Richard Guenther  <rguenther@suse.de>
38338
38339         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
38340
38341 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
38342
38343         PR other/42611
38344         * cfgexpand.c (expand_one_var): Diagnose too large variables.
38345
38346         PR tree-optimization/42508
38347         * tree-sra.c (convert_callers): Check for recursive call
38348         by comparing cgraph nodes instead of decls.
38349         (modify_function): Call ipa_modify_formal_parameters also
38350         on all same_body aliases.
38351
38352         * cgraphunit.c (cgraph_materialize_all_clones): Compare
38353         cgraph nodes when checking for same_body aliases.
38354
38355 2010-01-05  Richard Guenther  <rguenther@suse.de>
38356
38357         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
38358         allocation and lookup.
38359         (get_or_alloc_expr_for_constant): Likewise.
38360         (phi_translate): Sink allocation.
38361
38362 2010-01-04  Richard Guenther  <rguenther@suse.de>
38363
38364         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
38365         a new entry only if needed.
38366         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
38367         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
38368         hashtable lookup.
38369         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
38370         the result array.
38371         (phi_translate): Handle CONSTANTs early.
38372
38373 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38374
38375         PR tree-optimization/42398
38376         * tree-sra.c (struct access): Removed flag grp_different_types.
38377         (dump_access): Do not dump the removed flag.
38378         (sort_and_splice_var_accesses): Do not set the removed flag.
38379         (sra_modify_expr): Check for type compatibility directly.
38380
38381 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38382
38383         PR tree-optimization/42366
38384         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
38385         edges with variable number of parameters.
38386         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
38387         flag instead of asserting it.
38388         (ipa_read_node_info): Read uses_analysis_done flag.
38389
38390 2010-01-04  Richard Guenther  <rguenther@suse.de>
38391
38392         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
38393         iterative_hash_* as intended.
38394         (vn_reference_compute_hash): Likewise.  Simplify hashing
38395         SSA names.
38396         (vn_reference_lookup_2): Likewise.
38397         (vn_nary_op_compute_hash): Likewise.
38398         (vn_phi_compute_hash): Likewise.
38399         (expressions_equal_p): Remove strange code.
38400         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
38401         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
38402         (bitmap_insert_into_set_1): Take value-id as parameter.
38403         (add_to_value): Pass it.
38404         (bitmap_insert_into_set): Likewise.
38405         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
38406
38407 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
38408
38409         PR driver/42442
38410         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
38411         (do_self_spec): For switches with SWITCH_IGNORE set set also
38412         SWITCH_IGNORE_PERMANENTLY.
38413         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
38414         of SWITCH_IGNORE.
38415
38416 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
38417
38418         * lto-streamer-out.c (output_unreferenced_globals): Output the full
38419         tree of an unreferenced global var.
38420
38421 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38422
38423         PR target/42542
38424         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38425         GTU to GT for V4SI and V2DI.
38426
38427         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38428         (umin<mode>3): Removed.
38429         (uminv8hi3): New.
38430         (uminv4si3): Likewise.
38431
38432 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38433
38434         PR lto/42581
38435         * collect2.c (main): Turn on trace in collect2 if -v is passed
38436         to gcc with LTO.
38437
38438 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
38439
38440         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
38441         description of expression operand.
38442
38443 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
38444
38445         * configure.ac: Add install-html to target_list for Make-hooks.
38446         * configure: Regenerate.
38447         * fortran/Make-lang.in (F95_HTMLFILES): New.
38448         (fortran.html): Use it.
38449         (fortran.install-html): New.
38450         * Makefile.in (install-html): Add lang.install-html.
38451         * java/Make-lang.in (JAVA_HTMLFILES): New.
38452         (java.html): Use it.
38453         (java.install-html): New.
38454         * objc/Make-lang.in (objc.install-html): New.
38455         * objcp/Make-lang.in (obj-c++.install-html): New.
38456         * cp/Make-lang.in (c++.install-html): New.
38457         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
38458         * lto/Make-lang.in (lto.install-html): New.
38459
38460 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38461
38462         PR lto/42520
38463         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
38464
38465 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38466
38467         PR rtl-optimization/41862
38468         * store-motion.c (store_killed_in_insn, compute_store_table,
38469         remove_reachable_equiv_notes, replace_store_insn,
38470         build_store_vectors): Ignore all DEBUG_INSNs.
38471
38472 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38473
38474         PR lto/41564
38475         * common.opt: Add dumpdir.
38476
38477         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
38478         isn't specified.
38479         (option_map): Add --dumpdir.
38480
38481         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
38482
38483         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
38484
38485         * opts.c (decode_options): Try dump_dir_name first if
38486         dump_base_name isn't an absolute path.
38487         (common_handle_option): Handle OPT_dumpdir.
38488
38489         * toplev.c (dump_dir_name): New.
38490         (print_switch_values): Also ignore -dumpdir.
38491
38492         * toplev.h (dump_dir_name): New.
38493
38494 2010-01-03  Richard Guenther  <rguenther@suse.de>
38495
38496         PR tree-optimization/42589
38497         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
38498         double-word expansion of bswap32.
38499
38500 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38501
38502         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
38503         with BLOCK_FOR_INSN.
38504         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
38505         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
38506         noce_process_if_block): Likewise.
38507         * gcse.c (compute_local_properties, insert_expr_in_table,
38508         insert_set_in_table, canon_list_insert, find_avail_set,
38509         pre_insert_copy_insn): Likewise.
38510
38511         * basic-block.h (BLOCK_NUM): Move from here...
38512         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
38513
38514 2010-01-03  Richard Guenther  <rguenther@suse.de>
38515
38516         PR tree-optimization/42438
38517         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
38518         contains_may_not_return_call flag.
38519         (BB_MAY_NOTRETURN): New.
38520         (valid_in_sets): Trapping nary operations are not valid
38521         in blocks that may not return.
38522         (insert_into_preds_of_block): Remove check for trapping expressions.
38523         (compute_avail): Compute also BB_MAY_NOTRETURN.
38524
38525 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
38526
38527         * doc/invoke.texi: Add 2010 to copyright years.
38528
38529 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
38530
38531         * config/sparc/sparc.c: Fix formatting nits.
38532
38533 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
38534             Alexander Monakov  <amonakov@ispras.ru>
38535
38536         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
38537
38538 2010-01-02  Richard Guenther  <rguenther@suse.de>
38539
38540         PR middle-end/42577
38541         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
38542         (simplify_switch_using_ranges): Mark to be removed edges
38543         as non-executable.
38544
38545 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38546
38547         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
38548
38549         * collect2.c (scan_libraries): Add missing argument in call to
38550         scan_prog_file.
38551
38552 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
38553
38554         PR target/42448
38555         * config/alpha/predicates.md (aligned_memory_operand): Return false
38556         for CQImode.
38557         (unaligned_memory_operand): Return true for CQImode.
38558         * config/alpha/alpha.c (get_aligned_mem): Assert that location
38559         doesn not cross aligned SImode word boundary.
38560
38561 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
38562
38563         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
38564         Remove.
38565         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
38566         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
38567
38568 2010-01-02  Richard Guenther  <rguenther@suse.de>
38569
38570         PR lto/41597
38571         * toplev.c (compile_file): Emit LTO marker properly.  Change
38572         it to __gnu_lto_v1.
38573         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
38574
38575 2010-01-01  Richard Guenther  <rguenther@suse.de>
38576
38577         PR debug/42455
38578         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
38579
38580 2010-01-01  Richard Guenther  <rguenther@suse.de>
38581
38582         PR c/42570
38583         * c-decl.c (grokdeclarator): For zero-size arrays force
38584         structural equality checks as layout_type does.
38585
38586 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38587
38588         * builtins.c: Update copyright to 2010.
38589
38590 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38591
38592         PR lto/42531
38593         * lto-streamer-out.c (produce_asm): Revert the last change.
38594         (copy_function): Likewise.
38595
38596         * lto-streamer.c (lto_get_section_name): Skip any leading
38597         asterisk in name.
38598
38599 2010-01-01  Richard Guenther  <rguenther@suse.de>
38600
38601         PR middle-end/42559
38602         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
38603         for LABEL_DECLs.
38604
38605 \f
38606 Copyright (C) 2010 Free Software Foundation, Inc.
38607
38608 Copying and distribution of this file, with or without modification,
38609 are permitted in any medium without royalty provided the copyright
38610 notice and this notice are preserved.