OSDN Git Service

Fix PR45297: handle ADDR_EXPR in interpret_rhs_expr as in follow_ssa_edge_expr.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
2
3         PR middle-end/45297
4         * tree-scalar-evolution.c (interpret_rhs_expr): Handle ADDR_EXPR
5         with MEM_REFs as POINTER_PLUS_EXPR.
6
7 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
8
9         * config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
10         config/sparc/linux.h, config/sparc/linux64.h: Remove comments
11         mentioning /lib/elf.
12
13 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
14
15         * config/bfin/bfin.h (LINK_SPEC): Remove %{b}.
16         * config/frv/frv.h (LINK_SPEC): Remove %{b}.
17         * config/i386/netware.h (LINK_SPEC): Remove %{b}.
18         * config/i386/nto.h (LINK_SPEC): Remove %{b}.
19         * config/lm32/uclinux-elf.h (LINK_SPEC): Remove %{b}.
20         * config/sol2.h (LINK_SPEC): Remove %{b}.
21         * config/svr4.h (LINK_SPEC): Remove %{b}.
22
23 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
24
25         * config/i386/freebsd.h (LINK_SPEC): Cut long comment.
26         * config/i386/linux.h (LINK_SPEC): Cut long comment.
27         * config/i386/netware.h (LINK_SPEC): Remove %{V}.
28         * config/m32r/linux.h (LINK_SPEC): Cut long comment.
29         * config/m68k/linux.h (LINK_SPEC): Cut long comment.
30         * config/sparc/linux.h (LINK_SPEC): Cut long comment.
31         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
32         * config/sparc/linux64.h (LINK_SPEC): Cut long comment.
33         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
34         * config/sparc/netbsd-elf.h (ASM_SPEC): Remove %{V} and
35         %{v:%{!V:-V}}.
36
37 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
38
39         * gcc.c (trad_capable_cpp, default_compilers): Don't handle
40         -ftraditional.
41
42 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
43
44         * config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
45         * config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
46         * config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
47         * config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
48         * config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
49         * config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
50         * config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
51         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
52         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
53         * config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
54         * config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
55         * config/sol2.h (ASM_SPEC): Don't handle -Wa,.
56         * config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
57         * config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
58         * config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
59         * config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
60         * config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
61         * config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.
62
63 2010-12-02  Paul Koning  <ni1d@arrl.net>
64
65         * config/pdp11/pdp11.c (output_jump): Map unsigned to signed
66         opcodes if CC_NO_OVERFLOW is set.
67         (notice_update_cc_on_set): Correct setting of CC0 as a side
68         effect; set CC_NO_OVERFLOW for cases where C flag is not
69         meaningful.
70
71 2010-12-02  Ian Lance Taylor  <iant@google.com>
72
73         * doc/install.texi (Configuration): Update default for
74         --with-boot-ldflags.
75
76 2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>
77
78         PR c/45062
79         * c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
80         !funcdef_flag.
81
82 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
83
84         PR tree-optimization/45199
85         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
86         (stores_zero_from_loop): Call
87         mem_write_stride_of_same_size_as_unit_type_p.
88         * tree-data-ref.h (stride_of_unit_type_p): New.
89         * tree-loop-distribution.c (generate_memset_zero): Simplified.
90         Call stride_of_unit_type_p.
91         (build_rdg_partition_for_component): Do not call
92         rdg_flag_similar_memory_accesses when
93         flag_tree_loop_distribute_patterns is set.
94
95 2010-12-02  Richard Guenther  <rguenther@suse.de>
96
97         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
98         sign-changing conversions for induction detection.
99
100 2010-12-02  Richard Guenther  <rguenther@suse.de>
101
102         PR tree-optimization/46723
103         * tree-vect-loop.c (get_initial_def_for_induction): Strip
104         conversions from the induction evolution and apply it to
105         the result instead.
106         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
107         assigns for induction defs.
108
109 2010-12-02  Richard Guenther  <rguenther@suse.de>
110
111         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
112         the case we need to split the edge and not the block.
113
114 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
115
116         DFA model for Core 2 and Core i7 scheduling.
117
118         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
119         * config/i386/i386.c (ix86_option_override_internal): Update entries
120         for Core 2 and Core i7.
121         (ix86_issue_rate): Set issue rate to 3 [be realistic].
122         * config/i386/i386.md: Include "core2.md".
123         (define_attr cpu): Add "corei7".
124
125 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
126
127         Define tuning for Core 2 and Core i7.
128
129         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
130         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
131         (m_CORE2): Replace with m_CORE2_{32,64}.
132         (m_CORE2I7{,_32,_64}): New macros.
133         (m_GENERIC32, m_GENERIC64): Update.
134         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
135         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
136         set m_CORE2I7_64 iff m_GENERIC64.
137         (processor_target_table): Use generic costs for Core 2 and Core i7.
138         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
139         (ix86_issue_rate): Remove entry for Core 2.
140         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
141         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
142         (TARGET_CORE2): Update.
143         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
144         (PROCESSOR_CORE2): Remove.
145
146 2010-12-02  Richard Guenther  <rguenther@suse.de>
147
148         * lto-streamer.h (LTO_major_version): Bump to 2.
149
150 2010-12-02  Richard Guenther  <rguenther@suse.de>
151
152         PR lto/44871
153         * gimple.c (canonical_type_hash_cache): New hashtable.
154         (gimple_type_hash): Make a wrapper around ...
155         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
156         (gimple_canonical_type_hash): Likewise.
157         (gtc_visit): Take a gtc_mode argument.
158         (gimple_types_compatible_p_1): Likewise. Do not compare struct
159         tag names or field names when computing canonical types.
160         (gimple_types_compatible_p): Adjust.
161         (visit): Take a gtc_mode argument.
162         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
163         names or field names when computing hashes of canonical types.
164         (gimple_register_canonical_type): Use gimple_canonical_type_hash
165         for the hash.
166         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
167         (free_gimple_type_tables): Free canonical_type_hash_cache.
168
169 2010-12-02  Richard Guenther  <rguenther@suse.de>
170             Ira Rosen  <irar@il.ibm.com>
171
172         PR tree-optimization/46663
173         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
174         FUNCTION_DECL exists and that it's a builtin.
175
176 2010-12-02  Jie Zhang  <jie@codesourcery.com>
177
178         PR middle-end/46674
179         * varasm.c (compute_visible_aliases): Handle user set
180         assembler name.
181
182 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
183
184         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
185         thinko regarding setting -mno-<xxx> debug switches.
186         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
187
188 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
189
190         * intl.c: Don't include tm.h.
191         * Makefile.in (intl.o): Don't depend on $(TM_H).
192
193 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
194
195         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
196         unused warning.
197         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
198
199 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
200
201         * graphite-sese-to-poly.c (analyze_drs): Removed.
202         (build_scop_drs): Do not call analyze_drs.
203         (analyze_drs_in_stmts): New.
204         (insert_stmts): New.
205         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
206         (insert_out_of_ssa_copy_on_edge): Same.
207         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
208         (rewrite_phi_out_of_ssa): Same.
209         (rewrite_cross_bb_scalar_dependence): Same.
210         (split_reduction_stmt): Move data references in the new basic blocks.
211         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
212
213 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
214
215         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
216
217 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
218
219         PR middle-end/45297
220         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
221         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
222         * graphite-poly.h (new_poly_bb): Update declaration.
223         (gbb_from_bb): Moved here...
224         (pbb_from_bb): New.
225         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
226         Removed.
227         (graphite_stmt_p): Removed.
228         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
229         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
230         new_poly_bb.
231         (build_scop_bbs_1): Do not pass in sbitmap reductions.
232         (build_scop_bbs): Same.
233         (gbb_from_bb): ... from here.
234         (add_conditions_to_constraints): Moved up.
235         (analyze_drs): New.
236         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
237         not contain data references.
238         (new_pbb_from_pbb): New.
239         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
240         block is split.
241         (rewrite_close_phi_out_of_ssa): Update call to
242         insert_out_of_ssa_copy_on_edge.
243         (rewrite_reductions_out_of_ssa): Now static.
244         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
245         (split_pbb): New.
246         (split_reduction_stmt): Call split_pbb.
247         (translate_scalar_reduction_to_array): Pass in the scop, do not
248         pass in the sbitmap reductions.
249         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
250         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
251         (rewrite_commutative_reductions_out_of_ssa): Same.
252         (build_poly_scop): Call build_scop_bbs,
253         rewrite_commutative_reductions_out_of_ssa,
254         rewrite_reductions_out_of_ssa, and
255         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
256         before scop_to_lst.
257         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
258         Removed declaration.
259         (rewrite_reductions_out_of_ssa): Same.
260         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
261         (build_scop_bbs): Same.
262         * graphite.c (graphite_transform_loops): Do not initialize reductions.
263         Do not call build_scop_bbs,
264         rewrite_commutative_reductions_out_of_ssa,
265         rewrite_reductions_out_of_ssa, and
266         rewrite_cross_bb_scalar_deps_out_of_ssa.
267         * sese.h (struct gimple_bb): Add field pbb.
268         (GBB_PBB): New.
269
270 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
271
272         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
273         New.
274         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
275         handle_scalar_deps_crossing_scop_limits.
276         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
277         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
278
279 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
280
281         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
282         when replacing a constant in an ADDR_EXPR.
283
284 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
285
286         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
287         for the stride.
288         (lst_do_strip_mine): Same.
289         (scop_do_strip_mine): Same.
290         * graphite-poly.c (apply_poly_transforms): Update call to
291         scop_do_strip_mine.
292         * graphite-poly.h (scop_do_strip_mine): Update declaration.
293
294 2010-12-01  Jan Hubicka  <jh@suse.cz>
295
296         * tree.c (build_common_builtin_nodes): Do not initialize
297         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
298         * builtins.c (expand_builtin_profile_func): Remove.
299         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
300         BUILT_IN_PROFILE_FUNC_EXIT.
301         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
302         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
303         * gimplify.c (gimplify_function_tree): Reorganize code calling
304         profiling functions.
305
306 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
307
308         * opts.c: Expand comment on tm.h include.
309
310 2010-12-01  Yao Qi  <yao@codesourcery.com>
311
312         * config/arm/predicates.md ("vfp_register_operand"): Return true for
313         VFP_D0_D7_REGS classes.
314
315 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
316
317         * common.opt (flag_stack_check): New Variable entry.
318         (fcompare-debug-second): Use Var.
319         * flags.h (flag_compare_debug, flag_stack_check): Remove.
320         * opts.c (flag_compare_debug): Remove.
321         (common_handle_option): Don't handle OPT_fcompare_debug_second.
322         Set opts->x_flag_stack_check for OPT_fstack_check_.
323         * toplev.c (flag_stack_check): Remove.
324
325 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
326
327         * common.opt (main_input_filename, main_input_basename,
328         main_input_baselength): New Variable entries.  From toplev.c.
329         * final.c (output_quoted_string): Move from toplev.c.
330         * output.h (output_quoted_string): Move from toplev.h.
331         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
332         access main_input_filename, main_input_baselength and
333         main_input_basename.
334         * targhooks.c: Include intl.h and opts.h.
335         (option_affects_pch_p, default_get_pch_validity): Move from
336         toplev.c.
337         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
338         Move from toplev.h.
339         * toplev.c (main_input_filename, main_input_basename,
340         main_input_baselength): Move to common.opt.
341         (output_quoted_string): Move to final.c.
342         (warn_deprecated_use): Move to tree.c.
343         (option_affects_pch_p, default_get_pch_validity,
344         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
345         * toplev.h (skip_leading_substring): Move to tree-dump.c.
346         (warn_deprecated_use): Move to tree.h.
347         (output_quoted_string): Move to output.h.
348         (main_input_filename, main_input_basename, main_input_baselength):
349         Move to common.opt.
350         (default_get_pch_validity, default_pch_valid_p): Move to
351         targhooks.c.
352         * tree-dump.c (skip_leading_substring): Move from toplev.h.
353         * tree.c (warn_deprecated_use): Move from toplev.c.
354         * tree.h (warn_deprecated_use): Move from toplev.h.
355         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
356         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
357         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
358         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
359         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
360         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
361         config/mcore/mcore.c, config/mep/mep.c,
362         config/microblaze/microblaze.c, config/mips/mips.c,
363         config/mmix/mmix.c, config/mn10300/mn10300.c,
364         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
365         config/picochip/picochip.c, config/s390/s390.c,
366         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
367         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
368         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
369         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
370         varasm.c, xcoffout.c: Don't include toplev.h.
371         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
372         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
373         varasm.o, xcoffout.o): Update dependencies.
374         * config/arm/t-arm (arm.o): Update dependencies.
375         * config/spu/t-spu-elf (spu.o): Update dependencies.
376
377 2010-12-01  Richard Guenther  <rguenther@suse.de>
378
379         PR tree-optimization/46730
380         * value-prof.c (gimple_ic): Always generate a separate merge BB.
381
382 2010-11-30  Ian Lance Taylor  <iant@google.com>
383
384         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
385         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
386         * config/i386/linux64.h (ASM_SPEC): Likewise.
387         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
388         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
389         * config/i386/vxworks.h (ASM_SPEC): Likewise.
390         * config/i386/x86-64.h (ASM_SPEC): Likewise.
391         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
392         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
393
394 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
395
396         * c-decl.c (finish_function): Call objc_finish_function in
397         Objective-C.
398         * c-typeck.c (convert_for_assignment): Do not call
399         objc_type_quals_match().
400
401 2010-11-30  Richard Guenther  <rguenther@suse.de>
402
403         PR tree-optimization/46722
404         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
405         operands as arguments.
406         (execute_optimize_widening_mul): Also handle power of two as
407         multiplication.
408
409 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
410
411         PR middle-end/46709
412         * cgraphunit.c (process_function_and_variable_attributes): Fix
413         cut'n'pasteo.
414
415 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
416
417         * hwint.c:  New.  Extracted from toplev.c.
418         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
419         Move from toplev.h.
420         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
421         Move to hwint.c.
422         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
423         Move to hwint.h.
424         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
425         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
426         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
427         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
428         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
429         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
430         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
431         tree-vrp.c: Don't include toplev.h.
432         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
433         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
434         toplev.h in generated output.
435         * Makefile.in (OBJS-common): Add hwint.o.
436         Dependencies for above files changed to remove toplev.h.
437         (hwint.o): New.
438         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
439         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
440         toplev.h.
441         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
442         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
443
444 2010-11-30  Richard Guenther  <rguenther@suse.de>
445
446         PR tree-optimization/46717
447         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
448         call.  Manually create EH edges for the direct call and update
449         target PHI nodes.
450
451 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
452
453         * diagnostic-core.h: Include bversion.h.
454         * toplev.h: Don't include input.h or bversion.h.
455         (parse_optimize_options): Don't declare here.
456         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
457         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
458         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
459         config/host-darwin.c, config/i386/host-cygwin.c,
460         config/i386/host-mingw32.c, config/i386/msformat-c.c,
461         config/i386/netware.c, config/i386/nwld.c,
462         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
463         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
464         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
465         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
466         config/score/score3.c, config/score/score7.c,
467         config/sh/symbian-base.c, config/sh/symbian-c.c,
468         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
469         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
470         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
471         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
472         graphite-blocking.c, graphite-clast-to-gimple.c,
473         graphite-dependences.c, graphite-flattening.c,
474         graphite-interchange.c, graphite-poly.c,
475         graphite-scop-detection.c, graphite.c, haifa-sched.c,
476         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
477         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
478         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
479         lto-opts.c, lto-section-in.c, lto-section-out.c,
480         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
481         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
482         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
483         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
484         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
485         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
486         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
487         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
488         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
489         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
490         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
491         include toplev.h.
492         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
493         toplev.h.  Dependencies for above files and c-family files changed
494         to remove $(TOPLEV_H) or toplev.h.
495         (C_TREE_H): Don't include $(TOPLEV_H).
496         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
497         bversion.h.
498         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
499         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
500         config/t-darwin, config/t-sol2,
501         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
502         Dependencies for above files changed to remove $(TOPLEV_H) or
503         toplev.h.
504
505 2010-11-30  Richard Guenther  <rguenther@suse.de>
506
507         PR lto/44986
508         * gcc.c (main): Use the first input with a compiler as infile
509         for link spec processing.
510
511 2010-11-30  Richard Guenther  <rguenther@suse.de>
512
513         PR lto/45949
514         * cgraphunit.c (ipa_passes): Stop after errors from
515         small IPA passes.
516
517 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
518
519         * gcc-plugin.h: Include coretypes.h.
520         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
521
522 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
523
524         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
525         * ggc-none.c (ggc_internal_alloc_zone_stat)
526         (ggc_internal_cleared_alloc_zone_stat): New.
527
528 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
529
530         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
531         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
532         (rs6000_emit_prologue): Don't set PIC register if
533         TARGET_SINGLE_PIC_BASE.
534         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
535         * doc/invoke.texi (msingle-pic-base): Document.
536
537 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
538
539         PR driver/46712
540         * exec-tool.in (id): New.
541         Check and export LT_RCU_$id instead of LT_RCU.
542
543 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
544
545         PR tree-optimization/46675
546         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
547         in offset calculation.
548
549 2010-11-29  Jan Hubicka  <jh@suse.cz>
550
551         * collect2.c (main): Do not imply verbose output with
552         LTO and linker plugin.
553
554 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
555
556         * dwarf2out.c (print_die): Print the address of the current DIE or
557         of any DIE referenced by the current one.
558
559 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
560
561         PR debug/46101
562         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
563         function.
564         (scope_die_for, gen_type_die_for_member): Replace uses of
565         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
566
567 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
568
569         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
570         (darwin_asm_declare_object_name): Correct spelling.
571         (darwin_output_aligned_bss): Likewise.
572
573 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
574             Mike Stump  <mrs@gcc.gnu.org>
575
576         PR target/26427
577         PR target/33120
578         PR testsuite/35710
579         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
580         (ASM_OUTPUT_LOCAL): Likewise.
581         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
582         (darwin_output_aligned_bss): Likewise.
583         (darwin_asm_output_aligned_decl_local): Likewise.
584         (darwin_asm_output_aligned_decl_common): Likewise.
585         (darwin_use_anchors_for_symbol_p): Likewise.
586         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
587         (TARGET_ASM_OUTPUT_ANCHOR): Define.
588         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
589         (DARWIN_SECTION_ANCHORS): Set to 1.
590         * config/darwin.c (emit_aligned_common): New var.
591         (darwin_init_sections): Check that the Darwin private zero-size section
592         marker is in range.
593         (darwin_text_section): Check for zero-sized objects.
594         (darwin_mergeable_string_section): Likewise.
595         (darwin_mergeable_constant_section): Likewise.
596         (machopic_select_section): Adjust to check for zero-sized objects.
597         Assert that OBJC meta data are non-zero sized.
598         (darwin_asm_declare_object_name): New.
599         (darwin_asm_declare_constant_name): Adjust for zero-sized
600         object sections.
601         (BYTES_ZFILL): Define.
602         (darwin_emit_weak_or_comdat): New.
603         (darwin_emit_local_bss): New.
604         (darwin_emit_common): New.
605         (darwin_output_aligned_bss): New.
606         (darwin_asm_output_aligned_decl_common): New.
607         (darwin_asm_output_aligned_decl_local): New.
608         (darwin_file_end): Disable subsections_via_symbols when section
609         anchoring is active.
610         (darwin_asm_output_anchor): Re-enable.
611         (darwin_use_anchors_for_symbol_p): New.
612         (darwin_override_options): Check for versions that can emit
613         aligned common.  Update usage of flags to current.
614         * config/darwin-sections.def: Update comments and flags for
615         non-anchor sections.  zobj_const_section, zobj_data_section,
616         zobj_bss_section, zobj_const_data_section: New.
617         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
618         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
619         (L2_MAX_OFILE_ALIGNMENT): Define.
620         (ASM_OUTPUT_ALIGNED_BSS): Define.
621         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
622         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
623         (SECTION_NO_ANCHOR): Define.
624         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
625         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
626
627 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
628
629         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
630         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
631         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
632         Conditionally define.
633         (GET_ENVIRONMENT): Poison.
634         * configure.ac: Don't test for mincore.
635         * configure: Regenerate.
636         * config.in: Regenerate.
637         * collect2-aix.c: Don't include <sys/mman.h>.
638         * collect2.c: Don't include <signal.h>.
639         (SIGCHLD): Don't define.
640         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
641         * config/alpha/alpha.c: Include "splay-tree.h" instead of
642         <splay-tree.h>.
643         * config/arm/arm.c (arm_target_help): Use getenv instead of
644         GET_ENVIRONMENT.
645         * config/avr/driver-avr.c: Don't include <stdlib.h>.
646         * config/frv/frv.c: Don't include <ctype.h>.
647         * config/host-darwin.c: Don't include <sys/mman.h>.
648         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
649         (MAP_FAILED): Don't define.
650         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
651         * config/host-solaris.c: Don't include <sys/mman.h>.
652         * config/i386/cygming.h: Don't include <stdio.h>.
653         * config/i386/driver-i386.c: Don't include <stdlib.h>.
654         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
655         * config/iq2000/iq2000.c: Don't include <signal.h>.
656         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
657         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
658         * config/mep/mep-pragma.c: Don't include <stdio.h>.
659         * config/microblaze/microblaze.c: Don't include <signal.h>.
660         * config/mips/mips.c: Don't include <signal.h>.
661         * config/rs6000/host-darwin.c: Don't include <signal.h>.
662         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
663         * defaults.h (GET_ENVIRONMENT): Don't define.
664         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
665         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
666         (SIGCHLD, MAP_FAILED, kill): Don't define.
667         (process_command): Use getenv instead of GET_ENVIRONMENT.
668         * genhooks.c: Don't include <string.h>.
669         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
670         <sys/types.h>.
671         (MAP_FAILED): Don't define.
672         * ggc-page.c Don't include <sys/mman.h>.
673         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
674         * ggc-zone.c: Don't include <sys/mman.h>.
675         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
676         * graph.c: Include "config.h" instead of <config.h>.
677         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
678         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
679         (SIGCHLD, kill): Don't define.
680         * mips-tfile.c: Don't include <signal.h>.
681         * opts.c: Don't include <signal.h> or <sys/resource.h>.
682         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
683         * passes.c: Don't include <signal.h>, <sys/resource.h> or
684         <sys/times.h>.
685         * sparseset.h: Don't include <assert.h>.
686         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
687         * tlink.c: Don't include "libiberty.h".
688         * toplev.c: Don't include <signal.h> or <sys/times.h>.
689         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
690         * tree-switch-conversion.c: Don't include <signal.h>.
691         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
692
693 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
694
695         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
696         c_parser_objc_try_catch_finally_statement for consistency with the
697         C++ parser.  Parse @catch(...) and pass NULL_TREE to
698         objc_begin_catch_clause() in that case.  Improved error recovery.
699         Reorganized code to be almost identical to
700         cp_parser_objc_try_catch_finally_statement.
701
702 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
703
704         PR tree-optimization/46621
705         * gimple.h: Don't include tm.h or hard-reg-set.h .
706         * Makefile.in (GIMPLE_H): Remove $(TM_H).
707
708         PR bootstrap/44756
709         * cppbuiltin.c: Include target.h .
710         (define_builtin_macros_for_type_sizes):
711         Use targetm.float_words_big_endian.
712
713 2010-11-27  Jan Hubicka  <jh@suse.cz>
714
715         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
716         and output cold_text_section_label.
717         (dwarf2out_init): Don't do that there.
718         (dwarf2out_finish): Handle cold section end label only if cold
719         section was used.
720
721 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
722
723         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
724         VLA variables.
725
726 2010-11-27  Richard Guenther  <rguenther@suse.de>
727
728         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
729         (gimple_assign_ssa_name_copy_p): Likewise.
730         (gimple_assign_unary_nop_p): Use is_gimple_assign.
731         (is_gimple_cast): Remove.
732         (gimple_assign_single_p): Move ...
733         * gimple.h (gimple_assign_single_p): ... here.
734         (is_gimple_cast): Remove.
735         (gimple_assign_rhs_code): Simplify.
736         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
737         instead of is_gimple_cast.
738         * ipa-type-escape.c (look_for_casts): Likewise.
739
740 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
741
742         * doc/options.texi (Enum, EnumValue): Document new record types.
743         (Enum): Document new option flag.
744         * opt-functions.awk
745         * optc-gen.awk: Handle enumerated option arguments.
746         * opth-gen.awk: Handle enumerated option arguments.
747         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
748         enum_value_to_arg): New.
749         (decode_cmdline_option): Handle enumerated arguments.
750         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
751         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
752         * opts.c (print_filtered_help, print_specific_help): Take
753         lang_mask arguments.
754         (print_filtered_help): Handle printing values of enumerated
755         options.  Print possible arguments for enumerated options.
756         (print_specific_help): Update call to print_filtered_help.
757         (common_handle_option): Update calls to print_specific_help.  Use
758         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
759         handle OPT_ffp_contract_, OPT_fexcess_precision_,
760         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
761         OPT_fira_region_ here.
762         * opts.h (enum cl_var_type): Add CLVC_ENUM.
763         (struct cl_option): Add var_enum.
764         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
765         struct cl_enum, cl_enums, cl_enums_count): New.
766         (CL_ERR_ENUM_ARG): Define.
767         (CL_ERR_NEGATIVE): Update value.
768         (enum_value_to_arg): Declare.
769         * common.opt (flag_ira_algorithm, flag_ira_region,
770         flag_fp_contract_mode, flag_excess_precision_cmdline,
771         default_visibility, flag_tls_default): Remove Variable entries.
772         (help_enum_printed): New Variable.
773         (fdiagnostics-show-location=): Use Enum.  Add associated
774         SourceInclude, Enum and EnumValue entries.
775         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
776         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
777         associated Enum and EnumValue entries.
778
779 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
780
781         PR target/46623
782         * config/microblaze/microblaze.c (microblaze_block_move_straight):
783         Use XALLOCAVEC.
784         (microblaze_option_override): Don't use C++ style comments.
785         (save_restore_insns): Remove unused variable base_offset.
786         (microblaze_expand_prologue): Remove unused variable insn.
787         (microblaze_secondary_reload): Adjust type to match target.h .
788         (microblaze_elf_in_small_data_p): Move declarations to start of block.
789         (microblaze_expand_move): Likewise.
790         * config/microblaze/microblaze.h (LARGE_INT):
791         Avoid signed / unsigned comparisons.
792         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
793         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
794         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
795
796 2010-11-26  Michael Matz  <matz@suse.de>
797
798         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
799
800         * passes.c (init_optimization_passes): Remove superfluous
801         copy-prop pass.
802
803 2010-11-26  Richard Guenther  <rguenther@suse.de>
804
805         PR lto/46648
806         * gimple.c (gtc_visit): Do not return true for members of an
807         SCC still being processed but the current lattice value of
808         the member.  Treat SCC members comparison state as lattice,
809         starting at equal, eventually dropping to unequal.
810         (gimple_types_compatible_p_1): Likewise.
811
812 2010-11-26  Richard Guenther  <rguenther@suse.de>
813
814         PR middle-end/46559
815         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
816         for location list processing.
817
818 2010-11-26  Richard Guenther  <rguenther@suse.de>
819
820         PR lto/46560
821         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
822         flags manually.
823
824 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
825
826         * config/s390/s390.c (print_operand_address): Replace assert with
827         error message.
828         (print_operand): Replace assertions, gcc_unreachable and
829         fatal_insn with error messages.
830
831 2010-11-26  Richard Guenther  <rguenther@suse.de>
832
833         PR tree-optimization/46665
834         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
835
836 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
837
838         * config/arm/arm.c (arm_option_override): enable loop array
839         prefetching at -O3 for suitable targets, and configure params.
840         * config/arm/arm-protos.h (struct tune_params): Add fields for
841         configuring loop array prefetching.
842
843 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
844
845         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
846
847 2010-11-26  Richard Guenther  <rguenther@suse.de>
848
849         PR tree-optimization/46664
850         * tree-affine.c (aff_combination_to_tree): Add rest last.
851
852 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
853
854         PR target/33637
855         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
856         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
857         * configure: Regenerated.
858         * exec-tool.in: Not quoting command, may have extra arguments.
859
860 2010-11-26  Richard Guenther  <rguenther@suse.de>
861
862         PR tree-optimization/46528
863         PR debug/46338
864         * profile.c (branch_prob): Do not split blocks based on locations
865         from debug statements.
866
867 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
868
869         PR middle-end/46647
870         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
871         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
872
873         PR bootstrap/45700
874         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
875         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
876         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
877         build6_loc): Define.
878         * fold-const.c (protected_set_expr_location_unshare): New inline.
879         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
880         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
881         pedantic_omit_one_operand_loc, omit_two_operands_loc,
882         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
883         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
884         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
885         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
886         instead of buildN followed by SET_EXPR_LOCATION or
887         protected_set_expr_location.
888         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
889         Use buildN_stat_loc instead of buildN_stat followed by
890         SET_EXPR_LOCATION.
891
892 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
893
894         * Makefile.in (s-tm-texi): Remove spurous tab.
895
896 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
897
898         PR debug/46258
899         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
900         debug stmts.
901
902 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
903
904         * toplev.c (finalize): Add no_backend parameter.  Don't finish
905         passes when preprocessing only.  Adjust...
906         (do_compile): ... caller.
907
908 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
909
910         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
911         flag_unsafe_math_optimizations.
912         (negsf2): Likewise.
913         Move fnegabs related patterns together.  Only use fmpynfadd instruction
914         to negate a multiply if !flag_signed_zeros is true.
915
916 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
917
918         * gengtype-state.c (read_state_structures): Initialize "previous".
919
920 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
921             Jeremie Salvucci  <jeremie.salvucci@free.fr>
922
923         * gengtype-state.c: Add new file.
924
925         * gengtype.c (type count): New variable.
926         (new_structure, find_param_structure, create_pointer)
927         (create_array): Use it to set state_number in types.
928         (dump_everything): Improve comment.
929         (main): Call read_state and write_state. Print type_count.
930
931         * gengtype.h (type_lineloc): New function.
932         (read_state, write_state): New declarations.
933
934         * Makefile.in (GENGTYPE_FLAGS): New variable.
935         (s-gtype): Run gengtype twice and generate gtype.state.
936         (build/gengtype-state.o): New rule.
937         (build/gengtype$(build_exeext)): Link gengtype-state.o.
938         (mostlyclean): Update comment.  Remove gtype.state.
939
940 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
941
942         PR middle-end/46637
943         * combine.c (try_combine): When substing i2dest for i2src, pass
944         1 as last argument even if
945         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
946
947 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
948
949         PR middle-end/46647
950         * builtins.c (target_char_cast): Check INTEGER_CST instead of
951         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
952
953 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
954
955         * target.def (supports_split_stack, except_unwind_info): Take
956         gcc_options parameters.
957         * targhooks.c (default_except_unwind_info,
958         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
959         gcc_options parameters.
960         * targhooks.h (default_except_unwind_info,
961         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
962         prototypes.
963         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
964         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
965         Document that hooks must not be modified.
966         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
967         * doc/tm.texi: Regenerate.
968         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
969         &global_options to targetm.except_unwind_info.
970         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
971         dwarf2out_begin_prologue, dwarf2out_frame_init,
972         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
973         &global_options to targetm.except_unwind_info.
974         * except.c (init_eh, finish_eh_generation,
975         gate_convert_to_eh_region_ranges,
976         output_one_function_exception_table): Pass &global_options to
977         targetm.except_unwind_info.
978         * expr.c (build_personality_function): Pass &global_options to
979         targetm.except_unwind_info.
980         * function.c (expand_function_end): Pass &global_options to
981         targetm.except_unwind_info.
982         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
983         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
984         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
985         and targetm.supports_split_stack.  Remove assertions about opts
986         and opts_set.
987         (common_handle_option): Remove assertions about opts, opts_set and dc.
988         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
989         &global_options to targetm.except_unwind_info.
990         * tree.c (build_common_builtin_nodes: Pass &global_options to
991         targetm.except_unwind_info.
992         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
993         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
994         thumb1_expand_prologue, thumb1_output_function_prologue,
995         arm_unwind_emit, arm_output_fn_unwind): Update calls to
996         arm_except_unwind_info.
997         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
998         parameter.
999         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
1000         parameter.
1001         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
1002         ia64_reorg, ia64_asm_unwind_emit): Update calls to
1003         ia64_except_unwind_info.
1004         * config/pa/pa.c (pa_option_override): Pass &global_options to
1005         targetm.except_unwind_info.
1006         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
1007         Remove prototype.
1008
1009 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
1010
1011         * cgraphunit.c (process_function_and_variable_attributes):
1012         Mark dllexport-ed function/variables as needed.
1013         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
1014         as externally visible.
1015
1016 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
1017
1018         PR rtl-optimization/46585
1019         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
1020         (vinsn_init): Skip computation of dependencies for local NOPs.
1021         (vinsn_delete): Don't try to free regsets for local NOPs.
1022         (setup_nop_and_exit_insns): Change definition of nop_pattern.
1023
1024 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
1025
1026         PR rtl-optimization/46602
1027         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
1028         (tidy_control_flow): Here.
1029
1030 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
1031             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1032
1033         PR bootstrap/45888
1034         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
1035         Fix target.def pathname in timestamp comparison.
1036
1037 2010-11-24  Richard Henderson  <rth@redhat.com>
1038
1039         * config/ia64/predicates.md (pmpyshr_operand): New.
1040         * config/ia64/ia64.c (ia64_expand_unpack): New.
1041         (ia64_expand_widen_mul_v4hi): New.
1042         (ia64_expand_widen_sum): Update for pattern renames.
1043         (ia64_expand_dot_prod_v8qi): Likewise.
1044         * config/ia64/ia64-protos.h: Update.
1045         * config/ia64/vect.md (vecwider): New mode attribute.
1046         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
1047         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
1048         (pmpyshr2, pmpyshr2_u): New.
1049         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
1050         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
1051         (mulv2si3): New.
1052         (vec_pack_ssat_v4hi): Rename from pack2_sss.
1053         (vec_pack_usat_v4hi): Rename from *pack2_uss.
1054         (vec_pack_ssat_v2si): Rename from pack4_sss.
1055         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
1056         vec_select operation.
1057         (vec_interleave_highv8qi): Similarly.
1058         (mux1_alt): Rename from *mux1_alt.
1059         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
1060         (vec_interleave_lowv4hi): Rename from unpack2_l.
1061         (vec_interleave_highv4hi): Rename from unpack2_h.
1062         (mix2_r): Rename from *mix2_r.
1063         (mix2_l): Similarly.
1064         (vec_extract_evenodd_helper): New.
1065         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
1066         (vec_interleave_lowv2si): Rename from *unpack4_l.
1067         (vec_interleave_highv2si): Rename from *unpack4_h.
1068         (vec_extract_evenv2si, vec_extract_oddv2si): New.
1069         (vec_interleave_lowv2sf): Rename from fmix_r.
1070         (vec_interleave_highv2sf): Rename from *fmix_l.
1071         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
1072         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
1073         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
1074         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
1075
1076 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1077
1078         * targhooks.c (default_except_unwind_info): Remove
1079         MUST_USE_SJLJ_EXCEPTIONS case.
1080         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1081         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1082         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1083         * doc/tm.texi: Regenerate.
1084         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
1085
1086 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1087
1088         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
1089         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
1090         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
1091         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
1092         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
1093
1094 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1095
1096         PR target/46519
1097         * config/i386/i386.c (ix86_expand_call): Don't check
1098         TREE_THIS_VOLATILE.
1099
1100 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1101
1102         PR target/46519
1103         * config/i386/i386.c (upper_128bits_state): New.
1104         (block_info_def): Remove upper_128bits_set and done.  Add state,
1105         referenced, count, processed and rescanned.
1106         (check_avx256_stores): Updated.
1107         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
1108         Call note_stores only if needed.  Set referenced and count.
1109         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
1110         (rescan_move_or_delete_vzeroupper): New.
1111         (move_or_delete_vzeroupper):  Process and rescan all all basic
1112         blocks instead of predecessor blocks of all exit points.
1113         (ix86_option_override_internal): Enable vzeroupper optimization
1114         only for -fexpensive-optimizations and not optimizing for size.
1115         (use_avx256_p): Removed.
1116         (init_cumulative_args): Don't set use_avx256_p.
1117         (ix86_function_arg): Likewise.
1118         (ix86_expand_move): Likewise.
1119         (ix86_expand_vector_move_misalign): Likewise.
1120         (ix86_local_alignment): Likewise.
1121         (ix86_minimum_alignment): Likewise.
1122         (ix86_expand_epilogue): Don't check use_avx256_p when generating
1123         vzeroupper.
1124         (ix86_expand_call): Likewise.
1125
1126         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
1127         and use_avx256_p.  Add rescan_vzeroupper_p.
1128
1129 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1130
1131         * toplev.c: Include <signal.h>.
1132
1133 2010-11-24  Richard Guenther  <rguenther@suse.de>
1134
1135         PR lto/43218
1136         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
1137         conflicting function signatures as non-inlineable.
1138
1139 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1140
1141         PR rtl-optimization/46614
1142         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
1143          (deps_analyze_insn): Mark JUMP_INSNs in
1144         last_pending_memory_flush that weren't added through
1145         flush_pending_lists with NON_FLUSH_JUMP_KIND.
1146         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
1147         on INSN_LIST instead of JUMP_P check on its operand.
1148         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
1149
1150 2010-11-24  Richard Guenther  <rguenther@suse.de>
1151
1152         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
1153
1154 2010-11-24  Richard Guenther  <rguenther@suse.de>
1155
1156         PR lto/46606
1157         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
1158         a FIELD_DECL that is type correct issue a warning and fixup
1159         with a VIEW_CONVERT_EXPR.
1160
1161 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
1162
1163         * doc/invoke.texi (Options for Debugging Your Program or GCC):
1164         Explain static numbering of dump files.
1165
1166 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1167
1168         * common.opt (user_vect_verbosity_level): New Variable entry.
1169         (ftree-vectorizer-verbose=): Mark as UInteger.
1170         * flag-types.h (enum vect_verbosity_levels): Move from enum
1171         verbosity_levels in tree-vectorizer.h.
1172         * opts.c: Don't include tree.h.
1173         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
1174         gcc_options parameter; take integer option argument.
1175         (common_handle_option): Update call to vect_set_verbosity_level.
1176         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
1177         (vect_set_verbosity_level): Move to opts.c.
1178         (vect_verbosity_level, vect_print_dump_info): Update for change of
1179         enum name.
1180         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
1181         (vect_print_dump_info): Update for change of enum name.
1182         * tree.h (vect_set_verbosity_level): Remove.
1183         * Makefile.in (opts.o): Update dependencies.
1184
1185 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1186
1187         PR middle-end/46629
1188         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
1189         instead of insn with any_condjump_p.
1190
1191 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
1192
1193         * config/mips/loongson.md: Change the description comment of the file
1194         and update the copyright years.
1195         (define_insn "<u>div<mode>3): Add loongson3a support.
1196         (define_insn "<u>mod<mode>3"): Likewise.
1197         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
1198         mul<mode>3_mul3_loongson.
1199         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
1200         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
1201
1202 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1203
1204         * common.opt (initial_max_fld_align, flag_debug_asm,
1205         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
1206         flag_print_asm_name, graph_dump_format, help_printed,
1207         help_columns, flag_opts_finished): New Variable entries.
1208         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
1209         frandom-seed=): Mark deferred.
1210         (fsched-verbose=): Use UInteger and Var.
1211         * flags.h (set_struct_debug_option, flag_print_asm_name,
1212         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
1213         graph_dump_format): Don't declare here.
1214         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
1215         * opts-global.c: Include dbgcnt.h and debug.h.
1216         (decode_options): Pass location to finish_options.
1217         (handle_common_deferred_options): Check flag_dump_all_passed.
1218         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
1219         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
1220         OPT_fstack_limit.
1221         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
1222         (set_struct_debug_option): Add location_t parameter.  Update
1223         recursive call.  Use error_at.
1224         (default_options_optimization): Use error_at.
1225         (finish_options): Add location_t parameter.  Use
1226         opts->x_flag_opts_finished instead of first_time_p.  Use
1227         opts->x_optimize instead of optimize.  Use error_at.  Pass
1228         location to inform.
1229         (print_filtered_help): Use opts->x_help_printed to track what
1230         options have been printed.
1231         (print_specific_help): Use opts->x_help_columns to track number of
1232         columns.
1233         (common_handle_option): Pass locations and gcc_options pointers to
1234         more functions.  Use warning_at instead of fnotice and warning.
1235         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
1236         OPT_fdebug_prefix_map_.  Use error_at.  Set
1237         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
1238         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
1239         OPT_fsched_verbose_.
1240         (handle_param): Add location_r parameter.  Use error_at.
1241         (set_debug_level): Add location_r parameter.  Use error_at and
1242         warning_at.
1243         (setup_core_dumping): Add diagnostic_context parameter.
1244         (decode_d_option): Add gcc_options, location_t and
1245         diagnostic_context parameters and use them instead of global
1246         state.  Use warning_at.
1247         (enable_warning_as_error): Use error_at.
1248         * opts.h (finish_options): Update prototype.
1249         (set_struct_debug_option): Declare here.
1250         * rtl.h (fix_sched_param): Remove.
1251         * stor-layout.c (initial_max_fld_align): Remove.
1252         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
1253         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
1254         (process_options): Set maximum_field_alignment.
1255         * tree.h (initial_max_fld_align) Don't declare here.
1256         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1257
1258 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1259
1260         * flag-types.h (struct visibility_flags): Don't declare here.
1261         * flags.h (strip_off_ending, fast_math_flags_set_p,
1262         fast_math_flags_struct_set_p): Declare here.
1263         (visibility_options): Don't declare here.
1264         * opts-common.c (option_enabled, get_option_state): Move from
1265         opts.c.
1266         * opts-global.c: Include diagnostic.h instead of
1267         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
1268         and toplev.h.
1269         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1270         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1271         print_ignored_options, unknown_option_callback,
1272         post_handling_callback, lang_handle_option, add_input_filename,
1273         read_cmdline_options, initial_lang_mask, init_options_once,
1274         decode_cmdline_options_to_array_default_mask,
1275         set_default_handlers, decode_options): Move from opts.c.
1276         (print_ignored_options): Use warning_at instead of saving and
1277         restoring input_location.
1278         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
1279         instead of expr.h.  Don't include langhooks.h, except.h or
1280         lto-streamer.h.  Add more comments on includes.
1281         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
1282         toplev.c.
1283         (visibility_options): Move to c-family/c-common.c.
1284         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1285         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1286         print_ignored_options, unknown_option_callback,
1287         post_handling_callback, lang_handle_option, add_input_filename,
1288         read_cmdline_options, initial_lang_mask, init_options_once,
1289         decode_cmdline_options_to_array_default_mask,
1290         set_default_handlers, decode_options): Move to opts-global.c.
1291         (target_handle_option, default_options_optimization,
1292         finish_options, common_handle_option): Remove static.
1293         (option_enabled, get_option_state): Move to opts-common.c.
1294         * opts.h (common_handle_option, target_handle_option,
1295         finish_options, default_options_optimization): Declare.
1296         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
1297         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
1298         opts.c.
1299         * toplev.h (strip_off_ending, decode_d_option,
1300         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
1301         declare here.
1302         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1303
1304 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
1305
1306         PR driver/42690
1307         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
1308         options, replace by call of pass-through-libs spec function to process
1309         link_gcc_c_sequence spec.
1310         (lto_libgcc_spec): Delete variable.
1311         (static_specs[]): Remove related entry.
1312         (static_spec_functions[]): Add new entry for pass-through-libs.
1313         (main): Don't generate deleted lto_libgcc_spec.
1314         (pass_through_libs_spec_func): New function to implement the new
1315         pass-through-libs spec function.
1316         * doc/invoke.texi (pass-through-libs): Document new spec function.
1317
1318 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1319
1320         * doc/options.texi (Warning, Optimization): Document.
1321
1322 2010-11-23  Jan Hubicka  <jh@suse.cz>
1323
1324         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
1325         (tree_decl_with_vis): Add implicit_section_name_p.
1326         * targhooks.h (default_function_section): Declare.
1327         * target.def (function_section): New hook.
1328         * defaults.h (HOT_TEXT_SECTION_NAME,
1329         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1330         * predict.c (choose_function_section): Remove.
1331         (estimate_bb_frequencies): Do not use choose_function_section.
1332         * coretypes.h (enum node_frequency): Move here from cgraph.h
1333         * cgraph.h (enum node_frequency): Remove.
1334         * varasm.c (initialize_cold_section_name, unlikely_text_section,
1335         unlikely_text_section_p): Remove.
1336         (named_subsection_entry): New structure.
1337         (get_text_section): New function.
1338         (default_function_section): New function.
1339         (function_section_1): Break out from ...; handle profile info.
1340         (function_section): ... here.
1341         (unlikely_text_section): Remove.
1342         (unlikely_text_section_p): Use function_section_1.
1343         (assemble_start_function): Do not initialize cold section.
1344         (default_section_type_flags): Do not special case cold subsection.
1345         (switch_to_section): Likewise.
1346         * output.h (get_text_section): Define.
1347         * config/i386/winnt.c: Do not special case cold section.
1348         * config/darwin-protos.h (darwin_function_section): Declare.
1349         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
1350         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1351         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
1352         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1353         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
1354         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
1355         * config/darwin.c (machopic_select_section): Use
1356         darwin_function_section.
1357         (darwin_function_section): New function.
1358         * config/darwin.h (HOT_TEXT_SECTION_NAME,
1359         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1360         (TARGET_ASM_FUNCTION_SECTION): Define.
1361         * system.h (HOT_TEXT_SECTION_NAME,
1362         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
1363
1364 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
1365
1366         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
1367         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
1368
1369 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
1370
1371         PR middle-end/46499
1372         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
1373         following unconditional jumps.
1374
1375 2010-11-23  Richard Guenther  <rguenther@suse.de>
1376
1377         * doc/md.texi (386 constraints): Clarify A constraint documentation.
1378
1379 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1380             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1381
1382         * gengtype.c (enum typekind, struct options)
1383         (struct nested_ptr_data, struct pair, NUM_PARAM)
1384         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
1385         Move to gengtype.h.
1386         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
1387         Remove static, add zero state_number.
1388         (typedefs, structures, param_structs, variables): Remove static.
1389         (create_option): Remove.
1390         (create_string_option, create_type_option, create_nested_option):
1391         New functions.
1392         (create_nested_ptr_option): Use create_nested_option.
1393         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
1394         new create*option functions.
1395         (process_gc_options): Adjust for discriminated option.
1396         (output_mangled_typename): Handle TYPE_NONE.
1397         (walk_type): Test option kinds.
1398         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
1399         (write_func_for_structure, write_type, write_local, write_root)
1400         (write_roots, note_def_vec, dump_options): Adjust for
1401         discriminated option.
1402
1403         * gengtype.h (typedefs, structures, param_structs, variables
1404         enum typekind): Move from gengtype.c
1405         (enum option_kind): New discriminating enumeration.
1406         (struct options): Becomes discriminated.
1407         (struct nested_ptr_data): Nove from gengtype.c
1408         (create_string_option, create_type_option, create_nested_option)
1409         (create_nested_ptr_option): New functions
1410         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
1411         (UNION_OR_STRUCT_P): Move from gengtype.c
1412
1413         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
1414         discriminated options.
1415
1416 2010-11-23  Richard Guenther  <rguenther@suse.de>
1417
1418         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
1419         twice.  Avoid re-allocating the ops vector all the time.
1420
1421 2010-11-23  Richard Guenther  <rguenther@suse.de>
1422
1423         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
1424         is_gimple_min_invariant, group tree code checks to allow
1425         combining them.
1426         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
1427         of is_gimple_reg.
1428
1429 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
1430
1431         * config.gcc (sparc*-*-*): Reorder.
1432
1433 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1434
1435         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
1436         Remove ENABLE_CHECKING around DBGPRINTF.
1437
1438 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
1439
1440         * common.opt (exit_after_options, write_symbols, debug_info_level,
1441         use_gnu_debug_info_extensions): New Variable entries.
1442         (fprofile-dir=): Use Var.
1443         * flag-types.h (enum debug_info_level): Rename to enum
1444         debug_info_levels.
1445         * flags.h (write_symbols, debug_info_level,
1446         use_gnu_debug_info_extensions): Remove declarations.
1447         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
1448         (set_struct_debug_option): Make static variables const.
1449         (use_gnu_debug_info_extensions): Remove.
1450         (set_debug_level, print_filtered_help, print_specific_help,
1451         fast_math_flags_set_p): Take gcc_options parameters and use them
1452         in place of global variables.
1453         (print_filtered_help): Make new_help non-static.
1454         (print_specific_help): Update call to print_filtered_help.
1455         (common_handle_option): Update calls to print_specific_help.  Use
1456         gcc_options structure for more settings.  Make --help table
1457         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
1458         set_debug_level.
1459         * toplev.c (profile_data_prefix): Remove.
1460         * toplev.h (profile_data_prefix, exit_after_options): Remove
1461         declarations.
1462         (fast_math_flags_set_p): Update prototype.
1463         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
1464         Update call to fast_math_flags_set_p.
1465
1466 2010-11-22  Richard Henderson  <rth@redhat.com>
1467
1468         PR target/46434
1469         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
1470         return the address register extracted.
1471         (crx_decompose_address): Update the extracted address register.
1472
1473 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
1474
1475         PR driver/43335
1476         * gcc.c (main): Don't crash when lto-wrapper program is not found.
1477
1478 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
1479
1480         PR target/46608
1481         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
1482         * config/picochip/picochip-protos.h: Don't include "target.h" .
1483         (picochip_secondary_reload): Don't declare.
1484
1485         PR target/46613
1486         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
1487         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
1488         static.
1489
1490 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
1491
1492         PR bootstrap/46609
1493         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
1494         (source_dot_c_frul): Likewise.
1495
1496 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
1497
1498         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
1499
1500 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
1501
1502         PR bootstrap/44970
1503         * Makefile.in (fwprop.o) Add sparseset.h.
1504         * fwprop.c: Include sparseset.h
1505         (struct find_occurrence_data, find_occurrence_callback,
1506         find_occurrence): Remove.
1507         (active_defs, active_defs_check, register_active_defs,
1508         update_df_init, update_uses): New.
1509         (update_df): Rewrite.
1510         (try_fwprop_subst, forward_propagate_asm): Add calls to
1511         update_df_init and update_df.
1512         (fwprop_init): Allocate active_defs and active_defs_check.
1513         (fwprop_done): Free them.
1514         (fwprop, fwprop_addr): Adjust comments.
1515         * df.h (df_uses_create): Declare.
1516         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
1517         (df_ref_create): Return result of df_ref_create_structure directly.
1518         (df_ref_create_structure): Call df_install_ref_incremental when
1519         no collection_rec is passed.
1520         (df_ref_record): Do not create multiword hard reg info when no
1521         collection_rec is passed.
1522         (df_uses_create): New.
1523
1524 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1525
1526         PR middle-end/43057
1527         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
1528         setting location.
1529
1530 2010-11-22  Richard Guenther  <rguenther@suse.de>
1531
1532         * gimple-fold.c (maybe_fold_reference): When canonicalizing
1533         MEM_REFs, preserve volatileness.
1534         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
1535         addresses.
1536
1537 2010-11-22  Richard Guenther  <rguenther@suse.de>
1538
1539         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
1540
1541 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
1542
1543         PR rtl-optimization/45652
1544         * alias.c (get_reg_base_value): New.
1545         * rtl.h (get_reg_base_value): Add prototype.
1546         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
1547         non-null REG_BASE_VALUE for renaming.
1548
1549 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
1550             Basile Starynkevitch  <basile@starynkevitch.net>
1551
1552         * gengtype.c: Include xregex.h and obstack.h
1553         Added comments about role of get_output_file_with_visibility and
1554         our regexpr machinery.
1555         (frul_actionrout_t, struct file_rule_st): New.
1556         (hader_dot_h_frul, source_dot_c_frul): New functions.
1557         (NULL_REGEX,  NULL_FRULACT): New.
1558         (files_rules): New.
1559         (matching_file_name_substitute): New function.
1560         (get_output_file_with_visibility): Updated comments and rewritten
1561         to use the new files_rules machinery.
1562
1563         * Makefile.in (XREGEX_H): Added variable.
1564         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
1565
1566 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1567
1568         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
1569
1570 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1571
1572         * target.def (conditional_register_usage): Define.
1573         * reginfo.c (init_reg_sets_1): Call
1574         targetm.conditional_register_usage.
1575         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
1576         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
1577         for making it a hook.
1578         * doc/tm.texi: Regenerate.
1579         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1580         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
1581         New function.
1582         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1583         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1584         * config/arc/arc.c (arc_conditional_register_usage): ...here.
1585         New function.
1586         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1587         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1588         * config/arm/arm.c (arm_conditional_register_usage): ...here.
1589         New function.
1590         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1591         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
1592         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
1593         * config/bfin/bfin.c (conditional_register_usage): Move code into...
1594         (bfin_conditional_register_usage): ...here.  New function.
1595         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1596         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
1597         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
1598         * config/cris/cris.c (cris_conditional_register_usage): Make static.
1599         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1600         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
1601         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
1602         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
1603         * config/frv/frv.c (frv_conditional_register_usage): Make static.
1604         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1605         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1606         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
1607         New function.
1608         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1609         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
1610         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
1611         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
1612         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1613         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
1614         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
1615         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
1616         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1617         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1618         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
1619         New function.
1620         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1621         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
1622         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
1623         Delete.
1624         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
1625         static.
1626         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1627         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
1628         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
1629         * config/mep/mep.c (mep_conditional_register_usage): Make static.
1630         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1631         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
1632         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
1633         * config/mips/mips.c (mips_conditional_register_usage): Make static.
1634         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1635         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
1636         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
1637         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
1638         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1639         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1640         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
1641         ...here.  New function.
1642         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1643         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1644         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
1645         * config/pa/pa.c (pa_conditional_register_usage): ...here.
1646         New function.
1647         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1648         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1649         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
1650         New function.
1651         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1652         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
1653         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
1654         Delete.
1655         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
1656         static.
1657         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1658         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
1659         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
1660         * config/rx/rx.c (rx_conditional_register_usage): Make static.
1661         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1662         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
1663         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
1664         * config/s390/s390.c (s390_conditional_register_usage): Make static.
1665         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1666         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1667         * config/score/score.c (score_conditional_register_usage): ...here.
1668         New function.
1669         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1670         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1671         * config/sh/sh.c (sh_conditional_register_usage): ...here.
1672         New function.
1673         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1674         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1675         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
1676         New function.
1677         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1678         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
1679         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
1680         * config/spu/spu.c (spu_conditional_register_usage): Make static.
1681         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1682         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1683         * config/v850/v850.c (v850_conditional_register_usage): ...here.
1684         New function.
1685         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1686
1687 2010-11-21  Jan Hubicka  <jh@suse.cz>
1688             Dominique d'Humieres <dominiq@lps.ens.ft>
1689
1690         PR target/46510
1691         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
1692         finalize external decls.
1693
1694 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
1695
1696         * system.h (strerror): Poison.
1697
1698 2010-11-21  Richard Henderson  <rth@redhat.com>
1699
1700         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
1701         for infq/huge_valq.
1702
1703 2010-11-21  Richard Henderson  <rth@redhat.com>
1704
1705         PR rtl-optimization/46571
1706         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
1707         (compute_hash_table_work): Use NONDEBUG_INSN_P.
1708
1709 2010-11-21  Paul Koning  <ni1d@arrl.net>
1710
1711         * config/mips/pdp11.md (negsi2): Fix wrong code.
1712
1713 2010-11-21  Paul Koning  <ni1d@arrl.net>
1714
1715         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
1716         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1717
1718 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
1719
1720         * config/mips/mips.c (machine_function): Rename load_label_length to
1721         load_label_num_insns.
1722         (mips_load_label_length): Rename to...
1723         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
1724         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
1725
1726 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1727
1728         PR target/46533
1729         * config/alpha/predicates.md (direct_call_operand): Return false
1730         for !TARGET_SMALL_TEXT targets.
1731
1732 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
1733
1734         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
1735         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
1736         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
1737         * doc/tm.texi: Regenerate.
1738         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
1739         HANDLE_PRAGMA_WEAK): Poison.
1740         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1741         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1742         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
1743         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
1744         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1745         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1746         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1747         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
1748         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1749         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
1750         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1751         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
1752         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1753         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1754         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1755         (HANDLE_PRAGMA_WEAK): Don't undefine.
1756         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1757         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
1758         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1759         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
1760         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1761         (HANDLE_PRAGMA_WEAK): Don't undefine.
1762         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1763         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
1764         (HANDLE_PRAGMA_PACK): Don't undefine.
1765         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
1766         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1767         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1768         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1769         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
1770         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1771         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1772         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1773         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
1774         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1775         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
1776         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1777         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1778         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1779         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1780         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
1781         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1782
1783 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1784
1785         PR target/31100
1786         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
1787         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
1788         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
1789
1790 2010-11-20  Jan Hubicka  <jh@suse.cz>
1791
1792         * cgraph.c (ld_plugin_symbol_resolution_names): New.
1793         (dump_cgraph_node): Dump resolution.
1794         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
1795         (cgraph_comdat_can_be_unshared_p): Dclare.
1796         * lto-streamer-out.c (produce_symtab): Use
1797         cgraph_comdat_can_be_unshared_p.
1798         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
1799         (cgraph_comdat_can_be_unshared_p): New function based on logic
1800         in cgraph_externally_visible_p.
1801         (cgraph_externally_visible_p): Use it.
1802         (varpool_externally_visible_p): Virtual tables can be unshared.
1803         * varpool.c (dump_varpool_node): Dump resolution.
1804
1805 2010-11-20  Jan Hubicka  <jh@suse.cz>
1806
1807         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
1808
1809 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1810
1811         PR other/46202
1812         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
1813         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
1814         shell quoting.
1815         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
1816         (install-strip): New target.
1817         (STRIPPROG): New variable, exported if STRIP is set.
1818         * doc/install.texi (Final install): Minor markup and code style
1819         fixes.  Document install-strip target.
1820
1821 2010-11-20  Paul Koning  <ni1d@arrl.net>
1822
1823         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
1824         pdp11_regno_reg_class): New functions.
1825         * config/pdp11/pdp11.md (define_constants): Add register numbers.
1826         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
1827         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
1828         functions.
1829         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
1830         frame pointer and argument pointer pseudo-registers.
1831         (ARG_POINTER_REGNUM): Define.
1832         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
1833         argument pointer.
1834         (FIRST_PARM_OFFSET): Update for argument pointer.
1835         (INITIAL_FRAME_POINTER_OFFSET): Delete.
1836         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
1837         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
1838         frame pointer and argument pointer.
1839
1840 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
1841
1842         PR debug/46561
1843         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
1844         when looking for immediate uses.
1845
1846         PR tree-optimization/45830
1847         * stmt.c (expand_switch_using_bit_tests_p): New function.
1848         (expand_case): Use it.
1849         * tree.h (expand_switch_using_bit_tests_p): New prototype.
1850         * tree-switch-conversion.c (struct switch_conv_info): Add
1851         bit_test_uniq, bit_test_count and bit_test_bb fields.
1852         (check_range): Fix a comment.
1853         (check_process_case): Compute bit_test_uniq and bit_test_count.
1854         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
1855         allocation.
1856         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
1857         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
1858         (array_value_type): New function.
1859         (build_one_array): Use it, if it returned different type,
1860         fold_convert all constructor fields and convert back to the
1861         wider type in the generated code.
1862         (process_switch): Initialize bit_test_uniq, bit_test_count and
1863         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
1864         returned true.
1865
1866 2010-11-19  Michael Matz  <matz@suse.de>
1867
1868         PR tree-optimization/46077
1869         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
1870
1871 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
1872
1873         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1874         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
1875         function.
1876         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1877
1878 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
1879
1880         * mode-switching.c (optimize_mode_switching): Use
1881         FOR_BB_INSNS instead of open-coded loop.
1882         * cfgrtl.c (redirect_branch_edge): Ditto.
1883
1884 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
1885
1886         PR target/46436
1887         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
1888         to accomodate 32 bit HOST_WIDE_INT.
1889         (m68hc11_emit_logical): Remove unused variable insn.
1890         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
1891         this_insn_uses_iy before use.
1892
1893         PR target/46434
1894         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
1895
1896 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1897
1898         PR c/46547
1899         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
1900         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
1901
1902 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
1903
1904         * doc/extend.texi (Function attributes): Document PowerPC target
1905         attributes that are supported.
1906         (Pragmas): Document that PowerPC now supports target pragmas.
1907
1908         * doc/options.texi (TargetVariable): Document TargetVariable,
1909         HeaderInclude, and SourceInclude.
1910
1911         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
1912         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
1913         -ffp-contract=off.
1914
1915         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
1916         SourceInclude directives.  Fix a cut+paste error with target save
1917         enum variables.  Sort enums in the structures after ints and
1918         before shorts.
1919         * opth-gen.awk: Ditto.
1920
1921         * configure.ac: Add support for HeaderInclude and SourceInclude option
1922         directives to add the appropriate files to the dependency lists.
1923         * configure: Regenerate.
1924         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
1925         (OPTIONS_C_EXTRA): New variable for SourceInclude.
1926         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
1927         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
1928         (gcc-options.o): Ditto.
1929         * opt-include.awk: New awk script to handle HeaderInclude and
1930         TargetInclude.
1931
1932         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
1933         gets saved in the target options.
1934         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
1935         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
1936         (-mprototype): Ditto.
1937         (-mbit-word): ditto.
1938         (-mregnames): Ditto.
1939         (-msecure-plt): Ditto.
1940         (-mbss-plt): Ditto.
1941         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
1942         (-mpowerpc-gfxopt): Ditto.
1943         (-mmfcrf): Ditto.
1944         (-mpopcntb): Ditto.
1945         (-mfprnd): Ditto.
1946         (-mcmpb): Ditto.
1947         (-mmmfpgpr): Ditto.
1948         (-maltivec): Ditto.
1949         (-mhard-dfp): Ditto.
1950         (-mmulhw): Ditto.
1951         (-mdlmzb): Ditto.
1952         (-mmultiple): Ditto.
1953         (-mstring): Ditto.
1954         (-mpopcntd): Ditto.
1955         (-mfriz): Ditto.
1956         (-mvsx): Ditto.
1957         (-mno-update): Ditto.
1958         (-mavoid-indexed-addresses): Ditto.
1959         (-mtls-markers): Ditto.
1960         (-msched-epilog): Ditto.
1961         (-msched-prolog): Ditto.
1962         (-maix-struct-return): Ditto.
1963         (-msvr4-struct-return): Ditto.
1964         (-mxl-compat): Ditto.
1965         (-mrecip-precision): Ditto.
1966         (-mfp-in-toc): Ditto.
1967         (-msum-in-toc): Ditto.
1968         (-mvrsave): Ditto.
1969         (-mblock-move-inline-limit=): Ditto.
1970         (-misel): Ditto.
1971         (-mpaired): Ditto.
1972         (-mlongcall): Ditto.
1973         (-mgen-cell-microcode): Ditto.
1974         (-mwarn-cell-microcode): Ditto.
1975         (-mwarn-altivec-long): Ditto.
1976         (-mprioritize-restricted-insns=): Ditto.
1977         (-msingle-float): Ditto.
1978         (-mdouble-float): Ditto.
1979         (-msimple-fpu): Ditto.
1980         (-mxilinx-fpu): Ditto.
1981         * config/rs6000/aix64.opt (-mpe): Ditto.
1982
1983         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
1984         (rs6000_cpu): Move variable to be a target variable.  Rename
1985         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
1986         -mdebug=<xxx> variables into a single int.
1987         (rs6000_always_hint): Ditto.
1988         (rs6000_sched_groups): Ditto.
1989         (rs6000_align_branch_targets): Ditto.
1990         (rs6000_sched_costly_dep): Ditto.
1991         (rs6000_sched_insert_nops): Ditto.
1992         (rs6000_long_double_type_size): Ditto.
1993         (rs6000_ieeequad): Ditto.
1994         (rs6000_altivec_abi): Ditto.
1995         (rs6000_spe): Ditto.
1996         (rs6000_spe_abi): Ditto.
1997         (rs6000_float_gprs): Ditto.
1998         (rs6000_darwin64_abi): Ditto.
1999         (can_override_loop_align): Ditto.
2000         (rs6000_sdata): Ditto.
2001         (rs6000_tls_size): Ditto.
2002         (rs6000_current_abi): Ditto.
2003         (rs6000_traceback): Ditto.
2004         (rs6000_alignment_flags): Ditto.
2005         (rs6000_current_cmodel): Ditto.
2006         (rs6000_recip_control): Ditto.
2007         (rs6000_cpu_index): Ditto.
2008         (rs6000_tune_index): Ditto.
2009         (rs6000_debug): Ditto.
2010         (rs6000_target_flags_explict): Ditto.
2011
2012         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
2013         declaration.
2014
2015         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
2016         cmodel.  Change all uses.
2017
2018         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
2019         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
2020         Rename cmodel to rs6000_current_cmodel.
2021         (rs6000_sched_groups): Ditto.
2022         (rs6000_align_branch_targets): Ditto.
2023         (rs6000_sched_costly_dep): Ditto.
2024         (rs6000_sched_insert_nops): Ditto.
2025         (rs6000_long_double_type_size): Ditto.
2026         (rs6000_ieeequad): Ditto.
2027         (rs6000_altivec_abi): Ditto.
2028         (rs6000_spe): Ditto.
2029         (rs6000_spe_abi): Ditto.
2030         (rs6000_float_gprs): Ditto.
2031         (rs6000_darwin64_abi): Ditto.
2032         (can_override_loop_align): Ditto.
2033         (rs6000_sdata): Ditto.
2034         (rs6000_tls_size): Ditto.
2035         (rs6000_current_abi): Ditto.
2036         (rs6000_traceback): Ditto.
2037         (rs6000_alignment_flags): Ditto.
2038         (rs6000_current_cmodel): Ditto.
2039         (rs6000_recip_control): Ditto.
2040         (rs6000_cpu_index): Ditto.
2041         (rs6000_tune_index): Ditto.
2042         (rs6000_debug): Ditto.
2043         (rs6000_target_flags_explict): Ditto.
2044         (rs6000_sched_insert_nops_str): Make static.
2045         (rs6000_sched_costly_dep_str): Ditto.
2046         (rs6000_recip_name): Ditto.
2047         (rs6000_abi_name): Ditto.
2048         (rs6000_sdata_name): Ditto.
2049         (enum rs6000_traceback_name): Move to rs6000-opts.h.
2050         (rs6000_parse_tls_size_option): Delete.
2051         (rs6000_valid_attribute_p): New function for target attributes and
2052         pragmas.
2053         (rs6000_function_specific_save): Ditto.
2054         (rs6000_function_specific_restore): Ditto.
2055         (rs6000_function_specific_print): Ditto.
2056         (rs6000_can_inline_p): Ditto.
2057         (rs6000_set_current_function): Ditto.
2058         (rs6000_inner_target_options): Ditto.
2059         (rs6000_debug_target_options): Ditto.
2060         (rs6000_pragma_target_parse): Ditto.
2061         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
2062         attributes and pragmas.
2063         (TARGET_OPTION_SAVE): Ditto.
2064         (TARGET_OPTION_RESTORE): Ditto.
2065         (TARGET_OPTION_PRINT): Ditto.
2066         (TARGET_CAN_INLINE_P): Ditto.
2067         (TARGET_SET_CURRENT_FUNCTION): Ditto.
2068         (POWER_MASKS): Move to file level scope from the
2069         rs6000_option_override_internal function.
2070         (POWERPC_MASKS): Ditto.
2071         (ISA_*_MASKS): Ditto.
2072         (struct rs6000_ptt): Ditto.
2073         (processor_target_table): Ditto.
2074         (rs6000_cpu_name_lookup): Map cpu name to an index in
2075         processor_target_table.
2076         (rs6000_debug_reg_global): Print more information on processor
2077         options for -mdebug=reg.
2078         (rs6000_init_hard_regno_mode_ok): Add support for target
2079         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
2080         Allow -mdebug=val1,val2.  Rename cmodel variable.
2081         (rs6000_option_override_internal): Ditto.
2082         (rs6000_option_override): Ditto.
2083         (rs6000_handle_option): Ditto.
2084         (rs6000_conditional_register_usage): Add debug trace message.
2085         (struct rs6000_opt_mask): New for target attribute/pragma support.
2086         (rs6000_opt_masks): Ditto.
2087         (struct rs6000_opt_var): Ditto.
2088         (rs6000_opt_vars): Ditto.
2089         (rs6000_previous_function): Ditto.
2090
2091         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
2092         wasn't already included.
2093         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
2094         (enum processor_type): Ditto.
2095         (rs6000_cpu): Ditto.
2096         (enum fpu_type_t): Ditto.
2097         (fpu_type): Ditto.
2098         (enum rs6000_dependence_cost): Ditto.
2099         (enum rs6000_nop_insertion): Ditto.
2100         (enum group_termination): Ditto.
2101         (rs6000_long_double_type_size): Ditto.
2102         (rs6000_ieeequad): Ditto.
2103         (rs6000_altivec_abi): Ditto.
2104         (rs6000_spe_abi): Ditto.
2105         (rs6000_spe): Ditto.
2106         (rs6000_float_gprs): Ditto.
2107         (rs6000_alignment_flags): Ditto.
2108         (rs6000_sched_insert_nops): Ditto.
2109         (enum rs6000_vector): Ditto.
2110         (enum rs6000_abi): Ditto.
2111         (rs6000_current_opt): Ditto.
2112         (rs6000_debug_*): Delete.
2113         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
2114         (TARGET_DEBUG*): Ditto.
2115
2116         * config/rs6000/rs6000-opts.h: New header file to define the enums
2117         that are used in target variables that are now defined in rs6000.opt.
2118
2119         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
2120         rs6000-opts.h.
2121         (rs6000_sdata): Ditto.
2122         (rs6000_abi_name): Delete.
2123         (rs6000_sdata_name): Ditto.
2124         (rs6000_tls_size_string): Ditto.
2125
2126 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2127
2128         * common.opt (debug_struct_ordinary, debug_struct_generic): New
2129         Variable entries.
2130         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
2131         should_emit_struct_debug): Move from opts.c.
2132         * flag-types.h (enum debug_struct_file): Move from opts.c.
2133         * flags.h (should_emit_struct_debug): Remove.
2134         (base_of_path): Declare.
2135         (set_struct_debug_option): Add gcc_options parameter.
2136         * optc-gen.awk, opth-gen.awk: Handle array variables.
2137         * opts.c (enum debug_struct_file, debug_struct_ordinary,
2138         debug_struct_generic): Remove.
2139         (set_struct_debug_option): Add gcc_options parameter.
2140         (base_of_path): Remove static.
2141         (main_input_basename, main_input_baselength, matches_main_base,
2142         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
2143         Remove.
2144         * toplev.c (main_input_basename, main_input_baselength): Define
2145         here.
2146         * toplev.h (main_input_basename, main_input_baselength): Declare
2147         here.
2148
2149 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2150
2151         * common.opt (flag_instrument_functions_exclude_functions,
2152         flag_instrument_functions_exclude_files): New Variable definitions.
2153         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
2154         * gimplify.c (char_p): Declare type and vectors.
2155         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
2156         * opts.c (flag_instrument_functions_exclude_functions,
2157         flag_instrument_functions_exclude_files): Remove.
2158         (add_comma_separated_to_vector): Take void **.
2159         (flag_instrument_functions_exclude_p): Move to gimplify.c.
2160         (common_handle_option): Use options structure for
2161         -finstrument-functions-exclude- options.
2162
2163 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2164
2165         * doc/options.texi (Var): Document effects of Defer.
2166         (Defer): Document.
2167         * opt-functions.awk (var_type, var_set): Handle deferred options.
2168         * opts-common.c (set_option): Handle CLVC_DEFER.
2169         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
2170         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
2171         fstack-limit-symbol=): Mark as deferred.
2172         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
2173         plugin.h.
2174         (print_filtered_help): Don't report state of CLVC_DEFER options.
2175         (common_handle_option): Move code for OPT_fcall_used_,
2176         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
2177         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
2178         OPT_fstack_limit_symbol_ to opts-global.c.
2179         (option_enabled, get_option_state): Handle CLVC_DEFER.
2180         * opts.h: Include vec.h.
2181         (enum cl_var_type): Add CLVC_DEFER.
2182         (cl_deferred_option): Define type and vectors.
2183         (handle_common_deferred_options): Declare.
2184         * opts-global.c: New.
2185         * toplev.c (toplev_main): Call handle_common_deferred_options
2186         * Makefile.in (OPTS_H): Include $(VEC_H).
2187         (OBJS-common): Include opts-global.o.
2188         (opts.o): Update dependencies.
2189         (opts-global.o): Add dependencies.
2190
2191 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
2192
2193         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
2194         to objc_declare_protocols.
2195
2196 2010-11-19  Richard Guenther  <rguenther@suse.de>
2197
2198         PR lto/45789
2199         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
2200         IDENTIFIERs do not stream TREE_TYPE.
2201         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
2202
2203 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
2204
2205         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
2206
2207 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
2208
2209         PR target/45870
2210         * dwarf2out.c (const_ok_for_output_1): Don't complain about
2211         non-delegitimized TLS UNSPECs.
2212
2213 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
2214             Ian Lance Taylor  <iant@google.com>
2215
2216         * config/darwin-c.c (darwin_additional_format_types): Export.
2217
2218 2010-11-18  Paul Koning  <ni1d@arrl.net>
2219
2220         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
2221         pointer.
2222
2223 2010-11-18  Paul Koning  <ni1d@arrl.net>
2224
2225         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
2226         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
2227         * config/pdp11/pdp11.opt (-mabshi): Delete.
2228
2229 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
2230
2231         * resource.h (struct resources): Fix typo in the comment.
2232
2233 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2234
2235         PR target/46546
2236         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
2237
2238 2010-11-18  Richard Henderson  <rth@redhat.com>
2239
2240         PR middle-end/46515
2241         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
2242         maybe_copy_epilogue_insn; handle prologue insns as well.
2243         * rtl.h, cfglayout.c: Update for rename.
2244         * recog.c (peep2_attempt): Copy prologue/epilogue data for
2245         RTX_FRAME_RELATED_P insns.
2246
2247 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
2248
2249         PR middle-end/46534
2250         * builtins.c (fold_builtin_printf): Don't copy and modify string
2251         before build_string_literal, instead modify what
2252         build_string_literal returned.
2253
2254 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
2255
2256         PR c/33193
2257         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
2258         REALPART_EXPR and IMAGPART_EXPR.
2259
2260 2010-11-18  Richard Guenther  <rguenther@suse.de>
2261
2262         PR tree-optimization/46172
2263         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
2264         function.
2265         (slpeel_tree_peel_loop_to_edge): Call it.
2266
2267 2010-11-18  Jeff Law  <law@redhat.com>
2268
2269         PR middle-end-optimization/46297
2270         * postreload.c (reload_combine_note_store): Deal with embedded
2271         side effects in MEM expressions.
2272
2273 2010-11-18  Richard Guenther  <rguenther@suse.de>
2274
2275         PR lto/45089
2276         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
2277         when checking is not enabled.
2278
2279 2010-11-18  Richard Guenther  <rguenther@suse.de>
2280
2281         PR lto/46525
2282         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
2283         type leaders.
2284         (gimple_register_canonical_type): Also cache the canoncial type
2285         for non type leaders.
2286
2287 2010-11-18  Richard Guenther  <rguenther@suse.de>
2288
2289         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
2290
2291 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
2292
2293         PR middle-end/46518
2294         * sel-sched-ir.c (init_expr): Use the correct type for
2295         target_available.
2296         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
2297
2298 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2299
2300         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
2301         as well as -mrelocatable at the same time.
2302
2303 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
2304
2305         PR target/46422
2306         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
2307         Call the clz builtin.
2308
2309 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
2310             Steve Ellcey  <sje@cup.hp.com>
2311
2312         PR middle-end/31490
2313         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
2314         if section attribute used.
2315
2316 2010-11-17  Jan Hubicka  <jh@suse.cz>
2317
2318         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
2319         expand errno setting variant when optimizing for size.
2320
2321 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
2322
2323         * postreload.c (reload_combine): Call control_flow_insn_p only once.
2324         Reverse backward loop.  Fix formatting issues.
2325
2326 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
2327
2328         * c-parser.c (c_token_is_qualifier,
2329         c_parser_next_token_is_qualifier): New.
2330         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
2331         Improve error message on specs->tagdef_seen_p.
2332         (c_parser_struct_or_union_specifier): Improve error recovery.
2333         (c_parser_declspecs): Move exit condition on C_ID_ID early.
2334         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
2335         using c_parser_next_token_is_qualifier; extend it to cover
2336         a ctsk_tagdef typespec and !typespec_ok in general.
2337
2338 2010-11-17  Richard Guenther  <rguenther@suse.de>
2339
2340         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
2341         (gimple_mod_pow2_value_transform): Likewise.
2342         (gimple_mod_subtract_transform): Likewise.
2343
2344 2010-11-17  Richard Guenther  <rguenther@suse.de>
2345
2346         PR lto/46504
2347         * gimple.c (gimple_register_canonical_type): Make sure to only
2348         make type leaders canonical types.
2349
2350 2010-11-17  Michael Matz  <matz@suse.de>
2351
2352         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
2353         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
2354         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
2355         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
2356         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
2357         (pass_build_ssa): ... but here.
2358         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
2359         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
2360         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
2361         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
2362         * predict.c (rebuild_frequencies): Ditto.
2363         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
2364         * emit-rtl.c (verify_rtl_sharing): Ditto.
2365         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
2366         * tree-ssa-live.c (remove_unused_locals): Ditto.
2367         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
2368         * tree-ssa.c (pass_early_warn_uninitialized,
2369         execute_update_addresses_taken, pass_update_address_taken): Ditto.
2370         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
2371         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
2372         * passes.c (pass_postreload, execute_todo): Ditto.
2373         * tree-ssanames.c (pass_release_ssa_names): Ditto.
2374
2375 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2376
2377         * doc/invoke.texi (-dy): Remove.
2378         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
2379         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
2380         * langhooks.c (lhd_do_nothing_i): Remove.
2381         * langhooks.h (lang_hooks.parse_file): Take no arguments.
2382         * toplev.c (set_yydebug): Remove.
2383         (compile_file): Update call to lang_hooks.parse_file.
2384         (decode_d_option): Don't handle -dy.
2385
2386 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2387
2388         PR rtl-optimization/46440
2389         * combine.c (update_cfg_for_uncondjump): When changing
2390         an indirect jump into unconditional jump, remove BARRIERs
2391         from bb's footer.
2392
2393 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2394
2395         * opts.c (target_handle_option): Do not assert that loc ==
2396         UNKNOWN_LOCATION.
2397
2398 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2399             Richard Guenther  <rguenther@suse.de>
2400
2401         PR middle-end/45838
2402         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2403         call_may_clobber_ref_p_1): Return true for __sync_* and some
2404         OpenMP builtins that act as threading barriers.
2405
2406 2010-11-17  Richard Guenther  <rguenther@suse.de>
2407
2408         PR tree-optimization/46498
2409         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
2410
2411 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2412
2413         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
2414         (xtensa_function_arg_boundary): ...this.
2415         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
2416         thinko in declaration.
2417         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
2418         number of parameters to picochip_function_arg_boundary.
2419         (picochip_arg_advance): Likewise.
2420
2421 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2422
2423         PR target/46512
2424         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
2425         under check for type.
2426
2427 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2428
2429         * ifcvt.c (dead_or_predicable): Fix typo.
2430
2431 2010-11-16  Richard Henderson  <rth@redhat.com>
2432
2433         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
2434         * config/s390/s390.opt (mfused-madd): Remove.
2435         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
2436         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
2437         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
2438         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
2439
2440 2010-11-16  Richard Henderson  <rth@redhat.com>
2441
2442         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
2443         * config/rs6000/rs6000.opt (mfused-madd): Remove.
2444         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
2445         (*altivec_vmaddfp_1): Remove.
2446         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
2447         (altivec_mulv4sf3): Expand to FMA directly.
2448         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
2449         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
2450         * config/rs6000/paired.md (paired_madds0): Use FMA.
2451         (paired_madds1): Likewise.
2452         (*paired_madd): Rename from paired_madd; use FMA.
2453         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
2454         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
2455         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
2456         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
2457         (rs6000_emit_madd): Use fma_optab.
2458         (rs6000_emit_msub): Use fms_optab.
2459         (rs6000_emit_nmsub): Expand the FMA pattern directly.
2460         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
2461         (*fmasf4_fpr): Rename from fmasf4_fpr.
2462         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
2463         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
2464         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
2465         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
2466         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
2467         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
2468         (*fmadf4_fpr): Rename from fmadf4_fpr.
2469         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
2470         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
2471         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
2472         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
2473         (fmasf4, fmadf4): Macroize into...
2474         (fma<FMA_F>4): ... here.
2475         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
2476         (nfma<FMA_F>4, nfms<FMA_F>4): New.
2477         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
2478         TARGET_FUSED_MADD.
2479         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
2480         (*vsx_fmadd<mode>4_1): Remove.
2481         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
2482         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
2483         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
2484         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
2485         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
2486         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
2487         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
2488
2489 2010-11-16  Richard Henderson  <rth@redhat.com>
2490
2491         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
2492         (fmasf4, fnmadf4, fnmasf4): Likewise.
2493         (unnamed plus+mult insns and splitters): Delete.
2494
2495 2010-11-16  Richard Henderson  <rth@redhat.com>
2496
2497         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
2498         (fnma<VSF>4): Rename from fnms_<VSF>.
2499         (fms<VSF>4): Rename from fms_<VSF>.
2500         (fma<VDF>4): Rename from fma_<VDF>.
2501         (fms<VDF>4): Rename from fms_<VDF>.
2502         (nfma<VDF>4): Rename from fnma_<VDF>.
2503         (nfms<VDF>4): Rename from fnms_<VDF>.
2504         (fnma<VDF>4, fnms<VDF>4): New expanders.
2505         (floatunsdisf2): Update for the renames.
2506         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
2507         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
2508
2509 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2510
2511         PR rtl-optimization/46490
2512         * combine.c (expand_compound_operation): Fix thinko.
2513
2514 2010-11-16  Richard Henderson  <rth@redhat.com>
2515
2516         PR target/46470
2517         * recog.c (peep2_attempt): Convert frame-related info when possible.
2518         (peep2_fill_buffer): Allow frame-related insns into the buffer.
2519         (peephole2_optimize): Allow peep2_attempt to fail.
2520
2521 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2522
2523         PR rtl-optimization/46315
2524         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
2525         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
2526         extracted from...
2527         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
2528         (remove_reg_equal_equiv_notes_for_defs): ...this.
2529         (delete_unmarked_insns): Adjust to above renaming.
2530         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
2531         referring to registers set in the insns being moved, if any.
2532
2533         * df-core.c (df_ref_dump): New function extracted from...
2534         (df_refs_chain_dump): ...here.  Call it.
2535         (df_regs_chain_dump): Likewise.
2536         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
2537         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
2538
2539 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
2540
2541         PR rtl-optimization/46395
2542         * postreload.c (reload_combine): Invalidate register use
2543         information on all control flow insns.
2544
2545         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
2546         LABEL_REF in UNSPEC operand.
2547
2548 2010-11-16  Jan Hubicka  <jh@suse.cz>
2549
2550         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
2551         when !flag_toplevel_reorder do not remove unless variable is
2552         COMDAT or ARTIFICIAL.
2553         * ipa.c (varpool_can_remove_if_no_refs): ... here.
2554         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
2555         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
2556         * varpool.c (decide_is_variable_needed): Do not handle visibility
2557         issues.
2558         (varpool_finalize_decl): Likewise.
2559         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
2560         update outdated comment on DECL_RTL_SET_P check.
2561
2562 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2563
2564         * config/sol2.h (NM_FLAGS): Define.
2565         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
2566         * doc/tm.texi: Update.
2567
2568 2010-11-16  Nick Clifton  <nickc@redhat.com>
2569
2570         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
2571         (msubsf4): Rename to fmssf4, and use fma.
2572         (nmaddsf4): Rename to fnmasf4 and use fma.
2573         (nmsubsf4): Rename to fnmssf4 and use fma.
2574
2575 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
2576
2577         PR target/44762
2578         * config/score/score3.c (score3_return_in_memory): Constify arguments.
2579         (score3_in_small_data_p, score3_function_value): Likewise.
2580         (score3_trampoline_init): Use LCT_NORMAL.
2581         (score3_print_operand): Initialize code as UNKNOWN.
2582         * config/score/predicates.md (score_load_multiple_operation):
2583         Remove unused variable.
2584         (score_store_multiple_operation): Likewise.
2585         * config/score/score7.c (score7_return_in_memory): Constify arguments.
2586         (score7_in_small_data_p, score7_function_value): Likewise.
2587         (score7_trampoline_init): Use LCT_NORMAL.
2588         (score7_print_operand): Initialize code as UNKNOWN.
2589         * config/score/score3.h (score3_return_in_memory): Update prototype.
2590         (score3_in_small_data_p, score3_function_value): Likewise.
2591         * config/score/score-protos.h (score_function_value): Likewise.
2592         * config/score/score7.h (score7_return_in_memory): Update prototype.
2593         (score7_in_small_data_p, score7_function_value): Likewise.
2594         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
2595         (score_return_in_memory, score_pass_by_reference): Constify arguments.
2596         (score_output_mi_thunk, score_function_prologue): Don't return a value.
2597         (score_function_epilogue, score_in_small_data_p): Likewise.
2598         (score_option_override, score_asm_trampoline_template): Likewise.
2599         (score_trampoline_init, score_print_operand): Likewise.
2600         (score_print_operand_address, score_prologue): Likewise.
2601         (score_epilogue, score_call, score_call_value): Likewise.
2602         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
2603         (score_function_arg_advance): Likewise. Make static.
2604         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
2605         (score_function_arg, score_legitimate_address_p): Make static.
2606         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
2607         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
2608         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
2609         Allow (W) == HOST_BITS_PER_WIDE_INT.
2610
2611         PR java/46386
2612         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
2613         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
2614
2615 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2616
2617         * config/arc/arc.c: Delete pasto.
2618         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
2619
2620 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
2621
2622         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
2623         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
2624         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
2625         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2626         (mn10300_preferred_reload_class,
2627         mn10300_preferred_output_reload_class): New functions.
2628
2629 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2630
2631         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
2632         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
2633         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
2634         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
2635
2636 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2637
2638         * builtins.c (std_gimplify_va_arg_expr): Use
2639         targetm.calls.function_arg_boundary.
2640         * function.c (assign_parms, locate_and_pad_parm): Likewise.
2641         * calls.c (struct arg_data): Update comment.
2642         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
2643         * target.def (function_arg_boundary): Define.
2644         * targhooks.h (default_function_arg_boundary): Declare.
2645         * targhooks.c (default_function_arg_boundary): Define.
2646         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
2647         TARGET_FUNCTION_ARG_BOUNDARY.
2648         (FUNCTION_ARG_BOUNDARY): Delete.
2649         (TARGET_FUNCTION_ARG_BOUNDARY): New.
2650         * doc/tm.texi: Regenerate.
2651         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
2652         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
2653         * config/arc/arc.c (arc_function_arg_boundary): Define.
2654         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2655         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
2656         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
2657         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
2658         (arm_function_arg_boundary): Define.
2659         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2660         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
2661         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
2662         * config/frv/frv.c (frv_function_arg_boundary): Make static.
2663         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2664         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
2665         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
2666         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
2667         (ix86_compat_function_arg_boundary): Take and return unsigned int.
2668         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2669         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
2670         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
2671         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
2672         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2673         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
2674         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
2675         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2676         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
2677         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
2678         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
2679         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2680         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
2681         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
2682         * config/mips/mips.c (mips_function_arg_boundary): Make static.
2683         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2684         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
2685         * config/pa/pa.c (pa_function_arg_boundary): Define.
2686         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2687         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
2688         * config/picochip/picochip-protos.h
2689         (picochip_get_function_arg_boundary): Delete.
2690         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
2691         Rename to...
2692         (picochip_function_arg_boundary): ...this.  Make static.
2693         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
2694         (picochip_arg_advance): Adjust.
2695         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2696         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
2697         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
2698         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
2699         (rs6000_function_arg_boundary): ...this.  Make static.
2700         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
2701         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2702         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
2703         * config/rx/rx.c (rx_function_arg_boundary): Define.
2704         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2705         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
2706         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
2707         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2708         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
2709         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
2710         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
2711         (xtensa_function_arg_boundary): ...this.  Make static.
2712         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2713
2714 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2715
2716         * expr.c (alignment_for_piecewise_move): New function.
2717         (widest_int_mode_for_size): New function.
2718         (move_by_pieces, move_by_pieces_ninsns): Call them.
2719         (can_store_by_pieces, store_by_pieces_1): Likewise.
2720
2721 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2722
2723         * gcc.c (char_p): Define.  Define a VEC of it.
2724         (n_linker_options, n_assembler_options, n_preprocessor_options):
2725         Delete.
2726         (linker_options, assembler_options, preprocessor_options): Convert
2727         to a VEC.
2728         (add_preprocessor_option): Adjust.
2729         (add_assembler_option): Adjust.
2730         (add_linker_option): Adjust.
2731         (do_specs_vec): New function.
2732         (do_spec_1): Call it.  Adjust for new types.
2733
2734 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2735
2736         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
2737         (sreal.o, statistics.o, stringpool.o): Likewise.
2738
2739 2010-11-16  Richard Guenther  <rguenther@suse.de>
2740
2741         PR tree-optimization/44545
2742         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
2743         statements are not reassociatable.
2744         (reassociate_bb): Likewise.
2745
2746 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2747
2748         * bitmap.c: Delete unnecessary includes.
2749         * ebitmap.c: Likewise.
2750         * et-forest.c: Likewise.
2751         * sreal.c: Likewise.
2752         * statistics.c: Likewise.
2753         * stringpool.c: Likewise.
2754         * double-int.c: Add comment for inclusion of tm.h.
2755
2756 2010-11-16  Richard Guenther  <rguenther@suse.de>
2757
2758         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
2759         (visit_nary_op): ... this.
2760         (visit_binary_op): Remove.
2761         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
2762
2763 2010-11-16  Richard Guenther  <rguenther@suse.de>
2764
2765         PR middle-end/45172
2766         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
2767
2768 2010-11-16  Nick Clifton  <nickc@redhat.com>
2769
2770         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
2771         record is packed.
2772
2773 2010-11-15  Richard Henderson  <rth@redhat.com>
2774
2775         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
2776         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
2777         DOT_PROD_EXPR.
2778
2779 2010-11-15  Richard Henderson  <rth@redhat.com>
2780
2781         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
2782         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
2783         fma rtx_code.
2784
2785 2010-11-15  Richard Henderson  <rth@redhat.com>
2786
2787         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
2788         and *mulsubsf4 respectively.  Use fma rtx_code.
2789
2790 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
2791
2792         * gcc.c: Include "vec.h".
2793         (argbuf): Make into a VEC.
2794         (argbuf_length, argbuf_index): Remove.
2795         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
2796         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
2797         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
2798         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
2799         (gcc.o): Depend on $(VEC_H).
2800
2801 2010-11-15  Richard Henderson  <rth@redhat.com>
2802
2803         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
2804         via FMA if unsafe math.
2805         (insert_var_expansion_initialization): Handle FMA.
2806         (combine_var_copies_in_loop_exit): Likewise.
2807
2808 2010-11-15  Richard Henderson  <rth@redhat.com>
2809
2810         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
2811         * config/ia64/ia64.opt: Remove mfused-madd.
2812         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
2813         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
2814         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
2815         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
2816         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
2817         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
2818         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
2819         (fmav2sf4): Rename from fpma; use FMA code.
2820         (fmsv2sf4): Rename from fpms; use FMA code.
2821         (fnmav2sf4): Rename from *fpnma; use FMA code.
2822         * config/ia64/ia64.md (MODE_SDF): New iterator.
2823         (suffix): New mode attribute.
2824         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
2825         (fmssf4): Rename from *fmssf4.
2826         (fnmasf4): Rename from *nfmasf4.
2827         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
2828         (*nmadddf4, *nmadddf4_truncsf): Remove.
2829         (fmsdf4): Rename from *fmsdf4.
2830         (fnmadf4): Rename from *nfmadf4.
2831         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
2832         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
2833         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
2834         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
2835         (fmsxf4): Rename from *fmsxf4.
2836         (fnmaxf4): Rename from *nfmaxf4.
2837         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
2838         (*fnmaxf_trunc_<MODE_SDF>): New.
2839
2840 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2841
2842         PR tree-optimization/46461
2843         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
2844         a gimple val.
2845
2846 2010-11-15  Ian Lance Taylor  <iant@google.com>
2847
2848         * godump.c: New file.
2849         * common.opt (fdump-go-spec=): New option.
2850         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
2851         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
2852         (TYPE_SYMTAB_IS_DIE): Define.
2853         (struct tree_type): Change GTY for symtab field to use
2854         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
2855         to pick the union field.
2856         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
2857         (dump_go_spec_init): Declare.
2858         * toplev.c (process_options): Handle flag_dump_go_spec.
2859         * debug.c: Include "tree.h".
2860         (do_nothing_debug_hooks): Set tree_type_symtab_field.
2861         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
2862         * dbxout.c (dbx_debug_hooks): Likewise.
2863         (xcoff_debug_hooks): Likewise.
2864         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2865         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
2866         SDB_DEBUGGING_INFO is not defined.
2867         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
2868         (Overall Options): Document -fdump-go-spec.
2869         * Makefile.in (OBJS-common): Add godump.o.
2870         (debug.o): Add dependency on $(TREE_H).
2871         (godump.o): New target.
2872         (GTFILES): Add $(srcdir)/godump.c.
2873
2874 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2875
2876         PR debug/46095
2877         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
2878         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
2879         style < 0, add REG_FRAME_RELATED_EXPR.
2880
2881         PR debug/46387
2882         * rtl.h (vt_equate_reg_base_value): New prototype.
2883         * alias.c (vt_equate_reg_base_value): New function.
2884         * var-tracking.c (vt_init_cfa_base): Use it.
2885
2886 2010-11-15  Jan Hubicka  <jh@suse.cz>
2887             Diego Novillo  <dnovillo@google.com>
2888
2889         PR lto/41528
2890         * doc/lto.texi: Add.
2891         * doc/gccint.texi: Add reference to lto.texi.
2892         * doc/invoke.texi: Update user documentation for LTO.
2893         Move internal flags to lto.texi
2894
2895 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
2896
2897         * c-typeck.c (build_unary_op): Use
2898         objc_build_incr_expr_for_property_ref to build the pre/post
2899         increment/decrement of an Objective-C property ref, and skip the
2900         lvalue_or_else check in that case.
2901
2902 2010-11-15  Martin Jambor  <mjambor@suse.cz>
2903
2904         PR tree-optimization/46349
2905         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
2906         (contains_vce_or_bfcref_p): Likewise.
2907         (sra_modify_assign): Use them.
2908
2909 2010-11-15  Richard Guenther  <rguenther@suse.de>
2910
2911         PR tree-optimization/46467
2912         * tree-ssa-structalias.c (do_structure_copy): Properly treat
2913         variables without subvars.
2914
2915 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
2916
2917         * config/picochip/picochip.c (file header): Picochip name change.
2918         * config/picochip/picochip.md (file header): Likewise.
2919         * config/picochip/predicates.md (file header): Likewise.
2920         * config/picochip/dfa_space.md (file header): Likewise.
2921         * config/picochip/dfa_speed.md (file header): Likewise.
2922         * config/picochip/picochip.h(file header): Likewise.
2923         * config/picochip/constraints.md (file header): Likewise.
2924         * config/picochip/picochip-protos.h (file header): Likewise.
2925         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
2926         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
2927         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
2928         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
2929         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
2930         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
2931         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
2932         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
2933         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
2934         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
2935         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
2936         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
2937         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
2938         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
2939
2940 2010-11-15  Richard Guenther  <rguenther@suse.de>
2941
2942         PR bootstrap/46474
2943         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
2944
2945 2010-11-15  Nick Clifton  <nickc@redhat.com>
2946
2947         * config/stormy16/stormy16.c (direct_return): Do not generate a
2948         direct return for interrupt handlers.
2949
2950 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
2951
2952         * Makefile.in (tm.texi): Replace with rule for:
2953         ($(srcdir)/doc/tm.texi).
2954         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
2955         $(srcdir)/doc/tm.texi .
2956         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
2957         tm.texi .
2958
2959         PR target/46427
2960         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
2961
2962         PR bootstrap/45444
2963         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
2964         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
2965
2966         PR target/46432
2967         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
2968
2969 2010-11-15  Richard Guenther  <rguenther@suse.de>
2970
2971         PR lto/44150
2972         * lto-opts.c (lto_write_options): Write -fexceptions even if
2973         not set by the user.
2974
2975 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2976
2977         PR c/46462
2978         * c-decl.c (declspecs_add_type): Make variables with error types
2979         integers.
2980         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
2981         do not start a declaration before an Objective-C foreach.
2982         (c_parser_declaration_or_fndef): Improve recovery after unknown
2983         type name.
2984         (c_parser_for_statement): Hoist entrance of "foreach context"
2985         before ifs, add corresponding reset where it was missing.  Do
2986         not set objc_could_be_foreach_context for C.
2987
2988 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
2989
2990         PR tree-optimization/45722
2991         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
2992         this is a reference to a component.
2993         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
2994         (ipa_note_param_call): Adjust comment.
2995
2996 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
2997
2998         * config/mips/mips.c (machine_function): Remove
2999         initialized_mips16_gp_pseudo_p.
3000         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
3001         detect whether a pseudo has already been created.  Unconditionally
3002         create a new one if not.
3003         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
3004         expanding to rtl.  Create a new pseudo otherwise, if allowed.
3005
3006 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
3007
3008         PR target/43440
3009         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
3010         * tm.texi: Regenerated.
3011         * output.h (decode_reg_name_and_count): Declare.
3012         * varasm.c (decode_reg_name_and_count): New function.
3013         (decode_reg_name): Reimplement using decode_reg_name_and_count.
3014         * reginfo.c (fix_register): Use decode_reg_name_and_count and
3015         iterate over all regs used.
3016         * stmt.c (expand_asm_operands): Likewise.
3017         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
3018         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
3019         multiple machine registers.
3020
3021 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
3022
3023         * stor-layout.c (place_union_field): Do not put location information
3024         on offset expressions.
3025         (place_field): Likewise.
3026         (finalize_record_size): Likewise on size expressions.
3027         (finalize_type_size): Likewise.
3028         (layout_type): Likewise.
3029
3030 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
3031
3032         PR debug/42889
3033         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
3034         * df-core.c (df_set_bb_dirty_nonrl): Remove.
3035         * df.h (df_set_bb_dirty_nonlr): Likewise.
3036
3037 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
3038
3039         * config/mips/mips.md (call_internal): Pass curr_insn to
3040         mips_split_call.
3041         (call_internal_direct): Ditto.
3042         (call_value_internal): Ditto.
3043         (call_value_internal_direct): Ditto.
3044         (call_value_multiple_internal): Ditto.
3045         * config/mips/mips.c (mips_split_call): Do not copy
3046         CALL_INSN_FUNCTION_USAGE here.
3047
3048 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
3049
3050         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
3051         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
3052         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
3053         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
3054         (TUNE_LOONGSON_3A): Define.
3055         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
3056         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
3057         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
3058         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
3059         (mips_rtx_cost_data): Add Loongson-3A.
3060
3061 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3062
3063         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
3064         switches.
3065
3066 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3067
3068         * dwarf2out.c (macinfo_entry): New struct.
3069         (output_comp_unit): Emit the section start label here and flag that we
3070         will emit an info section.
3071         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
3072         emitting directly.
3073         (dwarf2out_end_source_file): Likewise.
3074         (dwarf2out_define): Likewise.
3075         (dwarf2out_undef): Likewise.
3076         (output_macinfo): New.
3077         (dwarf2out_init): Do not emit debug section switches here, allocate a
3078         vec for macinfo, when required.
3079         (dwarf2out_finish): First switch to debug_abbrev_section here.
3080         debug_line_section,  debug_macinfo_section, Likewise.
3081         Check that the pubtypes table has at least one unpruned entry before
3082         trying to emit it.
3083
3084 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3085
3086         PR c/20385
3087         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
3088         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
3089         token lookahead.
3090         (c_parser_compound_statement_nostart, c_parser_label,
3091         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
3092         (c_parser_declaration_or_fndef): Detect the case now matched by
3093         c_parser_next_tokens_start_declaration, give error and correct it.
3094
3095 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3096
3097         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
3098         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
3099         with typespec_kind.
3100         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
3101         (shadow_tag_warned, check_compound_literal_type): Adjust
3102         uses of tag_defined_p.
3103         (declspecs_add_type): Set typespec_kind.
3104         * c-parser.c (c_parser_declaration_or_fndef,
3105         c_parser_declspecs, c_parser_struct_declaration,
3106         c_parser_parameter_declaration, c_parser_type_name,
3107         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
3108         of type_seen_p.
3109         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
3110         tag_defined_p, pass ctsk_firstref through.
3111
3112 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3113
3114         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
3115         (struct format_wanted_type): Replace field "name" with "kind", add
3116         "format_start" and "format_length".
3117         (check_format_info_main): Fill in new fields.  Fill in
3118         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
3119         after the final NUL outside the while loop.  Do not include
3120         width and precision modifiers in the format_start/format_length
3121         of the main format.
3122         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
3123         arguments.  Compute WANTED_TYPE first so that format_type_warning
3124         can be called for missing arguments.  Adjust calls to
3125         format_type_warning.
3126         (format_type_warning): Fetch as much information as possible
3127         from format_wanted_type.  Adjust printing now that every
3128         warning has a "descr", as well as for missing argument warnings
3129         and to include % sign for format specifiers.
3130
3131 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
3132
3133         PR rtl-optimization/46204
3134         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
3135         Update all callers.  Do not recompute topological order.  Adjust
3136         fallthrough edges following a degenerate conditional jump.
3137
3138 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3139
3140         * opts-common.c (control_warning_option): New.
3141         * opts.c (set_default_handlers): New.
3142         (decode_options): Use set_default_handlers and
3143         control_warning_option.
3144         (common_handle_option): Update call to enable_warning_as_error.
3145         (enable_warning_as_error): Take gcc_options parameters.  Use
3146         control_warning_option.
3147         * opts.h (set_default_handlers, control_warning_option): Declare.
3148
3149 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3150
3151         * Makefile.in (OPTS_H): Define.
3152         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
3153         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
3154         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
3155         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
3156         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
3157         * gcc.c (driver_handle_option): Take location_t parameter.
3158         (process_command, do_self_spec): Update calls to
3159         read_cmdline_option.
3160         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
3161         * langhooks.c (lhd_handle_option): Take location_t parameter.
3162         * langhooks.h (handle_option): Take location_t parameter.
3163         * lto-opts.c (lto_reissue_options): Update call to set_option.
3164         * opts-common.c (handle_option): Make static.  Take location_t
3165         parameter and pass it to other functions.
3166         (handle_generated_option): Take location_t parameter and pass it
3167         to other functions.
3168         (read_cmdline_option): Take location_t parameter and pass it to
3169         other functions.  Use warning_at and error_at.
3170         (set_option): Take location_t parameter and pass it to other
3171         functions.
3172         * opts.c (common_handle_option): Take location_t parameter and
3173         pass it to other functions.
3174         (enable_warning_as_error): Make static.  Take location_t parameter
3175         and pass it to other functions.
3176         (lang_handle_option): Take location_t parameter and pass it to
3177         other functions.
3178         (target_handle_option): Take location_t parameter.
3179         (read_cmdline_options, maybe_default_option,
3180         maybe_default_options, default_options_optimization,
3181         decode_options): Take location_t parameter and pass it to other
3182         functions.
3183         * opts.h: Include input.h.
3184         (struct cl_option_handler_func, decode_options, set_option,
3185         handle_generated_option, read_cmdline_option): Take location_t
3186         parameters.
3187         (handle_option, enable_warning_as_error): Remove.
3188         * toplev.c (toplev_main): Update call to decode_options.
3189
3190 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
3191
3192         * graphite-cloog-util.c (oppose_constraint,
3193         cloog_matrix_to_ppl_constraint,
3194         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
3195         CLooG isl uses unsigned integers.  This triggered a warning.
3196
3197 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3198
3199         PR target/46438
3200         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
3201         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
3202         (xtensa_function_arg_1): De-constify cum.
3203         (xtensa_expand_prologue): Use add_reg_note.
3204
3205         PR target/46435
3206         * config/cris/cris.c (saved_regs_mentioned): Delete.
3207         (cris_reload_address_legitimized): Cast itype to enum reload_type.
3208         Remove unused variable op0p.
3209         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
3210         (cris_emit_movem_store): Use add_reg_note.
3211
3212         PR bootstrap/46456
3213         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
3214
3215 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3216
3217         * function.c (expand_function_end): Set the locator of the prologue on
3218         the stack checking insns.
3219
3220 2010-11-12  Richard Henderson  <rth@redhat.com>
3221
3222         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
3223         * config/xtensa/xtensa.opt (mfused-madd): Remove.
3224         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
3225         MASK_FUSED_MADD.
3226         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
3227         (fnmasf4): Rename from mulsubsf3; use fma.
3228
3229 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3230             Richard Henderson  <rth@redhat.com>
3231
3232         PR target/46428
3233         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
3234         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
3235         comparison.
3236
3237 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
3238
3239         * opts-common.c (decode_cmdline_option): Initialize separate_args.
3240
3241 2010-11-12  Jan Hubicka  <jh@suse.cz>
3242
3243         * doc/invoke.texi (early-inlining-insns): Update default.
3244         * params.def (early-inlining-insns): Default to 10.
3245
3246 2010-11-12  Olivier Hainque  <hainque@adacore.com>
3247
3248         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
3249
3250 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3251
3252         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
3253         (SUPPORTS_INIT_PRIORITY): Define.
3254
3255 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3256
3257         PR target/46430
3258         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
3259         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
3260         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
3261         (avr_device_to_devicelib): Likewise.
3262         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
3263         into block.
3264         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
3265         (zero_extendhidi2, zero_extendsidi2): Likewise.
3266         * config/avr/avr.c (avr_num_arg_regs): Constify type.
3267         (avr_return_addr_rtx): De-constify tem.
3268         (avr_rotate_bytes): Move declarations to start of block.
3269         Don't use variable length array.  Put nested if/else into block.
3270
3271         PR rtl-optimization/46433
3272         * var-tracking.c: Include tm_p.h .
3273
3274         PR bootstrap/44756
3275         PR build/44767
3276         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
3277         should be unsigned.
3278         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
3279         * doc/tm.texi: Regenerate.
3280
3281         PR target/46412
3282         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
3283         * config/bfin/bfin.c: Include sel-sched.h .
3284         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
3285         (expand_interrupt_handler_prologue): Remove unused variable insn.
3286         (bfin_load_pic_reg): Likewise.
3287         (bfin_rtx_costs): Make code / outer_code variables of type
3288         enum rtx_code, copied from re-named parameters.
3289         (bfin_local_alignment): Change align argument and return type
3290         to unsigned.
3291         (bfin_adjust_cost): Remove unused variable insn_type.
3292         Declare variables at start of block.
3293         (struct loop_info): Rename to...
3294         (struct loop_info_d).
3295         (workaround_rts_anomaly): Change type of icode to int.
3296         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
3297         with int-typed variable.
3298         (note_np_check_stores): Likewise.
3299         (trapping_loads_p): Remove unused variable pat.
3300         (bfin_expand_binop_builtin): Use expand_normal.
3301         (bfin_expand_unop_builtin): Likewise.
3302         (bfin_expand_builtin): Likewise.  Set tmode before use.
3303
3304         PR middle-end/44769
3305         * final.c (split_double): Don't use BITS_PER_WORD directly in
3306         shift count.
3307
3308         PR target/46431
3309         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
3310         assignment.
3311
3312         PR target/46450
3313         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
3314         Use add_reg_note.
3315         (xstormy16_function_arg): Dereference cum.
3316         (xstormy16_expand_builtin): Use expand_normal.
3317         Change type of omode to enum machine_mode.
3318         (combine_bnp): Rename and to and_insn.
3319
3320         PR target/46437
3321         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
3322         localreg.
3323
3324 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3325
3326         PR debug/46375
3327         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
3328
3329 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
3330
3331         PR lto/46376
3332         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
3333
3334 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
3335
3336         PR c/44782
3337         * common.opt (fmax-errors=): New option.
3338         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
3339         * diagnostic.h (struct diagnostic_context): Add max_errors field.
3340         * diagnostic.c (diagnostic_initialize): Initialize it.
3341         (diagnostic_action_after_output): Exit if more than max_errors
3342         have been output.
3343         * doc/invoke.texi (Warning Options): Add -fmax-errors.
3344         (-fmax-errors): Document.
3345
3346 2010-11-11  Richard Henderson  <rth@redhat.com>
3347
3348         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
3349
3350 2010-11-11  Richard Henderson  <rth@redhat.com>
3351
3352         * config/fused-madd.opt: New file.
3353         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
3354         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
3355         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
3356         * config/i386/i386.opt (mfused-madd): Remove.
3357         * config/i386/sse.md (split_fma): Remove.
3358         (split_fms, split_fnma, split_fnms): Remove.
3359
3360 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
3361
3362         PR target/46088
3363         * config/i386/i386.md (*ashl<mode>3_cconly,
3364         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
3365         change nonimmediate_operand predicate to register_operand.
3366
3367 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
3368
3369         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
3370
3371 2010-11-11  Jan Hubicka  <jh@suse.cz>
3372
3373         * opts.c (finish_options): Do not error on -flto-partition alone.
3374
3375         * doc/invoke.texi (-fwhopr): Merge into -flto section.
3376         (-flto-partition): Document none.
3377         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
3378         * lto-wrapper.c: Update comment.
3379         (run_gcc): Update LTO option parsing.
3380         * opts.c (finish_options): add support -flto-partition=none
3381         (common_handle_option): Remove fwhopr.
3382         * common.opt: Turn fwhopr into flto.
3383         * collect2.c (main): Update option handling.
3384         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
3385         * ipa-split.c (execute_split_functions): Remove flag_whopr.
3386         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
3387         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
3388         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
3389
3390 2010-11-11  Jan Hubicka  <jh@suse.cz>
3391
3392         PR tree-optimize/40436
3393         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
3394         (eliminated_by_inlining_prob): ... this one; return 50% probability
3395         for SRA.
3396         (estimate_function_body_sizes): Update use of
3397         eliminated_by_inlining_prob; estimate static function size
3398         for 2 instructions.
3399
3400 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
3401
3402         PR target/44749
3403         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
3404         declare.  Change type of argument four to type int.
3405         (mep_secondary_input_reload_class): Returns enum reg_class.
3406         (mep_secondary_output_reload_class): Likewise.
3407         (mep_function_value): Change types of arguments to cont_tree.
3408         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
3409         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.h (REGNO_REG_CLASS): Cast return value of
3414         mep_regno_reg_class to enum reg_class.
3415
3416 2010-11-11  Richard Henderson  <rth@redhat.com>
3417
3418         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
3419         that the target has the exact fma operation that we matched.
3420
3421 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3422
3423         * reginfo.c (fix_register): Avoid inserting English word in
3424         diagnostic sentence.  Use %qs for quoting and %'.
3425
3426 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
3427
3428         * config/i386/driver-i386.c (host_detect_local_cpu): Support
3429         Intel processor family 6, model 0x2c.
3430
3431 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3432
3433         * opts.c (warning_as_error_callback,
3434         register_warning_as_error_callback): Remove.
3435         (enable_warning_as_error): Don't use warning_as_error_callback.
3436         * opts.h (register_warning_as_error_callback): Remove.
3437
3438 2010-11-11  Richard Henderson  <rth@redhat.com>
3439
3440         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
3441         in between the MULT and the PLUS/MINUS.
3442
3443 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3444
3445         PR middle-end/46388
3446         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
3447         BLKmode mode for it.
3448         (expand_expr_real_1): Similarly for op0.
3449
3450 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3451
3452         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
3453         Document optional target selector.
3454
3455 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
3456
3457         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
3458         assembling high and low parts of size if not using 32-bit HWINT; else
3459         use DECL_SIZE_UNITS, not DECL_SIZE.
3460
3461 2010-11-11  Martin Jambor  <mjambor@suse.cz>
3462
3463         PR tree-optimization/46383
3464         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
3465         offsets.
3466         (compute_complex_ancestor_jump_func): Likewise.
3467         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
3468
3469 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3470
3471         PR debug/46150
3472         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
3473         true if expr1->hash != expr2->hash.
3474
3475 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3476
3477         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
3478         diagnostics with lowercase letters.
3479         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
3480         lowercase letters.
3481         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
3482         diagnostic.
3483         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3484         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
3485         lowercase letters.
3486         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3487         Remove trailing ' ' from diagnostic.
3488         * config/avr/avr.c (print_operand_address): Start diagnostic with
3489         a lowercase letter and remove trailing '.'.
3490         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
3491         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
3492         with lowercase letters.  Use %' in diagnostics.  Remove trailing
3493         '.' from diagnostics.
3494         (bfin_handle_longcall_attribute): Use %' in diagnostic.
3495         * config/cris/cris.c (cris_split_movdx,
3496         cris_expand_pic_call_address): Start diagnostics with lowercase
3497         letters.
3498         (cris_asm_output_label_ref): Use %' in diagnostic.
3499         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
3500         letter.
3501         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
3502         lowercase letter.
3503         * config/darwin-c.c (version_as_macro): Start diagnostic with a
3504         lowercase letter.
3505         * config/darwin-driver.c (darwin_default_min_version): Use %' in
3506         diagnostic.
3507         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
3508         diagnostic.
3509         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3510         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
3511         diagnostics.
3512         * config/i386/i386.c (ix86_option_override_internal): Write
3513         diagnostic as a single sentence without trailing '.'.  Use %' in
3514         diagnostics.
3515         (ix86_function_sseregparm, classify_argument): Start diagnostics
3516         with lowercase letters.
3517         (ix86_expand_prologue): Use %' in diagnostic.
3518         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
3519         diagnostic.
3520         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
3521         lowercase letter.
3522         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
3523         diagnostic.
3524         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3525         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
3526         '`' in help text.
3527         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
3528         lowercase letter.
3529         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
3530         lowercase letters.
3531         * config/microblaze/microblaze.c (microblaze_handle_option):
3532         Remove trailing '.' from diagnostic.
3533         (print_operand): Start diagnostic with a lowercase letter.
3534         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
3535         lowercase letters.  Avoid '`' in diagnostics.
3536         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
3537         lowercase letters.  Avoid '`' in diagnostics.
3538         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
3539         lowercase letters.  Avoid '`' in diagnostics.
3540         * config/picochip/picochip.c (picochip_option_override,
3541         picochip_emit_save_register, picochip_function_arg,
3542         picochip_output_label, picochip_output_internal_label,
3543         picochip_asm_output_opcode, picochip_output_cbranch,
3544         picochip_output_compare, picochip_output_branch,
3545         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
3546         diagnostics. Start diagnostics with lowercase letters.  Use %' in
3547         diagnostics.
3548         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
3549         "SPE" capitalization.  Start diagnostic with a lowercase letter.
3550         (rs6000_handle_option): Start diagnostics with lowercase letters.
3551         (def_builtin): Remove trailing '.' from diagnostic.
3552         (rs6000_savres_routine_name): Start diagnostic with a lowercase
3553         letter.
3554         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
3555         diagnostic.
3556         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
3557         lowercase letter.
3558         * config/s390/s390.c (s390_option_override) Start diagnostics with
3559         lowercase letters.  Use %' in diagnostic.
3560         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
3561         lowercase letters.
3562         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
3563         diagnostic.
3564         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
3565         diagnostic.
3566         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
3567         diagnostic.
3568         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3569         * config/spu/spu.c (spu_option_override): Start diagnostics with
3570         lowercase letters.  Use %qs for quoting in diagnostics.
3571         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
3572         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
3573         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
3574         from diagnostic.
3575         * convert.c (convert_to_integer, convert_to_vector): Use %' in
3576         diagnostics.
3577         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
3578         letter and use "cannot" spelling.
3579         * expmed.c (extract_fixed_bit_field): Start diagnostic with
3580         lowercase letter and format as a single sentence without '.'.
3581         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
3582         Use %' in diagnostics.
3583         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3584         Use %' in diagnostics.
3585         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3586         Use %' in diagnostics.
3587         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
3588         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
3589         with lowercase letters and remove tailing '.' and '\n'.
3590         * lto-cgraph.c (input_profile_summary): Start diagnostic with
3591         lowercase letter and remove trailing '.'.
3592         (input_cgraph): Start diagnostics with lowercase letters and
3593         remove trailing '\n'.
3594         * opts.c (finish_options, common_handle_option): Start diagnostics
3595         with lowercase letters and remove trailing '.'.  Fix typo in
3596         diagnostic.
3597         * passes.c (position_pass): Start diagnostic with lowercase letter.
3598         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
3599         register_callback, try_init_one_plugin): Start diagnostics with
3600         lowercase letters.
3601         * reload1.c (spill_failure): Use %' in diagnostic.
3602         (gen_reload): Start diagnostic with a lowercase letter.
3603         * stor-layout.c (place_field): Start diagnostic with a lowercase
3604         letter.
3605         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
3606         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
3607         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
3608         Start diagnostics with lowercase letters, remove trailing '.' and
3609         use %' in diagnostics.
3610         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
3611         (verify_ssa): Don't split diagnostic across two error calls.
3612         Spell out "number" and use %' in diagnostic.
3613         * value-prof.c (visit_hist, check_counter): Start diagnostics with
3614         lowercase letters.
3615
3616 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
3617
3618         PR middle-end/46419
3619         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
3620         (_mm_cvtpu16_ps): Ditto.
3621
3622 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3623
3624         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
3625         warn_larger_than, larger_than_size, warn_frame_larger_than,
3626         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
3627         default_visibility, flag_tls_default): New Variable declarations.
3628         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
3629         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
3630         (v): Declare as Common and document here.
3631         * flags.h (default_visibility, flag_generate_lto,
3632         warn_larger_than, larger_than_size, warn_frame_larger_than,
3633         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
3634         flag_shlib, flag_excess_precision_cmdline): Remove.
3635         (set_Wstrict_aliasing): Update prototype.
3636         * gcc.c (verbose_flag): Remove.
3637         (driver_handle_option): Add diagnostic_context parameter.  Don't
3638         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
3639         incrementing it.
3640         * opts-common.c (handle_option): Pass dc to handler.
3641         * opts.c (warn_larger_than, larger_than_size,
3642         warn_frame_larger_than, frame_larger_than_size,
3643         default_visibility): Remove.
3644         (common_handle_option): Add diagnostic_context parameter.
3645         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
3646         gcc_options parameters.
3647         (lang_handle_option, target_handle_option, read_cmdline_options,
3648         decode_options): Add diagnostic_context parameters.
3649         (finish_options): Access option state through opts pointer where
3650         possible.
3651         (common_handle_option): Access option state through opts pointer
3652         where possible.  Do not set local static variable verbose.  Do not
3653         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
3654         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
3655         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
3656         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
3657         OPT_fwhopr_.  Do not explicitly set .opt file variables for
3658         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
3659         (set_Wstrict_aliasing): Add gcc_options parameter.
3660         * opts.h (struct cl_option_handler_func): Add diagnostic_context
3661         parameter to handler.
3662         (decode_options): Add diagnostic_context parameter.
3663         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
3664         asm_file_name, flag_generate_lto, flag_gen_aux_info,
3665         aux_info_file_name, flag_shlib, flag_tls_default,
3666         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
3667         (toplev_main): Pass global_dc to decode_options.
3668         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
3669         aux_info_file_name, asm_file_name): Remove.
3670         * tree.h (flag_tls_default): Remove.
3671
3672 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
3673
3674         PR target/45986
3675         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
3676         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
3677
3678 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3679
3680         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
3681         (x86_64-*-*): Likewise.
3682         * config/i386/cpuid.h: Define TBM bit.
3683         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3684         and set has_tbm.
3685         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3686         isa_flag for TBM.
3687         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
3688         (OPTION_MASK_ISA_TBM_UNSET): New.
3689         (ix86_handle_option): Handle -mtbm.
3690         (isa_opts): Add -mtbm.
3691         (enum pta_flags): Add PTA_TBM.
3692         (ix86_option_override_internal): Add TBM support.
3693         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
3694         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
3695         (IX86_BUILTIN_BEXTRI64): Likewise.
3696         (bdesc_args): Add TBM intrinsics.
3697         (ix86_expand_builtin): Add TBM specific case.
3698         * config/i386/i386.h (TARGET_TBM): New for TBM.
3699         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
3700         (tbm_bextri_<mode>): Likewise.
3701         (*tbm_blcfill_<mode>): Likewise.
3702         (*tbm_blci_<mode>): Likewise.
3703         (*tbm_blcic_<mode>): Likewise.
3704         (*tbm_blcmsk_<mode>): Likewise.
3705         (*tbm_blcs_<mode>): Likewise.
3706         (*tbm_blsfill_<mode>): Likewise.
3707         (*tbm_blsic_<mode>): Likewise.
3708         (*tbm_t1mskc_<mode>): Likewise.
3709         (*tbm_tzmsk_<mode>): Likewise.
3710         * config/i386/i386.opt: Add -mtbm.
3711         * config/i386/tbmintrin.h (__bextri_u32): New.
3712         (__blcfill_u32): Likewise.
3713         (__blci_u32): Likewise.
3714         (__blcic_u32): Likewise.
3715         (__blcmsk_u32): Likewise.
3716         (__blcs_u32): Likewise.
3717         (__blsfill_u32): Likewise.
3718         (__blsic_u32): Likewise.
3719         (__t1mskc_u32): Likewise.
3720         (__tzmsk_u32): Likewise.
3721         (__bextri_u64): Likewise.
3722         (__blcfill_u64): Likewise.
3723         (__blci_u64): Likewise.
3724         (__blcic_u64): Likewise.
3725         (__blcmsk_u64): Likewise.
3726         (__blcs_u64): Likewise.
3727         (__blsfill_u64): Likewise.
3728         (__blsic_u64): Likewise.
3729         (__t1mskc_u64): Likewise.
3730         (__tzmsk_u64): Likewise.
3731         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
3732         * doc/invoke.texi: Document -mtbm.
3733         * doc/extend.texi: Document TBM built-in functions.
3734
3735 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3736
3737         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
3738         (x86_64-*-*): Likewise.
3739         * config/i386/cpuid.h: Define BMI bit.
3740         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3741         and set has_bmi.
3742         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3743         isa_flag for BMI.
3744         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
3745         (OPTION_MASK_ISA_BMI_UNSET): New.
3746         (ix86_handle_option): Handle -mbmi.
3747         (isa_opts): Add -mbmi.
3748         (enum pta_flags): Add PTA_BMI.
3749         (ix86_option_override_internal): Add BMI support.
3750         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
3751         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
3752         (IX86_BUILTIN_BEXTR64): Likewise.
3753         (IX86_BUILTIN_CTZS): Likewise.
3754         (bdesc_args): Add BMI intrinsics.
3755         (ix86_expand_args_builtin): Add BMI specific cases.
3756         * config/i386/i386.h (TARGET_BMI): New for BMI.
3757         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
3758         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
3759         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
3760         (UNSPEC_TZCNT): Likewise.
3761         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
3762         (bmi_andn_<mode>): New for BMI.
3763         (bmi_bextr_<mode>): Likewise.
3764         (bmi_blsi_<mode>): Likewise.
3765         (bmi_blsmsk_<mode>): Likewise.
3766         (bmi_blsr_<mode>): Likewise.
3767         * config/i386/i386.opt: Add -mbmi.
3768         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
3769         * config/i386/bmiintrin.h (__lzcnt_u16): New.
3770         (__tzcnt_u16): Likewise.
3771         (__andn_u32): Likewise.
3772         (__bextr_u32): Likewise.
3773         (__blsi_u32): Likewise.
3774         (__blsmsk_u32): Likewise.
3775         (__blsr_u32): Likewise.
3776         (__lzcnt_u32): Likewise.
3777         (__tzcnt_u32): Likewise.
3778         (__andn_u64): Likewise.
3779         (__bextr_u64): Likewise.
3780         (__blsi_u64): Likewise.
3781         (__blsmsk_u64): Likewise.
3782         (__blsr_u64): Likewise.
3783         (__lzcnt_u64): Likewise.
3784         (__tzcnt_u64): Likewise.
3785         * doc/invoke.texi: Document -mbmi and -mno-bmi.
3786         * doc/extend.texi: Document BMI built-in functions.
3787
3788 2010-11-10  Jan Hubicka  <jh@suse.cz>
3789
3790         PR tree-optimize/46228
3791         * doc/invoke.texi (comdat-sharing-probability): Document.
3792         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
3793         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
3794
3795 2010-11-10  Jan Hubicka  <jh@suse.cz>
3796
3797         PR tree-optimize/46228
3798         * cgraph.c (cgraph_propagate_frequency): Fix typo.
3799
3800 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
3801
3802         PR tree-optimization/46414
3803         * tree-inline.c (estimate_move_cost): Check preferred vector
3804         mode for vector type.
3805
3806 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3807
3808         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
3809
3810 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
3811
3812         PR tree-optimization/45971
3813         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
3814         for phi nodes analyzable by scev.
3815
3816 2010-11-10  Richard Guenther  <rguenther@suse.de>
3817
3818         PR tree-optimization/44964
3819         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
3820
3821 2010-11-10  Martin Jambor  <mjambor@suse.cz>
3822
3823         PR tree-optimization/46351
3824         PR tree-optimization/46377
3825         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
3826         aggregate bit-fields.
3827
3828 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3829
3830         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3831         * doc/tm.texi: Regenerate.
3832         * opts-common.c (tm.h): Don't include.
3833         (target_option_translations): Remove.
3834         (decode_cmdline_options_to_array): Don't handle translating options.
3835         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
3836         * config/darwin-driver.c: Don't condition includes on
3837         CROSS_DIRECTORY_STRUCTURE.
3838         (darwin_default_min_version): Make static.
3839         (darwin_driver_init): New.  Call darwin_default_min_version if not
3840         CROSS_DIRECTORY_STRUCTURE.
3841         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3842         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
3843         (ASM_SPEC): Add %{static}.
3844         (darwin_default_min_version): Don't declare.
3845         (darwin_driver_init): Declare.
3846         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
3847         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
3848         * config/darwin.opt (all_load, allowable_client,
3849         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
3850         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
3851         exported_symbols_list, filelist, findirect-virtual-calls,
3852         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
3853         framework, fterminated-vtables, gfull, gused, image_base, init,
3854         install_name, multi_module, multiply_defined,
3855         multiply_defined_unused, no_dead_strip_inits_and_terms,
3856         seg_addr_table, seg_addr_table_filename, segaddr,
3857         segs_read_only_addr, segs_read_write_addr, single_module,
3858         umbrella, unexported_symbols_list, weak_reference_mismatches,
3859         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
3860         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
3861         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
3862         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
3863         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
3864         (ASM_SPEC): Add %{static}.
3865         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3866         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3867         (DRIVER_SELF_SPECS): Handle options formerly in
3868         TARGET_OPTION_TRANSLATE_TABLE.
3869         * config/mep/mep.opt (mfar): New.
3870         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3871         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
3872         TARGET_OPTION_TRANSLATE_TABLE.
3873         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
3874         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3875         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
3876         ffix-and-continue, findirect-data): New.
3877         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3878         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
3879         (mnofpu): Define mask and use Report here.
3880
3881 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3882
3883         * config/s390/s390.c (s390_emit_prologue): Report the stack
3884         size if -fstack-usage is used.
3885
3886 2010-11-10  Richard Guenther  <rguenther@suse.de>
3887
3888         PR tree-optimization/46398
3889         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
3890
3891 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
3892
3893         PR target/44760
3894         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
3895         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
3896         GP_REG_OR_PSEUDO_STRICT_P.
3897         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
3898         unexpected alternative.
3899         (*movsf_internal): Likewise.
3900         (indirect_jump): Replace call to non-existant function with call to
3901         internal_error.
3902         (tablejump): Likewise.
3903         * config/iq2000/iq2000.c: Include df.h .
3904         (iq2000_function_arg_advance): Use CONST_CAST2.
3905         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
3906         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
3907         a non-zero function address.
3908         (iq2000_initial_elimination_offset): Add gcc_unreachable for
3909         unexpected value of FROM.
3910         (symbolic_expression_p): Delete.
3911         (iq2000_function_value): Constify func.
3912         (expand_one_builtin): Use expand_normal.
3913         (iq2000_print_operand): Don't print VALUE if calculating it failed.
3914
3915         PR rtl-optimization/44764
3916         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
3917
3918         PR target/46407
3919         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
3920         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
3921         with ATTRIBUTE_UNUSED.
3922         (valid_psw_flag): Constify parameter which.
3923         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
3924
3925         PR target/46415
3926         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
3927         (mmix_dbx_register_number): Likewise.
3928         * config/mmix/mmix.c: Include df.h .
3929         (mmix_local_alignment): Change argument basic_align and return type
3930         to unsigned.
3931         (mmix_dbx_register_number): Change argument and return type to
3932         unsigned.
3933         (mmix_expand_prologue): Use add_reg_note.
3934
3935         PR target/46417
3936         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
3937         (spu_split_store): Use aform.
3938         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
3939
3940 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3941
3942         PR/46268
3943         * doc/gty.texi (GTY Options): Clarify that variable_size produces
3944         allocators taking size in bytes, compare with length option.  Add
3945         size calculation example.
3946         (Invoking the garbage collector): Ensure that sentences are
3947         followed by two spaces.  Describe that pointer fields must be
3948         initialized at ggc_collect call.
3949         (Troubleshooting): New section.
3950
3951 2010-11-09  Jan Hubicka  <jh@suse.cz>
3952
3953         PR tree-optimization/40436
3954         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
3955         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
3956         normal instructions; be sure bultin is not implemented in this file;
3957         compute non-zero return cost.
3958         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
3959         * tree-inline.h (eni_weights_d): Add return cost.
3960
3961 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
3962
3963         * c-parser.c (c_parser_struct_declaration): Handle declaration
3964         specifiers followed by CPP_CLOSE_BRACE.
3965
3966 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3967
3968         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
3969         split occurs before reload, and we allocate memory at the time of
3970         the split, not during expansion.  Add attributes.
3971         (floatsi<mode>2_lfiwax_mem): Ditto.
3972         (floatunssi<mode>2_lfiwzx): Ditto.
3973         (floatunssi<mode>2_lfiwzx_mem): Ditto.
3974         (floatsidf2): Ditto.
3975         (floatunssisf2): Ditto.
3976         (floatunssidf2): Ditto.
3977         (fix_trunc<mode>si2): Ditto.
3978         (fix_trunc<mode>si2_stfiwx): Ditto.
3979         (fix_trunc<mode>si2_internal): Ditto.
3980         (fix_trunc<mode>si2): Ditto.
3981         (fix_trunc<mode>di2): Ditto.
3982         (fixuns_trunc<mode>si2_stfiwx): Ditto.
3983         (floatsisf2): Ditto.
3984         (floatdidf2_mem): Ditto.
3985         (floatunsdidf2_mem): Ditto.
3986         (floatunsdidf2): Ditto.
3987         (floatdisf2_internal1): Ditto.
3988         (floatdisf2_mem): Ditto.
3989         (floatunsdisf2_mem): Ditto.
3990         (floatsi<mode>2_lfiwax_mem2): Delete.
3991         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
3992         (fix_trunc<mode>si2_mem): Ditto.
3993         (fixuns_trunc<mode>si2_mem): Ditto.
3994         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
3995         type operations to reduce copying the values to multiple memory slots.
3996         (roundu32<mode>2_fprs): Ditto.
3997
3998         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
3999         PRE_INC, PRE_DEC, PRE_MODIFY.
4000         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
4001
4002         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
4003         Delete prototype.
4004
4005 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4006
4007         PR target/43808
4008         * cfgexpand.c (partition_stack_vars): Call
4009         update_alias_info_with_stack_vars unconditionally.
4010         (update_alias_info_with_stack_vars): Allow unused
4011         unreferenced vars when not optimizing.
4012
4013 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
4014
4015         PR tree-optimization/46036
4016         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
4017         add_to_dst_predicate_list.
4018
4019 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4020
4021         PR debug/46171
4022         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
4023         earlier.
4024         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
4025         argument, call dead_debug_reset when adding REG_UNUSED note.
4026         (dead_debug_reset): New function.
4027         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
4028         df_create_unused_note callers.
4029
4030 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
4031
4032         * config/fr30/fr30.c: Include "df.h".
4033
4034 2010-11-09  Richard Guenther  <rguenther@suse.de>
4035
4036         PR tree-optimization/46355
4037         * tree-loop-distribution.c (tree_loop_distribution): Do not
4038         distribute loops without a single exit.
4039
4040 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4041
4042         PR rtl-optimization/46237
4043         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
4044         saved hard regs if they might get partially clobbered.
4045
4046 2010-11-09  Paul Koning  <ni1d@arrl.net>
4047
4048         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
4049
4050 2010-11-09  Richard Guenther  <rguenther@suse.de>
4051
4052         PR tree-optimization/46177
4053         * tree-loop-distribution.c (prop_phis): Remove.
4054         (generate_builtin): Re-use the old loop exit edge to avoid
4055         needing to update PHI nodes.
4056
4057 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
4058
4059         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
4060         type of args_size to unsigned HOST_WIDE_INT.
4061
4062         PR target/44755
4063         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
4064         * config/t-pnt16-warn: New file.
4065         * config/picochip/picochip.c (picochip_emit_stack_allocate):
4066         Use add_reg_note.
4067         (picochip_emit_save_register): Likewise.
4068         (picochip_emit_restore_register): Remove variable insn.
4069         (picochip_legitimize_address): Don't use C++ style comments.
4070         (picochip_legitimize_reload_address): Likewise.
4071         (reorder_var_tracking_notes): Remove variable vliw_start.
4072         (picochip_reorg): Cast first arguemnt to emit_note_after to
4073         enum insn_note.
4074         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
4075         (picochip_expand_builtin_3op): Likewise.
4076         (picochip_expand_builtin_2opvoid): Likewise.
4077         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
4078         (picochip_expand_array_testport): Likewise.
4079         (picochip_init_builtins): Remove unused variables.
4080         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
4081         to unsigned long, and output it as such.
4082         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
4083         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
4084         (schedType): Cast result of picochip_schedule_type to
4085         enum attr_schedType.
4086
4087         PR target/44759
4088         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
4089         conditional to type of S.
4090         (mn10300_function_arg): Remove unused variable align.
4091         (mn10300_arg_partial_bytes): Likewise.
4092         * config/mn10300/mn10300.md (attribute cpu): Cast value to
4093         enum attr_cpu.
4094
4095 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
4096
4097         PR bootstrap/46392
4098         * gengtype-parse.c (type): Call get_input_file_name to get file name.
4099
4100 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4101
4102         * tree.h (contains_placeholder_p): Fix comment.
4103         (type_contains_placeholder_p): Adjust comment.
4104         * tree.c (contains_placeholder_p): Fix comment.
4105         (type_contains_placeholder_1): Do not recurse on pointed-to types and
4106         adjust comment.
4107         (type_contains_placeholder_p): Add comment.
4108
4109 2010-11-09  Paul Koning  <ni1d@arrl.net>
4110
4111         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
4112         output of byte values.
4113
4114 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4115
4116         PR middle-end/46360
4117         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
4118         not in SSA mode.
4119
4120 2010-11-09  Richard Guenther  <rguenther@suse.de>
4121
4122         PR middle-end/46221
4123         * varasm.c (compute_visible_aliases): New function.
4124         (remove_unreachable_alias_pairs): Aliases make a target available
4125         even though we reclaimed the cgraph node.
4126         (finish_aliases_1): Likewise.
4127         * Makefile.in (varasm.o): Add pointer-set.h dependency.
4128
4129 2010-11-09  Nick Clifton  <nickc@redhat.com>
4130
4131         * config/mn10300/mn10300-modes.def: New file.
4132
4133 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
4134             Jeremie Salvucci  <jeremie.salvucci@free.fr>
4135
4136         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
4137         (plugin_files, get_file_basename, get_file_realbasename)
4138         (get_file_langdir, error_at_line, gt_files, this_file)
4139         (system_h_file, read_input_list, create_field_all)
4140         (get_file_srcdir_relative_path, get_file_basename)
4141         (get_file_langdir, get_file_gtfilename)
4142         (get_output_file_with_visibility, get_output_file_name)
4143         (struct flist, put_mangled_filename, walk_type)
4144         (put_mangled_filename, finish_root_table, write_roots): Use
4145         input_file-s.
4146         (lang_dir_names, num_lang_dirs): Remove static.
4147         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
4148         (main): Use input_file-s.
4149
4150         * gengtype.h: (struct input_file_st, input_file): New type.
4151         (struct fileloc): Use it.
4152         (gt_files, num_gt_files, this_file, system_h_file)
4153         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
4154         (get_input_file_name): New function.
4155         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
4156         use input_file.
4157         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
4158         (get_output_file_name): Ditto.
4159
4160         * gengtype-lex.l (yybegin): Use input_file.
4161
4162         * gengtype-parse.c (parse_error): Use input_file.
4163
4164 2010-11-08  Xinliang David Li  <davidxl@google.com>
4165
4166         PR tree-optimization/46316
4167         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
4168         * double-int.h (double_int_mul_with_sign): New function.
4169         * double-int.c (double_int_mul_with_sign): New function.
4170
4171 2010-11-08  Paul Koning  <ni1d@arrl.net>
4172
4173         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
4174
4175 2010-11-08  Paul Koning  <ni1d@arrl.net>
4176
4177         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
4178
4179 2010-11-08  Paul Koning  <ni1d@arrl.net>
4180
4181         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
4182         to 8 bits.
4183
4184 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
4185
4186         PR target/46378
4187         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
4188         turn on ISA 2.04 rounding instructions for power5.
4189
4190         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
4191         not ISA 2.02.
4192
4193         PR target/45585
4194         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
4195         in FPR registers.
4196         (movdi_low_st): Ditto.
4197
4198 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4199             Richard Henderson  <rth@redhat.com>
4200
4201         PR target/44758
4202         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
4203         (attribute acc_group): Cast value to enum attr_acc_group.
4204         (*movdi_nodouble+6): Use gen_int_mode.
4205         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
4206         if RTX_CODE is defined or not.
4207         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
4208         struct frv_io.
4209         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
4210         (frv_frame_access, frv_expand_prologue): Remove unused variables.
4211         (frv_expand_block_clear): Likewise.
4212         (frv_trampoline_init): Use LCT_NORMAL.
4213         (struct frv_packet_group): New struct, broken out of type of
4214         frv_packet.
4215         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
4216         use cast in loop counter increment.
4217         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
4218         assigning to io->type.
4219         (bdesc_set): Use rtx_code UNKNOWN in initializer.
4220         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
4221         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
4222         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
4223         (frv_read_argument): Use expand_normal.
4224
4225         PR target/44757
4226         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
4227         lm32_legitimate_constant_p.
4228         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
4229         * config/lm32/lm32.c (gen_int_relational): Make new block for
4230         LE / LT / LEU / LTU case.  Declare variables at start of block.
4231         (lm32_block_move_inline): Use XALLOCAVEC.
4232
4233 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4234
4235         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
4236
4237 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4238
4239         * gengtype (get_output_file_for_structure): Ensure type is union
4240         or struct.
4241         (write_splay_tree_allocator_def): Use
4242         get_output_file_with_visibility.
4243
4244 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4245
4246         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
4247         to defined values in case of an error.
4248         (s390_option_override): Skip further processing if the -march
4249         parameter wasn't recognized.
4250
4251 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4252
4253         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
4254         assert that REG is a hard register number before using it as an index.
4255
4256         PR bootstrap/46358
4257         * config/i386/i386.c (ix86_expand_split_stack_prologue):
4258         Avoid warnings when HOST_WIDE_INT is 32 bit.
4259
4260 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
4261
4262         PR target/46208
4263         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
4264         (sparc_promote_prototypes): Likewise.
4265         (sparc_promote_function_mode): Promote in 32-bit mode as well.
4266         (sparc_return_in_memory): Remove superfluous parentheses.
4267         (sparc_struct_value_rtx): Fix long lines.
4268         (sparc_function_value_1): Promote in 32-bit mode as well.
4269
4270 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
4271
4272         PR rtl-optimization/45352
4273         * sel-sched.c (find_best_expr): Do not set pneed_stall when
4274         the variable_issue hook is not implemented.
4275         (fill_insns): Remove dead variable stall_iterations.
4276         (init_seqno_1): Force EBB start for resetting sched cycles on any
4277         successor blocks of the rescheduled region.
4278         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
4279         (reset_sched_cycles_in_current_ebb): Add debug printing.
4280         New variable issued_insns.  Advance state when we have issued
4281         issue_rate insns.
4282
4283 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4284
4285         * gengtype (main): Get here's position using POS_HERE macro for
4286         do*typedef calls.
4287
4288 2010-11-07  Ian Lance Taylor  <iant@google.com>
4289
4290         PR target/46089
4291         * config/i386/i386.c (split_stack_fn_large): New static variable.
4292         (ix86_expand_split_stack_prologue): Handle large model.
4293
4294 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
4295
4296         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
4297         all possible addressing modes.
4298
4299 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
4300
4301         PR tree-optimization/46346
4302         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
4303
4304 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4305
4306         * config/mips/mips.c: Revert previous patch.
4307         * config/mips/mips.md: Likewise.
4308
4309 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4310
4311         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
4312         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
4313         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
4314         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
4315         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
4316         to use FMA.
4317         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
4318         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
4319         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
4320         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
4321
4322 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
4323
4324         PR c/43384
4325         * c-decl.c (lookup_label): Labels can only be referenced in a
4326         function's scope.
4327         (store_parm_decls_oldstyle): Skip erroneous parameters.
4328
4329 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
4330
4331         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
4332         LIBCALL_VALUE): Remove macros.
4333         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4334         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4335         (fr30_function_value_regno_p, fr30_function_value,
4336         fr30_libcall_value): New functions.
4337
4338 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
4339
4340         PR middle-end/46314
4341         * target.def (generate_internal_label): New asm_out hook.
4342         * output.h (default_generate_internal_label): Declare.
4343         * varasm.c (default_generate_internal_label): Define.
4344
4345 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
4346
4347         PR target/44981
4348         * doc/extend.tex (format): Document NSString extension.
4349         (format_arg): Likewise.
4350         (Darwin Format Checks): New section.
4351         * doc/tm.texi: Document string object hooks (generated).
4352         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
4353         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4354         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4355         * target.def (objc_construct_string_object): Rename, amend
4356         documentation.
4357         (string_object_ref_type_p): New hook.
4358         (check_string_object_format_arg): New hook.
4359         * c-parser.c (c_parser_attributes): Allow objective-c class names as
4360         attribute identifiers.
4361         * config/darwin-c.c (darwin_cfstring_ref_p): New.
4362         (darwin_check_cfstring_format_arg): New.
4363         (darwin_additional_format_types): New.
4364         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
4365         (darwin_check_cfstring_format_arg): New.
4366         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
4367         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4368         (TARGET_N_FORMAT_TYPES): New.
4369         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4370
4371 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
4372             Pascal Obry  <obry@adacore.com>
4373
4374         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
4375         in 64-bit mode and 17 otherwise.
4376
4377 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4378
4379         PR debug/45939
4380         * var-tracking.c (emit_note_insn_var_location): Make sure that
4381         call related var location notes come before the normal ones.
4382
4383 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4384
4385         PR target/46326
4386         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
4387         in the last change.
4388
4389 2010-11-05  Ian Lance Taylor  <iant@google.com>
4390
4391         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
4392
4393 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4394
4395         PR c/44772
4396         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
4397         pointer_set_contains if DECL_NAME is NULL.
4398
4399 2010-11-05  Ian Lance Taylor  <iant@google.com>
4400
4401         PR target/46084
4402         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
4403         request enough additional space for alignment, and force alignment.
4404
4405 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
4406
4407         * config/i386/i386.c (legitimate_pic_address_disp_p):
4408         Handle UNSPEC_PCREL.
4409         (ix86_legitimate_address_p): Likewise.
4410         (legitimize_pic_address): Likewise.
4411         (output_pic_addr_const): Likewise.
4412         (ix86_delegitimize_address): Likewise.
4413         (ix86_find_base_term): Likewise.
4414         (memory_address_length): Likewise.
4415         (x86_output_mi_thunk): Handle special case x64
4416         for non local binding.
4417         * config/i386/i386.md (UNSPEC_PCREL): New.
4418         * config/i386/winnt.c (i386_pe_binds_local_p):
4419         Allow weak symbol for x64 windows with non-local binding.
4420
4421 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4422
4423         PR target/45670
4424         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
4425         instead of EXPAND_NORMAL for base expansion.
4426
4427 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
4428
4429         * config.gcc: Support --with-fpmath=avx for x86.
4430         * config/i386/avxmath.h: New.
4431         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
4432
4433 2010-11-05  Ian Lance Taylor  <iant@google.com>
4434
4435         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
4436         * gengtype.c (walk_type): Don't recognize descbits option.
4437
4438 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
4439
4440         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
4441         WORD_SWITCH_TAKES_ARG): Remove.
4442         * doc/options.texi (Args): Document.
4443         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
4444         * doc/tm.texi: Regenerate.
4445         * opt-functions.awk (switch_flags): Handle Args.
4446         * opts-common.c: Update comment on tm.h include.
4447         (decode_cmdline_option): Handle options with multiple arguments.
4448         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
4449         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
4450         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
4451         CL_COMMON): Update values.
4452         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
4453         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
4454         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
4455         sectobjectsymbols, sectorder, segcreate, segprot): New.
4456
4457 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4458             Uros Bizjak  <ubizjak@gmail.com>
4459
4460         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
4461         256bit AVX register is used.
4462         (ix86_expand_vector_move_misalign): Likewise.
4463         (ix86_expand_vector_move): Replace use_avx256_p with
4464         VALID_AVX256_REG_MODE.
4465
4466 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
4467
4468          PR target/44750
4469         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
4470         change.  Set $@-warn.o to -Wno-error.
4471
4472         PR bootstrap/44756
4473         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
4474         comparing it to a signed value.
4475
4476         PR middle-end/44766
4477         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
4478         PR bootstrap/44770
4479         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
4480         to i.
4481
4482         PR target/44754
4483         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
4484         (m32c_function_arg).  Add comma between arguments two and three.
4485         (m32c_promote_prototypes): Remove declaration.
4486         (current_function_special_page_vector): Likewise.
4487         (m32c_regno_reg_class): Change return type to enum reg_class.
4488         (m32c_pushm_popm): Use add_reg_note.
4489         (m32c_push_rounding): Change return type to unsigned int.
4490         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
4491         enum reload_type.
4492         (m32c_insert_attributes): Constify variable name.
4493         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
4494         (m32c_prepare_shift): Remove variable lref.
4495         (m32c_expand_movcc): Remove variable cmp.
4496         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
4497         (m32c_compare_redundant): Remove variable op2.
4498         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
4499         (m32c_pragma_memregs): Assign the number to target_memregs.
4500         (m32c_pragma_address): Remove variable var_str.
4501         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
4502         enum reg_class.
4503         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
4504         * config/m32c/bitops.md (andsi3): Add default case to switch.
4505         (iorsi3, xorsi3): Likewise.
4506         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
4507         * config/m32c/jump.md (call, call_value): Likewise.
4508         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
4509         (m32c_regno_reg_class): Likewise.
4510         (current_function_special_page_vector): Declare.
4511
4512 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4513
4514         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
4515
4516         PR tree-optimization/46099
4517         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
4518         if it is NULL and uid wasn't found in the hash table.  Just fold the
4519         result if it is NULL otherwise.  Insert other potentially needed
4520         stmts right before current stmt instead of on the entry edge.
4521         (struct elv_data): Add gsi and reset fields.
4522         (eliminate_local_variables_1): Adjust caller.  If take_address_of
4523         failed for debug stmt, set dta->reset and return.
4524         (eliminate_local_variables_stmt): Change STMT argument for GSI,
4525         pass GSI through to the callback, handle resetting of debug stmts.
4526         (eliminate_local_variables): Adjust caller.  Process debug stmts
4527         in second phase.
4528
4529         PR middle-end/43690
4530         * gimplify.c (gimplify_asm_expr): If a "m" input is a
4531         {pre,post}{in,de}crement, fail.
4532
4533         PR debug/46307
4534         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
4535         * tree-pretty-print.c (dump_generic_node): Likewise.
4536         (op_code_prio): Likewise.
4537         * cfgexpand.c (expand_debug_expr): Likewise.
4538
4539 2010-11-04  Paul Koning  <ni1d@arrl.net>
4540
4541         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
4542         constraints.
4543
4544 2010-11-04  Chao-ying Fu  <fu@mips.com>
4545
4546         * configure.ac: Test assembler support for DSP Rev1 mult.
4547         * configure: Regenerate.
4548         * config.in: Regenerate.
4549         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
4550         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
4551         (CODE_FOR_mips_multu): New define.
4552         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
4553         dspr2_32 to dsp_32.
4554         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
4555         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
4556         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
4557         New define_expand patterns.
4558         * config/mips/constraints.md (ka): Update the constraint to test
4559         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
4560         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
4561         mips_multu): Delete.
4562         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
4563         Change target constraint to "ka".
4564         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
4565         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
4566         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4567         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
4568         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4569         (<u>maddsidi4): Likewise.
4570         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
4571         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
4572
4573 2010-11-04  Paul Koning  <ni1d@arrl.net>
4574
4575         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
4576
4577 2010-11-04  Paul Koning  <ni1d@arrl.net>
4578
4579         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
4580
4581 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
4582
4583         Fixed using the Objective-C 2.0 dot-syntax with class names.
4584         * c-parser.c (c_parser_next_token_starts_declspecs): In
4585         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
4586         (c_parser_next_token_starts_declaration): Same.
4587         (c_parser_postfix_expression): Parse the Objective-C 2.0
4588         dot-syntax with a class name.
4589
4590 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
4591
4592         * final.c (compute_alignments): Compute/free loop info all the time.
4593         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
4594         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
4595         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
4596         * config/rs6000/rs6000.c (cfgloop.h): Include.
4597         (can_override_loop_align): New.
4598         (rs6000_option_override_internal): Set it.
4599         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
4600         (rs6000_loop_align): New function.
4601         (rs6000_loop_align_max_skip): Likewise.
4602
4603 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4604
4605         PR driver/45703
4606         * collect2.c (main): Print --help output to stdout.  Do not
4607         exit right away, so ld --help is appended.  Add empty lines
4608         to separate output suitably.
4609
4610 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
4611
4612         PR tree-optimization/46233
4613         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
4614         after calling analyze_function, not before.
4615
4616         PR target/46234
4617         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
4618         instead of build_va_arg_indirect_ref.
4619         * config/spu/spu.c (spu_va_start): Likewise.
4620         * config/s390/s390.c (s390_va_start): Likewise.
4621
4622 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
4623
4624         PR middle-end/46292
4625         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
4626         if the innermode is not vector mode, determine the mode of a subreg
4627         by using mode_for_size of inner_size.
4628
4629 2010-11-04  Richard Guenther  <rguenther@suse.de>
4630
4631         PR rtl-optimization/46183
4632         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
4633         (execute_rtl_pre): Likewise.
4634         (execute_rtl_hoist): Likewise.
4635
4636 2010-11-04  Richard Guenther  <rguenther@suse.de>
4637
4638         PR tree-optimization/46068
4639         * ipa-split.c (consider_split): Remove gcc_unreachable.
4640
4641 2010-11-04  Richard Guenther  <rguenther@suse.de>
4642
4643         * tree-nested.c (build_addr): Use build_fold_addr_expr.
4644
4645 2010-11-04  Richard Guenther  <rguenther@suse.de>
4646
4647         PR tree-optimization/45991
4648         * gimplify.c (force_gimple_operand_1): Use the provded test
4649         function in the initial test.
4650
4651 2010-11-04  Jeff Law  <law@redhat.com>
4652
4653         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
4654         of readonly memory equivalances for const/pure calls.
4655
4656 2010-11-04  Richard Guenther  <rguenther@suse.de>
4657
4658         PR tree-optimization/45733
4659         * tree-vect-stmts.c (reverse_vec_elements): Honor the
4660         permute builtins function return type.
4661
4662 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
4663
4664         PR middle-end/44765
4665         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
4666         as an index, check it is not INVALID_REGNUM.
4667
4668         PR bootstrap/44756
4669         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
4670         unsignedp.
4671         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
4672
4673         PR bootstrap/44756
4674         * function.c (thread_prologue_and_epilogue_insns): Add
4675         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
4676
4677         PR bootstrap/44756
4678         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
4679
4680         PR target/44750
4681         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
4682         (pdp11_preferred_reload_class): Rename class to rclass.
4683         (pdp11_preferred_output_reload_class): Likewise.
4684         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
4685         ALL_COMPILERFLAGS .
4686         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
4687
4688         PR bootstrap/44756
4689         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
4690         iteration variables to enum machine_mode.
4691
4692         PR target/44751
4693         * config/h8300/h8300.c: Include df.h.
4694         (push, pop): Use add_reg_note.
4695         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
4696         (compute_a_shift_cc): Likewise.
4697         (expand_a_shift): Argument code has type enum rtx_code.
4698         (struct shift_insn): Member cc_valid has type enum attr_cc.
4699         (struct shift_info) <cc_inline, cc_special>: Likewise.
4700         enum attr_cc.
4701         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
4702         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
4703
4704 2010-11-04  Ira Rosen  <irar@il.ibm.com>
4705
4706         PR tree-optimization/46213
4707         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
4708         MINUS_EXPR only if the first operand is reduction operand.
4709
4710 2010-11-04  Richard Guenther  <rguenther@suse.de>
4711             Richard Henderson  <rth@redhat.com>
4712
4713         * tree.def (FMA_EXPR): New tree code.
4714         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
4715         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
4716         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
4717         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
4718         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
4719         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
4720         (execute_optimize_widening_mul): Call it.  Reorganize to allow
4721         dead stmt removal.  Move TODO flags ...
4722         (pass_optimize_widening_mul): ... here.
4723         * flag-types.h (enum fp_contract_mode): New enum.
4724         * common.opt (flag_fp_contract_mode): New variable.
4725         (-ffp-contract): New option.
4726         * opts.c (common_handle_option): Handle it.
4727         * doc/invoke.texi (-ffp-contract): Document.
4728         * tree.h (fold_fma): Declare.
4729         * builtins.c (fold_fma): New function.
4730         (fold_builtin_fma): Likewise.
4731         (fold_builtin_3): Call it for fma.
4732         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
4733         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
4734         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
4735         New expanders.
4736         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
4737         named patterns.
4738         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
4739         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
4740         (fms_optab, fnma_optab, fnms_optab): New defines.
4741         * gimplify.c (gimplify_expr): Handle binary truth expressions
4742         explicitly.  Handle FMA_EXPR.
4743         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
4744         operations.
4745
4746 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4747             Richard Guenther  <rguenther@suse.de>
4748
4749         * passes.c (init_optimization_passes): Move veclower after SSA.
4750         * tree-vect-generic.c (uniform_vector_p): New function.
4751         (expand_vector_operations_1): Handle conversion.
4752         (pass_lower_vector): Update SSA form.
4753
4754 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
4755
4756         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
4757         plugin capabilities.
4758         * configure: Regenerate.
4759
4760 2010-11-03  Xinliang David Li  <davidxl@google.com>
4761
4762         PR target/46200
4763         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
4764         Adjust cbase if the use stmt is after iv update.
4765
4766 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4767
4768         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
4769
4770 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4771
4772         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
4773         comment.  Pass true to the last argument of output_stack_adjust.
4774
4775 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4776
4777         PR target/46295
4778         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
4779         if 256bit AVX register is used.
4780
4781 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
4782
4783         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
4784         xsmindp/xsmaxdp on VSX for single precision min/max.
4785         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
4786         (vsx_sminsf3): Ditto.
4787
4788 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4789
4790         * combine.c (try_combine): Fix formatting issues, improve comments and
4791         fix a pasto.
4792
4793 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4794
4795         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
4796         of the result before building binary expressions.
4797
4798 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4799
4800         PR rtl-optimization/45865
4801         * Makefile.in (df-problems.o): Revert revision 164552.
4802         * basic-block.h (enum bb_flags): Likewise.
4803         * cfgcleanup.c (block_was_dirty): Likewise.
4804         (try_forward_edges): Likewise.
4805         (try_crossjump_bb): Likewise.
4806         (try_head_merge_bb): Likewise.
4807         (try_optimize_cfg): Likewise.
4808         (cleanup_cfg): Likewise.
4809         * df-core.c (df_set_bb_dirty): Likewise.
4810         * df-problems.c: Likewise.
4811         (df_simulate_find_uses): Likewise.
4812         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
4813         (find_memory, find_memory_store): Likewise.
4814         (can_move_insns_across): Likewise.
4815         * df.h (can_move_insns_across): Likewise.
4816         * ifcvt.c (find_memory): Likewise.
4817         (dead_or_predicable): Likewise.
4818
4819 2010-11-03  Richard Guenther  <rguenther@suse.de>
4820
4821         PR middle-end/46288
4822         * predict.c (strip_predict_hints): Simply DCE builtin expect if
4823         the result is unused.
4824
4825 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4826
4827         PR tree-optimization/46009
4828         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
4829         cond_if_else_store_replacement if bb1 and bb2 have the same
4830         single successor.
4831         (cond_store_replacement): Use gimple_assign_single_p, don't
4832         check if rhs is SSA_NAME or invariant.  Call release_defs for
4833         assign.
4834         (cond_if_else_store_replacement): New function.
4835
4836 2010-11-03  Richard Guenther  <rguenther@suse.de>
4837
4838         * opts.c (finish_options): Properly check for all WHOPR
4839         flags before complaining about -flto-partition.
4840
4841 2010-11-04  Alan Modra  <amodra@gmail.com>
4842
4843         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
4844         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
4845         TARGET_SECURE_PLT.
4846         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
4847         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
4848         on input, "r" on output.
4849
4850 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
4851
4852         Implemented -fobjc-std=objc1 flag.
4853         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
4854         option.
4855         * doc/standards.texi (Standards): Updated the section on
4856         Objective-C; mention support for Objective-C 2.0 features and the
4857         new -fstd-objc=objc1 flag to disable them.
4858
4859 2010-11-03  Richard Guenther  <rguenther@suse.de>
4860
4861         PR middle-end/46241
4862         * dwarf2out.c (scope_die_for): Properly detect global scope.
4863
4864 2010-11-03  Richard Guenther  <rguenther@suse.de>
4865
4866         PR tree-optimization/46190
4867         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4868         Properly compute peel iterations.
4869
4870 2010-11-03  Richard Guenther  <rguenther@suse.de>
4871
4872         PR tree-optimization/46286
4873         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
4874         re-allocated vector data.
4875
4876 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4877
4878         PR target/46285
4879         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
4880         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
4881         is completed.
4882
4883 2010-11-03  Richard Guenther  <rguenther@suse.de>
4884
4885         PR tree-optimization/46217
4886         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
4887         flag matches.
4888         (execute_update_addresses_taken): Likewise.
4889
4890 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
4891
4892         PR bootstrap/44335
4893         * targhooks.c (targhook_words_big_endian): New function.
4894         (targhook_float_words_big_endian): Likewise.
4895         * targhooks.h (targhook_words_big_endian): Declare.
4896         (targhook_float_words_big_endian): Likewise.
4897         * target.def (words_big_endian, float_words_big_endian): New hooks.
4898
4899 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4900
4901         PR tree-optimization/46165
4902         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
4903         a normal call into noreturn call.
4904
4905 2010-11-03  Richard Guenther  <rguenther@suse.de>
4906
4907         PR middle-end/46251
4908         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
4909         not INDIRECT_REFs.
4910
4911 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4912
4913         PR tree-optimization/46107
4914         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
4915         if cfg_hook_duplicate_loop_to_header_edge failed.
4916
4917 2010-11-03  Ian Lance Taylor  <iant@google.com>
4918
4919         PR lto/46273
4920         * config.gcc: Don't set lto_binary_reader.
4921         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
4922         (Configuration): Mention --disable-lto.  Remove --with-libelf
4923         paragraph.
4924
4925 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4926
4927         PR debug/46252
4928         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
4929         prev_real_insn.
4930         * gcse.c (insert_insn_end_basic_block): Likewise.
4931
4932         PR rtl-optimization/46034
4933         PR rtl-optimization/46212
4934         PR rtl-optimization/46248
4935         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
4936         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
4937         before i0dest -> i0src substitution and pass 1 instead of 0 as last
4938         argument to subst on i2pat.
4939
4940 2010-11-02  Ian Lance Taylor  <iant@google.com>
4941
4942         * configure.ac: Use AC_SYS_LARGEFILE.
4943         * configure: Rebuild.
4944         * config.in: Rebuild.
4945
4946 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
4947
4948         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
4949         fold_convert.
4950         * c-typeck.c (build_function_call_vec): Likewise.
4951         * cfgexpand.c (expand_debug_expr): Likewise.
4952         * cgraphunit.c (assemble_thunk): Likewise.
4953         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
4954         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
4955         (fold_binary_loc, fold_ternary_loc): Likewise.
4956         * gimple-fold.c (get_symbol_constant_value): Likewise.
4957         * gimple-low.c (lower_builtin_setjmp): Likewise.
4958         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
4959         * gimplify.c (gimplify_init_constructor): Likewise.
4960         * lambda.h (build_linear_expr): Likewise.
4961         * omp-low.c (omp_reduction_init): Likewise.
4962         * tree-inline.c (remap_ssa_name): Likewise.
4963         * tree-object-size.c (compute_object_sizes): Likewise.
4964         * tree-sra.c (init_subtree_with_zero): Likewise.
4965         (sra_ipa_modify_assign): Likewise.
4966         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
4967         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
4968         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
4969         (undistribute_ops_list): Likewise.
4970         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
4971         * tree-vect-stmts.c (vectorizable_call): Likewise.
4972         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
4973         (build_zero_cst): Handle more cases directly.  Update comment.
4974
4975 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4976
4977         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
4978         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
4979
4980         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
4981         and call ix86_split_call_vzeroupper instead of
4982         ix86_split_call_pop_vzeroupper.
4983         (*call_pop_1_vzeroupper): Likewise.
4984         (*sibcall_pop_1_vzeroupper): Likewise.
4985         (*call_value_pop_0_vzeroupper): Likewise.
4986         (*call_value_pop_1_vzeroupper): Likewise.
4987         (*sibcall_value_pop_1_vzeroupper): Likewise.
4988
4989 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4990
4991         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
4992
4993 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
4994
4995         * basic-block.h (insert_insn_end_bb_new): Delete.
4996         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
4997
4998 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
4999             H.J. Lu  <hongjiu.lu@intel.com>
5000
5001         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
5002         (ix86_split_call_pop_vzeroupper): Likewise.
5003
5004         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
5005         (ix86_expand_call): Conditionally decorate calls with
5006         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
5007         (ix86_split_call_vzeroupper): New.
5008         (ix86_split_call_pop_vzeroupper): Likewise.
5009
5010         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
5011         (*call_pop_0_vzeroupper): New insn_and_split pattern.
5012         (*call_pop_1_vzeroupper): Likewise.
5013         (*sibcall_pop_1_vzeroupper): Likewise.
5014         (*call_0_vzeroupper): Likewise.
5015         (*call_1_vzeroupper): Likewise.
5016         (*sibcall_1_vzeroupper): Likewise.
5017         (*call_1_rex64_vzeroupper): Likewise.
5018         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
5019         (*call_1_rex64_large_vzeroupper): Likewise.
5020         (*sibcall_1_rex64_vzeroupper): Likewise.
5021         (*call_value_pop_0_vzeroupper): Likewise.
5022         (*call_value_pop_1_vzeroupper): Likewise.
5023         (*sibcall_value_pop_1_vzeroupper): Likewise.
5024         (*call_value_0_vzeroupper): Likewise.
5025         (*call_value_0_rex64_vzeroupper): Likewise.
5026         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
5027         (*call_value_1_vzeroupper): Likewise.
5028         (*sibcall_value_1_vzeroupper): Likewise.
5029         (*call_value_1_rex64_vzeroupper): Likewise.
5030         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
5031         (*call_value_1_rex64_large_vzeroupper): Likewise.
5032         (*sibcall_value_1_rex64_vzeroupper): Likewise.
5033
5034 2010-11-02  Ian Lance Taylor  <iant@google.com>
5035
5036         PR lto/46273
5037         * config.gcc: Revert last patch: set lto_binary_reader.
5038
5039 2010-11-02  Richard Guenther  <rguenther@suse.de>
5040
5041         PR tree-optimization/46149
5042         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
5043         non-indirect MEM_REF variants.
5044
5045 2010-11-02  Richard Guenther  <rguenther@suse.de>
5046
5047         PR tree-optimization/46216
5048         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5049         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
5050
5051 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5052
5053         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
5054         (*-*-osf*): Likewise.
5055         * configure: Regenerate.
5056
5057 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
5058
5059         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
5060         for Intel Core 2 and Core i7.
5061
5062 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
5063
5064         Model decoder of Core 2/i7 for multipass scheduling.
5065
5066         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
5067         New type to hold target-specific data for multipass scheduling.
5068         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5069         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
5070         Core 2/i7.
5071         (core2i7_secondary_decoder_max_insn_size,)
5072         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
5073         New static variables.
5074         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
5075         ([_]ix86_first_cycle_multipass_data): New static variable.
5076         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
5077         Implement targetm.sched hooks.
5078         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
5079         of ...
5080         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
5081         Implement new targetm.sched hooks.
5082         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
5083         targetm.sched hook to install multipass scheduling hooks on demand.
5084
5085         * doc/tm.texi.in: Document new targetm.sched hooks.
5086         * doc/tm.texi: Regenerate.
5087
5088         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5089         (first_cycle_multipass_data_t): New typedef.
5090         (struct choice_entry: target_data): New field.
5091         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
5092         to allow target model restrictions not represented in DFA.
5093         (choose_ready, schedule_block): Update.
5094         (sched_extend_ready_list, sched_finish_ready_list): Call new target
5095         hooks to initialize target-specific data for multipass scheduling.
5096         * sched-int.h (max_issue): Update declaration.
5097         * sel-sched.c (choose_best_insn): Update.
5098         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
5099         (first_cycle_multipass_{init, fini}): Define and document new
5100         targetm.sched hooks.
5101
5102 2010-11-02  Richard Guenther  <rguenther@suse.de>
5103
5104         PR tree-optimization/46184
5105         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
5106         input vector type from the reduction operand as well.
5107
5108 2010-11-02  Richard Guenther  <rguenther@suse.de>
5109
5110         PR tree-optimization/46177
5111         * tree-loop-distribution.c (prop_phis): Use
5112         mark_virtual_phi_result_for_renaming.
5113
5114 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5115
5116         PR middle-end/46120
5117         * tree.c (get_binfo_at_offset): Bail out on artificial
5118         fields.  Identify primary bases according to their offsets.
5119
5120 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5121
5122         PR tree-optimization/45875
5123         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
5124         (gimple_get_relevant_ref_binfo): Detect primary bases according to
5125         their field offset.
5126
5127 2010-11-02  Ian Lance Taylor  <iant@google.com>
5128
5129         * doc/install.texi (Configuration): Note in two places that Java
5130         is not enabled by default.
5131
5132 2010-11-02  Ian Lance Taylor  <iant@google.com>
5133
5134         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
5135         (Configuration): Mention --disable-lto.  Remove --with-libelf
5136         paragraph.
5137
5138 2010-11-02  Ian Lance Taylor  <iant@google.com>
5139
5140         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
5141         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
5142         LIBELFINC.  Remove HAVE_libelf.
5143         * config.gcc: Don't set lto_binary_reader.
5144         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
5145         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
5146         (LIBS): Remove $(LIBELFLIBS).
5147         (INCLUDES): Remove $(LIBELFINC).
5148         * configure: Rebuild.
5149         * config.in: Rebuild.
5150
5151 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
5152
5153         * config/microblaze/microblaze-protos.h (function_arg): Delete.
5154         (function_arg_advance): Delete.
5155         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
5156         (FUNCTION_ARG): Delete.
5157         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
5158         (microblaze_function_arg_advance): ...this.  Make static.  Take a
5159         const_tree and a bool.
5160         (function-arg): Rename to...
5161         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
5162         and a bool.
5163         (microblaze_expand_prologue): Call targetm.calls.function_arg and
5164         targetm.calls.function_arg_advance.
5165         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5166
5167 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5168
5169         Merge from FSF "apple/trunk" branch.
5170
5171         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
5172         * config/darwin.opt: .. to here.
5173         (matt-stubs): New option.
5174         * config/i386/darwin.opt: Delete.
5175         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
5176         (MACHO_DYNAMIC_NO_PIC_P): New.
5177         (MACHOPIC_INDIRECT): New.
5178         (MACHOPIC_PURE): New.
5179         * config/i386/darwin.h (DARWIN_X86) Define to 1.
5180         (MACHOPIC_ATT_STUB): New.
5181         (CC1_SPEC): Do not remove mdynamic-no-pic.
5182         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5183         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5184         (FUNCTION_PROFILER): Correct over-length line.
5185         (SUBTARGET_OVERRIDE_OPTIONS): New.
5186         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5187         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
5188         (legitimate_constant_p): Handle mdynamic-no-pic.
5189         (ix86_legitimate_address_p): Likewise.
5190         (ix86_legitimize_address): Likewise.
5191         (ix86_expand_move): Likewise.
5192         (machopic_output_stub): Update for ATT-style stubs and
5193         mdynamic-no-pic.
5194         * config/darwin-protos.h (machopic_symbol_defined_p): New.
5195         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
5196         TARGET_DYNAMIC_NO_PIC: Remove.
5197         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5198         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5199         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
5200         Remove handling of mdynamic-no-pic.
5201         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
5202         Define if required.
5203         (machopic_symbol_defined_p): Do not try to use current_function_decl
5204         when generating _get_pc thunks within stubs.
5205         (machopic_indirect_data_reference): Rework for direct conditionals
5206         rather than #ifdefs, add x86 mdynamic-no-pic
5207         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
5208         defined value.
5209         (darwin_override_options): Handle mdynamic-no-pic here.
5210         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
5211         (machopic_lazy_symbol_ptr3_section): New.
5212         (machopic_picsymbol_stub2_section): New.
5213         (machopic_picsymbol_stub3_section): New.
5214         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
5215         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5216         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
5217         Moved common definition from x86 and rs6000.
5218         (MACHO_DYNAMIC_NO_PIC_P): Override value.
5219         (MACHOPIC_INDIRECT): Likewise.
5220         (MACHOPIC_PURE): Likewise.
5221         * config.gcc (x86-darwin-*): Remove darwin.opt.
5222
5223 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
5224
5225         PR debug/46255
5226         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
5227         instead of gsi_last_bb.
5228
5229 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5230             Maxim Kuvyrkov  <maxim@codesourcery.com>
5231
5232         * config/i386/i386.c (cpu_names): Add "corei7".
5233         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
5234
5235 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5236             Maxim Kuvyrkov  <maxim@codesourcery.com>
5237
5238         Tune alignment for Intel Core i7
5239
5240         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
5241         (enum processor_type): Update comment.  Add entries for Core i7.
5242         * config/i386-c.c (ix86_target_macros_internal): Update.
5243         * config/i386.c (m_COREI7{_32,_64}): New macros.
5244         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
5245         (processor_target_table): Tune alignment for Core i7.
5246         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
5247
5248         * doc/invoke.texi: Document "corei7" option value.
5249
5250 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5251             Maxim Kuvyrkov  <maxim@codesourcery.com>
5252             H.J. Lu  <hjl.tools@gmail.com>
5253
5254         Basic support for Intel Core i7
5255
5256         * i386.c (ix86_option_override_internal): Add entry for corei7, use
5257         generic tuning.  Use generic32 when compiling for 32-bit ABI.
5258
5259 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5260
5261         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
5262         sections and call darwin_asm_dwarf_section() to handle them.
5263         (darwin_asm_dwarf_section): New.
5264         (darwin_file_start): Remove code emitting dwarf section symbols.
5265
5266 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
5267
5268         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
5269         explicitly disable stack protection when building libgcc.
5270         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
5271
5272 2010-11-01  Jason Merrill  <jason@redhat.com>
5273
5274         * fold-const.c (fold_indirect_ref_1): Handle folding
5275         POINTER_PLUS_EXPR to ARRAY_REF.
5276
5277 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
5278
5279         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
5280         (sh_delegitimize_address): New function.
5281
5282 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5283
5284         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
5285         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
5286         (CC1_SPEC): Don't handle -target.
5287         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
5288         options.
5289         * config/darwin.opt (Zallowable_client, Zbundle_loader,
5290         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
5291         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
5292         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
5293         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
5294         Zweak_reference_mismatches, client_name, compatibility_version,
5295         current_version, dylinker_install_name, pagezero_size,
5296         read_only_relocs, seg1addr, segs_read_only_addr,
5297         segs_read_write_addr, sub_library, sub_umbrella): New.
5298         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
5299         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
5300         * config/freebsd.opt: New.
5301         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
5302         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
5303         * config/rpath.opt: New.
5304         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
5305         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
5306         Use rpath.opt.
5307
5308 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5309
5310         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
5311         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
5312         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
5313         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
5314         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
5315         Document that options in .opt files do not need to be included.
5316         * doc/tm.texi: Regenerate.
5317         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
5318         * opts-common.c: Update comment on tm.h include.
5319         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
5320         * system.h (SWITCH_TAKES_ARG): Poison.
5321         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
5322         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
5323         in darwin.opt.
5324         (LINK_COMMAND_SPEC_A): Don't include %{x}.
5325         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5326         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
5327         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
5328         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5329         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
5330         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
5331         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
5332         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
5333         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5334         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
5335         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
5336         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
5337         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
5338         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
5339         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
5340         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
5341         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
5342         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
5343         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
5344         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
5345         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
5346         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
5347         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5348
5349 2010-11-01  Paul Koning  <ni1d@arrl.net>
5350
5351         * config/pdp11/pdp11.md: Use iterators.
5352         (addqi3, subqi3, iorsi3, xorsi3): Delete.
5353
5354 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
5355
5356         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
5357         GCC_INSN_FLAGS_H.
5358         * libgcov.c (__gcov_indirect_call_profiler): Set
5359         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
5360         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
5361
5362 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5363
5364         PR tree-optimization/46259
5365
5366         Revert:
5367         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5368         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
5369         build_vector_from_val.
5370
5371 2010-11-01  DJ Delorie  <dj@redhat.com>
5372
5373         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
5374         as well as an assertion.
5375
5376 2010-11-01  Paul Koning  <ni1d@arrl.net>
5377
5378         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
5379         complex modes in memory.
5380
5381 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5382
5383         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
5384
5385 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
5386
5387         PR target/45250
5388         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
5389         (cfa_base_offset): New variable.
5390         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
5391         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
5392         is NULL.
5393         (vt_init_cfa_base): Initialize cfa_base_offset.
5394
5395 2010-11-01  Alan Modra  <amodra@gmail.com>
5396
5397         PR target/46030
5398         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
5399         and savres_strategy.
5400         (stack_info): New file scope var.
5401         (rs6000_init_machine_status): Init stack_info.
5402         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
5403         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
5404         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
5405         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
5406         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
5407         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
5408         (rs6000_savres_strategy): Rewrite.
5409         (rs6000_stack_info): Use "stack_info" in place of local "info".
5410         Return cached stack info when reload_completed unless ENABLE_CHECKING
5411         in which case confirm newly calculated stack info matches old info.
5412         Delay calculation of lr_save_p, set it for out of line gp save/restore
5413         as well as fp.  Call rs6000_savres_strategy from here..
5414         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
5415         (rs6000_output_function_prologue): Use info->savres_strategy to
5416         determine whether fp save/restore externs need to be emitted.
5417
5418 2010-10-31  Jason Merrill  <jason@redhat.com>
5419
5420         * tree.h (EXPR_LOC_OR_HERE): New macro.
5421         * builtins.c (c_strlen): Use it.
5422         * c-decl.c (build_enumerator): Likewise.
5423         * gimplify.c (internal_get_tmp_var): Likewise.
5424         (shortcut_cond_expr): Likewise.
5425         (gimplify_one_sizepos): Likewise.
5426
5427 2010-10-31  Richard Henderson  <rth@redhat.com>
5428
5429         * config/i386/cygming.h (TARGET_SEH): New.
5430         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
5431         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
5432         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
5433         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
5434         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
5435         (ASM_DECLARE_FUNCTION_SIZE): New.
5436         * config/i386/i386-protos.h: Update.
5437         * config/i386/i386.c (ix86_option_override_internal): Enable
5438         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
5439         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
5440         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
5441         (ix86_compute_frame_layout): For SEH, disable
5442         use_fast_prologue_epilogue, move frame pointer to the end of
5443         the frame.  Initialize hfp_save_offset.
5444         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
5445         at end of prologue for SEH.
5446         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
5447         emit blockage at beginning of epilogue.
5448         (ix86_expand_binary_operator): After reload, emit LEA if needed.
5449         (ix86_output_call_insn): New.
5450         * config/i386/i386.h (TARGET_SEH): New.
5451         (struct machine_function): Add member seh.
5452         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
5453         * config/i386/winnt.c (struct seh_frame_state): New.
5454         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
5455         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
5456         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
5457         i386_pe_start_function, i386_pe_end_function): New.
5458
5459         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
5460         as CFA_STORE in rules 12 and 13.
5461
5462 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
5463
5464         PR tree-optimization/46142
5465         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
5466         accommodate third function argument.
5467
5468 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5469
5470         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
5471
5472 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5473
5474         * fold-const.c (build_zero_vector): Use build_vector_from_val.
5475         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
5476         (get_initial_def_for_reduction): Likewise.
5477         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
5478         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
5479         * tree.c (build_one_cst): Likewise.
5480         (build_vector_from_val): Use types_compatible_p for assert.
5481
5482 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5483
5484         * emit-rtl.c (mark_used_flags): New function.
5485         (set_used_flags, reset_used_flags): Call it.
5486
5487 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
5488
5489         PR middle-end/44569
5490         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
5491         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
5492
5493 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
5494
5495         PR target/46195
5496         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
5497         (ix86_compat_aligned_value_p): This.
5498         (ix86_old_function_arg_boundary): Renamed to ...
5499         (ix86_compat_function_arg_boundary): This.  Updated.
5500         (ix86_contains_aligned_value_p): New.
5501         (ix86_function_arg_boundary): Align long double parameters on
5502         stack to 4byte in 32bit.
5503
5504 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
5505
5506         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
5507         * c-parser.c (c_parser_objc_at_property_declaration): Removed
5508         parsing of RID_COPIES and RID_IVAR.  Updated call to
5509         objc_add_property_declaration.
5510         * c-typecheck.c (build_component_ref): Call
5511         objc_maybe_build_component_ref instead of objc_build_setter_call.
5512         Use objc_is_property_ref to improve Objective-C checks.
5513         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
5514         of objc_build_getter_call.
5515
5516 2010-10-29  Paul Koning  <ni1d@arrl.net>
5517
5518         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5519         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
5520         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
5521         (REG_OK_STRICT): Move description.
5522
5523 2010-10-29  Paul Koning  <ni1d@arrl.net>
5524
5525         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
5526
5527 2010-10-29  Paul Koning  <ni1d@arrl.net>
5528
5529         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
5530
5531 2010-10-29  Paul Koning  <ni1d@arrl.net>
5532
5533         PR/41822
5534         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
5535
5536 2010-10-29  Richard Henderson  <rth@redhat.com>
5537
5538         PR rtl-opt/46226
5539         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
5540         for asm goto.
5541
5542 2010-10-29  Paul Koning  <ni1d@arrl.net>
5543
5544         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
5545         register to register move.
5546
5547 2010-10-29  Paul Koning  <ni1d@arrl.net>
5548
5549         * config/pdp11/pdp11.c (print_operand_address): Correct handling
5550         of integer constant addresses, delete vax-only logic.
5551
5552 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
5553
5554         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
5555         a conditional expression.
5556
5557 2010-10-29  Paul Koning  <ni1d@arrl.net>
5558
5559         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
5560         instruction encoding.
5561
5562 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5563             Andrew Pinski  <pinskia@gmail.com>
5564
5565         * tree.h (build_vector_from_val): Declare.
5566         * tree.c (build_vector_from_val): New function.
5567         * c-typeck.c (build_binary_op): Handle vector shifting.
5568         * doc/extend.texi: Description of the vector shifting operation.
5569
5570 2010-10-29  Paul Koning  <pkoning@equallogic.com>
5571
5572         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
5573         pdp11_secondary_memory_needed): Declare.
5574         * config/pdp11/predicates.md (float_operand): New predicate.
5575         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
5576         (cbranchdf4, movdf): Change predicate.
5577         (movsf): Handle FPU register case.
5578         (truncdfsf2, extendsfdf2): Add FPU register case.
5579         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
5580         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
5581         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5582         (pdp11_register_move_cost): Update cost matrix.
5583         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
5584         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
5585         pdp11_secondary_memory_needed): New function.
5586         (pdp11_return_in_memory): Add other float types.
5587         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
5588         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
5589         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
5590         REGISTER_MOVE_COST): Delete.
5591         (BASE_RETURN_VALUE_REG): Add other float types.
5592
5593 2010-10-29  Nick Clifton  <nickc@redhat.com>
5594
5595         * doc/invoke.texi: Document -mam34 and -mtune options.
5596         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
5597         (mn10300_tune_cpu): New variable.
5598         (mn10300_handle_option): Handle -mam34 and -mtune options.
5599         (mn10300_option_override): Convert tune string into tune cpu variable.
5600         (mn10300_legitimate_constant_p): Delete unused local variable.
5601         (is_load_insn): New function.
5602         (is_store_insn): New function.
5603         (mn10300_adjust_schedule_cost): New function.
5604         (TARGET_SCHED_ADJUST_COST): Define.
5605         * config/mn10300/mn10300.opt (mam34): New option.
5606         (mtune): New option.
5607         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
5608         (enum processor_type): Add AM34.
5609         (TARGET_AM34): Define.
5610         * config/mn10300/mn10300.md (attr cpu): Add am34.
5611         Add pipeline description.
5612         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
5613         Remove unneeded alternatives.  Add timing attribute.
5614         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
5615         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
5616         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
5617         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
5618         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
5619         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
5620         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
5621         float_conditional_branch, jump, indirect_jump, tablejump,
5622         call_internal, call_value_internal, zero_extendqisi2_am33,
5623         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
5624         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
5625         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
5626         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
5627         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
5628         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
5629         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
5630         return_internal_regs, store_movm, return, call_next_insn):
5631         Add timing attribute.
5632         (am33_subsi3): Add missing clobber of CC_REG.
5633         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
5634         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
5635         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
5636         extendqisi2): Fix predicates.
5637         (call_internal, call_internal_value): Separate alternatives.
5638         * config/mn10300/t-mn10300: Add AM34 multilib.
5639
5640 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
5641
5642         * config/sh/sh.c (sh_promote_function_mode): Use
5643         default_promote_function_mode if !sh_promote_prototypes.
5644
5645 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
5646
5647         * recog.c (split_all_insns): Remove dead code.
5648
5649 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5650
5651         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5652
5653 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5654
5655         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5656         (FUNCTION_ARG_ADVANCE): Delete.
5657         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
5658         functions.
5659         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
5660         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5661         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5662
5663 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5664
5665         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
5666         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5667         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5668         Take a const_tree and a bool.
5669         (mcore_function_arg_advance): New function.
5670         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5671
5672 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5673
5674         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
5675         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5676         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5677         Take a const_tree and a bool.
5678         (mcore_function_arg_advance): New function.
5679         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5680
5681 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5682
5683         * config/h8300/h8300-protos.h (function_arg): Delete.
5684         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5685         * config/h8300/h8300.c (function_arg): Rename to...
5686         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
5687         a bool.
5688         (h8300_function_arg_advance): New function.
5689         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5690
5691 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5692
5693         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
5694         to...
5695         * config/arc/arc.c (arc_function_arg): ...here and...
5696         (arc_function_arg_advance): ...here.  New functions.
5697         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5698
5699 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5700
5701         * config/crx/crx-protos.h (crx_function_arg): Delete.
5702         (crx_function_arg_advance): Delete.
5703         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5704         * config/crx/crx.c (crx_function_arg): Make static.  Take a
5705         const_tree and a bool.
5706         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
5707         (enough_regs_for_param): Take a const_tree.
5708         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5709
5710 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5711
5712         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
5713         (m68hc11_function_arg_advance): Delete.
5714         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
5715         (FUNCTION_ARG_ADVANCE): Delete.
5716         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
5717         Take a const_tree and a bool.
5718         (m68hc11_function_arg_advance): Likewise.
5719         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5720
5721 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5722
5723         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
5724         (xstormy16_function_arg_advance): Delete.
5725         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
5726         (FUNCTION_ARG_ADVANCE): Delete.
5727         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
5728         Take a const_tree and a bool.
5729         (xstormy16_function_arg_advance): Likewise.  Return void, updating
5730         the CUM parameter instead.
5731         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5732
5733 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5734
5735         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
5736         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5737         (MOXIE_FUNCTION_ARG_SIZE): Move to...
5738         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
5739         (moxie_function_arg): Make static.  Take a const_tree and a bool.
5740         (moxie_function_arg_advance): New function.
5741         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5742
5743 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5744
5745         * config/mn10300/mn10300-protos.h (function_arg): Delete.
5746         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
5747         (FUNCTION_ARG_ADVANCE): Delete.
5748         * config/mn10300/mn10300.c (function_arg): Rename to...
5749         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
5750         and a bool.
5751         (mn10300_function_arg_advance): New function.
5752         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5753
5754 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5755
5756         * config/iq2000/iq2000-protos.h (function_arg): Delete.
5757         (function_arg_advance): Delete.
5758         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5759         * config/iq2000/iq2000.c (function_arg): Rename to...
5760         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
5761         a bool.
5762         (function_arg_advance): Rename to...
5763         (iq2000_function_arg_advance): ...this.  Make static.  Take a
5764         const_tree and a bool.
5765         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
5766         iq2000_function_arg.
5767         (iq2000_pass_by_reference): Call iq2000_function_arg).
5768         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5769
5770 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5771
5772         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
5773         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5774         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
5775         const_tree.
5776         (fr30_function_arg): New function.
5777         (fr30_function_arg_advance): New function.
5778         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5779
5780 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5781
5782         * config/frv/frv-protos.h (frv_function_arg): Delete.
5783         (frv_function_arg_advance): Delete.
5784         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5785         * config/frv/frv.c (frv_function_arg): Rename to...
5786         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
5787         (frv_function_arg, frv_function_incoming_arg): New functions.
5788         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
5789         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5790         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5791
5792 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
5793
5794         PR target/46153
5795         * config/i386/sse.md (sse_movhlps_exp): Use destination
5796         returned from ix86_fixup_binary_operands to expand insn.
5797         (sse_movlhps_exp): Ditto.
5798         (sse_loadhps_exp): Ditto.
5799         (sse_loadlps_exp): Ditto.
5800         (sse2_loadhpd_exp): Ditto.
5801         (sse2_loadlpd_exp): Ditto.
5802
5803 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
5804
5805         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
5806         constants in thumb2.
5807
5808 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
5809
5810         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
5811         arithmetics in masking operations.
5812         (contains_muldiv): Likewise.
5813         (try_combine): Likewise.
5814         (find_split_point): Likewise.
5815         (combine_simplify_rtx): Likewise.
5816         (simplify_if_then_else): Likewise.
5817         (simplify_set): Likewise.
5818         (expand_compound_operation): Likewise.
5819         (expand_field_assignment): Likewise.
5820         (make_extraction): Likewise.
5821         (extract_left_shift): Likewise.
5822         (make_compound_operation): Likewise.
5823         (force_to_mode): Likewise.
5824         (make_field_assignment): Likewise.
5825         (reg_nonzero_bits_for_combine): Likewise.
5826         (simplify_shift_const_1): Likewise.
5827         (simplify_comparison): Likewise.
5828
5829 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
5830
5831         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
5832         (ia64_function_arg_advance): Delete.
5833         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5834         (FUNCTION_ARG_ADVANCE): Delete.
5835         * config/ia64/ia64.c (ia64_function_arg): Rename to...
5836         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
5837         bool arguments.
5838         (ia64_function_arg, ia64_function_incoming_arg): New functions.
5839         (ia64_function_arg_advance): Make static.  Take a const_tree and
5840         a bool.
5841         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5842         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5843
5844 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
5845
5846         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
5847         (TARGET_GET_RAW_ARG_MODE): New.
5848         * doc/tm.texi: Regenerate.
5849         * target.def (get_raw_result_mode): New.
5850         (get_raw_arg_mode): New.
5851         * targhooks.c (default_get_reg_raw_mode): New.
5852         * targhooks.h (default_get_reg_raw_mode): New.
5853         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
5854         (apply_result_size): Ditto.
5855         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
5856         (TARGET_GET_RAW_RESULT_MODE): Define.
5857         (TARGET_GET_RAW_ARG_MODE): Ditto.
5858
5859 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5860
5861         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
5862         for newer Solaris 10 release.
5863         (sparc_fallback_frame_state): Likewise.
5864
5865 2010-10-27  Jason Merrill  <jason@redhat.com>
5866
5867         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
5868         variables sooner.
5869
5870 2010-10-27  Jie Zhang  <jie@codesourcery.com>
5871             Maxim Kuvyrkov  <maxim@codesourcery.com>
5872
5873         * haifa-sched.c (ISSUE_POINTS): Remove.
5874         (max_issue): Don't issue more than issue_rate instructions.
5875
5876 2010-10-27  Ian Lance Taylor  <iant@google.com>
5877
5878         PR target/46197
5879         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
5880         (split_stack_return): Replace UNSPEC_STACK_CHECK with
5881         UNSPECV_SPLIT_STACK_RETURN.
5882
5883 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
5884
5885         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
5886
5887         * config/i386/i386.c (block_info): New.
5888         (BLOCK_INFO): Likewise.
5889         (call_avx256_state): Likewise.
5890         (check_avx256_stores): Likewise.
5891         (move_or_delete_vzeroupper_2): Likewise.
5892         (move_or_delete_vzeroupper_1): Likewise.
5893         (move_or_delete_vzeroupper): Likewise.
5894         (use_avx256_p): Likewise.
5895         (function_pass_avx256_p): Likewise.
5896         (flag_opts): Add -mvzeroupper.
5897         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
5898         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
5899         is disabled.
5900         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
5901         generate vzeroupper.
5902         (init_cumulative_args): Add an int to indicate caller.  Set
5903         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
5904         based on return type.
5905         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
5906         caller_pass_avx256_p based on argument type.
5907         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
5908         is used, but not returned by caller.
5909         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
5910         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
5911         is used.
5912         (ix86_minimum_alignment): Likewise.
5913         (ix86_expand_special_args_builtin): Set target to
5914         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
5915         (ix86_reorg): Run the vzeroupper optimization if needed.
5916
5917         * config/i386/i386.h (ix86_args): Add caller.
5918         (INIT_CUMULATIVE_ARGS): Updated.
5919         (machine_function): Add use_vzeroupper_p, use_avx256_p,
5920         caller_pass_avx256_p, caller_return_avx256_p,
5921         callee_pass_avx256_p and callee_return_avx256_p.
5922
5923         * config/i386/i386.opt (-mvzeroupper): New.
5924
5925         * config/i386/predicates.md (vzeroupper_operation): Removed.
5926
5927         * config/i386/sse.md (avx_vzeroupper): Removed.
5928         (*avx_vzeroupper): Removed.
5929         (avx_vzeroupper): New.
5930
5931         * doc/invoke.texi: Document -mvzeroupper.
5932
5933 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5934
5935         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
5936         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
5937         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
5938
5939 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5940             Olivier Hainque  <hainque@adacore.com>
5941
5942         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
5943         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
5944         fs->signal_frame instead.
5945
5946 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5947
5948         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
5949         parsing of RID_COPIES and RID_IVAR.
5950
5951 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5952
5953         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
5954         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
5955         Do not use objc_set_property_attr, but use local variables
5956         instead.  Detect repeated usage of setter, getter and ivar
5957         attributes.  Improved error processing when a setter name does not
5958         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
5959         that the token is a keyword.  Updated call to
5960         objc_add_property_declaration.
5961
5962 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5963
5964         * c-parser.c (c_parser_objc_at_property): Renamed to
5965         c_parser_objc_at_property_declaration.  Updated calls to
5966         objc_add_property_variable, now objc_add_property_declaration.
5967         Code rewritten to be much more robust in recovering from syntax
5968         errors.  Added comments.
5969         (c_parser_objc_property_attrlist): Removed.
5970         (c_parser_external_declaration): Updated calls to
5971         c_parser_objc_at_property, now
5972         c_parser_objc_at_property_declaration.
5973         (c_parser_objc_methodprotolist): Same change.
5974
5975 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5976
5977         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
5978
5979 2010-10-26  Jan Hubicka  <jh@suse.cz>
5980
5981         * ipa.c (process_references): Enqueue all referenced nodes;
5982         mark as reachable only non-external nodes.
5983         (cgraph_remove_unreachable_nodes): All referenced nodes should
5984         be enqueued; remove bogues node->needed check.
5985
5986 2010-10-26  Jan Hubicka  <jh@suse.cz>
5987
5988         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
5989         to represent OMP.
5990
5991 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5992
5993         * config/i386/i386.md (split_stack_return): Replace
5994         unspec_volatile with unspec.
5995
5996 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
5997
5998         * doc/install.texi: Fix typo in --with-sysroot description.
5999
6000 2010-10-26  Jan Hubicka  <jh@suse.cz>
6001
6002         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
6003         Use info provided by linker plugin.
6004
6005 2010-10-26  Jason Merrill  <jason@redhat.com>
6006
6007         * varasm.c (constructor_static_from_elts_p): Don't require a
6008         CONSTRUCTOR to have elements to be suitable for static
6009         initialization.  Allow ARRAY_TYPE as well.
6010
6011 2010-10-26  Jan Hubicka  <jh@suse.cz>
6012
6013         PR middle-end/45736
6014         * cgraph.c (cgraph_set_readonly_flag): Rename to...
6015         (cgraph_set_const_flags) ... this one; get also looping argument;
6016         clear constructor/destructor flags.
6017         (cgraph_set_pure_flag): Likewise.
6018         (cgraph_set_looping_const_or_pure_flag): Remove.
6019         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
6020         to optimize away static ctors/dtors; it does not work on inline clones;
6021         external functions can always be rmeoved.
6022         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
6023         inline clones; in LTO external functions always can go.
6024         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
6025         (cgraph_mark_address_taken_node): Assert that we are not taking
6026         address of inline clone.
6027         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
6028         external functions.
6029         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
6030         address taken.
6031         (ipcp_initialize_node_lattices): Only local functions can be
6032         handled without cloning.
6033         * cgraph.h (cgraph_set_readonly_flag,
6034         cgraph_set_looping_const_or_pure_flag): Remove.
6035         (cgraph_set_const_flag): Declare.
6036         (cgraph_set_pure_flag): Update.
6037         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
6038         flags setting code.
6039         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
6040         look at inline clones; fix handling of external definitions.
6041         (cgraph_postorder): Do not look at inline clones in the first pass.
6042         (function_and_variable_visibility): Drop constructors/destructor
6043         flags at pure and const functions.
6044         * tree-profile.c (tree_profiling): Update.
6045         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
6046         address taken; external functions do not account to whole program size.
6047         (cgraph_decide_inlining): Likewise; do not try to inline
6048         functions already inlined.
6049
6050 2010-10-26  Jie Zhang  <jie@codesourcery.com>
6051
6052         * doc/invoke.texi: Improve documentation of
6053         -fstrict-volatile-bitfields.
6054
6055 2010-10-26  Ira Rosen  <irar@il.ibm.com>
6056
6057         PR tree-optimization/46167
6058         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
6059         is basic block for the statement.
6060
6061 2010-10-26  Paul Koning  <ni1d@arrl.net>
6062
6063         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
6064         current definition of struct_real_format.
6065
6066 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6067
6068         PR target/44948
6069         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
6070         (ix86_function_arg_boundary): Always align parameters on stack
6071         in 64bit and align parameters with alignment >= 16byte on stack
6072         in 32bit.  Warn alignment change.
6073
6074 2010-10-26  Ian Lance Taylor  <iant@google.com>
6075
6076         PR middle-end/45687
6077         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
6078         offset.
6079
6080 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
6081
6082         Implement opaque-enum-specifiesr for C++0x
6083         * tree.h (ENUM_IS_OPAQUE): New.
6084         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
6085
6086 2010-10-26  Jie Zhang  <jie@codesourcery.com>
6087
6088         * stor-layout.c (layout_decl): Use the field's type to
6089         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
6090         * config/arm/arm.c (arm_override_options): Default to
6091         -fstrict-volatile-bitfields.
6092
6093 2010-10-25  Paul Koning  <ni1d@arrl.net>
6094
6095         * config/pdp11/pdp11.md: Add define_constants for register
6096         numbers, branch offset limits.
6097         * config/pdp11/pdp11.c: Use named constants instead of numbers.
6098         * config/pdp11.pdp11.h: Ditto.
6099
6100 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6101
6102         * configure.ac: Use $cpu_type instead of $target to define the nop.
6103         * configure: Regenerate.
6104
6105 2010-10-25  Jie Zhang  <jie@codesourcery.com>
6106
6107         * combine.c (try_combine): If insns need to be kept around, check that
6108         they can be copied in the merged instruction.
6109
6110 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6111
6112         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
6113         has been modified.
6114         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
6115         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
6116         it has been modified.
6117
6118 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6119
6120         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
6121
6122 2010-10-24  Paul Koning  <ni1d@arrl.net>
6123
6124         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
6125         * config/pdp11/pdp11.c (output_jump): Ditto.
6126
6127 2010-10-24  Ian Lance Taylor  <iant@google.com>
6128
6129         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
6130
6131 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6132
6133         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
6134         least one insn with a locus corresponding to an edge's goto_locus,
6135         disregard non-fallthru edges to the exit block and merge the blocks
6136         created for the same goto_locus.
6137
6138 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
6139
6140         * gcc.c (n_switches_alloc_debug_check): New.
6141         (set_option_handlers): New.
6142         (process_command): Use set_option_handlers.
6143         (do_self_spec): Pass spec-generated options through option handlers.
6144         (main): Also save and restore n_switches_alloc when swapping
6145         switch arrays.
6146
6147 2010-10-23  Richard Henderson  <rth@redhat.com>
6148
6149         PR target/46144
6150         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
6151         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
6152         Honor matching operands when splitting to XOR.
6153
6154 2010-10-23  Ian Lance Taylor  <iant@google.com>
6155
6156         * tree-vrp.c (extract_range_from_binary_expr): If
6157         flag_non_call_exceptions don't eliminate division by zero.
6158         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
6159
6160 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
6161
6162         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
6163         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
6164         __ORDER_PDP_ENDIAN__.
6165         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6166         (struct DWstruct): Define based on __BYTE_ORDER__.
6167         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6168         (struct INTstruct): Define based on __BYTE_ORDER__.
6169         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6170         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
6171         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
6172         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6173         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6174         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6175         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6176         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6177         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6178         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6179         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6180         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6181         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6182         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6183         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6184         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6185         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6186         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6187         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6188         * doc/tm.texi: Regenerate.
6189         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
6190         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
6191
6192 2010-10-23  Jie Zhang  <jie@codesourcery.com>
6193
6194         PR rtl-optimization/37360
6195         * config/mips/mips.c (cached_can_issue_more): New local variable.
6196         (mips_sched_reorder_1): New.
6197         (mips_sched_reorder): Use mips_sched_reorder_1.
6198         (mips_sched_reorder2): New.
6199         (mips_variable_issue): Set cached_can_issue_more.
6200         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
6201         instead of mips_sched_reorder.
6202
6203         Revert:
6204         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
6205         PR rtl-optimization/37360
6206         * haifa-sched.c (max_issue): Do not assert that we never issue more
6207         insns than issue_rate.  Add comment.
6208
6209 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
6210
6211         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
6212         location info of the expression.
6213
6214 2010-10-22  DJ Delorie  <dj@redhat.com>
6215
6216         * doc/extend.texi (Named Address Spaces): Document the M32C named
6217         address space.
6218
6219         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
6220         __far address space.
6221         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
6222         "__far" address space for R8C and M16C processor variants.
6223         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
6224         (far_addr_space_p): New.
6225         (encode_pattern_1): Add sign and zero extend support.
6226         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
6227         (m32c_extra_constraint_p2): Add SF constraint.
6228         (m32c_legitimate_address_p): Support __far addresses.
6229         (m32c_addr_space_pointer_mode): New.
6230         (m32c_addr_space_address_mode): New.
6231         (m32c_addr_space_legitimate_address_p): New.
6232         (m32c_addr_space_legitimize_address): New.
6233         (m32c_addr_space_subset_p): New.
6234         (m32c_addr_space_convert): New.
6235         (conversions): Add __far operand patterns.
6236         (m32c_prepare_move): Force constants into registers for __far moves.
6237         (m32c_split_move): __far moves are always split.
6238         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
6239         * config/m32c/mov.md (mov<mode>_far_op1): New.
6240         (mov<mode>_far_op2): New.
6241         (movqi_op): Add __far (SF) support.
6242         (movhi_op): Likewise.
6243         (movsi_splittable): Split A1A0 also.
6244
6245 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6246             Andrew Pinski  <pinskia@gmail.com>
6247
6248         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
6249         * doc/extend.texi: New paragraph
6250
6251 2010-10-22  Paul Koning  <ni1d@arrl.net>
6252
6253         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
6254
6255 2010-10-22  DJ Delorie  <dj@redhat.com>
6256
6257         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
6258
6259 2010-10-22  Paul Koning  <ni1d@arrl.net>
6260
6261         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
6262
6263 2010-10-22  Richard Henderson  <rth@redhat.com>
6264
6265         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
6266         cases for __builtin_fma and __builtin_fmaf.
6267
6268 2010-10-22  Richard Henderson  <rth@redhat.com>
6269
6270         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
6271         NEG+USE for vectors as well.
6272         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
6273         and splitter.
6274
6275 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6276
6277         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
6278         SWITCH_CURTAILS_COMPILATION): Remove.
6279         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
6280         * doc/tm.texi: Regenerate.
6281         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
6282
6283 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6284
6285         * config/i386/bdver1.md: New file.
6286         * config/i386/i386.md (include "bdver1.md"): Invoke the
6287         pipeline description for bdver1.
6288         (x86_sahf_1): Add "bdver1_decode" attribute.
6289         (*cmpfp_i_mixed): Likewise.
6290         (*cmpfp_i_sse): Likewise.
6291         (*cmpfp_i_i387): Likewise.
6292         (*cmpfp_iu_mixed): Likewise.
6293         (*cmpfp_iu_sse): Likewise.
6294         (*cmpfp_iu_387): Likewise.
6295         (*swap<mode>,*swap<mode>_1): Likewise.
6296         (fixuns_trunc<mode>hi2): Likewise.
6297         (fix_trunc<mode>si_sse): Likewise.
6298         (x86_fnstcw_1): Likewise.
6299         (x86_fldcw_1): Likewise.
6300         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
6301         (*floatsi<mode>2_vector_mixed): Likewise.
6302         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
6303         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
6304         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
6305         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
6306         (*floatsi<mode>2_vector_sse): Likewise.
6307         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
6308         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
6309         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
6310         (*mul<mode>3_1): Likewise.
6311         (*mulsi3_1_zext): Likewise.
6312         (*mulhi3_1): Likewise.
6313         (*mulqi3_1): Likewise.
6314         (*<u>mul<mode><dwi>3_1): Likewise.
6315         (*<u>mulqihi3_1): Likewise.
6316         (*<s>muldi3_highpart_1): Likewise.
6317         (*<s>mulsi3_highpart_1): Likewise.
6318         (*<s>mulsi3_highpart_zext): Likewise.
6319         (x86_64_shld): Likewise.
6320         (x86_shld): Likewise.
6321         (x86_64_shrd): Likewise.
6322         (x86_shrd): Likewise.
6323         (sqrtxf2): Likewise.
6324         (sqrt_extend<mode>xf2_i387): Likewise.
6325         (*sqrt<mode>2_sse): Likewise.
6326         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
6327         (sse_cvtsi2ssq): Likewise.
6328         (sse_cvtss2si): Likewise.
6329         (sse_cvtss2si_2): Likewise.
6330         (sse_cvtss2siq): Likewise.
6331         (sse_cvtss2siq_2): Likewise.
6332         (sse_cvttss2si): Likewise.
6333         (sse_cvttss2siq): Likewise.
6334         (sse2_cvtpi2pd): Likewise.
6335         (sse2_cvttpd2pi): Likewise.
6336         (sse2_cvtsi2sd): Likewise.
6337         (sse2_cvtsi2sdq): Likewise.
6338         (sse2_cvtsd2si): Likewise.
6339         (sse2_cvtsd2si_2): Likewise.
6340         (sse2_cvtsd2siq): Likewise.
6341         (sse2_cvtsd2siq_2): Likewise.
6342         (sse2_cvttsd2si): Likewise.
6343         (sse2_cvttsd2siq): Likewise.
6344         (*sse2_cvtpd2dq): Likewise.
6345         (*sse2_cvttpd2dq): Likewise.
6346         (sse2_cvtsd2ss): Likewise.
6347         (sse2_cvtss2sd): Likewise.
6348         (*sse2_cvtpd2ps): Likewise.
6349         (sse2_cvtps2pd): Likewise.
6350
6351 2010-10-22  Richard Guenther  <rguenther@suse.de>
6352
6353         PR middle-end/46137
6354         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
6355         remove the virtual operands if they are not needed.
6356
6357 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6358
6359         * config/i386/i386.c (processor_costs bdver1_cost): Update
6360         insn costs and architectural parameters for bdver1.
6361
6362 2010-10-22  Richard Guenther  <rguenther@suse.de>
6363
6364         * gimple.h (gimple_register_canonical_type): Declare.
6365         * gimple.c (gimple_canonical_types): New global hashtable.
6366         (struct gimple_type_leader_entry_s): New type.
6367         (gimple_type_leader): New global cache.
6368         (gimple_lookup_type_leader): New function.
6369         (gtc_visit): Query the proper cache.
6370         (gimple_types_compatible_p): Likewise.
6371         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
6372         (gimple_canonical_type_eq): New function.
6373         (gimple_register_canonical_type): Likewise.
6374         (print_gimple_types_stats): Adjust for gimple_canonical_types.
6375         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
6376         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
6377         gimple_types_compatible_p for LTO.
6378
6379 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
6380
6381         PR target/46098
6382         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
6383         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
6384         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
6385         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
6386         (<sse>_movu<ssemodesuffix>): New expander.
6387         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
6388         (avx_movdqu<avxmodesuffix>): New expander.
6389         (*sse2_movdqu): Rename from sse2_movdqu.
6390         (sse2_movdqu): New expander.
6391
6392 2010-10-22  Richard Guenther  <rguenther@suse.de>
6393
6394         PR tree-optimization/45720
6395         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
6396         Handle negative step.
6397         (vect_enhance_data_refs_alignment): Likewise.
6398         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
6399         (vect_create_cond_for_align_checks): Likewise.
6400         (vect_create_cond_for_alias_checks): Likewise.
6401
6402 2010-10-22  Ira Rosen  <irar@il.ibm.com>
6403
6404         PR tree-optimization/46126
6405         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
6406         vectorizable_shift in case of basic block vectorization.
6407
6408 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6409
6410         * target.h (enum opt_levels, struct default_options): New.
6411         * target.def (handle_ofast): Remove hook.
6412         (target_option.optimization): Change to
6413         target_option.optimization_table.
6414         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
6415         TARGET_OPTION_OPTIMIZATION_TABLE.
6416         (CAN_DEBUG_WITHOUT_FP): Remove.
6417         * doc/tm.texi: Regenerate.
6418         * opts.c (maybe_default_option, maybe_default_options,
6419         default_options_table): New.
6420         (default_options_optimization): Take extra parameters.  Don't
6421         assert that global_options and global_options_set are in use.  Use
6422         maybe_default_options.
6423         (decode_options): Pass extra parameters to
6424         default_options_optimization.
6425         * common.opt (falign-loops): Use value 0 with Var.
6426         (frerun-cse-after-loop, ftree-ter): Remove Init.
6427         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
6428         TARGET_OPTION_OPTIMIZATION): Remove.
6429         * targhooks.c (empty_optimization_table): New.
6430         * targhooks.h (empty_optimization_table): Declare.
6431         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
6432         * config/alpha/alpha.c (alpha_option_optimization_table,
6433         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6434         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
6435         * config/arm/arm.c (arm_option_optimization: Change to
6436         arm_option_optimization_table.
6437         (TARGET_OPTION_OPTIMIZATION): Change to
6438         TARGET_OPTION_OPTIMIZATION_TABLE.
6439         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
6440         * config/avr/avr.c (avr_option_optimization_table,
6441         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6442         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
6443         * config/cris/cris.c (cris_option_optimization): Change to
6444         cris_option_optimization_table.
6445         (TARGET_OPTION_OPTIMIZATION): Change to
6446         TARGET_OPTION_OPTIMIZATION_TABLE.
6447         * config/crx/crx.c (crx_option_optimization): Change to
6448         crx_option_optimization_table.
6449         (TARGET_OPTION_OPTIMIZATION): Change to
6450         TARGET_OPTION_OPTIMIZATION_TABLE.
6451         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6452         * config/fr30/fr30.c (fr30_option_optimization_table,
6453         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6454         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
6455         * config/frv/frv.c (frv_option_optimization_table,
6456         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6457         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
6458         * config/h8300/h8300.c (h8300_option_optimization): Change to
6459         h8300_option_optimization_table.
6460         (TARGET_OPTION_OPTIMIZATION): Change to
6461         TARGET_OPTION_OPTIMIZATION_TABLE.
6462         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6463         * config/i386/i386.c (ix86_option_optimization): Change to
6464         ix86_option_optimization_table.
6465         (TARGET_OPTION_OPTIMIZATION): Change to
6466         TARGET_OPTION_OPTIMIZATION_TABLE.
6467         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
6468         as initializer.
6469         * config/ia64/ia64.c (ia64_option_optimization): Change to
6470         ia64_option_optimization_table.
6471         (TARGET_OPTION_OPTIMIZATION): Change to
6472         TARGET_OPTION_OPTIMIZATION_TABLE.
6473         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
6474         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
6475         initializer.
6476         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
6477         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6478         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6479         * config/lm32/lm32.c (lm32_option_optimization_table,
6480         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6481         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
6482         * config/m32r/m32r.c (m32r_option_optimization): Change to
6483         m32r_option_optimization_table.
6484         (TARGET_OPTION_OPTIMIZATION): Change to
6485         TARGET_OPTION_OPTIMIZATION_TABLE.
6486         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
6487         CAN_DEBUG_WITHOUT_FP): Remove.
6488         * config/mcore/mcore.c (mcore_option_optimization): Change to
6489         mcore_option_optimization_table.
6490         (TARGET_OPTION_OPTIMIZATION): Change to
6491         TARGET_OPTION_OPTIMIZATION_TABLE.
6492         * config/mep/mep.c (mep_option_optimization): Change to
6493         mep_option_optimization_table.
6494         (TARGET_OPTION_OPTIMIZATION): Change to
6495         TARGET_OPTION_OPTIMIZATION_TABLE.
6496         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
6497         * config/microblaze/microblaze.c
6498         (microblaze_option_optimization_table,
6499         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6500         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
6501         * config/mips/mips.c (mips_option_optimization_table,
6502         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6503         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
6504         * config/mmix/mmix.c (mmix_option_optimization): Change to
6505         mmix_option_optimization_table.
6506         (TARGET_OPTION_OPTIMIZATION): Change to
6507         TARGET_OPTION_OPTIMIZATION_TABLE.
6508         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
6509         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
6510         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6511         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6512         * config/pa/pa.c (pa_option_optimization_table,
6513         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6514         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6515         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
6516         pdp11_option_optimization_table.
6517         (TARGET_OPTION_OPTIMIZATION): Change to
6518         TARGET_OPTION_OPTIMIZATION_TABLE.
6519         * config/picochip/picochip.c (picochip_option_optimization_table,
6520         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6521         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
6522         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
6523         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6524         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6525         * config/rx/rx.c (rx_option_optimization_table,
6526         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6527         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6528         * config/s390/s390.c (s390_option_optimization): Change to
6529         s390_option_optimization_table.
6530         (s390_option_override): Update comment.
6531         (TARGET_OPTION_OPTIMIZATION): Change to
6532         TARGET_OPTION_OPTIMIZATION_TABLE.
6533         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
6534         * config/score/score.c (score_option_optimization_table,
6535         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6536         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
6537         * config/sh/sh.c (sh_option_optimization): Change to
6538         sh_option_optimization_table.
6539         (TARGET_OPTION_OPTIMIZATION): Change to
6540         TARGET_OPTION_OPTIMIZATION_TABLE.
6541         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
6542         (sh_option_override, expand_block_move, multcosts, find_barrier,
6543         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
6544         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
6545         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
6546         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
6547         instead of TARGET_SMALLCODE.
6548         * config/sh/sh.opt (mspace): Make into an alias for -Os.
6549         * config/sparc/sparc.c (sparc_option_optimization_table,
6550         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6551         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
6552         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
6553         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6554         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
6555         * config/v850/v850.c (v850_option_optimization): Change to
6556         v850_option_optimization_table.
6557         (TARGET_OPTION_OPTIMIZATION): Change to
6558         TARGET_OPTION_OPTIMIZATION_TABLE.
6559         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
6560         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
6561         xtensa_option_optimization_table.
6562         (TARGET_OPTION_OPTIMIZATION): Change to
6563         TARGET_OPTION_OPTIMIZATION_TABLE.
6564         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6565
6566 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
6567
6568         Based on the CFString implementation in FSF apple/trunk branch.
6569
6570         * target.def (objc_construct_string): New Hook.
6571         * doc/tm.texi (objc_construct_string): Document.
6572         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
6573         * config/t-darwin: Amend build rules for darwin.o.
6574         * config/darwin.opt: Add cfstrings flags.
6575         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
6576         (darwin_objc_construct_string): New.
6577         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
6578         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
6579         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
6580         (darwin_fold_builtin): Likewise.
6581         (darwin_build_constant_cfstring): Likewise.
6582         (darwin_objc_construct_string): Likewise.
6583         (darwin_cfstring_p): Likewise.
6584         (darwin_enter_string_into_cfstring_table): Likewise.
6585         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
6586         * config/darwin.c (darwin_running_cxx): New var.
6587         (machopic_select_section): Return cfstring_constant_object_section.
6588         (darwin_override_options): Set darwin_running_cxx.
6589         (add_builtin_field_decl): New.
6590         (darwin_init_cfstring_builtins): New.
6591         (darwin_build_constant_cfstring): New.
6592         (darwin_fold_builtin): New.
6593         (cfstring_hash): New.
6594         (cfstring_eq): New.
6595         (darwin_enter_string_into_cfstring_table): New.
6596         * config/darwin-sections.def (cfstring_constant_object_section): New.
6597         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
6598         (TARGET_OBJC_CONSTRUCT_STRING): Define.
6599
6600 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6601
6602         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
6603         TYPE_STUB_DECL instead of TREE_CHAIN.
6604         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
6605         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
6606         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
6607         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
6608         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
6609         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
6610         Likewise.
6611         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
6612
6613 2010-10-22  Jie Zhang  <jie@codesourcery.com>
6614
6615         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
6616         (copy_blkmode_from_reg): Likewise.
6617         (read_complex_part): Likewise.
6618         (expand_expr_real_1): Calculate packedp and pass it to
6619         extract_bit_field.
6620         * expr.h (extract_bit_field): Update declaration.
6621         * calls.c (store_unaligned_arguments_into_pseudos): Update call
6622         to extract_bit_field.
6623         * expmed.c (extract_fixed_bit_field): Update calls to
6624         extract_fixed_bit_field.
6625         (store_split_bit_field): Likewise.
6626         (extract_bit_field_1): Add new argument packedp.
6627         (extract_bit_field): Add new argument packedp.
6628         (extract_fixed_bit_field): Add new argument packedp and let
6629         packed attribute override volatile.
6630         * stmt.c (expand_return): Update call to extract_bit_field.
6631
6632 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6633
6634         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
6635
6636 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6637
6638         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
6639         of gcc_checking_assert.
6640         * sel-sched.c (code_motion_process_successors): Likewise.
6641
6642 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
6643
6644         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
6645         when stopping because of a different locus on edge or insn.
6646         (try_optimize_cfg): Add comment.
6647         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
6648         block is a forwarder block, propagate locus on the edge.
6649         (cfg_layout_merge_blocks): Likewise.
6650
6651 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
6652
6653         PR target/45946
6654         * config/i386/i386.md (*pushti2): New insn pattern.
6655         (pushti2 splitter): New insn splitter.
6656         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
6657         DWI mode iterator.
6658
6659 2010-10-21  Paul Koning  <ni1d@arrl.net>
6660
6661         * config/pdp11/pdp11-protos.md (arith_operand,
6662         const_immediate_operand, expand_shift_operand,
6663         immediate15_operand): Delete
6664         * config/pdp11/pdp11.c: Ditto.
6665         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
6666         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
6667         EXTRA_CONSTRAINT): Delete.
6668         * config/pdp11/pdp11.md (various): Use standard constraints
6669         instead of removed ones.
6670         * config/pdp11/constraints.md: New file.
6671         * config/pdp11/predicates.md: New file.
6672
6673 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
6674
6675         PR c/45834
6676         * alias.c (true_dependence_1): Remove obsolete check for QImode.
6677         (may_alias_p): Ditto.
6678
6679 2010-10-21  Martin Jambor  <mjambor@suse.cz>
6680
6681         PR tree-optimization/45875
6682         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
6683
6684 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6685
6686         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
6687         variables.
6688         (create_new_def_for): Likewise.
6689
6690 2010-10-21  Nick Clifton  <nickc@redhat.com>
6691
6692         * config/mn10300/mn10300.c: Fold code to 80-character width.
6693         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6694         MEM, CONST_INT and CONST_DOUBLE.
6695         (targetm): Move initialization to end of file.
6696         (print_operand): Rename to mn10300_print_operand.
6697         (print_operand_address): Rename to mn10300_print_operand_address.
6698         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
6699         (expand_prologue): Rename to mn10300_expand_prologue.
6700         (expand_epilogue): Rename to mn10300_expand_epilogue.
6701         (initial_offset): Rename to mn10300_initial_offset.
6702         (function_arg): Rename to mn10300_function_arg.
6703         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
6704         (symbolic_operand): Rename to mn10300_symbolic_operand.
6705         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
6706         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
6707         * config/mn10300/mn10300-protos.h: Update prototypes.
6708         * config/mn10300/mn10300.h: Fold code to 80-character width.
6709         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6710         MEM, CONST_INT and CONST_DOUBLE.
6711         (CPP_SPEC): Move to...
6712         (TARGET_CPU_CPP_BUILTINS): ... here.
6713         * config/mn10300/mn10300.md: 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
6717 2010-10-21  Ira Rosen  <irar@il.ibm.com>
6718
6719         PR tree-optimization/46049
6720         PR tree-optimization/46052
6721         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
6722         (vect_get_slp_defs): Add arguments.
6723         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
6724         operands to vect_get_slp_defs.
6725         (vectorizable_reduction): Fix comment, pass scalar operands to
6726         vect_get_slp_defs.
6727         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
6728         type to determine number of units in the created vector.
6729         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
6730         (vectorizable_conversion): Fix comment.
6731         (vectorizable_shift): New function.
6732         (vectorizable_operation): Move code that handles shifts to
6733         vectorizable_shift.
6734         (vectorizable_type_demotion): Fix comment, pass scalar operands to
6735         vect_get_slp_defs.
6736         (vectorizable_type_promotion, vectorizable_store): Likewise.
6737         (vectorizable_condition): Fix comment.
6738         (vect_analyze_stmt): Call vectorizable_shift.
6739         (vect_transform_stmt): Likewise.
6740         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
6741         Use it as the operand to create vectors for, except reduction
6742         initial definition and store.  Use operands type.
6743         (vect_get_slp_defs): Add new arguments.  Pass them to
6744          vect_get_constant_vectors.
6745
6746 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6747
6748         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
6749         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
6750         * cfghooks.c (fixup_reorder_chain): Likewise.
6751         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
6752         * cgraph.c (cgraph_add_thunk): Likewise.
6753         (cgraph_create_edge_1): Likewise.
6754         (cgraph_create_virtual_clone): Likewise.
6755         * ddg.c (add_cross_iteration_register_deps): Likewise.
6756         * dwarf2out.c (modified_type_die): Likewise.
6757         * emit-rtl.c (set_mem_alias_set): Likewise.
6758         * ggc-zone.c (zone_allocate_marks): Likewise.
6759         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
6760         * gimple.c (iterative_hash_gimple_type): Likewise.
6761         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
6762         (create_single_exit_edge): Likewise.
6763         * haifa-sched.c (choose_ready): Likewise.
6764         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6765         * passes.c (execute_todo): Likewise.
6766         * sched-ebb.c (begin_schedule_ready): Likewise.
6767         * sel-sched.c (code_motion_process_successors): Likewise.
6768         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
6769         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
6770         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
6771         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
6772         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
6773         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
6774         (ssa_conflicts_add): Likewise.
6775         * tree-ssa-copy.c (replace_exp): Likewise.
6776         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
6777         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
6778         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
6779         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
6780         (compute_antic): Likewise.
6781         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
6782         (add_dependence): Likewise.
6783         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
6784         * tree-vrp.c (supports_overflow_infinity): Likewise.
6785         (make_overflow_infinity, negative_overflow_infinity): Likewise.
6786         (avoid_overflow_infinity, register_new_assert_for): Likewise.
6787         (process_assert_insertions_for): Likewise.
6788         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
6789         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
6790         (intersect_loc_chains, variable_merge_over_cur): Likewise.
6791
6792 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6793
6794         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
6795         * reload1.c (has_nonexceptional_receiver): Likewise.
6796         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
6797         (create_new_def_for): Likewise.
6798         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
6799         (merge_phi_nodes): Likewise.
6800         (has_abnormal_incoming_edge_p): Delete.
6801
6802 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
6803
6804         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
6805
6806 2010-10-21  Richard Guenther  <rguenther@suse.de>
6807             Michael Matz  <matz@suse.de>
6808
6809         PR tree-optimization/45764
6810         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
6811         Adjust initial misalignment for negative DR_STEP.
6812         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
6813         do not have the same alignment over the whole iteration domain.
6814
6815 2010-10-21  Richard Guenther  <rguenther@suse.de>
6816
6817         PR tree-optimization/46111
6818         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
6819
6820 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6821
6822         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
6823
6824 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6825
6826         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
6827         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
6828
6829 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6830
6831         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
6832         signal_frame.
6833         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
6834
6835 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6836
6837         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
6838         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
6839
6840 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6841
6842         * basic-block.h (find_fallthru_edge): Define.
6843         * cfgcleanup.c (merge_blocks_move): Use it.
6844         (try_crossjump_bb): Likewise.
6845         * cfglayout.c (fixup_reorder_chains): Likewise.
6846         (fixup_fallthru_exit_predecessor): Likewise.
6847         * cfgrtl.c (rtl_split_edge): Likewise.
6848         (rtl_verify_flow_info): Likewise.
6849         * function.c (thread_prologue_and_epilogue_insns): Likewise.
6850         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
6851         * ifcvt.c (block_fallthru): Likewise.
6852         * reload1.c (fixup_abnormal_edges): Likewise.
6853         * sched-ebb.c (being_schedule_ready): Likewise.
6854         (schedule_ebb): Likwise.
6855         * sched-rgn.c (find_single_block_region): Likewise.
6856         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
6857         * tree-complex.c (expand_complex_move): Likewise.
6858         * sched-int.h (find_fallthru_edge): Rename to...
6859         (find_fallthru_edge_from): ...this.
6860         * haifa-sched.c (find_fallthru_edge): Rename to...
6861         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
6862         (init_before_recovery): Call find_fallthru_edge_from.
6863         * sel-sched-ir.c (merge_fences): Likewise.
6864         * sel-sched.c (in_fallthru_bb_p): Likewise.
6865         (move_cond_jump): Likewise.
6866
6867 2010-10-20  Paul Koning  <ni1d@arrl.net>
6868
6869         * config/pdp11/pdp11.md (various): Fix conditions on a number of
6870         insn to check for target 11/40 or higher.
6871
6872 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6873
6874         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
6875         bool instead of a tree.
6876         (c_parser_objc_method_decl): Added bool argument.  Updated call to
6877         objc_build_method_signature.
6878         (c_parser_objc_method_definition): Do not call
6879         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
6880         c_parser_objc_method_decl and objc_start_method_definition.
6881         (c_parser_objc_methodproto): Do not call objc_set_method_type.
6882         Updated calls to c_parser_objc_method_type,
6883         c_parser_objc_method_decl and objc_add_method_declaration.
6884
6885 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
6886
6887         PR tree-optimization/45919
6888         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
6889         array members.
6890
6891         PR tree-optimization/46066
6892         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
6893         instead of gsi_last_bb.
6894
6895 2010-10-20  DJ Delorie  <dj@redhat.com>
6896
6897         * config/m32c/m32c.c (m32c_option_override): Always disable
6898         function-cse in 16-bit mode.  Indirect calls are always worse than
6899         direct calls as there is no 16-bit indirect call opcode.
6900         (m32c_override_options_after_change): New, likewise.
6901
6902 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6903
6904         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
6905         emitting the conditional move in the inner mode of the SUBREG.
6906
6907 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
6908
6909         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
6910         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
6911         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6912         (ia64_preferred_reload_class): Make static.  Change rclass argument
6913         and result types from enum reg_class to reg_class_t.
6914
6915 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
6916
6917         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
6918         call for single operand expression.
6919
6920 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6921
6922         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
6923         if there is a call statement to pure or const function in the block.
6924
6925 2010-10-20  Paul Koning  <pkoning@equallogic.com>
6926
6927         Fix several build errors for pdp11 target.
6928         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
6929         (cbranchdf4): Conditional on TARGET_FPU.
6930         (movdf): Ditto; correct alternatives check.
6931         (movmemhi): Fix predicate and constraint.
6932         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
6933
6934 2010-10-20  Richard Guenther  <rguenther@suse.de>
6935
6936         PR lto/45667
6937         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
6938         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
6939         (verify_gimple_assign_single): Disable ADDR_EXPR type check
6940         when in LTO.
6941
6942 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
6943
6944         PR fortran/42169
6945         * ira-emit.c (store_can_be_removed_p): Return false instead of
6946         gcc_unreachable.
6947
6948 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
6949
6950         * fold-const.c (fold_binary_loc): New transformation.
6951
6952 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
6953
6954         PR target/46085
6955         * config/i386/sse.md (reduc_splus_v8sf): Updated.
6956         (reduc_splus_v4df): Likewise.
6957
6958 2010-10-20  Richard Guenther  <rguenther@suse.de>
6959
6960         PR tree-optimization/45860
6961         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
6962         conditional store replacement for non-register type stores.
6963
6964 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6965
6966         * stor-layout.c (skip_simple_constant_arithmetic): New function.
6967         (self_referential_size): Use it instead of skip_simple_arithmetic.
6968
6969 2010-10-20  Olivier Hainque  <hainque@adacore.com>
6970
6971         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
6972         If the current function calls eh_return, claim live all registers
6973         that we need to check for liveness otherwise.
6974
6975 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6976
6977         * c-decl.c (c_write_global_declarations): Call
6978         objc_write_global_declarations when compiling Objective-C.
6979         * c-lang.c (finish_file): Removed.
6980
6981 2010-10-19  DJ Delorie  <dj@redhat.com>
6982
6983         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
6984         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
6985         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
6986         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
6987         * doc/tm.texi: Regenerate.
6988         * targhooks.h (default_label_align_after_barrier_max_skip,
6989         default_loop_align_max_skip, default_label_align_max_skip,
6990         default_jump_align_max_skip): Declare.
6991         * target.def (label_align_after_barrier_max_skip): New.
6992         (loop_align_max_skip): New.
6993         (label_align_max_skip): New.
6994         (jump_align_max_skip): New.
6995         * system.h (poison): Add those macros to the list.
6996         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
6997         (LOOP_ALIGN_MAX_SKIP): Remove.
6998         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
6999         (JUMP_ALIGN_MAX_SKIP): Remove.
7000         (default_label_align_after_barrier_max_skip): New.
7001         (default_loop_align_max_skip): New.
7002         (default_label_align_max_skip): New.
7003         (default_jump_align_max_skip): New.
7004         (compute_alignments): Use the new hooks.
7005         (shorten_branches): Likewise.
7006
7007 2010-10-19  Richard Henderson  <rth@redhat.com>
7008
7009         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
7010         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
7011         (fma4i_fmadd_<mode>): New.
7012         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
7013         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
7014         standard fma patterns.
7015         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
7016         enable for FMA.
7017         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
7018         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
7019         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
7020
7021 2010-10-19  Paul Koning  <pkoning@equallogic.com>
7022
7023         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
7024         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
7025
7026 2010-10-19  Richard Henderson  <rth@redhat.com>
7027
7028         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
7029         (fmadf4, *fmsdf4, *nfmadf4): New.
7030         (fmaxf4, *fmsxf4, *nfmaxf4): New.
7031
7032 2010-10-19  Michael Eager  <eager@eagercon.com>
7033
7034         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
7035         Use sjlj unwind info for exceptions.
7036
7037 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
7038
7039         PR fortran/43414
7040         * dwarf2out.c (add_calling_convention_attribute): Flag main
7041         Fortran subroutine with DW_AT_main_subprogram.
7042
7043 2010-10-19  Nick Clifton  <nickc@redhat.com>
7044
7045         * config/rx/rx.c (rx_function_value): Small integer types are
7046         promoted to SImode.
7047         (rx_promote_function_mode): New function.
7048         (TARGET_PROMOTE_FUNCTION_MODE): Define.
7049
7050 2010-10-19  Nick Clifton  <nickc@redhat.com>
7051
7052         * config/mep/mep.c (mep_print_operand): Use
7053         targetm.strip_name_encoding.
7054         (mep_output_aligned_common): Likewise.
7055
7056 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
7057
7058         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
7059
7060 2010-10-18  Richard Henderson  <rth@redhat.com>
7061
7062         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
7063         (fma (neg a) (neg b) c) and (fma a (neg b) c).
7064
7065 2010-10-18  Richard Henderson  <rth@redhat.com>
7066
7067         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
7068         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
7069         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
7070         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
7071         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
7072         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
7073         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
7074         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
7075         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
7076         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
7077         (bdesc_multi_arg): Remove the corresponding builtins.
7078         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
7079         (UNSPEC_FMA4_FMSUBADD): Remove.
7080         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
7081         * config/i386/sse.md (FMA4MODEF4): Remove.
7082         (FMAMODE): Add.
7083         (fma<mode>4): New expander.
7084         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
7085         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
7086         (*fma4i_fmsub_<mode>): Similarly.
7087         (*fma4i_fnmadd_<mode>): Similarly.
7088         (*fma4i_fnmsub_<mode>): Similarly.
7089         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
7090         with the first operand.
7091         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
7092         of explicit arithmetic.  Macroize with AVXMODEF2P.
7093         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
7094         (xop_frcz<mode>2): Macroize with FMAMODE.
7095         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
7096         the first operand.
7097         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
7098         extra negations.
7099         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
7100         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
7101         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
7102         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
7103         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
7104         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
7105         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
7106         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
7107
7108 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
7109
7110         PR rtl-optimization/45966
7111         * combine.c (try_combine): If added_sets_2, deal with the case
7112         where i0 feeds i1 and i1 feeds i2.
7113
7114 2010-10-18  Jan Hubicka  <jh@suse.cz>
7115
7116         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
7117         preserve flags before trying to guess on visibility.
7118         (varpool_externally_visible_p): New function.
7119         (function_and_variable_visibility): Use it.
7120
7121 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7122
7123         Implemented parsing @synthesize and @dynamic for Objective-C.
7124         * c-parser.c (c_parser_external_declaration): Recognize
7125         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
7126         (c_parser_objc_at_synthesize_declaration): New.
7127         (c_parser_objc_at_dynamic_declaration): New.
7128
7129 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7130
7131         * c-parser.c (c_parser_objc_class_declaration): After finding an
7132         error, parse the whole declaration then reset parser->error.
7133
7134 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7135
7136         PR target/46041
7137         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
7138         * builtins.c (mode_has_fma): Ditto.
7139
7140 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
7141
7142         PR target/36898
7143         PR middle-end/43760
7144         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
7145
7146 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
7147
7148         * config/i386/i386.c (ix86_option_override_internal): Define and
7149         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
7150         default.
7151         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7152         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
7153
7154 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7155
7156         Merge from 'apple/trunk' branch on FSF servers.
7157         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
7158         following Objective-C change:
7159
7160         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
7161
7162         Radar 4301047
7163         * c-parse.in (objc_quals): Build objc qualifier list same way
7164         as gcc-3.3
7165
7166 2010-10-18  Jan Hubicka  <jh@suse.cz>
7167
7168         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
7169         function_and_variable_visibility): Revert accidental commit.
7170
7171 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7172
7173         Merge from 'apple/trunk' branch on FSF servers.
7174         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
7175         the following Objective-C change:
7176
7177         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
7178
7179         Radar 4204796
7180         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
7181         'volatilized' type used in a typeof operator.
7182
7183 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
7184
7185         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
7186         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
7187         rewrite modelled on gimple_purge_dead_eh_edges.
7188         (gimple_purge_all_dead_abnormal_call_edges): New function.
7189         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
7190         directly instead of through gimple_purge_dead_abnormal_call_edges.
7191         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
7192         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
7193         removed AB side-effects from one of its statements.
7194         (init_pre): Initialize need_ab_cleanup.
7195         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
7196         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
7197
7198 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7199
7200         PR c/46015
7201         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
7202         on computed goto argument.
7203
7204 2010-10-18  Richard Guenther  <rguenther@suse.de>
7205
7206         PR tree-optimization/45967
7207         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
7208         (could_have_pointers): Likewise.
7209         (handle_rhs_call, handle_const_call, handle_pure_call,
7210         find_func_aliases, intra_create_variable_infos): Remove calls to them.
7211         (struct fieldoff): Add must_have_pointers field.
7212         (type_must_have_pointers): New function.
7213         (field_must_have_pointers): Likewise.
7214         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
7215         Adjust field merging.
7216         (create_function_info_for): May-have-pointers of varinfo is
7217         almost always true.
7218         (create_variable_info_for_1): Likewise.
7219
7220 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
7221
7222         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
7223         of operands to vec_concat.
7224
7225 2010-10-18  Richard Guenther  <rguenther@suse.de>
7226
7227         PR lto/44950
7228         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
7229         also clear references to entries of it.
7230
7231 2010-10-18  Andi Kleen  <ak@linux.intel.com>
7232
7233         PR other/43448
7234         * gccbug.in: Remove.
7235         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
7236         (doc, distclean, install-common): Remove reference to gccbug.
7237         * configure: Regenerate.
7238         * configure.ac (all_outputs): Remove gccbug.
7239         * doc/configfiles.texi: Remove references to gccbug.
7240         * doc/sourcebuild.texi: Dito.
7241
7242 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7243
7244         PR middle-end/46019
7245         * fold-const.c (fold_binary_loc): If integer_pow2p has
7246         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
7247
7248 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7249             Jeremie Salvucci  <jeremie.salvucci@free.fr>
7250
7251         * gengtype.c (verbosity_level): Add variable.
7252         (set_gc_used): Count variables for verbosity.
7253         (close_output_files): Backing up files, counting written ones
7254         verbosily.
7255         (write_types): Count emitted functions for verbosity. Added
7256         debug messages.
7257         (write_enum_defn): Count structures for verbosity. Added debug
7258         messages.
7259         (gengtype_long_options): Add "verbose" & "backupdir".
7260         (print_usage): Ditto.
7261         (main): Verbose display of parsed files.
7262
7263         * gengtype.h (verbosity_level): Add declaration.
7264
7265 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7266
7267         * gengtype.c (parse_program_options): Add allocation of
7268         plugin_files, and correct test on nb_plugin_files.
7269
7270 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7271
7272         Merge from 'apple/trunk' branch on FSF servers.
7273
7274         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
7275
7276         Radar 4133425
7277         * c-decl.c (undeclared_variable): Issue diagnostic on
7278         private 'ivar' access.
7279
7280 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7281
7282         PR target/46051
7283         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
7284         generated sequence to match *avx_vperm2f128<mode>_nozero.
7285         (vec_interleave_lowv4df): Ditto.
7286         (vec_interleave_highv8sf): Ditto.
7287         (vec_interleave_lowv8sf): Ditto.
7288
7289 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
7290
7291         * libgcov.c (create_file_directory): Enable it for win32 case.
7292         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
7293         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
7294         (GCOV_PREFIX_SKIP): Likewise.
7295
7296 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7297
7298         * doc/objc.texi (GNU Objective-C runtime API): New section.
7299         (Modern GNU Objective-C runtime API): New section.
7300         (Traditional GNU Objective-C runtime API): New section.
7301         (Executing code before main): Mention that this section is
7302         specific to the GNU Objective-C runtime.
7303         (Garbage Collection): Same.
7304
7305 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7306
7307         * c-parser.c (c_parser_for_statement): Move initialization of
7308         cond and incr before if.
7309
7310 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
7311
7312         * target.def (preferred_output_reload_class): New hook.
7313         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
7314         * doc/tm.texi: Regenerate.
7315         * targhooks.c (default_preferred_output_reload_class): New function.
7316         * targhooks.h (default_preferred_output_reload_class): Declare.
7317         * reload.c (find_dummy_reload): Change rclass argument type from
7318         enum reg_class to reg_class_t. Change this_alternative array type
7319         from enum reg_class to reg_class_t.
7320         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7321         (push_reload): Change preferred_class variable type to reg_class_t.
7322         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7323         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
7324         argument type from enum reg_class to reg_class_t. Use
7325         HARD_REGISTER_NUM_P predicate.
7326         * recog.h (reg_fits_class_p): Update prototype.
7327
7328         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7329         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
7330         Remove.
7331         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
7332         static. Change regclass argument and result types from enum reg_class
7333         to reg_class_t.
7334         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7335
7336 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
7337
7338         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
7339         visibility enum, and handle @package.
7340
7341 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7342
7343         * doc/objc.texi (What you can and what you cannot do in +load):
7344         Document that sending messages to constant string objects in +load
7345         is not guaranteed to work.
7346
7347 2010-10-16  Jan Hubicka  <jh@suse.cz>
7348
7349         PR middle-end/44206
7350         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
7351         existence of refrences before removing the function.
7352
7353 2010-10-16  Jan Hubicka  <jh@suse.cz>
7354
7355         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
7356         only_called_at_startup and only_called_at_exit.
7357         (cgraph_propagate_frequency): Compute only_called_at_startup and
7358         only_called_at_exit.
7359         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
7360         only_called_at_exit.
7361         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
7362         flags.
7363         * predict.c (compute_function_frequency): Initialize the new flags.
7364
7365 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
7366
7367         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
7368         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
7369         on the bounds of its domain.
7370         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
7371
7372 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
7373
7374         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
7375         * config/avr/avr-protos.h (preferred_reload_class): Remove.
7376         * config/avr/avr.c (preferred_reload_class): Remove.
7377         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
7378         * config/pa/pa.c (emit_move_sequence): Update comment
7379         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
7380         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
7381         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
7382         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
7383         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
7384         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
7385         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
7386         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
7387         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
7388         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
7389         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
7390         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
7391         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
7392
7393 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7394
7395         * opts.c (set_fast_math_flags,
7396         set_unsafe_math_optimizations_flags): Make static.
7397         * toplev.h (set_fast_math_flags,
7398         set_unsafe_math_optimizations_flags): Remove prototypes.
7399
7400 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7401
7402         * config/arm/arm.c (arm_option_optimization): Set
7403         flag_section_anchors to 1 not 2.
7404         * config/i386/i386.c (ix86_option_override_internal): Check
7405         global_options_set.x_flag_zee and
7406         global_options_set.x_flag_omit_frame_pointer.
7407         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
7408         flag_zee to 2.
7409         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
7410         global_options_set.x_flag_omit_frame_pointer.
7411         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
7412         opts->x_flag_section_anchors to 1 not 2.
7413         * config/sh/sh.c (sh_option_optimization): Don't set
7414         flag_schedule_insns to 2.
7415         (sh_option_override): Check
7416         global_options_set.x_flag_schedule_insns.
7417         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
7418
7419 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
7420
7421         * configure.ac: Make sure inhibit_libc remains false for mingw targets
7422         as cross.
7423         * configure: Regenerated.
7424
7425 2010-10-15  Xinliang David Li  <davidxl@google.com>
7426
7427         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
7428         function.
7429         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
7430         into a recursive function.
7431
7432 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
7433
7434         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
7435         (*movdfcc_1): ditto.
7436
7437 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7438
7439         * target.def (target_option.init_struct): New hook.
7440         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
7441         * doc/tm.texi: Regenerate.
7442         * hooks.c (hook_void_gcc_optionsp): New.
7443         * hooks.h (hook_void_gcc_optionsp): Declare.
7444         * langhooks-def.h (lhd_init_options_struct): Remove.
7445         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
7446         * langhooks.c (lhd_init_options_struct): Remove.
7447         * opts.c (init_options_struct): Also call
7448         targetm.target_option.init_struct.
7449         * config/i386/i386.c (ix86_option_init_struct,
7450         TARGET_OPTION_INIT_STRUCT): New.
7451         (ix86_option_optimization): Move some settings to
7452         ix86_option_init_struct.
7453         * config/pdp11/pdp11.c (pdp11_option_init_struct,
7454         TARGET_OPTION_INIT_STRUCT): New.
7455         (pdp11_option_optimization): Move some settings to
7456         pdp11_option_init_struct.
7457         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
7458         rs6000_option_init_struct.  Use options structure pointer.
7459         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7460         * config/s390/s390.c (s390_option_init_struct,
7461         TARGET_OPTION_INIT_STRUCT): New.
7462         (s390_option_optimization): Don't set
7463         flag_asynchronous_unwind_tables here.
7464         * config/sh/sh.c (sh_option_init_struct,
7465         TARGET_OPTION_INIT_STRUCT): New.
7466         (sh_option_optimization): Don't set flag_finite_math_only here.
7467         * config/spu/spu.c (spu_option_optimization): Replace by
7468         spu_option_optimization.  Use options structure pointer.
7469         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7470
7471 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7472
7473         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
7474
7475         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
7476         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
7477         (Standard names): Document fma.
7478
7479         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
7480         __FP_FAST_FMAF, __FP_FAST_FMAL.
7481
7482         * builitns.c (expand_builtin_mathfn_ternary): New function for
7483         expanding ternary math functions, like fma.
7484         (expand_builtin): Call it for the fma builtins.
7485
7486         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
7487         ops at present.
7488
7489         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
7490         vectorizable functions to support vectorizing fma.
7491
7492         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7493         Handle fma builtins.
7494
7495         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
7496         (UNSPEC_VSX_MSUB): Ditto.
7497         (UNSPEC_VSX_NMADD): Ditto.
7498         (UNSPEC_VSX_NMSUB): Ditto.
7499         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
7500         of UNSPEC. Renumber combiner patterns.
7501         (vsx_fmsub<mode>4*): Ditto.
7502         (vsx_fnmadd<mode>4*): Ditto.
7503         (vsx_fnmsub<mode>4*): Ditto.
7504
7505         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
7506         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
7507         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
7508         (altivec_vmaddfp_1): Ditto.
7509         (altivec_vmaddfp_2): Ditto.
7510         (atlivec_mulv4sf3): Ditto.
7511         (altivec_vnmsubfp): Ditto.
7512         (altivec_vnmsubfp_1): Ditto.
7513         (altivec_vnmsubfp_2): Ditto.
7514         (altivec_vnmsubfp_3): Delete.
7515
7516         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
7517         (fmasf4_fpr): Ditto.
7518         (fmssf4_fpr): Ditto.
7519         (fnmasf4_fpr): Ditto.
7520         (fnmssf4_fpr): Ditto.
7521         (fmadf4): Ditto.
7522         (fmadf4_fpr): Ditto.
7523         (fmsdf4_fpr): Ditto.
7524         (fnmadf4_fpr): Ditto.
7525         (fnmsdf4_fpr): Ditto.
7526
7527         * optabs.h (OTI_fma): Add fma optab.
7528         (fma_optab): Ditto.
7529
7530         * genopinit.c (optabs): Set fma optab.
7531
7532         * rtl.def (FMA): Add FMA rtl.
7533
7534         * tree.h (mode_has_fma): New function to return if MODE supports a
7535         fast multiply and add instruction.
7536         * builtins.c (mode_has_fma): Ditto.
7537
7538 2010-10-15  Jan Hubicka  <jh@suse.cz>
7539
7540         * lto-streamer-out.c (write_symbol): Use pointer set of seen
7541         objects instead of bitmap.
7542         (produce_symtab): Likewise; output defined symbols first.
7543
7544 2010-10-15  Jie Zhang  <jie@codesourcery.com>
7545
7546         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
7547         Option Summary and Index.
7548
7549 2010-10-15  Richard Guenther  <rguenther@suse.de>
7550
7551         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
7552         for automatic variables again.
7553
7554 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7555
7556         * doc/extend.texi (Variable Length): Don't refer to VLAs not
7557         conforming to C99.
7558
7559 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7560
7561         * config/rx/rx.c (rx_option_optimization): Change to
7562         rx_override_options_after_change.  Don't change
7563         flag_lto_compression_level.  Don't check for changes to whether
7564         FPU instructions can be used.  Check and set only
7565         flag_finite_math_only, not other fast-math flags.
7566         (rx_option_override): Call rx_override_options_after_change.
7567         (TARGET_OPTION_OPTIMIZATION): Remove.
7568         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
7569
7570 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7571
7572         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
7573         disable section anchors for lang_hooks.name[4] != 'O'.
7574
7575 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7576
7577         * config/frv/frv.c (frv_option_optimization,
7578         TARGET_OPTION_OPTIMIZATION): Remove.
7579         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
7580
7581 2010-10-15  Michael Matz  <matz@suse.de>
7582
7583         * cgraphunit.c (clone_of_p): Define unconditionally.
7584
7585 2010-10-15  Richard Guenther  <rguenther@suse.de>
7586
7587         PR lto/45957
7588         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
7589
7590 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
7591
7592         * ifcvt.c (find_active_insn_before): New function.
7593         (find_active_insn_after): New function.
7594         (cond_exec_process_if_block): Use new functions to replace
7595         prev_active_insn() and next_active_insn().
7596
7597 2010-10-14  Yao Qi  <yao@codesourcery.com>
7598
7599         PR target/45447
7600         * config/arm/arm.c (arm_build_builtin_va_list): Assign
7601         va_list_name to TYPE_STUB_DECL (va_list_type).
7602
7603 2010-10-14  Jan Hubicka  <jh@suse.cz>
7604
7605         PR middle-end/45621
7606         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
7607         redirected to clone, be happy.
7608         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
7609         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
7610         former_clone_of unconditionally.
7611
7612 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7613
7614         Merge from FSF apple 'trunk' branch.
7615         2006 Fariborz Jahanian  <fjahanian@apple.com>
7616
7617         Radars 4436866, 4505126, 4506903, 4517826
7618         * c-parser.c (c_parser, objc_property_attr_context) New flag.
7619         (c_lex_one_token): Handle property attributes.
7620         (c_parser_external_declaration): Handle @property.
7621         (c_parser_declaration_or_fndef): Warn on invalid attributes before
7622         @alias, @class, @end and @property objc keywords.
7623         (c_parser_objc_methodprotolist): Handle @property.
7624         (c_parser_objc_property_attrlist): New.
7625         (c_parser_objc_at_property): New.
7626         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
7627         (build_modify_expr): Likewise.
7628
7629 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7630
7631         PR tree-optimization/46008
7632         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
7633
7634 2010-10-14  Richard Guenther  <rguenther@suse.de>
7635
7636         PR tree-optimization/44913
7637         * tree-data-ref.c (disjoint_objects_p): Remove.
7638         (dr_may_alias_p): Simplify.  Only hand the base object to
7639         the alias-oracle.
7640         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
7641         some more trees, bail out instead of asserting.
7642         (ptr_derefs_may_alias_p): Likewise.  Export.
7643         (refs_may_alias_p_1): Handle STRING_CSTs.
7644         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
7645
7646 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7647
7648         PR c/45969
7649         * c-typeck.c (build_binary_op): Don't try to compute a semantic
7650         type with excess precision for boolean operations.
7651
7652 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
7653             Basile Starynkevitch  <basile@starynkevitch.net>
7654
7655         * gengtype.c:  Include getopt.h and version.h.
7656
7657         (lang_bitmap, struct outf, outf_p)
7658         (get_output_file_with_visibility, oprintf): Definitions moved to
7659         gengtype.h
7660         (output_files, header_file, srcdir, srcdir_len, this_file)
7661         (do_dump): No more static variables.
7662         (do_debug): New.
7663         (dbgprint_count_type_at): Added new function.
7664         (gengtype_long_options): New.
7665         (print_usage, print_version, parse_program_options): New.
7666         (main): Call parse_program_options, and removed old option
7667         handling code.  Added some debug output.
7668
7669         * gengtype.h:  Updated copyright year.
7670         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
7671         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
7672         Moved from gengtype.c to here.
7673         (do_debug, read_state_filename, write_state_filename): New variables.
7674         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
7675
7676         * Makefile.in:
7677         (REVISION): Always defined.
7678         (version.o): Removed ifdef REVISION_c.
7679         (s-gtype): Pass arguments to build/gengtype program.
7680         (build/version.o): Added building rule.
7681         (build/gengtype$(build_exeext)): Added build/version.o.
7682
7683 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7684
7685         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
7686         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
7687         __strong macros.
7688
7689 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
7690
7691         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
7692         may_trap_or_fault_p instead of may_trap_p predicate.
7693         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
7694         (substitute_placeholder_in_expr): Likewise.
7695         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
7696         flag on MEM_REF nodes.
7697         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
7698         flags on INDIRECT_REF nodes.
7699
7700 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
7701
7702         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
7703         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
7704         (arm*-*-eabi*) <tm_file>: Likewise.
7705         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
7706         (frv-*-*linux*) <tm_file>: Likewise.
7707         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
7708         and associated helper macros.
7709         * config/frv/frv-abi.h: Delete.
7710
7711 2010-10-14  Richard Guenther  <rguenther@suse.de>
7712
7713         PR lto/44561
7714         * tree.def (NULLPTR_TYPE): New tree code.
7715         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
7716         * dwarf2out.c (is_base_type): Likewise.
7717         (gen_type_die_with_usage): Likewise.
7718         * sdbout.c (plain_type_1): Likewise.
7719         * tree.c (build_int_cst_wide): Likewise.
7720         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
7721
7722 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7723
7724         * params.c (params_finished): New.
7725         (add_params): Assert !params_finished.
7726         (finish_params): New.
7727         (set_param_value_internal): Take params and params_set
7728         parameters.  Assert params_finished.
7729         (set_param_value, maybe_set_param_value): Take params and
7730         params_set parameters.  Update calls to set_param_value_internal.
7731         (set_default_param_value): Assert !params_finished.  Don't use
7732         set_param_value_internal.
7733         (default_param_value, init_param_values): New.
7734         * params.h (struct param_info): Change value to default_value.
7735         Remove set.
7736         (set_param_value, maybe_set_param_value): Add params and
7737         params_set parameters.
7738         (PARAM_VALUE): Get parameters from global_options.
7739         (PARAM_SET_P): Remove.
7740         (finish_params, default_param_value, init_param_values): New.
7741         * common.opt (param_values): New Variable.
7742         * config/arm/arm.c (arm_option_override): Pass extra arguments to
7743         maybe_set_param_value.
7744         * config/i386/i386.c (ix86_option_override_internal): Pass extra
7745         arguments to maybe_set_param_value.
7746         * config/picochip/picochip.c (picochip_option_override): Pass
7747         extra arguments to maybe_set_param_value.
7748         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
7749         extra arguments to maybe_set_param_value.
7750         * config/s390/s390.c (s390_option_override): Use
7751         maybe_set_param_value instead of set_param_value.  Pass extra
7752         arguments to maybe_set_param_value.
7753         * config/sparc/sparc.c (sparc_option_override): Pass extra
7754         arguments to maybe_set_param_value.
7755         * config/spu/spu.c (spu_option_override): Pass extra arguments to
7756         maybe_set_param_value.
7757         * opts.c (handle_param): Take opts and opts_set parameters.
7758         Update call to set_param_value.
7759         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
7760         initial_loop_invariant_max_bbs_in_loop): Remove.
7761         (init_options_once): Don't set them.
7762         (init_options_struct): Initialize parameters structures.
7763         (default_options_optimization): Use default_param_value when
7764         restoring defaults.  Update calls to maybe_set_param_value.
7765         (finish_options): Update calls to maybe_set_param_value.
7766         (common_handle_option): Update calls to handle_param and
7767         set_param_value.
7768         * toplev.c (DEFPARAM): Update definition for changes to param_info.
7769         (general_init): Call finish_params.
7770
7771 2010-10-14  Nick Clifton  <nickc@redhat.com>
7772
7773         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
7774         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
7775         (FIRST_PSEUDO_REGISTER): Increase by one.
7776         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
7777         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
7778         (MODES_TIEABLE): Call mn10300_modes_tieable.
7779         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
7780         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
7781         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
7782         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
7783         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
7784         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
7785         (mn10300_cc_status_mdep): Delete.
7786         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
7787         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
7788         the combine-stack-adjust pass.
7789         (print_operand): Use the mode of the comparison operation to
7790         select the comparison suffix.
7791         (notice_update_cc): Delete.
7792         (mn10300_secondary_reload_class): Remove test for stack pointer
7793         based arithmetic.
7794         (output_tst): Rename to mn10300_output_cmp.
7795         (impossible_plus_operand): Move into predicates.md.
7796         (mn10300_legitimize_address): Make static.
7797         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
7798         constant pic operands.
7799         (mn10300_legitimate_constant_p): New function.
7800         (mn10300_case_values_threshold): Make static.
7801         (mn10300_hard_regno_mode_ok): New function.
7802         (mn10300_modes_tieable): New function.
7803         (mn10300_select_cc_mode): New function.
7804         * config/mn10300/predicates.md (impossible_plus_operand): Define.
7805         * config/mn10300/mn10300-protos.h: Tidy.
7806         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
7807         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
7808         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
7809         with clobbers or sets of CC_REG.
7810         (CC_REG): Define.
7811         (mov*): Remove use of CLR instruction.
7812         (cbranch_si4_<code>): New pattern/split.
7813         (integer_conditional_branch): New pattern.
7814         (cbranch_sf4_<code>): New pattern/split.
7815         (float_conditional_branch): New pattern.
7816         (casesi): Use addsi3 pattern instead of movsi pattern to add and
7817         move a value at the same time.
7818         (cc0 peepholes): Remove.
7819
7820 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7821
7822         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
7823         on RTX_FRAME_RELATED_P insns and the insn to which
7824         NOTE_INSN_EPILOGUE_BEG is attached.
7825         * sched-vis.c (print_value): Allow NULL value.
7826
7827 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7828
7829         PR rtl-optimization/45570
7830         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
7831         assert that we are pipelining outer loops.  Allow returning
7832         zero predecessors.
7833
7834 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7835
7836         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
7837         (tidy_control_flow): Tidy vertical space.
7838         (sel_remove_bb): New variable idx.  Use it to remember the basic
7839         block index before deleting the block.
7840         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
7841         (sel_merge_blocks): ... here.
7842         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
7843
7844 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7845
7846         * cse.c (is_dead_reg): Change into inline function that is not
7847         called through for_each_rtx.
7848         (set_live_p): Adjust caller.
7849         (insn_live_p): Don't reset DEBUG_INSNs here.
7850         (struct dead_debug_insn_data): New data.
7851         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
7852         (delete_trivially_dead_insns): If there is just one setter for the
7853         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
7854         and add DEBUG_INSN for it right before the removed setter and
7855         use the DEBUG_EXPR instead of the dead pseudo.
7856
7857 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
7858
7859         * et-forest.c (et_nca): Return NULL immediately when
7860         the dominance forest has disjoint components.
7861
7862 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
7863
7864         * ira.c (setup_class_hard_regs): Fix typo in indexing
7865         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
7866
7867 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
7868
7869         * graph.c (inbb): New variable.
7870         (start_bb): Set inbb to 1 if output is inside of a building block.
7871         (end_bb): Check if output is inside of a building block.
7872
7873 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7874
7875         PR rtl-optimization/45912
7876         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
7877         regno of registers instead of their index to compute the alignment.
7878
7879 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
7880
7881         * config/i386/i386.c (ix86_build_const_vector): Check vector
7882         mode instead of scalar mode.
7883         (ix86_build_signbit_mask): Likewise.
7884         (ix86_expand_fp_absneg_operator): Updated.
7885         (ix86_expand_copysign): Likewise.
7886         (ix86_expand_int_vcond): Likewise.
7887         (ix86_emit_swdivsf): Likewise.
7888         (ix86_sse_copysign_to_positive): Likewise.
7889         (ix86_expand_sse_fabs): Likewise.
7890         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
7891         * config/i386/sse.md (copysign<mode>3): Likewise.
7892         (sse2_cvtudq2ps): Likewise.
7893         (vec_unpacku_float_hi_v4si): Likewise.
7894         (vec_unpacku_float_lo_v4si): Likewise.
7895
7896         * config/i386/i386.c (ix86_builtins): Add
7897         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
7898         (bdesc_args): Likewise.
7899         (ix86_builtin_vectorized_function): Support
7900         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
7901         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
7902         and IX86_BUILTIN_CVTPS2DQ256.
7903         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
7904
7905         * config/i386/sse.md (STORENT_MODE): New.
7906         (VEC_FLOAT_MODE): Likewise.
7907         (VEC_EXTRACT_MODE): Likewise.
7908         (*avx_cvtdq2pd256_2): Likewise.
7909         (vec_pack_trunc_v4df): Likewise.
7910         (vec_interleave_highv8sf): Likewise.
7911         (vec_interleave_lowv8sf): Likewise.
7912         (storent<mode>): Macroized.
7913         (<code><mode>2: absneg): Likewise.
7914         (copysign<mode>3): Likewise.
7915         (vec_extract<mode>): Likewise.
7916
7917         PR target/44180
7918         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
7919         for V8SFmode.
7920
7921 2010-10-13  Richard Guenther  <rguenther@suse.de>
7922             H.J. Lu  <hongjiu.lu@intel.com>
7923
7924         * config/i386/sse.md (reduc_splus_v8sf): Add.
7925         (reduc_splus_v4df): Likewise.
7926         (vec_unpacks_hi_v8sf): Likewise.
7927         (vec_unpacks_lo_v8sf): Likewise.
7928         (*avx_cvtps2pd256_2): Likewise.
7929         (vec_unpacks_float_hi_v8si): Likewise.
7930         (vec_unpacks_float_lo_v8si): Likewise.
7931         (vec_interleave_highv4df): Likewise.
7932         (vec_interleave_lowv4df): Likewise.
7933
7934 2010-10-13  Richard Guenther  <rguenther@suse.de>
7935
7936         PR objc/45878
7937         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
7938         alone if there are no virtual methods.
7939
7940 2010-10-13  Richard Henderson  <rth@redhat.com>
7941
7942         * expr.c (build_personality_function): Take parameter LANG instead
7943         of parameter NAME.  Build the name based on the lang prefix and the
7944         unwind method in use.
7945         * tree.c (lhd_gcc_personality): Update call to
7946         build_personality_function.
7947
7948 2010-10-13  Richard Guenther  <rguenther@suse.de>
7949
7950         PR objc/45878
7951         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
7952
7953 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7954
7955         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
7956         Canonicalize input operands of ASM_OPERANDS insns.
7957
7958 2010-10-13  Richard Guenther  <rguenther@suse.de>
7959
7960         PR tree-optimization/45788
7961         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
7962         EH update until fixup-cfg.
7963
7964 2010-10-13  Julian Brown  <julian@codesourcery.com>
7965
7966         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
7967         from CORE_REGS and GENERAL_REGS classes.
7968         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
7969         final constraint for register preferencing.
7970
7971 2010-10-13  Richard Guenther  <rguenther@suse.de>
7972
7973         PR tree-optimization/45970
7974         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
7975         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
7976         (stmt_kills_ref_p): Likewise.
7977         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
7978
7979 2010-10-13  Richard Guenther  <rguenther@suse.de>
7980
7981         PR tree-optimization/45982
7982         * tree-ssa-structalias.c (make_constraints_to): New function.
7983         (make_constraint_to): Implement in terms of make_constraints_to.
7984         (find_func_aliases): Properly make return values of pure/const
7985         functions escape if they assign to sth that is not a pointer.
7986
7987 2010-10-13  Richard Guenther  <rguenther@suse.de>
7988
7989         PR middle-end/45874
7990         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
7991         Fixup the CFG when EH was fixed up.
7992
7993 2010-10-13  Ira Rosen  <irar@il.ibm.com>
7994
7995         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
7996         Use operand's type for POINTER_PLUS_EXPR.
7997
7998 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
7999
8000         * c-parser.c (c_parser_for_statement): Initialize incr.
8001
8002 2010-10-12  Xinliang David Li  <davidxl@google.com>
8003
8004         PR tree-optimization/45972
8005         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
8006         with too many arguments.
8007
8008 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8009
8010         PR fortran/45636
8011         * tree-ssa-forwprop.c: Include expr.h.
8012         (constant_pointer_difference, simplify_builtin_call): New functions.
8013         (tree_ssa_forward_propagate_single_use_vars): Call
8014         simplify_builtin_call on builtin calls.
8015
8016 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
8017
8018         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
8019         (*adddi3_extend_sp32): Likewise.
8020         (*subdi3_insn_sp32): Likewise.
8021         (*subdi3_extend_sp32): Likewise.
8022         (*negdi2_sp32): Use negative test for consistency.
8023
8024 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
8025
8026         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
8027         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8028         * config/fixed-bit.h: Likewise.
8029         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8030         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8031         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
8032         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
8033         (DF_SIZE): Likewise.
8034         * doc/tm.texi: Regenerate.
8035
8036 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
8037
8038         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
8039         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
8040         (*isel_reversed_unsigned_<mode>): New.
8041         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
8042         as valid comparisons and adjust operands and output appropriately.
8043         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
8044
8045 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
8046
8047         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
8048         DATA_ALIGNMENT and add COND parameter. Update comments above.
8049         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
8050         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
8051
8052 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
8053
8054         PR bootstrap/45958
8055         * exec-tool.in: Support '-plugin' as the second option to the linker.
8056
8057 2010-10-12  Richard Henderson  <rth@redhat.com>
8058
8059         PR middle-end/45962
8060         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
8061         (expand_stack_vars): Assert large base allocated when used.
8062
8063 2010-10-12  Richard Guenther  <rguenther@suse.de>
8064
8065         * tree-ssa-structalias.c (get_constraint_for_1): Constants
8066         only point to nonlocal, not anything.
8067
8068 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8069
8070         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
8071         unwind info for exceptions.
8072
8073 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8074
8075         PR testsuite/45851
8076         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
8077         Document optional target selector.
8078
8079 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
8080
8081         * flag-types.h: New.
8082         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
8083         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
8084         options.h.
8085         (OPTIONS_H): Define.
8086         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
8087         of options.h.
8088         * configure.ac (tm_include_list): Include options.h not flags.h.
8089         * configure: Regenerate.
8090         * flags.h: Include flag-types.h.  Include options.h at top of file
8091         again.
8092         (enum debug_info_type, enum debug_info_level, enum
8093         debug_info_usage, enum symbol_visibility, struct visibility_flags,
8094         enum ira_algorithm, enum ira_region, enum excess_precision, enum
8095         graph_dump_types, enum stack_check_type,
8096         enum warn_strict_overflow_code): Move to flag-types.h
8097         * opth-gen.awk: Include flag-types.h in options.h.
8098
8099 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8100
8101         * expr.c (store_expr): Share code for STRING_CST and
8102         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
8103         check if target is a MEM.
8104
8105         * rtl.h: Include hashtab.h.
8106         (iterative_hash_rtx): New prototype.
8107         * rtl.c (iterative_hash_rtx): New function.
8108         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
8109         (output_loc_list): Return immediately if emitted is set, set it.
8110         (hash_loc_operands, hash_locs, hash_loc_list,
8111         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
8112         optimize_location_lists_1, optimize_location_lists): New function.
8113         (dwarf2out_finish): Call optimize_location_lists.
8114         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
8115
8116 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8117
8118         PR testsuite/45974
8119         Revert:
8120         * Makefile.in ($(lang_checks_parallel))
8121         ($(lang_checks_parallelized)): Use single quotes for
8122         $(RUNTESTFLAGS), to allow passing quoted content.
8123
8124 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8125
8126         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
8127         actual_oldval.  Use __builtin_expect.
8128         (SUBWORD_VAL_CAS): Likewise.
8129
8130 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8131
8132         * recog.c (nonmemory_operand): Call immediate_operand for
8133         CONSTANT_P operands.
8134
8135 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
8136
8137         * config/i386/i386.md (movmem<mode>): Macroize expander from
8138         movmem{si,di} using SWI48 mode iterator.
8139         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
8140         *strmovsi_rex_1 using P mode iterator.
8141         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
8142         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
8143         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
8144         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
8145         (setmem<mode>): Macroize expander from setmem{si,di} using
8146         SWI48 mode iterator.
8147         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
8148         *strsetsi_rex_1 using P mode iterator.
8149         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
8150         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
8151         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
8152         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
8153         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
8154         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
8155         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
8156         mode iterator.
8157         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
8158         *strlenqi_rex_1 using P mode iterator.
8159
8160 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
8161
8162         PR bootstrap/45445
8163         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
8164         static functions.
8165         (mark_ref_live, mark_ref_dead): Use them.
8166         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
8167         Save the original reg, and use the new functions.
8168         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
8169         changed.
8170         (check_and_make_def_conflict): Save the original reg.
8171
8172 2010-10-11  Martin Jambor  <mjambor@suse.cz>
8173
8174         PR middle-end/45699
8175         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
8176         thunks.
8177
8178 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8179
8180         * Makefile.in ($(lang_checks_parallel))
8181         ($(lang_checks_parallelized)): Use single quotes for
8182         $(RUNTESTFLAGS), to allow passing quoted content.
8183
8184         PR bootstrap/35855
8185         * opt-functions.awk (BEGIN): New section.
8186         (lower, upper, digit, alnum): New variables.
8187         (static_var, opt_sanitized_name): Use alnum instead of character
8188         classes, for non-C locale.
8189         * optc-gen.awk: Likewise.
8190         * opth-gen.awk: Likewise.
8191
8192 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
8193
8194         * target.def (preferred_reload_class): New hook.
8195         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
8196         * doc/tm.texi: Regenerate.
8197         * targhooks.c (default_preferred_reload_class): New function.
8198         * targhooks.h (default_preferred_reload_class): Declare.
8199         * reload.c (find_dummy_reload): Change preferred_class variable type
8200         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
8201         target hook.
8202         (find_reloads): Change goal_alternative array type from int to
8203         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
8204         (push_reload, find_reloads_address_part): Use
8205         TARGET_PREFERRED_RELOAD_CLASS target hook.
8206         * reload1.c (emit_input_reload_insns): Ditto.
8207         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
8208         hook. Change rclass argument and secondary_class variable types from
8209         'enum reg_class' to reg_class_t.
8210
8211         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
8212         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
8213         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
8214         Change regclass argument and result types from enum reg_class to
8215         reg_class_t.
8216         (TARGET_PREFERRED_RELOAD_CLASS): Define.
8217
8218 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
8219
8220         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
8221         in masking operations.
8222         (simplify_const_unary_operation): Likewise.
8223         (simplify_binary_operation_1): Likewise.
8224         (simplify_const_binary_operation): Likewise.
8225         (simplify_const_relational_operation): Likewise.
8226         (simplify_ternary_operation): Likewise.
8227         (simplify_immed_subreg): Likewise.
8228
8229 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8230
8231         PR middle-end/45862
8232         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
8233         (TARGET_SUPPORTS_WEAK): New.
8234         * doc/tm.texi: Regenerate.
8235         * defaults.h (SUPPORTS_WEAK): Update comment.
8236         (TARGET_SUPPORTS_WEAK): New.
8237         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
8238         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
8239         SUPPORTS_WEAK.
8240         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
8241         make_decl_one_only): Likewise.
8242         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
8243         TARGET_SUPPORTS_WEAK.
8244         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
8245         instead of SUPPORTS_WEAK.
8246
8247 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8248
8249         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
8250
8251 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8252
8253         * vec.h (VEC_qsort): Define.
8254         * dbxout.c (output_used_types): Use it.
8255         * df-scan.c (df_sort_and_compress_refs): Likewise.
8256         (df_sort_and_compress_mws): Likewise.
8257         * genautomata.c (uniq_sort_alt_states): Likewise.
8258         (evaluate_equiv_classes): Likewise.
8259         (output_trans_table): Likewise.
8260         (output_state): Likewise.
8261         * gimplify.c (compare_case_labels): Likewise.
8262         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
8263         * ipa.c (build_cdtor_fns): Likewise.
8264         * lto.c (lto_wpa_write_files): Likewise.
8265         * sel-sched.c (fill_vec_av_set): Likewise.
8266         * tree-predcom.c (determine_roots_comp): Likewise.
8267         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
8268         (splice_param_accesses): Likewise.
8269         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
8270         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
8271         (reassociate_bb): Likewise.
8272         * tree-ssa-sccvn.c (sort_scc): Likewise.
8273         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
8274
8275 2010-10-11  Ian Lance Taylor  <iant@google.com>
8276
8277         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
8278         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
8279         TREE_THIS_NOTRAP when appropriate.
8280         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
8281         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
8282         newly created MEM_REF.
8283
8284 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8285
8286         Nathan Froyds patch to hooks FUNCTION_ARG etc.
8287         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
8288         (picochip_incoming_function_arg): Delete.
8289         (picochip_arg_advance): Delete.
8290         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
8291         (FUNCTION_INCOMING_ARG): Delete.
8292         (FUNCTION_ARG_ADVANCE): Delete.
8293         * config/picochip/picochip.c (picochip_function_arg): Take a
8294         const_tree and a bool.
8295         (picochip_incoming_function_arg): Likewise.
8296         (picochip_arg_advance): Likewise.
8297         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8298         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8299
8300 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8301
8302         PR middle-end/45955
8303         * ipa.c (build_cdtor): Delete endless loop.
8304
8305 2010-10-07  Andi Kleen  <ak@linux.intel.com>
8306
8307         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
8308         checksum-options.
8309         (checksum-options): Add.
8310         (cc1-dummy): Remove.
8311         (cc1-checksum): Change to run checksum over object files
8312         and options only.
8313         * dummy-checksum.c: Remove.
8314         * genchecksum.c: Update copyright.
8315         (usage): Allow multiple arguments.
8316         (BLOCKSIZE): Add.
8317         (dosum): Change for incremental checksum. Remove C output.
8318         (main): Iterate over all argument files. Add C output.
8319
8320 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
8321
8322         * params.c (set_param_value_internal): New.
8323         (set_param_value): Use set_param_value_internal.
8324         (maybe_set_param_value, set_default_param_value): New.
8325         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
8326         (maybe_set_param_value, set_default_param_value): Declare.
8327         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
8328         * config/i386/i386.c (ix86_option_override_internal): Use
8329         maybe_set_param_value.
8330         * config/ia64/ia64.c (ia64_option_default_params,
8331         TARGET_OPTION_DEFAULT_PARAMS): New.
8332         (ia64_option_optimization): Move some code to
8333         ia64_option_default_params.
8334         * config/picochip/picochip.c (picochip_option_override): Use
8335         maybe_set_param_value.
8336         * config/rs6000/rs6000.c (rs6000_option_default_params,
8337         TARGET_OPTION_DEFAULT_PARAMS): New.
8338         (rs6000_option_override_internal): Use maybe_set_param_value.
8339         (rs6000_option_optimization): Move some code to
8340         rs6000_option_default_params.
8341         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
8342         * config/sh/sh.c (sh_option_default_params,
8343         TARGET_OPTION_DEFAULT_PARAMS): New.
8344         (sh_option_optimization): Move some code to sh_option_default_params.
8345         * config/sparc/sparc.c (sparc_option_override): Use
8346         maybe_set_param_value.
8347         * config/spu/spu.c (spu_option_default_params,
8348         TARGET_OPTION_DEFAULT_PARAMS): New.
8349         (spu_option_optimization): Move some code to spu_option_default_params.
8350         (spu_option_override): Use maybe_set_param_value.
8351         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
8352         * doc/tm.texi: Regenerate.
8353         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
8354         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
8355         compiler_params.
8356         (default_options_optimization): Use maybe_set_param_value.
8357         (finish_options): Use maybe_set_param_value.
8358         * target.def (target_option.default_params): New hook.
8359         * toplev.c (general_init): Call targetm.target_option.default_params.
8360
8361 2010-10-11  Ira Rosen  <irar@il.ibm.com>
8362
8363         PR tree-optimization/45902
8364         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
8365         vector type for constants, unless it's a pointer.
8366
8367 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8368
8369         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
8370
8371 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
8372
8373         PR target/45870
8374         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
8375         (ix86_delegitimize_address): Use it.
8376
8377 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
8378
8379         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
8380
8381 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
8382
8383         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
8384         to cum struct in the call to function_arg_advance.
8385         (alpha_function_arg_advance): Mark named as unused.
8386
8387 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
8388
8389         * config/mips/mips.c (mips_handle_option): Make "value" with
8390         ATTRIBUTE_UNUSED.
8391
8392 2010-10-09  Richard Henderson  <rth@redhat.com>
8393
8394         PR rtl-opt/33721
8395         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
8396         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
8397         required_align, tidy the code a bit.  Emit split_stack code in the
8398         right place.  Mark the return value with the alignment properly.
8399         * expr.h (allocate_dynamic_stack_space): Update decl.
8400         * builtins.c (expand_builtin_apply): Update call to
8401         allocate_dynamic_stack_space.
8402         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
8403         * calls.c (initialize_argument_information): Update call to
8404         allocate_dynamic_stack_space.
8405         (expand_call): Likewise.
8406
8407         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
8408         Don't update_stack_alignment here.
8409         (alloc_stack_frame_space): Make ALIGN unsigned.
8410         (stack_var_cmp): Sort by alignment too.
8411         (partition_stack_vars): Don't merge large and small alignment vars.
8412         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
8413         Take care when BASE is not virtual_stack_vars_rtx.
8414         (expand_stack_vars): Allocate dynamic stack space for large
8415         alignment variables.
8416         (expand_one_stack_var): Update all to expand_one_stack_var_at.
8417         (defer_stack_allocation): True for large alignment vars.
8418         (update_stack_alignment): Merge into ...
8419         (expand_one_var): ... here.
8420         (gimple_expand_cfg): Place code from expand_stack_vars.
8421
8422 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8423
8424         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8425         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
8426         (pdp11_function_arg_advance): New function.
8427         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8428
8429 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8430
8431         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
8432         * libgcc2.c: Likewise.
8433
8434 2010-10-09  Richard Guenther  <rguenther@suse.de>
8435
8436         PR lto/45956
8437         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
8438         Properly check if a decl is an automatic var.
8439
8440 2010-10-09  Richard Guenther  <rguenther@suse.de>
8441
8442         PR lto/45947
8443         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
8444
8445 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8446
8447         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
8448         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8449         * config/mmix/mmix.c (mmix_function_arg): Rename to...
8450         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
8451         bool arguments.
8452         (mmix_function_arg): New function.
8453         (mmix_function_incoming_arg): New function.
8454         (mmix_function_arg_advance): New function.
8455         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8456         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8457
8458 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8459
8460         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8461         * config/vax/vax.c (vax_function_arg): New function.
8462         (vax_function_arg_advance): New function.
8463         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8464
8465 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8466
8467         * config/pa/pa-protos.h (function_arg): Delete.
8468         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8469         * config/pa/pa.c (function_arg): Rename to...
8470         (pa_function_arg): ...this.  Make static.  Take a const_tree and
8471         a bool.
8472         (pa_function_arg_advance): New function.
8473         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8474
8475 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8476
8477         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8478         * config/m68k/m68k.c (m68k_function_arg): New function.
8479         (m68k_function_arg_advance): New function.
8480         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8481
8482 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8483
8484         * config/avr/avr-protos.h (function_arg): Delete.
8485         (function_arg_advance): Delete.
8486         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8487         * config/avr/avr.c (function_arg): Rename to...
8488         (avr_function_arg): ...this.  Make static.  Take a const_tree and
8489         a bool.
8490         (function_arg_advance): Rename to...
8491         (avr_function_arg_advance): ...this.  Make static.  Take a
8492         const_tree and a bool.
8493         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8494
8495 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8496
8497         * config/alpha/alpha-protos.h (function_arg): Delete.
8498         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8499         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
8500         * config/alpha/alpha.c (function_arg): Rename to...
8501         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
8502         a bool.  Delete TARGET_ABI_UNICOSMK code.
8503         (alpha_function_arg_advance): New function.
8504         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8505
8506 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8507
8508         * config/mep/mep-protos.h (mep_function_arg): Delete.
8509         (mep_function_arg_advance): Delete.
8510         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8511         * config/mep/mep.c (mep_function_arg): Make static.  Take a
8512         const_tree and a bool.
8513         (mep_function_arg_advance): Likewise.
8514         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8515
8516 2010-10-09  Richard Guenther  <rguenther@suse.de>
8517
8518         PR tree-optimization/45945
8519         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
8520
8521 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
8522
8523         PR tree-optimization/45612
8524         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
8525         Test LABEL_DECLs as well.  Fix formatting issues.
8526         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
8527         whose label is present in NON_SSA_VARS.
8528         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
8529         as well.  Fix formatting issues.
8530         (visit_bb): Fix typos and formatting issue.
8531
8532 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8533
8534         PR tree-optimization/45950
8535         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
8536         before initializing vno->op.
8537
8538 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
8539
8540         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
8541         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
8542
8543 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
8544
8545         PR target/45913
8546         * config/i386/i386.c (ix86_binary_operator_ok): Support
8547         "andhi/andsi/anddi" as a zero-extending move.
8548
8549 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8550
8551         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
8552         into a temporary array.
8553
8554 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
8555
8556         PR tree-optimization/45903
8557         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
8558         of {A,L}SHIFTRT of MEM.
8559
8560 2010-10-08  Richard Guenther  <rguenther@suse.de>
8561
8562         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
8563         Re-construct BLOCK_VARS.
8564         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
8565         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
8566         * tree.c (free_lang_data_in_block): Remove.
8567         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
8568         Do not touch the BLOCK tree.
8569         * expr.c (expand_expr_real_1): Allow externals.
8570
8571 2010-10-08  Richard Guenther  <rguenther@suse.de>
8572
8573         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
8574         Do not output BLOCK_SUBBLOCKS.
8575         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
8576         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
8577         Re-construct BLOCK_SUBBLOCKS of parent block.
8578         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
8579         for BINFO_BASE_ACCESSES.
8580
8581 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
8582
8583         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
8584         (TREE_H): Include $(FLAGS_H) instead of options.h.
8585         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
8586         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8587         * common.opt (flag_complex_method, flag_evaluation_order,
8588         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
8589         Variable declarations.
8590         * configure.ac (tm_include_list): Include flags.h instead of options.h.
8591         * configure: Regenerate.
8592         * flags.h: Condition out contents for target libraries.  Include
8593         options.h at end of file.
8594         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
8595         flag_evaluation_order, flag_warn_unused_result): Remove.
8596         * gcc.c (main): Intialize global_options with global_options_init.
8597         * langhooks-def.h (lhd_init_options_struct): Declare.
8598         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8599         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
8600         * langhooks.c (lhd_init_options_struct): New.
8601         * langhooks.h (struct lang_hooks): Add init_options_struct.
8602         Update comment on init_options.
8603         * optc-gen.awk: Generate initializer for global_options_init, not
8604         global_options.
8605         * opth-gen.awk: Condition out structure declarations for target
8606         libraries.  Declare global_options_init.
8607         * opts-common.c: Include flags.h instead of options.h.
8608         * opts.c (flag_warn_unused_result): Remove.
8609         (read_cmdline_options): Take gcc_options parameters.  Pass them to
8610         read_cmdline_option.
8611         (initial_lang_mask, initial_min_crossjump_insns,
8612         initial_max_fields_for_field_sensitive,
8613         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
8614         (init_options_once): New.  Split out of decode_options.
8615         (init_options_struct): New.  Split out of decode_options.
8616         (decode_cmdline_options_to_array_default_mask): New.
8617         (default_options_optimization): New.  Split out of decode_options.
8618         (decode_options): Move most code to other functions.  Update call
8619         to read_cmdline_options.
8620         (finish_options): New.  Split out of decode_options.
8621         * opts.h (decode_options): Add gcc_options parameters.
8622         (init_options_once, init_options_struct,
8623         decode_cmdline_options_to_array_default_mask): New.
8624         * toplev.c (flag_complex_method, flag_ira_algorithm,
8625         flag_ira_region, flag_evaluation_order): Remove.
8626         (general_init): Use global_options_init for initial flag values
8627         for global_dc.
8628         (toplev_main): Call init_options_once, init_options_struct,
8629         lang_hooks.init_options_struct,
8630         decode_cmdline_options_to_array_default_mask and
8631         lang_hooks.init_option before decode_options.  Update arguments to
8632         decode_options.
8633         * tree.h: Include flags.h instead of options.h.
8634
8635 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8636
8637         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8638
8639 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8640
8641         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
8642         Delete.
8643         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
8644         (FUNCTION_INCOMING_ARG): Delete.
8645         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
8646         (function_arg_slotno): Likewise.  Take bool arguments.
8647         (sparc_arg_partial_bytes): Update call to it.
8648         (function_arg): Rename to...
8649         (sparc_function_arg_1): ...this.  Take bool arguments.
8650         (sparc_function_arg, sparc_function_incoming_arg): New functions.
8651         (function_arg_advance): Rename to...
8652         (sparc_function_arg_advance): ...this.  Take bool argument.
8653         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
8654         (TARGET_FUNCTION_INCOMING_ARG): Define.
8655
8656 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8657
8658         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
8659         Delete.
8660         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8661         * config/bfin/bfin.c (function_arg_advance): Rename to...
8662         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
8663         and bool arguments.
8664         (function_arg): Rename to...
8665         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
8666         arguments.
8667         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8668
8669 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8670
8671         * config/score/score-protos.h (score_function_arg): Delete.
8672         (score_function_arg_advance): Delete.
8673         * config/score/score3.h (score3_function_arg_advance): Take a
8674         const_tree and a bool.
8675         (score3_function_arg): Likewise.
8676         * config/score/score7.h (score7_function_arg_advance): Likewise.
8677         (score7_function_arg): Likewise.
8678         * config/score/score3.c (score3_classify_arg): Likewise.
8679         (score3_function_arg_advance, score3_function_arg): Likewise.
8680         * config/score/score7.c (score7_classify_arg): Likewise.
8681         (score7_function_arg_advance, score7_function_arg): Likewise.
8682         * config/score/score.c (score_function_arg_advance): Likewise.
8683         (score_function_arg): Likewise.  De-const-ify `cum' argument.
8684         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8685
8686 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8687
8688         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
8689         (s390_function_arg): Delete.
8690         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8691         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
8692         (s390_function_arg_integer): Likewise.
8693         (s390_function_arg_advance): Make static.  Take a const_tree and
8694         a bool.
8695         (s390_function_arg): Likewise.
8696         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8697
8698 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8699
8700         * config/spu/spu-protos.h (spu_function_arg): Delete.
8701         * config/spu/spu.h (FUNCTION_ARG): Delete.
8702         (FUNCTION_ARG_ADVANCE): Move code to ...
8703         * config/spu/spu.c (spu_function_arg_advance): New function.
8704         (spu_function_arg): Make static.  Take a const_tree and a bool.
8705         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
8706         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8707
8708 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8709
8710         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8711
8712 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8713
8714         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
8715         (init_vn_nary_op_from_op): New function.
8716         (init_vn_nary_op_from_stmt): New function.
8717         (vn_nary_op_lookup_1): New function.
8718         (sizeof_vn_nary_op): New function.
8719         (alloc_vn_nary_op_noinit): New function.
8720         (alloc_vn_nary_op): New function.
8721         (vn_nary_op_insert_into): New function.
8722         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
8723         (vn_nary_op_lookup): Likewise.
8724         (vn_nary_op_lookup_stmt): Likewise.
8725         (vn_nary_op_insert_pieces): Likewise.
8726         (vn_nary_op_insert): Likewise.
8727         (vn_nary_op_insert_stmt): Likewise.
8728         (copy_nary): Likewise.
8729         (set_value_id_for_result): New function.
8730         (set_hashtable_value_ids): Call it.
8731
8732 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8733
8734         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8735         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
8736
8737 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8738
8739         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
8740         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8741
8742 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8743
8744         PR debug/45656
8745         * cse.c (cse_extended_basic_block): Preserve cc0 info across
8746         debug isnsn.  Skip them when searching for cc0 setter.
8747         (set_live_p): Skip debug insns when searching for cc0 user.
8748
8749 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8750
8751         PR debug/45673
8752         PR debug/45604
8753         PR debug/45419
8754         PR debug/45408
8755         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
8756         type of MEM_REFs to INTEGER_CSTs.
8757
8758 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8759
8760         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
8761         m68hc11_print_operand_address.
8762
8763 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8764
8765         * builtins.c (rewrite_call_expr): Move code to...
8766         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
8767         (rewrite_call_expr_array): New function.
8768         (fold_builtin_sprintf_chk_1): New function.
8769         (fold_builtin_sprintf_chk): Call it.
8770         (gimple_fold_builtin_sprintf_chk): Likewise.
8771         (fold_builtin_snprintf_chk_1): New function.
8772         (fold_builtin_snprintf_chk): Call it.
8773         (gimple_fold_builtin_snprintf_chk): Likewise.
8774         (gimple_rewrite_call_expr): Delete.
8775
8776 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8777
8778         * config.host: Update copyright year.
8779
8780 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8781
8782         * config.host (host_lto_plugin_soname): New shell variable.
8783         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
8784         * config.in: Regenerate.
8785         * configure: Regenerate.
8786         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
8787         LTO plugin shared library.
8788
8789 2010-10-07  Richard Henderson  <rth@redhat.com>
8790
8791         * target.h (enum unwind_info_type): Move ...
8792         * coretypes.h: ... here.
8793
8794 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
8795
8796         * doc/objc.texi (Fast enumeration protocol): Mention that
8797         'unsigned int' can also be used instead of 'unsigned long' in
8798         countByEnumeratingWithState:objects:count:.
8799
8800 2010-10-07  Martin Jambor  <mjambor@suse.cz>
8801
8802         * tree-sra.c (struct access): New field grp_assignment_write.
8803         (dump_access): Dump grp_assignment_write.
8804         (build_accesses_from_assign): Set grp_assignment_write.
8805         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
8806         (mark_read_status): Renamed to mark_rw_status, individual values
8807         renamed too.
8808         (analyze_access_subtree): Changed type of mark_write to
8809         mark_read_status.  Fixed propagating of mark_read and
8810         mark_write.  Changed benefit estimate.  Updated comment.
8811
8812 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8813
8814         PR Tree-Vect/45847
8815         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
8816         check for vectype_out returned by get_vectype_for_scalar_type().
8817
8818 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8819
8820         PR target/45805
8821         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
8822         constraint, add register specifier in instruction template.
8823         (neon_vec_pack_trunc_<mode>): Likewise.
8824         (neon_vec_<US>mult_<mode>): Add register specifier to
8825         instruction template.
8826
8827 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8828
8829         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
8830         cygwin2.o.
8831         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
8832         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
8833         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
8834         (cygwin2.o): Likewise.
8835         * config/i386/cygwin1.c: Delete file.
8836         * config/i386/cygwin2.c: Likewise.
8837         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
8838         make all {%!mno-cygwin} ones unconditional.
8839         (STARTFILE_SPEC): Likewise.
8840         (REAL_LIBGCC_SPEC): Likewise.
8841         (LIB_SPEC): Likewise.
8842         (CXX_WRAP_SPEC): Likewise.
8843         (LINK_SPEC): Likewise.
8844         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
8845         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
8846         (cygwin_gplusplus_include_dir): Delete now-unused array.
8847         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
8848         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
8849         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
8850         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
8851         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
8852         (cygwin_local_include_dir): Delete now-unused array.
8853         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
8854         (cygwin_cross_include_dir): Delete now-unused array.
8855         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
8856         (cygwin_tool_include_dir): Delete now-unused array.
8857         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
8858         (cygwin_standard_include_dir): Delete now-unused array.
8859         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
8860         (GEN_CVT_ARRAY): Delete now-unused macro definition.
8861         (cvt_to_mingw): Delete now-unused array.
8862         (mingw_scan): Remove prototype of deleted function.
8863         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
8864         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
8865         * doc/invoke.texi (-mcygwin): Don't document removed option.
8866         (-mno-cygwin): Likewise.
8867
8868 2010-10-07  Richard Guenther  <rguenther@suse.de>
8869
8870         * machmode.h (mode_for_vector): Declare.
8871         * stor-layout.c (mode_for_vector): New function, split out from ...
8872         (layout_type): ... here.
8873         * tree-vectorizer.h (current_vector_size): Declare.
8874         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
8875         mask vector type is available.
8876         (get_vectype_for_scalar_type): Rename to ...
8877         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
8878         size argument.
8879         (get_vectype_for_scalar_type): New wrapper around
8880         get_vectype_for_scalar_type_and_size using current_vector_size.
8881         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
8882         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
8883         of vect_analyze_loop here.
8884         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
8885         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
8886         to autodetect.
8887         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
8888         V8SF to V8SI conversion builtin.
8889
8890 2010-10-07  Richard Guenther  <rguenther@suse.de>
8891
8892         * target.def (autovectorize_vector_sizes): New target hook.
8893         * targhooks.c (default_autovectorize_vector_sizes): New function.
8894         * targhooks.h (default_autovectorize_vector_sizes): Declare.
8895         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
8896         Document.
8897         * doc/tm.texi: Update.
8898         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
8899         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8900
8901 2010-10-07  Richard Guenther  <rguenther@suse.de>
8902
8903         * target.def (units_per_simd_word): Rename to ...
8904         (preferred_simd_mode): ... this.  Return mode instead of size.
8905         * targhooks.c (default_units_per_simd_word): Rename to ...
8906         (default_preferred_simd_mode): ... this.  Return word_mode.
8907         * targhooks.h (default_preferred_simd_mode): Declare.
8908         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
8909         (arm_preferred_simd_mode): ... this.  Re-implement.
8910         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
8911         (ix86_preferred_simd_mode): ... this.  Re-implement.
8912         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
8913         (sparc_preferred_simd_mode): ... this.  Re-implement.
8914         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
8915         (mips_preferred_simd_mode): ... this.  Re-implement.
8916         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
8917         (rs6000_preferred_simd_mode): ... this.  Re-implement.
8918         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
8919         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
8920         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
8921         * doc/tm.texi: Update.
8922
8923 2010-10-07  Richard Guenther  <rguenther@suse.de>
8924
8925         PR middle-end/45869
8926         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
8927         of pointers.
8928
8929 2010-10-07  Alan Modra  <amodra@gmail.com>
8930
8931         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
8932         rather than sign extension by hand.
8933
8934 2010-10-07  Jan Hubicka  <jh@suse.cz>
8935
8936         PR middle-end/45926
8937         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
8938
8939 2010-10-07  Richard Guenther  <rguenther@suse.de>
8940
8941         PR bootstrap/45914
8942         * configure.ac: Fix typo.
8943         * configure: Regenerated.
8944
8945 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8946
8947         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
8948         define_builtin_std where it's unnecessary.
8949         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
8950
8951 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
8952
8953         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
8954         * doc/tm.texi.in: Regenerate.
8955         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
8956         * targhooks.c (default_class_likely_spilled_p): Don't use the
8957         CLASS_LIKELY_SPILLED_P macro.
8958
8959         * config/arm/arm.md: Update comment.
8960
8961 2010-10-06  Jan Hubicka  <jh@suse.cz>
8962
8963         * ipa.c (cgraph_remove_unreachable_nodes): External references can
8964         always be removed.
8965         (cgraph_externally_visible_p): We can not bring local comdats that
8966         are known to linker; fix handling of internal visibility.
8967         (function_and_variable_visibility): Likewise.
8968
8969 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
8970
8971         PR rtl-optimization/45394
8972         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
8973         (struct rtx_subst_pair): Remove AFTER field.
8974         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
8975         (propagate_for_debug): Remove MOVE parameter and adjust.
8976         (try_combine): In the special case where I2 is a PARALLEL, combine only
8977         destinations of SETs and set I2SRC to the I2 source.
8978         Adjust calls to propagate_for_debug throughout.
8979         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
8980         insns.
8981
8982 2010-10-06  Olivier Hainque  <hainque@adacore.com>
8983
8984         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
8985         switch on insn codes as sequence of ifs.
8986
8987 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
8988
8989         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
8990         be UI_NONE for picochip.
8991         (picochip_option_override): Do not disable exception flags.
8992         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
8993         Declare.
8994
8995 2010-10-06  Richard Guenther  <rguenther@suse.de>
8996
8997         * Makefile.in (regmove.o): Depend on $(TARGET_H).
8998
8999 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
9000
9001         Implemented fast enumeration for Objective-C.
9002         * c-parser.c (objc_could_be_foreach_context): New.
9003         (c_lex_one_token): Recognize RID_IN keyword in a potential
9004         Objective-C foreach context.
9005         (c_parser_declaration_or_fndef): Added parameter.  Accept
9006         Objective-C RID_IN keyword as terminating a declaration; in that
9007         case, return the declaration in the new parameter.
9008         (c_parser_extenral_declaration): Updated calls to
9009         c_parser_declaration_or_fndef.
9010         (c_parser_declaration_or_fndef): Same change.
9011         (c_parser_compound_statement_nostart): Same change.
9012         (c_parser_label): Same change.
9013         (c_parser_objc_methodprotolist): Same change.
9014         (c_parser_omp_for_loop): Same change.
9015         (c_parser_for_statement): Detect and parse Objective-C foreach
9016         statements.
9017         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
9018         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
9019         fast enumeration parsing code to turn off the c99 error but still
9020         perform checks on the loop declarations.
9021         * c-tree.h (check_for_loop_decls): Updated declaration.
9022         * doc/objc.texi: Document fast enumeration.
9023
9024 2010-10-06  Nick Clifton  <nickc@redhat.com>
9025
9026         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
9027         (MDR_REGNUM): Define.
9028         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
9029         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
9030         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
9031         (REGISTER_NAMES): Add MDR.
9032         (DWARF2_DEBUGGING_INFO): Define to 1.
9033         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9034         (F): New function.  Sets RTX_FRAME_RELATED_P.
9035         (mn10300_gen_multiple_store): Use F.
9036         (expand_prologue): Use F.  Use gen_movsf() to push floating
9037         point registers.
9038         (expand_epilogue): Use gen_movsf() to pop floating point registers.
9039         (mn10300_option_override): Disable combine stack adjust pass.
9040
9041 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
9042
9043         PR target/45901
9044         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
9045         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
9046
9047 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
9048
9049         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
9050         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
9051         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
9052         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
9053         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
9054         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
9055         BUILT_IN_TOUPPER): Mark as leaf.
9056
9057         PR middle-end/45838
9058         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
9059         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
9060         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
9061         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
9062         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
9063         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
9064         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
9065
9066 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
9067
9068         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
9069         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9070         (m68hc11_class_likely_spilled_p): New function.
9071
9072 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
9073
9074         * c-parser.c (c_parser_objc_method_definition): Updated comment.
9075
9076 2010-10-05  Jan Hubicka  <jh@suse.cz>
9077
9078         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
9079         Document.
9080         * opts.c (decode_options): Handle lto partitions.
9081         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
9082         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
9083
9084 2010-10-05  Jan Hubicka  <jh@suse.cz>
9085
9086         * cgraphunit.c (assemble_function): Output thunks and aliases before
9087         the function itself.
9088
9089 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
9090
9091         * config/picochip/picochip.c (picochip_option_override): Disable
9092         exception flags for picochip.
9093
9094 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
9095
9096         * opts-common.c (handle_option, handle_generated_option,
9097         read_cmdline_option, set_option): Add diagnostic_context
9098         parameter.  Update calls among these functions.
9099         (set_option): Don't use global_dc.
9100         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
9101         (decode_options): Pass global_dc to enable_warning_as_error.
9102         (common_handle_option): Pass global_dc to enable_warning_as_error.
9103         (enable_warning_as_error): Add diagnostic_context parameter.
9104         Document parameters.  Don't use global_dc.  Pass
9105         diagnostic_context parameter to handle_generated_option.
9106         * opts.h (set_option, handle_option, handle_generated_option,
9107         read_cmdline_option, enable_warning_as_error): Add
9108         diagnostic_context parameter.
9109         * Makefile.in (lto-opts.o): Update dependencies.
9110         * coretypes.h (struct diagnostic_context, diagnostic_context):
9111         Declare here.
9112         * diagnostic.h (diagnostic_context): Don't declare typedef here.
9113         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
9114         * langhooks-def.h (struct diagnostic_context): Don't declare here.
9115         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
9116         using diagnostic_context typedef.
9117         * langhooks.c (lhd_initialize_diagnostics): Declare using
9118         diagnostic_context typedef.
9119         * langhooks.h (struct diagnostic_context): Don't declare here.
9120         (initialize_diagnostics, print_error_function): Declare using
9121         diagnostic_context typedef.
9122         * lto-opts.c: Include diagnostic.h.
9123         (lto_reissue_options): Pass global_dc to set_option.  Pass
9124         DK_UNSPECIFIED not 0.
9125         * plugin.c (plugins_internal_error_function): Declare using
9126         diagnostic_context typedef.
9127         * plugin.h (struct diagnostic_context): Don't declare here.
9128         (plugins_internal_error_function): Declare using
9129         diagnostic_context typedef.
9130
9131 2010-10-05  Olivier Hainque  <hainque@adacore.com>
9132             Nicolas Roche  <roche@adacore.com>
9133
9134         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
9135         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
9136
9137 2010-10-05  Ira Rosen  <irar@il.ibm.com>
9138
9139         PR tree-optimization/45752
9140         * tree-vect-slp.c (vect_get_mask_element): Remove static
9141         variables, make them function arguments.
9142         (vect_transform_slp_perm_load): Pass new arguments to
9143         vect_get_mask_element.
9144
9145 2010-10-05  Richard Guenther  <rguenther@suse.de>
9146
9147         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
9148         (gimple_mod_pow2): Likewise.
9149         (gimple_mod_subtract): Likewise.
9150         (gimple_ic): Likewise.
9151         (gimple_stringop_fixed_value): Likewise.
9152         * tree-profile.c (tree_init_edge_profiler): Mark profile
9153         functions nothrow and leaf.
9154         (add_abnormal_goto_call_edges): Remove.
9155         (tree_gen_edge_profiler): Work on SSA form.
9156         (tree_gen_ic_profiler): Likewise.  Simplify.
9157         (do_tree_profiling): Update SSA form.
9158         (pass_tree_profile): Remove.
9159         (do_tree_profiling): Likewise.
9160         (gate_tree_profile_ipa): New function.
9161         (pass_ipa_tree_profile): New.
9162         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
9163         state of instrumented functions.
9164         * passes.c (init_optimization_passes): Remove early non-SSA
9165         inlining.  Move profiling after early optimizations.
9166         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
9167         (pass_ipa_early_inline): Likewise.
9168         * tree-pass.h (pass_ipa_early_inline): Remove.
9169         (pass_tree_profile): Likewise.
9170         (pass_ipa_tree_profile): Declare.
9171
9172 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9173             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
9174
9175         * config/s390/s390.c (z196_cost): New.
9176         (s390_handle_arch_option): Add -march=z196.
9177         (s390_option_override): Use the new cost function and use the z10
9178         defaults also for z196.
9179         (legitimate_reload_constant_p): Adjust comment.
9180         (legitimate_reload_fp_constant_p): New function.
9181         (s390_preferred_reload_class): Distingiush between FP and Int constants.
9182         (preferred_la_operand_p): Avoid la with index on z196.
9183         (s390_adjust_priority): Trigger also for z196.
9184         (s390_issue_rate): Issue rate for z196 is 3.
9185         (s390_z10_fix_long_loop_prediction): Rename to ...
9186         (s390_fix_long_loop_prediction): ... this.
9187         (s390_reorg): Apply the z10 adjustments also for z196.
9188         (s390_loop_unroll_adjust): Do this also for z196.
9189         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
9190         (enum processor_flags): Add PF_Z196.
9191         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
9192         (TARGET_CPU_Z196, TARGET_Z196): New macros.
9193         * config.gcc: Enable z196 for --with-arch.
9194         * config/s390/2817.md: New file.
9195         * config/s390/2084.md: New type for multiply and add.
9196         * config/s390/2097.md: Likewise.
9197         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
9198         (UNSPECV_ATOMIC_OP): New constants.
9199         (fmadddf, fmaddsf): New values for type attribute.
9200         (z196prop): New insn attribute.
9201         (cpu, cpu_facility): Add z196.
9202         (ATOMIC_Z196): New code iterator.
9203         (noxa): New code attribute.
9204         (gk): New mode attribute.
9205         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
9206         Support load zero for fp constants.
9207         (fixuns_truncdddi2, fixuns_trunctddi2)
9208         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
9209         for z196.
9210         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
9211         (popcounthi2, popcountqi2): New expander.
9212         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
9213         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
9214         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
9215         insn definition.
9216         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
9217         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
9218         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
9219         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
9220         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
9221         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
9222         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
9223         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
9224         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
9225         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
9226         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
9227         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
9228         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
9229         Support new z196 instructions.
9230
9231 2010-10-05  Richard Guenther  <rguenther@suse.de>
9232
9233         PR middle-end/45877
9234         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
9235         case where gimplification optimizes away the stmt.
9236
9237 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9238
9239         PR debug/45849
9240         * var-tracking.c (strip_pointer_flags): New function.
9241         (emit_note_insn_var_location): If rtx_equal_p check failed,
9242         retry on locations simplified with simplify_replace_fn_rtx
9243         and strip_pointer_flags as its callback.
9244
9245 2010-10-04  Jan Hubicka  <jh@suse.cz>
9246
9247         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
9248         (can_refer_decl_in_current_unit_p): ... this one; reverse return
9249         value; handle comdats too.
9250         (canonicalize_constructor_val): Use it; handle function_decls
9251         correctly.
9252         (gimple_fold_obj_type_ref_known_binfo): Likewise.
9253         * gimple.c (get_base_address): Accept all kinds of decls.
9254
9255 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9256
9257         * flags.h (g_switch_value, g_switch_set): Remove.
9258         * opts.c (g_switch_value, g_switch_set): Remove.
9259         * config/g.opt (G): Add Var(g_switch_value).
9260         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
9261         (alpha_option_override): Check global_options_set.x_g_switch_value
9262         instead of g_switch_set.
9263         (alpha_in_small_data_p): Remove cast in comparison with
9264         g_switch_value.
9265         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
9266         g_switch_value to unsigned HOST_WIDE_INT.
9267         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
9268         with g_switch_value.
9269         (frv_handle_option): Don't handle -G here.
9270         (frv_option_override): Check global_options_set.x_g_switch_value
9271         instead of g_switch_set.  Don't modify g_switch_set.
9272         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
9273         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
9274         g_switch_value to unsigned HOST_WIDE_INT.
9275         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
9276         (ia64_option_override): Check global_options_set.x_g_switch_value
9277         instead of g_switch_set.
9278         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
9279         Remove.
9280         (lm32_in_small_data_p): Remove cast in comparison with
9281         g_switch_value.
9282         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
9283         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
9284         HOST_WIDE_INT.
9285         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
9286         (m32r_init): Check global_options_set.x_g_switch_value instead of
9287         g_switch_set.
9288         (m32r_in_small_data_p): Remove cast in comparison with
9289         g_switch_value.
9290         (m32r_file_start): Format g_switch_value with %d.
9291         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
9292         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
9293         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
9294         handle -G here.
9295         (microblaze_option_override): Check
9296         global_options_set.x_g_switch_value instead of g_switch_set.
9297         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
9298         (mips_option_override): Check global_options_set.x_g_switch_value
9299         instead of g_switch_set.
9300         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
9301         (rs6000_file_start): Format g_switch_value with %d.
9302         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
9303         comparisons with g_switch_value.
9304         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
9305         global_options_set.x_g_switch_value instead of g_switch_set.
9306         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9307         global_options_set.x_g_switch_value instead of g_switch_set.
9308         * config/score/score.c (score_handle_option): Don't handle -G here.
9309         * config/score/score3.c (score3_option_override): Check
9310         global_options_set.x_g_switch_value instead of g_switch_set.
9311         * config/score/score7.c (score7_option_override): Check
9312         global_options_set.x_g_switch_value instead of g_switch_set.
9313
9314 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
9315
9316         * common.opt (fira-coalesce): Remove.
9317
9318         * doc/invoke.texi (flag_ira_coalesce): Remove.
9319
9320         * ira-color.c (allocno_coalesced_p): Move before
9321         copy_freq_compare_func.
9322         processed_coalesced_allocno_bitmap): Ditto.
9323         (update_conflict_hard_regno_costs): Don't use
9324         ALLOCNO_FIRST_COALESCED_ALLOCNO.
9325         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
9326         (assign_hard_reg): Assume no coalesced allocnos.
9327         (get_coalesced_allocnos_attributes): Remove.
9328         (bucket_allocno_compare_func): Assume no coalesced allocnos.
9329         (push_allocno_to_stack): Ditto.
9330         (remove_allocno_from_bucket_and_push): Use
9331         ira_print_expanded_allocno instead of print_coalesced_allocno.
9332         (push_allocnos_to_stack): Assume uncoalesced allocnos.
9333         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
9334         all_conflicting_hard_regs.
9335         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
9336         (setup_allocno_left_conflicts_size): Ditto.
9337         (put_allocno_into_bucket): Ditto.
9338         (copy_freq_compare_func): Remove.
9339         (copy_freq_compare_func, merge_allocnos): Move before
9340         coalesced_pseudo_reg_freq_compare.
9341         coalesced_allocno_conflict_p): Ditto.
9342         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
9343         parameter.  Assume it true.
9344         (color_allocnos): Assume uncoalesced allocnos.  Use
9345         ira_print_expanded_allocno instead of print_coalesced_allocno.
9346         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
9347         parameter.
9348
9349         * ira.c: Remove comment about coalescing.
9350
9351 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9352
9353         * config/mips/mips.h (target_flags_explicit): Declare for
9354         GENERATOR_FILE.
9355
9356 2010-10-04  Andi Kleen  <ak@linux.intel.com>
9357
9358         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
9359         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
9360
9361 2010-10-04  Matthias Klose  <doko@ubuntu.com>
9362
9363         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
9364         multilib osdirname if it exists.
9365         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
9366
9367 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9368
9369         PR middle-end/45876
9370         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
9371         arg0's type or its unsigned counterpart as utype.  Convert
9372         arg1 to utype unconditionally.
9373
9374 2010-10-04  Julian Brown  <julian@codesourcery.com>
9375
9376         * expr.c (expand_assignment): Add assertion to prevent emitting
9377         null rtx for movmisalign pattern.
9378         (expand_expr_real_1): Likewise.
9379         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
9380         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
9381         (arm_vector_alignment_reachable): New.
9382         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
9383         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
9384         (arm_print_operand): Include alignment qualifier in %A.
9385         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
9386         (movmisalign<mode>): New expander.
9387         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
9388         insn patterns.
9389
9390 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9391
9392         * optc-gen.awk: Define global_options_set.  Don't define
9393         target_flags_explicit.
9394         * opth-gen.awk: Declare global_options_set.  Define
9395         target_flags_explicit as macro.
9396         * opts-common.c (handle_option): Take opts_set and generated_p
9397         parameters.
9398         (handle_generated_option, read_cmdline_option, set_option): Take
9399         opts_set parameter.
9400         (set_option): Use opts_set instead of hardcoding target_flags and
9401         target_flags_explicit.
9402         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
9403         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
9404         flag_value_profile_transformations_set, flag_peel_loops_set,
9405         flag_branch_probabilities_set, flag_inline_functions_set,
9406         flag_ipa_cp_set, flag_ipa_cp_clone_set,
9407         flag_predictive_commoning_set, flag_unswitch_loops_set,
9408         flag_gcse_after_reload_set): Remove.
9409         (common_handle_option, lang_handle_option, target_handle_option):
9410         Take opts_set parameter.  Assert that it is &global_options_set.
9411         (common_handle_option): Don't set _set variables.  Check opts_set
9412         instead of such variables.
9413         (enable_warning_as_error): Pass &global_options_set to
9414         handle_generated_option.
9415         * opts.h (cl_option_handler_func.handler, set_option,
9416         handle_option, handle_generated_option, read_cmdline_option): Add
9417         opts_set parameters.
9418         (handle_option): Add generated_p parameter.
9419         * config/i386/i386.c (ix86_function_specific_save,
9420         ix86_function_specific_restore): Updat for renaming of
9421         target_flags_explicit field.
9422         * config/i386/i386.opt (target_flags_explicit): Rename to
9423         ix86_target_flags_explicit.
9424         * config/ia64/ia64.c (ia64_override_options_after_change): Check
9425         global_options_set.x_flag_selective_scheduling and
9426         global_options_set.x_flag_selective_scheduling2, not
9427         sel_sched_switch_set.
9428         * flags.h (sel_sched_switch_set,
9429         flag_speculative_prefetching_set): Remove.
9430         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
9431         that it is &global_options_set.
9432         (process_command): Pass &global_options_set to read_cmdline_option.
9433         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
9434         set_option.
9435         * toplev.c (target_flags_explicit): Remove.
9436
9437 2010-10-04  Jan Hubicka  <jh@suse.cz>
9438
9439         PR middle-end/45871
9440         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
9441         use get_ref_base_and_offset to handle references.
9442         (fold_const_aggregate_ref): Update.
9443
9444 2010-10-04  Martin Jambor  <mjambor@suse.cz>
9445
9446         PR tree-optimization/45572
9447         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
9448         ipa_check_create_node_params.
9449         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
9450
9451 2010-10-04  Yao Qi  <yao@codesourcery.com>
9452
9453         * doc/passes.texi: Clean up.
9454
9455 2010-10-03  Ian Lance Taylor  <iant@google.com>
9456
9457         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
9458         referring to a field using a typedef name.
9459         (find_anonymous_field_with_type): New static function.
9460         (convert_to_anonymous_field): New static function.
9461         (convert_for_assignment): If -fplan9-extensions, permit converting
9462         pointer to struct to pointer to anonymous field.
9463         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
9464         (is_duplicate_field): New static function.
9465         (detect_field_duplicates_hash): If -fplan9-extensions, check for
9466         typedef names duplicating field names.
9467         (detect_field_duplicates): Likewise.
9468         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
9469         (C Dialect Options): Document -fplan9-extensions.
9470         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
9471
9472 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
9473
9474         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
9475         revision 164914.
9476         (vect_create_data_ref_ptr): Likewise.
9477         * tree-vect-stmts.c (vectorizable_store): Likewise.
9478         (perm_mask_for_reverse): Likewise.
9479         (reverse_vec_elements): Likewise.
9480         (vectorizable_load): Likewise.
9481
9482 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9483
9484         * cppbuiltin.c: New file.
9485         * cppbuiltin.h: New file.
9486         * Makefile.in: Take into account cppbuiltin.{h,c}.
9487
9488 2010-10-03  Andi Kleen  <ak@linux.intel.com>
9489
9490         * lto-cgraph.c (input_cgraph): Check for missing sections.
9491
9492 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
9493
9494         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
9495         to nonimmediate_operand.  Force operand 2 to register when allowed.
9496         (*<shiftrt_insn><mode>3_mask): Ditto.
9497         (*<rotate_insn><mode>3_mask): Ditto.
9498
9499 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
9500
9501         PR tree-optimization/45720
9502         PR tree-optimization/45764
9503         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
9504         Don't accept backwards consecutive accesses.
9505         (vect_create_data_ref_ptr): Disallow negative steps.
9506
9507         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
9508         (perm_mask_for_reverse): Removed.
9509         (reverse_vec_elements): Likewise.
9510         (vectorizable_load): Don't handle negative steps.
9511
9512 2010-10-02  Jan Hubicka  <jh@suse.cz>
9513
9514         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
9515         call destination is known.
9516
9517 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9518
9519         PR target/45820
9520         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
9521         earlier.
9522
9523 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9524
9525         * doc/install.texi (Configuration): Document build_configargs,
9526         host_configargs, target_configargs.
9527
9528 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
9529
9530         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
9531         (*<shiftrt_insn><mode>3_mask): Ditto.
9532         (*<rotate_insn><mode>3_mask): Ditto.
9533
9534 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
9535
9536         PR tree-optimization/44716
9537         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
9538         (HOT_TEXT_SECTION_NAME): Define.
9539
9540 2010-10-01  Nick Clifton  <nickc@redhat.com>
9541
9542         * common.opt: Add -fcombine-stack-adjustments.
9543         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
9544         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
9545         flag_combine_stack_adjustments.
9546         * doc/invoke.texi: Document the new option.
9547
9548 2010-10-01  Richard Guenther  <rguenther@suse.de>
9549
9550         PR tree-optimization/45854
9551         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
9552
9553 2010-10-01  Anthony Green  <green@moxielogic.com>
9554
9555         * config.gcc: Fix moxie-*-rtems* configuration.
9556
9557 2010-10-01  Richard Guenther  <rguenther@suse.de>
9558
9559         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
9560         (gen_decl_die): Likewise.
9561
9562 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9563
9564         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
9565         to the function code for SPU MD builtins.
9566         (spu_expand_builtin): Update.
9567         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
9568
9569 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9570
9571         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
9572         sjlj_except_unwind_info.
9573
9574 2010-10-01  Tristan Gingold  <gingold@adacore.com>
9575
9576         * configure.ac: Define the nop insn for avr*-*-*
9577         * configure: Regenerate.
9578
9579 2010-10-01  Alan Modra  <amodra@gmail.com>
9580
9581         PR target/45807
9582         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
9583         extend toc_restore_insn.
9584
9585 2010-09-30  Richard Guenther  <rguenther@suse.de>
9586
9587         PR tree-optimization/43959
9588         * function.c (gimplify_parameters): Use create_tmp_reg instead of
9589         create_tmp_var.
9590
9591 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
9592
9593         * config/sh/sh.c (sh_expand_prologue): Set
9594         current_function_static_stack_size.
9595
9596 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9597
9598         * configure.ac: Check for Solaris 8 ld with .hidden support.
9599         * configure: Regenerate.
9600
9601 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9602
9603         PR middle-end/45758
9604         * graphite.c (graphite_initialize): Call scev_reset.
9605
9606 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9607
9608         * sese.h (scev_analyzable_p): Return false for real or floating
9609         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
9610
9611 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9612
9613         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
9614         and ps.
9615         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
9616         domain.
9617         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
9618         Do not allocate ub_expr, it is passed in initialized.
9619
9620 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9621
9622         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
9623         (build_cloog_prog): Dump CLooG input file when
9624         flag_graphite_dump_cloog is set.  This is disabled on trunk.
9625         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
9626
9627 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9628
9629         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
9630         verify_dominators for CDI_POST_DOMINATORS.
9631         * sese.h: Remove comment about CDI_POST_DOMINATORS.
9632         (recompute_all_dominators): Remove call to free_dominance_info
9633         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
9634         for CDI_POST_DOMINATORS.
9635
9636 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9637
9638         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
9639         over pbb_dim_iter_domain.
9640
9641 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9642
9643         * graphite-flattening.c: Fix comments.
9644
9645 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9646
9647         * Makefile.in (OBJS-common): Add graphite-flattening.o.
9648         (graphite-flattening.o): New rule.
9649         * common.opt (floop-flatten): New flag.
9650         * doc/invoke.texi (-floop-flatten): Documented.
9651         * graphite-flattening.c: New.
9652         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
9653         * graphite-poly.h (flatten_all_loops): Declared.
9654         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
9655         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
9656         is set, also set flag_graphite.
9657
9658 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9659
9660         * graphite-poly.c (cloog_checksum): New.
9661         * graphite-poly.h (cloog_checksum): Declared.
9662
9663 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9664
9665         * graphite-poly.c (pbb_number_of_iterations): Removed.
9666         (pbb_number_of_iterations_at_time): Correctly compute the number
9667         of iterations in the transformed loop.
9668         * graphite-poly.h (pbb_number_of_iterations): Removed.
9669
9670 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9671
9672         * graphite-poly.h (lst_update_scattering_seq): Removed.
9673         (lst_update_scattering): Correctly handle outermost loop dewey
9674         renumbering.
9675
9676 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9677
9678         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
9679         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
9680         * graphite-poly.h (lst_niter_for_loop): New.
9681
9682 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9683
9684         * graphite-poly.c (apply_poly_transforms): Do not abort when the
9685         transform read from disk is not legal.  Call fatal_error instead.
9686
9687 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9688
9689         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
9690         (print_scop_header): Removed.  Inlined in the only call place...
9691         (print_scop): ... here.
9692
9693 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9694
9695         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
9696
9697 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9698
9699         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
9700
9701 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9702
9703         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
9704         (dot_deps_stmt): Same.
9705         * graphite-poly.c (dot_lst): Same.
9706
9707 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9708
9709         * graphite-blocking.c (scop_do_strip_mine): Do not call
9710         graphite_legal_transform.
9711         (scop_do_block): Same.
9712
9713 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9714
9715         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
9716         description.
9717
9718 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9719
9720         * tree-scalar-evolution.c (instantiate_array_ref): New.
9721         (instantiate_scev_r): Also handle ARRAY_REFs.
9722
9723 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9724
9725         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
9726         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
9727         RESULT_DECL, and FIELD_DECL.  Return false for an
9728         SSA_NAME_IS_DEFAULT_DEF.
9729         (compute_scalar_evolution_in_loop): Do not further analyze the
9730         scalar evolution when no_evolution_in_loop_p returns true.
9731
9732 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9733
9734         * tree-chrec.h (evolution_function_is_affine_p): Do not check
9735         whether CHREC_LEFT is invariant.  A function is affine when
9736         CHREC_RIGHT is invariant.
9737
9738 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9739
9740         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
9741         is_gimple_reg.
9742         (rewrite_degenerate_phi): Same.
9743         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
9744
9745 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9746
9747         * graphite-scop-detection.c (graphite_can_represent_scev,
9748         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
9749         graphite_can_represent_loop): Remove outermost_loop.
9750
9751 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9752
9753         PR middle-end/45229
9754         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
9755         handle GIMPLE_CALLs with no LHS.
9756
9757 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9758
9759         * graphite-poly.c (init_graphite_out_file): New.
9760         (init_graphite_in_file): New.
9761         (apply_poly_transforms): Updated to enable reading and writing of
9762         multiple scop files.
9763
9764 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
9765
9766         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
9767         redundant checks.
9768
9769 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9770
9771         * graphite-clast-to-gimple.c (precision_for_value): Adjust
9772         computation of precision by 1.
9773
9774 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9775
9776         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
9777         (openscop_read_polyhedron_matrix): New.
9778         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
9779         (openscop_read_N_int): Same.
9780         * graphite-poly.c (openscop_read_N_int): New.
9781         (openscop_read_one_int): New.
9782         (openscop_read_N_string): New.
9783         (openscop_read_one_string): New.
9784         (openscop_read_powerset_matrix): New.
9785         (graphite_read_transforms): Remove.
9786         (graphite_read_scatt): New.
9787         (graphite_read_scop_file): New.
9788         (apply_poly_transforms): Updated to call graphite_read_scop_file.
9789
9790 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9791
9792         * graphite-poly.c: Change include order.
9793
9794 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9795
9796         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
9797         (cloog_matrix_nrows): New.
9798
9799 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9800
9801         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
9802         from matrix lines.
9803         * graphite-poly.c (openscop_print_scattering_function_1): Same.
9804         (print_scattering_function_1): Same.
9805         (openscop_print_pbb_domain): Same.
9806         (openscop_print_scop_context): Same.
9807         (print_scop_context): Same.
9808
9809 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
9810
9811         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
9812         (openscop_print_pdr_polyhedron): Print pph.
9813
9814 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9815
9816         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
9817         priority signed types.
9818
9819 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9820
9821         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
9822         the call to lang_hooks.types.type_for_size.  Call
9823         build_nonstandard_integer_type.
9824
9825 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9826
9827         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
9828         (openscop_print_polyhedron_matrix): New.
9829         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
9830         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
9831         (openscop_print_pdr_powerset): New.
9832         (openscop_print_powerset_matrix): New.
9833         (openscop_print_scattering_function_1): New.
9834         (print_scattering_function): Add support for scattering names and
9835         OpenScop format.
9836         (graphite_write_transforms): Remove.
9837         (print_pdr_access_layout): Updated to support OpenScop format.
9838         (print_pdr): Same.
9839         (openscop_print_pbb_domain): New.
9840         (print_pbb_body): Added a parameter to allow indicating that pbb_body
9841         is not provided.
9842         (print_pbb): Updated to call the new print_pbb_body.
9843         (openscop_print_scop_context): New.
9844         (print_scop_header): New.
9845         (print_scop): Updated to call print_scop_header.
9846         * graphite-poly.h: Document OpenScop format.
9847
9848 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
9849
9850         * config/cris/m32c.c (cris_memory_move_cost): New.
9851         (cris_register_move_cost): Make static. Change arguments type from
9852         enum reg_class to reg_class_t.
9853         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
9854         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9855         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
9856
9857 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9858
9859         PR target/45843
9860         * config/i386/i386.c (ix86_gimplify_va_arg): Use
9861         INTVAL (XEXP (slot, 1)) as prev_size.
9862
9863 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
9864
9865         PR target/45837
9866         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
9867         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
9868         defined.
9869         * config/rs6000/option-defaults.h (toplevel): Change #if
9870         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
9871         global option changes.
9872
9873 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9874
9875         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
9876
9877         PR tree-optimization/31261
9878         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
9879         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
9880
9881 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9882
9883         PR bootstrap/45796
9884         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
9885         special-casing for generators and turn into ...
9886         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
9887         rule, for better error messages in case of toplevel dependency errors.
9888         (genprog): Add hooks, rename to ...
9889         (genprogerr): ... this, and let genprog also contain check,
9890         checksum, condmd.
9891         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
9892         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
9893         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
9894
9895 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
9896             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9897
9898         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
9899         for GMP, MPFR and MPC.
9900
9901 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9902
9903         * config/sparc/sparc.opt (mimpure-text): Move ...
9904         * config/sol2.opt: ... here.  Correct description.
9905         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
9906         * doc/invoke.texi (Option Summary, SPARC Options): Move
9907         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
9908         (Option Summary, Solaris 2 Options): ... here.
9909         (Submodel Options, Solaris 2 Options): New menu entry.
9910         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
9911         (Solaris 2 Options): ... here.
9912
9913 2010-09-30  Michael Eager  <eager@eagercon.com>
9914
9915         * extend.texi (interrupt_handler): Add MicroBlaze to list.
9916         (save_volatiles): Describe option for MicroBlaze.
9917         * invoke.texi: Add MicroBlaze Options.
9918         * contrib.texi: Add acknowledgment.
9919         * md.texi: Add MicroBlaze d and z constraints.
9920         * install.texi: Add microblaze-*-elf.
9921         * configure.ac: Add microblaze-*-* to target list.
9922         * configure: Regenerate.
9923         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
9924         * config/microblaze/microblaze-protos.h: New.
9925         * config/microblaze/crti.s: New.
9926         * config/microblaze/predicates.md: New.
9927         * config/microblaze/linux.h: New.
9928         * config/microblaze/microblaze.md: New.
9929         * config/microblaze/constraints.md: New.
9930         * config/microblaze/crtn.s: New.
9931         * config/microblaze/microblaze.opt: New.
9932         * config/microblaze/microblaze-c.c: New.
9933         * config/microblaze/t-microblaze: New.
9934         * config/microblaze/microblaze.c: New.
9935         * config/microblaze/microblaze.h: New.
9936
9937 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
9938
9939         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
9940         parse @optional/@required and set the flags as appropriate.
9941
9942 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
9943
9944         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
9945
9946 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
9947
9948         * opt-functions.awk (static_var): Update comment.
9949         (var_ref): Return offsetof expression or -1, not variable address.
9950         * optc-gen.awk: Generate structure field initializers instead of
9951         static variables.  Expect -1 for missing variables instead of null
9952         pointer.  Add gcc_options parameters to generated functions.
9953         * opth-gen.awk: Generate structure fields for static variables.
9954         Add gcc_options parameters to generated functions.
9955         * common.opt (optimize, optimize_size): Add variables.
9956         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
9957         &global_options to cl_target_option_restore.
9958         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
9959         &global_options to cl_optimization_restore, cl_target_option_save
9960         and cl_target_option_restore.
9961         (ix86_set_current_function): Pass &global_options to
9962         cl_target_option_restore.
9963         * config/pdp11/pdp11.h (optimize): Remove.
9964         * config/rs6000/rs6000.h (optimize): Remove.
9965         * config/sh/sh.h (optimize): Remove.
9966         * config/xtensa/xtensa.h (optimize): Remove.
9967         * coretypes.h (struct gcc_options): Declare.
9968         * diagnostic.c (diagnostic_initialize): Initialize
9969         context->option_state.
9970         (diagnostic_report_diagnostic): Pass option_state to
9971         option_enabled hook.
9972         * diagnostic.h (diagnostic_context.option_enabled): Add void *
9973         parameter.
9974         (diagnostic_context.option_state): New field.
9975         * final.c (final_start_function, final, final_scan_insn): Rename
9976         optimize parameter to optimize_p.
9977         * flags.h (optimize, optimize_size): Remove.
9978         * function.c (invoke_set_current_function_hook): Pass
9979         &global_options to cl_optimization_restore.
9980         * gcc.c (driver_handle_option): Take gcc_options parameter.
9981         Assert that it is &global_options.
9982         (process_command): Pass &global_options to read_cmdline_option.
9983         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
9984         option_enabled.
9985         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
9986         &global_options to set_option.
9987         * opts-common.c (handle_option, handle_generated_option,
9988         read_cmdline_option, set_option): Take explicit gcc_options
9989         parameters.  Use option_flag_var.
9990         (option_flag_var): New.
9991         * opts.c (common_handle_option, lang_handle_option,
9992         target_handle_option): Take gcc_options parameter.  Assert that it
9993         is &global_options.
9994         (read_cmdline_options): Pass &global_options to read_cmdline_option.
9995         (print_filtered_help): Use option_flag_var.  Pass &global_options
9996         to option_enabled.
9997         (common_handle_option): Use option_flag_var.
9998         (option_enabled): Take opts parameter.  Use option_flag_var.
9999         (get_option_state): Take gcc_options parameter.  Use
10000         option_flag_var.  Pass gcc_options parameter to option_enabled.
10001         (enable_warning_as_error): Pass &global_options to
10002         handle_generated_option.
10003         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
10004         (cl_option_handler_func.handler): Take gcc_options parameter.
10005         (option_enabled, get_option_state, set_option, handle_option,
10006         handle_generated_option, read_cmdline_option): Take gcc_options
10007         parameters.
10008         * toplev.c (optimize, optimize_size): Remove.
10009         (print_switch_values): Pass &global_options to option_enabled.
10010         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
10011         to get_option_state.
10012         (general_init): Initialize global_dc->option_state.
10013         * tree.c (build_optimization_node): Pass &global_options to
10014         cl_optimization_save.
10015         (build_target_option_node): Pass &global_options to
10016         cl_target_option_save.
10017
10018 2010-09-30  Martin Jambor  <mjambor@suse.cz>
10019
10020         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
10021         zero sized bit-fields.
10022
10023 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
10024
10025         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
10026         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
10027         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
10028         (c_parser_objc_class_declaration): Same change.
10029         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
10030         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
10031         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
10032         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
10033         and RID_AT_PUBLIC instead of RID_PUBLIC.
10034         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
10035         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
10036
10037 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
10038
10039         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
10040         Add links to current providers of packages for Solaris and IRIX.
10041
10042 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10043
10044         Merge from 'apple/trunk' branch on FSF servers.
10045         * c-parser.c: Applied change originally in c-parse.in.
10046
10047         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
10048
10049         Radar 4281748
10050         * c-decl.c (start_decl): Check for redeclaration of class name.
10051         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
10052
10053 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
10054
10055         * config/ia64/ia64.c (ia64_builtin_decl): New.
10056         (TARGET_BUILTIN_DECL): Define.
10057         (ia64_builtins): New.
10058         (ia64_init_builtins): Save decls in ia64_builtins.
10059
10060 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
10061
10062         PR target/40457
10063         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
10064         (move2add_use_add3_insn): Likewise.
10065         (reload_cse_move2add): Likewise.
10066         * rtlanal.c (get_full_rtx_cost): New function.
10067         * rtl.h (struct full_rtx_costs): New.
10068         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
10069         costs_add_n_insns): New inline functions.
10070         (get_full_rtx_cost): Declare.
10071
10072         PR c/45054
10073         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
10074         invariants.  Check for reg_equiv_invariant.
10075         (reload): Assert that spilled_pseudos is empty when returning.
10076
10077 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
10078
10079         * config/i386/mingw32.h (TARGET_64BIT): replaced by
10080         TARGET_64BIT_DEFAULT in #if check.
10081
10082 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
10083
10084         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
10085
10086 2010-09-29  Mike Stump  <mikestump@comcast.net>
10087
10088         * config/darwin.h (flag_mkernel): Remove.
10089         (flag_apple_kext): Likewise.
10090
10091 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10092             Jack Howarth  <howarth@bromo.med.uc.edu>
10093
10094         * config/darwin.opt (undefined): Add.
10095
10096 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
10097
10098         PR testsuite/45664
10099         * configure.ac: Add --enable-indirect-function option.
10100         * config.gcc: Add default_gnu_indirect_function.
10101         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
10102         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
10103         * varasm.c (do_assemble_alias): Adjust for macro name change.
10104         * configure: Rebuilt.
10105         * doc/install.texi: Document --enable-indirect-function.
10106
10107 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10108
10109         * doc/options.texi (Variable, Var, Init): Update documentation
10110         without reference to VarExists.
10111         (VarExists): Remove.
10112         * common.opt, config/i386/i386.opt, config/linux.opt,
10113         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
10114         Don't use VarExists.
10115
10116 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10117
10118         * optc-gen.awk: Generate global_options initializer instead of
10119         individual variables.  Add x_ prefix to names of structure members.
10120         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
10121         names of structure members.
10122         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10123         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
10124         * doc/tm.texi: Regenerate.
10125         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10126         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10127         * c-parser.c (disable_extension_diagnostics,
10128         restore_extension_diagnostics): Update names of cpp_options members.
10129         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10130         * common.opt (fcompare-debug-second): Don't use Var.
10131         * config/alpha/alpha.h (target_flags): Remove.
10132         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10133         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10134         * config/bfin/bfin.h (target_flags): Remove.
10135         * config/cris/cris.h (target_flags): Remove.
10136         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
10137         cl_target_option members.
10138         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
10139         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
10140         ix86_can_inline_p): Update names of cl_target_option members.
10141         * config/i386/i386.h (ix86_isa_flags): Remove.
10142         * config/lm32/lm32.h (target_flags): Remove.
10143         * config/mcore/mcore.h (mcore_stack_increment): Remove.
10144         * config/mcore/mcore.md (addsi3): Remove extern declaration of
10145         flag_omit_frame_pointer.
10146         * config/mep/mep.h (target_flags): Remove.
10147         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10148         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10149         * config/mmix/mmix.h (target_flags): Remove.
10150         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
10151         flag_expensive_optimizations): Remove.
10152         * config/s390/s390.h (flag_pic): Remove.
10153         * config/score/score-conv.h (target_flags): Remove.
10154         * config/sh/sh.h (sh_fixed_range_str): Remove.
10155         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
10156         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10157         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10158         * diagnostic.c (diagnostic_initialize): Update names of
10159         diagnostic_context members.
10160         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
10161         warn_system_headers.
10162         (diagnostic_report_warnings_p): Update for new names.
10163         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10164         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
10165         HARD_FRAME_POINTER_IS_ARG_POINTER.
10166         * flags.h (flag_compare_debug): Declare.
10167         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10168         * opts.c (flag_compare_debug): Define.
10169         (common_handle_option): Update names of diagnostic_context
10170         members.  Handle -fcompare-debug-second.
10171         (fast_math_flags_struct_set_p): Update names of cl_optimization
10172         members.
10173         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10174         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10175         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10176         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10177         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10178         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10179         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
10180         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10181         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10182
10183 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
10184
10185         * config/picochip/picochip.c (picochip_output_internal_label):
10186         This function can now be called for debug CFI labels, which can come
10187         in the middle of a vliw instruction.  Postpone until end of vliw.
10188
10189 2010-09-29  Richard Guenther  <rguenther@suse.de>
10190
10191         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
10192         (DECL_FILE_SCOPE_P): Use it.
10193         (TYPE_FILE_SCOPE_P): New macro.
10194
10195 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10196
10197         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
10198         a CPP_NAME which is a reserved word, clearly separate cases for
10199         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
10200
10201 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10202
10203         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
10204         token->value with the canonical spelling.  Do exactly like C and
10205         C++ and leave it as it is.
10206
10207 2010-09-28  Richard Henderson  <rth@redhat.com>
10208
10209         * config/alpha/alpha.c (alpha_builtins): New.
10210         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
10211         (alpha_builtin_function): New.
10212         (alpha_add_builtins, alpha_init_builtins): Use it.
10213
10214 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
10215
10216         * doc/standards.texi (Standards): Expanded the section on
10217         Objective-C and Objective-C++.
10218
10219 2010-09-28  DJ Delorie  <dj@redhat.com>
10220
10221         PR target/45800
10222         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
10223         volatile MEMs.
10224
10225 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10226
10227         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
10228         attributes on methods.
10229          (c_parser_objc_method_definition): Handle attributes.
10230         (c_parser_objc_methodproto): Likewise.
10231         (c_parser_objc_maybe_method_attributes): New.
10232         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
10233         missing definition, similar to that in ObjC++.
10234
10235 2010-09-28  Richard Henderson  <rth@redhat.com>
10236
10237         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
10238         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10239         (CONFIG_SJLJ_EXCEPTIONS): Remove.
10240         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
10241         (STACK_CHECK_PROTECT): Likewise.
10242         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
10243         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
10244         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
10245         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
10246         (dwarf2out_assembly_start): Likewise.
10247         * except.c (init_eh): Use targetm.except_unwind_info.
10248         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
10249         (output_one_function_exception_table): Likewise.
10250         * final.c: Unconditionally include dwarf2out.h.
10251         (final_start_function): Unconditionally call dwarf2out routines.
10252         (final_end_function, final_scan_insn): Likewise.
10253         * function.c (expand_function_end): Use targetm.except_unwind_info.
10254         * opts.c (decode_options): Use targetm.except_unwind_info.
10255         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
10256         * target.def (debug_unwind_info, except_unwind_info): New.
10257         * target.h (enum unwind_info_type): New.
10258         * targhooks.c (default_debug_unwind_info): New.
10259         (default_except_unwind_info): New.
10260         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
10261         * targhooks.h: Declare them.
10262         * tree-tailcall.c: Include "target.h"
10263         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
10264         * Makefile.in (tree-tailcall.o): Update.
10265         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
10266         (lhd_gcc_personality): Likewise.
10267
10268         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
10269         (TARGET_EXCEPT_UNWIND_INFO): New.
10270         (DWARF2_UNWIND_INFO): Update.
10271         (TARGET_DEBUG_UNWIND_INFO): New.
10272         * doc/tm.texi: Rebuild.
10273
10274         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
10275         targetm.except_unwind_info.
10276
10277         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
10278         (arm_except_unwind_info): New.
10279         (arm_compute_func_type): Use it.
10280         (arm_expand_prologue, thumb_pushpop): Likewise.
10281         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
10282         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
10283         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
10284         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
10285         (DWARF2_UNWIND_INFO): Remove.
10286         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10287         (ARM_EABI_UNWIND_TABLES): Remove.
10288
10289         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
10290         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
10291         (ia64_except_unwind_info): New.
10292         (ia64_output_function_prologue): Use it.
10293         (ia64_add_bundle_selector_before): Likewise.
10294         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
10295         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
10296         (TARGET_UNWIND_INFO): Remove.
10297
10298         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
10299
10300 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10301
10302         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
10303         (c_parser_objc_protocol_definition): Likewise.
10304         (c_parser_external_declaration): Provide dummy attribute arguments.
10305         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
10306         (c_parser_objc_class_definition): Handle attributes.
10307         (c_parser_objc_protocol_definition): Likewise.
10308
10309 2010-09-28  Tobias Burnus  <burnus@net-b.de>
10310
10311         PR fortran/40569
10312         PR fortran/40568
10313         * toplev.h (save_decoded_options, save_decoded_options_count):
10314         New global variables.
10315         * toplev.c (save_decoded_options, save_decoded_options_count):
10316         Export variables.
10317
10318 2010-09-28  Ian Lance Taylor  <iant@google.com>
10319
10320         * config/i386/i386.c (ix86_supports_split_stack): Test
10321         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
10322
10323 2010-09-28  Ian Lance Taylor  <iant@google.com>
10324
10325         PR target/45815
10326         * opts.c (decode_options): Don't test whether the target supports
10327         split stack if flag_split_stack == 0.
10328
10329 2010-09-28  Jan Hubicka  <jh@suse.cz>
10330
10331         * builtin-attrs.def (ATTR_LEAF): New attribute.
10332         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
10333         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
10334         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
10335         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
10336         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
10337         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
10338         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
10339         * sync-builtins.def: Annotate all builtins by leaf.
10340         * omp-builtins.def: Annotate all builtins by leaf.
10341         * builtins.def: Annotate relevant builtins with leaf attribute.
10342         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
10343         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
10344         leaf.
10345
10346 2010-09-28  Jan Hubicka  <jh@suse.cz>
10347
10348         * tree-ssa-ccp.c (fold_ctor_reference): New function.
10349         (fold_const_aggregate_ref): Use it.
10350         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
10351         into external static.
10352
10353 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10354
10355         PR target/44452
10356         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
10357         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
10358         (ix86_solaris_return_in_memory): Remove.
10359         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
10360         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10361         (TARGET_SUBTARGET_DEFAULT): Redefine.
10362         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
10363         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10364         (TARGET_SUBTARGET_DEFAULT): Redefine.
10365         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
10366         -mvect8-ret-in-mem.
10367         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
10368
10369 2010-09-29  Alan Modra  <amodra@gmail.com>
10370
10371         PR target/45807
10372         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
10373         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
10374         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
10375         Delete.
10376         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
10377         (rs6000_emit_prologue): Don't just create frame save info for r2,
10378         actually save r2.
10379
10380 2010-09-28  Richard Henderson  <rth@redhat.com>
10381
10382         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
10383         when 8 bytes are requested.
10384
10385 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10386
10387         * config/avr/avr.c (expand_prologue): Set
10388         current_function_static_stack_size.
10389
10390 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10391
10392         * config/alpha/alpha.md: Change the initial condition of the
10393         probing loop.
10394
10395 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
10396
10397         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
10398         Split from *avx_<maxmin:code><mode>3.
10399         (*avx_<smaxmin:code><mode>3): Ditto.
10400         * config/i386/i386.md (maxmin): Remove code iterator.
10401
10402 2010-09-27  Ian Lance Taylor  <iant@google.com>
10403
10404         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
10405         requires assembler support for CFI directives.
10406
10407 2010-09-27  Richard Henderson  <rth@redhat.com>
10408
10409         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
10410
10411 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10412
10413         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
10414         that AFTER is not in the range FROM..TO, inclusive.
10415
10416 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10417             Bernd Schmidt  <bernds@codesourcery.com>
10418
10419         PR rtl-optimization/45792
10420         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
10421         If not all insns are to be merged, for each edge, stash the
10422         next candidate after the to-be-merged insns before doing the
10423         merge, and use them for the retry at the new insertion point.
10424         Handle CC0 targets when retrying.
10425
10426 2010-09-27  Ian Lance Taylor  <iant@google.com>
10427
10428         * common.opt (fsplit-stack): New option.
10429         * opts.c (decode_options): Set flag_split_stack to final value.
10430         * target.def (supports_split_stack): New hook.
10431         * gcc.c (STACK_SPLIT_SPEC): Define.
10432         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
10433         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
10434         (Code Gen Options): Document -fsplit-stack.
10435         * doc/extend.texi (Function Attributes): Mention no_split_stack.
10436         (Function Attributes): Document no_split_stack.
10437         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
10438         TARGET_SUPPORTS_SPLIT_STACK.
10439         * doc/tm.texi: Rebuild.
10440         * function.c (thread_prologue_and_epilogue_insns): If
10441         flag_split_stack, add split stack prologue.
10442         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
10443         * varasm.c (saw_no_split_stack): New static variable.
10444         (assemble_start_function): Set saw_no_split_stack if the function
10445         has the no_split_stack attribute.
10446         (file_end_indicate_split_stack): New function.
10447         * output.h (file_end_indicate_split_stack): Declare.
10448         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
10449         and function.
10450         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
10451         routines.
10452         * config/i386/i386.c (ix86_option_override_internal): Don't set
10453         expand_builtin_va_start to NULL if -fsplit-stack.
10454         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
10455         -fsplit-stack.
10456         (ix86_va_start): If -fsplit-stack, get overflow pointer from
10457         scratch register set by prologue.
10458         (ix86_code_end): If -fsplit-stack, call
10459         file_end_indicate_split_stack.
10460         (ix86_supports_split_stack): New static function.
10461         (SPLIT_STACK_AVAILABLE): Define.
10462         (split_stack_prologue_scratch_regno): New static function.
10463         (split_stack_fn): New static variable.
10464         (ix86_expand_split_stack_prologue): New function.
10465         (ix86_live_on_entry): New static function.
10466         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
10467         (output_pic_addr_const): Likewise.
10468         (i386_asm_output_addr_const_extra): Likewise.
10469         (ix86_expand_call): Change return type to rtx.  Return the new
10470         call instruction.
10471         (TARGET_SUPPORTS_SPLIT_STACK): Define.
10472         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
10473         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
10474         (split_stack_prologue, split_stack_return): New insns.
10475         (split_stack_space_check): New insn.
10476         * config/i386/i386.h (struct machine_function): Add
10477         split_stack_varargs_pointer field.
10478         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
10479         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10480         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
10481         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10482         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
10483         Declare.
10484         (ix86_expand_call): Update declaration.
10485
10486 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10487
10488         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
10489         code.  Added byref, which was missing in the list of codes.
10490         Explain that enumeration values are encoded as the integer type
10491         that the compiler uses to store them.  Explain and make examples
10492         of how 'const' interacts with pointers, and the complication of
10493         the encoding of 'const char *'.
10494         (Legacy type encoding): New subsection, explaining that GCC emits
10495         incorrect type encodings for the NeXT runtime for compatibility
10496         reasons.
10497         (@@encode): New subsection, explaining @encode and particularly
10498         that protocol qualifiers are not recognized inside an @encode()
10499         expression.
10500         (Method signatures): New subsection, explaining how method
10501         signatures are encoded.
10502
10503 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10504
10505         Merge from 'apple/trunk' branch on FSF servers.  Removed small
10506         change in build_conditional_expr that had been added when fixing
10507         PR objc/27377 and which did the same check in a less complete way.
10508
10509         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
10510
10511         Radar 4229905
10512         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
10513         looking for objective-c common pointer types.
10514
10515         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
10516
10517         Radar 4154928
10518         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
10519         use their ObjC common type.
10520
10521 2010-09-27  Richard Guenther  <rguenther@suse.de>
10522
10523         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
10524
10525 2010-09-27  Jie Zhang  <jie@codesourcery.com>
10526
10527         * print-tree.c (print_node): Print in-constant-pool.
10528
10529 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
10530
10531         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
10532         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
10533         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
10534         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
10535
10536 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10537
10538         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
10539         from pro_epilogue_adjust_stack_<mode>_{1,2}.
10540         (pro_epilogue_adjust_stack_<mode>_add): Rename from
10541         pro_epilogue_adjust_stack_<mode>_3.
10542         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
10543         renamed pro_epilogue_adjust_stack_{si,di}_add.
10544         (ix86_expand_prologue): Use indirect functions.  Update for renamed
10545         pro_epilogue_adjust_stack_{si,di}_sub.
10546
10547 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10548
10549         * config/i386/i386.md (movmsk_df): New insn.
10550         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
10551         sequence for TARGET_SSE_MATH.
10552
10553 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
10554
10555         * config/mips/mips.c (mips_builtin_decls): Declare.
10556         (mips_init_builtins): Store function declarations in
10557         mips_builtin_decls.
10558         (mips_builtin_decl): New function.
10559         (TARGET_BUILTIN_DECL): Define.
10560
10561 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
10562             Richard Henderson  <rth@redhat.com>
10563
10564         * config/i386/cygwin.asm: Include auto-host.h.
10565         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
10566         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
10567         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
10568         alignment code from the 64-bit path.  Use gas local labels.
10569         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
10570         from _di_2.  Remove the useless constant integer argument.
10571         (pro_epilogue_adjust_stack_<mode>_3): New.
10572         (allocate_stack_worker_probe_<mode>): Macroize from
10573         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
10574         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
10575         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
10576         (__chkstk_ms): New function.
10577         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
10578         * config/i386/t-interix: Likewise.
10579         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
10580         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
10581         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
10582         * configure, config.in: Rebuild.
10583
10584 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
10585
10586         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
10587         statements because of the return slot optimization.
10588
10589 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
10590
10591         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
10592         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
10593         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10594         (class_likely_spilled_p): Rename to...
10595         (avr_class_likely_spilled_p): ...this. Make static. Change argument
10596         type to reg_class_t.
10597
10598 2010-09-24  Jan Hubicka  <jh@suse.cz>
10599
10600         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
10601         (lto_symtab_resolve_symbols): Set it.
10602         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
10603         store resolution field in cgraph/varpool.
10604         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
10605         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
10606         (cgraph_dump_node): Drop used_from_object_file.
10607         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
10608         (cgraph_function_body_availability): Use decl_replaceable_p.
10609         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
10610         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
10611         cgraph_used_from_object_file_p.
10612         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
10613         cgraph_used_from_object_file_p.
10614         (resolution_used_from_other_file_p): New functoin.
10615         (cgraph_used_from_object_file_p): New predicate.
10616         * cgraph.h: Include plugin-api.h
10617         (struct cgraph_local_info): Remove used_from_object_file.
10618         (struct cgraph_node): Add resolution field.
10619         (struct varpool_node): Likewise; remove used_from_object_file;
10620         reove const_value_known.
10621         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
10622         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
10623         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
10624         varpool_used_from_object_file_p): Declare.
10625         (varpool_get_node, varpool_extra_name_alias): Update prototype.
10626         * tree.h (DECL_REPLACEABLE_P): Remove.
10627         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
10628         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
10629         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
10630         input_overwrite_node, input_node, input_varpool_node): Stream
10631         resolution.
10632         * expr.c (expand_expr_real_1): Use const_value_known_p
10633         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
10634         const_value_known.
10635         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
10636         (function_and_variable_visibility): Set resolution for local vars
10637         and functions; use varpool_used_from_object_file_p.
10638         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
10639         static functions.
10640         (default_binds_local_p_1): Use resolutoin info.
10641         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
10642         * varpool.c (varpool_get_node): Constify.
10643         (const_value_known_p): Do not use vnode->const_value_known;
10644         use decl_replaceable_p.
10645         (varpool_finalize_decl): Do not set const_value_known.
10646         (cgraph_variable_initializer_availability): Use decl_replaceable_p
10647         (varpool_extra_name_alias): Return new node.
10648         (varpool_used_from_object_file_p): New function.
10649
10650 2010-09-24  Richard Henderson  <rth@redhat.com>
10651
10652         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
10653         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
10654         (do_spill): Use REG_CFA_OFFSET.
10655         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
10656         as appropriate.
10657         (ia64_expand_epilogue): Likewise.
10658         (process_set): Split into ...
10659         (process_cfa_adjust_cfa): this,
10660         (process_cfa_register): this,
10661         (process_cfa_offset): and this new function.
10662         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
10663         instead of REG_FRAME_RELATED_EXPR.
10664
10665 2010-09-24  Olivier Hainque  <hainque@adacore.com>
10666
10667         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
10668
10669 2010-09-24  Jan Hubicka  <jh@suse.cz>
10670
10671         * doc/extend.texi: (attribute leaf): Document.
10672         * tree.c (local_define_builtin): Handle ECF_LEAF.
10673         (build_common_builtin_nodes): Set ECF_LEAF where needed.
10674         * tree.h (ECF_LEAF): New.
10675         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
10676         overwrittable and unavailable functions.
10677         (ipa_init): Put all_module_statics into optimization_summary_obstack.
10678         (copy_global_bitmap): Do not copy all_module_statics.
10679         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
10680         (propagate): Handle overwritable and unavailable leaf functions;
10681         initialize global info for overwritable and unavailable leaf functions;
10682         do not free all module statics.
10683         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
10684         local statics.
10685         * calls.c (flags_from_decl_or_type): Handle leaf.
10686         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
10687         abnormal gotos.
10688
10689 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
10690
10691         * gengtype.c: Reindented.
10692         * gengtype.h: Reindented.
10693         * gengtype-parse.c: Reindented.
10694
10695 2010-09-24  Jan Hubicka  <jh@suse.cz>
10696
10697         PR tree-optimization/45738
10698         PR tree-optimization/45741
10699         * expr.c (string_constant): Allow CONST_DECL too;
10700         check that DECL_INITIAL is set.
10701         * varpool.c (const_value_known_p): Only look into VAR_DECL
10702         and CONST_DECL.
10703
10704 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
10705
10706         * common.opt (undef): New.
10707
10708 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
10709
10710         PR middle-end/45234
10711         * rtl.h (enum global_rtl_index): Add
10712         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
10713         (LAST_VIRTUAL_POINTER_REGISTER): Define.
10714         (virtual_preferred_stack_boundary_rtx,
10715         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
10716         (LAST_VIRTUAL_REGISTER): Increase by one.
10717         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
10718         instead of LAST_VIRTUAL_REGISTER.
10719         * function.c (instantiate_new_reg): Handle
10720         virtual_preferred_stack_boundary_rtx.
10721         * emit-rtl.c (init_virtual_regs): Handle
10722         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10723         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
10724         * explow.c (round_push): If crtl->preferred_stack_boundary
10725         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
10726         virtual_preferred_stack_boundary_rtx alignment instead of
10727         crtl->preferred_stack_boundary alignment.
10728         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
10729         macros.  Never decrease crtl->preferred_stack_boundary,
10730         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
10731         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
10732         stack_pointer_delta in dynamic allocation, even when size
10733         is constant.
10734         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
10735         macro.
10736         * print-rtl.c (print_rtx): Handle
10737         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10738         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
10739         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
10740         * config/frv/frv.c (frv_emit_movsi): Likewise.
10741         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
10742         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
10743         Likewise.
10744
10745         Revert:
10746         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10747
10748         PR middle-end/45234
10749         * calls.c (expand_call): Make sure that all variable sized
10750         adjustments are multiple of preferred stack boundary after
10751         stack alignment.
10752
10753 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
10754             Dominique Dhumieres  <dominiq@lps.ens.fr>
10755
10756         PR bootstrap/45751
10757         * config/darwin-driver.c (darwin_default_min_version):
10758         Adjust size passed to memcpy in two places.
10759
10760 2010-09-24  Richard Guenther  <rguenther@suse.de>
10761
10762         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
10763         Make sure to not call set_type_context with error_mark_node.
10764         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
10765
10766 2010-09-24  Richard Guenther  <rguenther@suse.de>
10767
10768         * Makefile.in (OBJS-onestep): Remove.
10769         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
10770         (libbackend.a): Remove onestep support.
10771         (libbackend.o): Remove.
10772         * configure.ac (--enable-intermodule): Remove.
10773         * configure: Regenerate.
10774
10775 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
10776
10777         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
10778         reaching the end of a block if it occurs at a DEBUG_INSN.
10779
10780 2010-09-09  Tristan Gingold  <gingold@adacore.com>
10781
10782         PR target/44242
10783         * config/vms/vms-crt0-64.c: Removed.
10784         * config/vms/vms-crt0.c: Removed.
10785         * config/vms/vms-psxcrt0-64.c: Removed.
10786         * config/vms/vms-psxcrt0.c: Removed.
10787         * config/vms/vms-ucrt0.c: New file.
10788         * config/vms/t-vms64: Removed.
10789         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
10790         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
10791         * config.gcc (alpha-dec-vms): Use t-vms.
10792
10793 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10794
10795         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
10796         underfull hbox in DVI output.
10797         (-fobjc-class-cxx-cdtors): Same change.
10798         (-fobjc-exceptions): Tidied up documentation.  Explain what the
10799         option does, but moved the (lenghty) description of the exception
10800         syntax into objc.texi.
10801         (-fobjc-gc): Explain that the option is not useful with the GNU
10802         runtime.
10803         (-fzero-link): Explain that the GNU runtime always works in
10804         "zero-link" mode.
10805         * doc/objc.texi: All sections: simplified @node declarations
10806         removing specification of next, previous, up node.
10807         (Objective-C): Updated introduction.
10808         (Garbage Collection): Updated.  The bohem-gc library is now
10809         included in gcc itself.  Mention that this section only applies to
10810         the GNU Objective-C runtime.
10811         (compatibility_alias): Small tidy up.
10812         (Exceptions): New section mostly containing text previously in the
10813         description of the -fobjc-exception command-line option.
10814         (Synchronization): Same.
10815
10816 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
10817
10818         * config/i386/i386.md (ix86_code_end): Move the initialization of
10819         xops array near the consumer.  Use AX_REG and SP_REG instead of
10820         numerical constants.
10821
10822 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10823
10824         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
10825         method [methodname]' for an Objective-C method instead of the less
10826         satisfactory 'too many arguments to function' (with no method name).
10827
10828 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
10829
10830         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
10831         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
10832         (execute_update_addresses_taken): Remove parameter.  Execute the
10833         optimization unconditionally.
10834         * passes.c (execute_function_todo): Call execute_update_addresses_taken
10835         unconditionally if TODO_rebuild_alias is set, else only when optimizing
10836         if TODO_update_address_taken is set.
10837
10838 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
10839
10840         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10841         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
10842         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10843         (arm_output_addr_const_extra): Make static.
10844
10845 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
10846
10847         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
10848         define as unspec_volatile.
10849         ("nops"): Define as unspec_volatile. Use fputs to write to
10850         asm_out_file directly.  Output NOPs on separate lines using while loop.
10851         * config/i386/i386.c (ix86_code_end): Use fputs to write to
10852         asm_out_file directly.  Output NOPs on separate lines using while loop.
10853
10854 2010-09-23  Richard Guenther  <rguenther@suse.de>
10855
10856         PR tree-optimization/45565
10857         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
10858         Make sure to adjust the fndecl before replacing the stmt.
10859
10860 2010-09-23  Richard Guenther  <rguenther@suse.de>
10861
10862         PR middle-end/45750
10863         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
10864         gimplifying MEM_REF.
10865
10866 2010-09-23  Alan Modra  <amodra@gmail.com>
10867
10868         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
10869         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
10870
10871 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
10872
10873         PR rtl-optimization/44374
10874         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
10875         * df-core.c (df_set_bb_dirty): Set it.
10876         * ifcvt.c (find_memory): Remove function.
10877         (dead_or_predicable): Use can_move_insns_across.
10878         * df.h (can_move_insns_across): Declare function.
10879         * cfgcleanup.c (block_was_dirty): New static variable.
10880         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
10881         than df_get_bb_dirty.
10882         (try_head_merge_bb): New static function.
10883         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
10884         is set.
10885         * df-problems.c: Include "target.h"
10886         (df_simulate_find_uses): New static function.
10887         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
10888         (find_memory, find_memory_store): New static functions.
10889         (can_move_insns_across): New function.
10890         * Makefile.in (df-problems.o): Update dependencies.
10891
10892 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10893
10894         PR java/44095
10895         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
10896         is specified and the suffix of the file isn't ".c".
10897         * config/sparc/linux64.h (ASM_SPEC): Likewise.
10898
10899 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10900
10901         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
10902         * doc/cppopts.texi: Fix markup of index entry.
10903         * doc/extend.texi (Constructing Calls): Fix markup of
10904         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
10905         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
10906         (Vague Linkage, C++ Attributes): Fix markup of index entries and
10907         keywords.
10908         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
10909         avoid long lines.
10910         (C Dialect Options, C++ Dialect Options, Warning Options)
10911         (Debugging Options, Spec Files, Darwin Options)
10912         (i386 and x86-64 Options, MIPS Options)
10913         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
10914         index entries, avoid abbreviations, allow URLs to wrap, avoid
10915         long lines, avoid overlong pages from long @itemx lists.
10916         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
10917         * doc/standards.texi (Standards): Likewise.
10918         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
10919
10920 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10921
10922         * opts-common.c (prune_options): Make static.  Work with decoded
10923         options.
10924         (decode_cmdline_options_to_array): Call prune_options.  Don't
10925         resize option array here.
10926         * opts.h (prune_options): Remove prototype.
10927         * gcc.c (process_command): Take decoded options; don't call
10928         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
10929         (main): Call decode_cmdline_options_to_array here instead of
10930         prune_options.  Update call to process_command.
10931         * config/darwin-driver.c: Include opts.h.
10932         (darwin_default_min_version): Work with decoded options.  Don't
10933         handle -b or -V here.
10934         * config/darwin.h (darwin_default_min_version): Update prototype.
10935         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
10936         darwin_default_min_version.
10937         * config/i386/cygwin.h (mingw_scan): Update prototype.
10938         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
10939         * config/i386/cygwin1.c: Include opts.h.
10940         (mingw_scan): Work with decoded options.
10941         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
10942         * config/t-darwin (darwin-driver.o): Update dependencies.
10943
10944 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10945
10946         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
10947         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
10948         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
10949         -force-link, -force-link=, -language, -language=,
10950         -library-directory, -library-directory=, -no-canonical-prefixes,
10951         -no-standard-libraries, -no-warnings, -optimize, -output,
10952         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
10953         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
10954         -print-file-name=, -print-libgcc-file-name,
10955         -print-multi-directory, -print-multi-lib,
10956         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
10957         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
10958         -profile, -save-temps, -shared, -specs, -specs=, -static,
10959         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
10960         symbolic): New.
10961         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
10962         * gcc.c (A Short Introduction to Adding a Command-Line Option):
10963         Remove comment.
10964         (cc1_options): Correct specs for passing down --help,
10965         --target-help and --help=*.  Add spec for passing down --version.
10966         (struct option_map, option_map, target_option_translations,
10967         translate_options): Remove.
10968         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
10969         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
10970         OPT_fhelp_ and OPT_ftarget_help.
10971         (process_command): Don't call translate_options.  Call
10972         decode_cmdline_options_to_array before checking for
10973         -no-canonical-prefixes using decoded options.
10974         * opts-common.c (tm.h): Update comment on #include.
10975         (find_opt): Allow abbreviations of long options.
10976         (struct option_map, option_map): New.
10977         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
10978         and -mno handling.
10979         (target_option_translations): New.
10980         (decode_cmdline_options_to_array): Handle
10981         TARGET_OPTION_TRANSLATE_TABLE in driver.
10982         * opts.c (common_handle_option): Don't handle OPT_fhelp,
10983         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
10984
10985 2010-09-22  Richard Guenther  <rguenther@suse.de>
10986
10987         * tree-inline.c (optimize_inline_calls): Schedule cleanups
10988         only if we inlined something.  Block compaction and conditional
10989         folding are done by cfg cleanup.  Schedule update-address-taken.
10990         (tree_function_versioning): Remove redundant call to number_blocks.
10991         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
10992         folding is done by cfg cleanup.
10993         * passes.c (init_optimization_passes): Remove update-address-taken
10994         pass after IPA inlining.
10995
10996 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
10997
10998         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
10999         to update conditions. Fix reg_mode[] check.
11000
11001 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
11002
11003         * config/picochip/picochip.md (movhicc): Use expand to check whether
11004         movhicc is available and split it after reload.
11005
11006 2010-09-22  Richard Guenther  <rguenther@suse.de>
11007
11008         * tree-ssanames.c (release_dead_ssa_names): Do not remove
11009         callee edges here.
11010         * passes.c (init_optimization_passes): Remove early CFG cleanup.
11011         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
11012         (pass_cleanup_cfg): Likewise.
11013         (execute_fixup_cfg): Cleanup.
11014         * tree-pass.h (pass_cleanup_cfg): Remove.
11015
11016 2010-09-22  Martin Jambor  <mjambor@suse.cz>
11017
11018         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
11019         builtins if it is true.
11020         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
11021         parameter.
11022
11023 2010-09-22  Martin Jambor  <mjambor@suse.cz>
11024
11025         * tree-sra.c (struct access): New field grp_no_warning.
11026         (create_access_replacement): Set TREE_NO_WARNING according to
11027          grp_no_warning.
11028         (create_artificial_child_access): Use build_ref_for_model and set
11029         grp_no_warning if build_user_friendly_ref_for_offset fails.
11030         (propagate_subaccesses_across_link): Likewise.
11031
11032 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
11033
11034         PR target/35664
11035         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
11036         ('f'): Likewise.
11037
11038 2010-09-22  Tristan Gingold  <gingold@adacore.com>
11039
11040         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
11041
11042 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
11043
11044         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
11045         * config/i386/i386.c (decide_alg): Update for rename.
11046
11047 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
11048
11049         PR rtl-optimization/45739
11050         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
11051         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
11052
11053 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
11054
11055         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
11056         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
11057         Remove.
11058         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
11059         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11060
11061 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11062
11063         PR objc/23710
11064         * c-parser.c (c_parser_objc_method_definition): Check the return
11065         value of objc_start_method_definition and if false is returned,
11066         parse the method definition but emit no code.
11067
11068 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11069
11070         PR objc/25965
11071         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
11072         call objc_get_interface_ivars ().
11073
11074 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
11075
11076         PR target/45694
11077         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
11078         static chain-register is used for 64-bit.
11079
11080 2010-09-21  Richard Guenther  <rguenther@suse.de>
11081
11082         * dwarf2out.c (is_cu_die): New function.
11083         (add_pubtype): Use it.
11084         (gen_subprogram_die): Likewise.
11085         (gen_struct_or_union_type_die): Likewise.
11086         (dwarf2out_finish): Likewise.
11087         (comp_unit_die): Rename to ...
11088         (single_comp_unit_die): ... this.
11089         (comp_unit_die): New function lazily constructing and
11090         returning single_comp_unit_die.
11091         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
11092         base_type_die, subrange_type_die, modified_type_die,
11093         lower_bound_default, add_bound_info, add_prototyped_attribute,
11094         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
11095         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
11096         force_decl_die, gen_namespace_die, dwarf2out_decl,
11097         dwarf2out_start_source_file, dwarf2out_end_source_file,
11098         prune_unused_types, dwarf2out_finish): Use it.
11099         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
11100         the global list of translation-unit decls.
11101         (dwarf2out_init): Do not create single_comp_unit_die here.
11102         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
11103
11104 2010-09-21  Richard Guenther  <rguenther@suse.de>
11105
11106         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
11107         for bool for C++.
11108
11109 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
11110
11111         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
11112         (qhs_extenddi_cstr): Likewise.
11113         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
11114         them for the source operand.
11115
11116 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
11117
11118         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
11119         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
11120         (ix86_split_ashr): Ditto.
11121         (ix86_split_lshr): Ditto.
11122
11123 2010-09-21  Richard Guenther  <rguenther@suse.de>
11124
11125         PR tree-optimization/45580
11126         * tree-ssa-propagate.c (substitute_and_fold): Always replace
11127         regular uses.
11128         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
11129         virtuals fold the call into a regular indirect one.
11130
11131 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11132
11133         PR rtl-optimization/42775
11134         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
11135         scheduling is enabled.
11136
11137 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11138
11139         PR rtl-optimization/45728
11140         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
11141         gen_lowpart_common first and if that fails, force_reg first
11142         before calling gen_lowpart.
11143
11144         PR middle-end/45678
11145         * cfgexpand.c (expand_one_stack_var_at): Use
11146         crtl->max_used_stack_slot_alignment as max_align, instead
11147         of maximum of that and PREFERRED_STACK_BOUNDARY.
11148         Don't call update_stack_alignment.
11149
11150 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11151
11152         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
11153         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
11154         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
11155         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
11156         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
11157         (build_nonstandard_integer_type): Likewise.
11158         (build_range_type_1): New function, built from...
11159         (build_range_type): ...this.  Call build_range_type_1.
11160         (build_nonshared_range_type): New function.
11161         (build_array_type_1): New function, built from...
11162         (build_array_type: ...this.  Call build_array_type_1.
11163         (build_nonshared_array_type): New function.
11164         * tree.h (build_nonshared_range_type): Declare.
11165         (build_nonshared_array_type): Likewise.
11166
11167 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
11168
11169         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
11170         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11171         (arm_class_likely_spilled_p): New function.
11172
11173 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
11174
11175         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
11176         indirect functions.
11177         (ix86_split_ashl): Ditto.
11178         (ix86_split_ashr): Ditto.
11179         (ix86_split_lshr): Ditto.
11180         (ix86_adjust_counter): Ditto.
11181
11182 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
11183
11184         * c-family/c-common.h (constant_string_class): Documented with
11185         comment identical to the one already in c-common.c.
11186
11187 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11188
11189         * dwarf2out.c (any_cfis_emitted): New static variable.
11190         (add_fde_cfi): Set it.
11191         (dwarf2out_frame_debug): Clear it before processing,
11192         if it is set afterwards, flush any queued reg saves.
11193
11194         PR debug/45124
11195         * dwarf2out.c (add_accessibility_attribute): Assume
11196         DW_ACCESS_private as the default for dwarf_version > 2
11197         and DW_TAG_class_type parent.
11198         (gen_inheritance_die): Assume DW_ACCESS_public as the default
11199         for dwarf_version > 2 and parent other than DW_TAG_class_type.
11200
11201 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11202
11203         PR target/45726
11204         * arm.md (arm_movt): Only enable on machines with MOVT.
11205
11206 2010-09-20  Jie Zhang  <jie@codesourcery.com>
11207
11208         * config/arm/arm.c (arm_address_offset_is_imm): New.
11209         (arm_early_store_addr_dep): New.
11210         (arm_early_load_addr_dep): New.
11211         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
11212         (arm_early_load_addr_dep): Declare.
11213         (arm_address_offset_is_imm): Declare.
11214         * config/arm/cortex-m4.md: New file.
11215         * config/arm/cortex-m4-fpu.md: New file.
11216         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
11217         (attr generic_sched): Exclude cortexm4.
11218         (attr generic_vfp): Exclude cortexm4.
11219
11220 2010-09-20  Richard Guenther  <rguenther@suse.de>
11221
11222         PR middle-end/45704
11223         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
11224
11225 2010-09-20  Jan Hubicka  <jh@suse.cz>
11226
11227         PR tree-optimize/45605
11228         * cgraph.h (const_value_known_p): Declare.
11229         (varpool_decide_const_value_known): Remove.
11230         * tree-ssa-ccp.c (get_base_constructor): Use it.
11231         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
11232         * expr.c (string_constant): Likewise.
11233         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
11234         * ipa.c (ipa_discover_readonly_nonaddressable_var,
11235         function_and_variable_visibility): Likewise.
11236         * gimplify.c (gimplify_call_expr): Likewise.
11237         * gimple-fold.c (get_symbol_constant_value): Likewise.
11238         * varpool.c (varpool_decide_const_value_known): Replace by...
11239         (const_value_known_p): ... this one; handle other kinds of DECLs
11240         too and work for automatic vars.
11241         (varpool_finalize_decl): Use const_value_known_p.
11242
11243 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11244
11245         PR target/45726
11246         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
11247
11248 2010-09-20  Richard Guenther  <rguenther@suse.de>
11249
11250         PR tree-optimization/45705
11251         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
11252
11253 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11254
11255         PR rtl-optimization/45695
11256         * combine.c (try_combine): When splitting a two set pattern,
11257         make sure the pattern which will be put into i2 doesn't use REGs
11258         or MEMs set by insns in between i2 and i3.
11259
11260 2010-09-19  Jan Hubicka  <jh@suse.cz>
11261
11262         PR lto/44246
11263         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
11264         processing same node twice.
11265
11266 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
11267
11268         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
11269         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11270         (bfin_class_likely_spilled_p): New function
11271
11272 2010-09-19  Ira Rosen  <irar@il.ibm.com>
11273
11274         PR tree-optimization/45714
11275         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
11276         created in vectorizable_call instead of the original statement in
11277         def stmt updates.
11278
11279 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
11280
11281         * config/i386/i386-protos.h (split_double_mode): New prototype.
11282         (split_di, split_ti): Remove prototypes.
11283         * config/i386/i386.c (split_double_mode): New function.
11284         (split_di, split_ti): Remove.
11285         (ix86_expand_branch): Use split_double_mode.
11286         (ix86_split_to_parts): Ditto.
11287         (ix86_split_ashl): Ditto.
11288         (ix86_split_ashr): Ditto.
11289         (ix86_split_lshr): Ditto.
11290         (ix86_force_to_memory): Ditto.
11291         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
11292
11293 2010-09-18  Jan Hubicka  <jh@suse.cz>
11294
11295         PR tree-optimization/45453
11296         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
11297         virtual functions are reachable.
11298         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
11299         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
11300         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
11301         when modifying function.
11302
11303 2010-09-18  Jan Hubicka  <jh@suse.cz>
11304
11305         PR tree-optimization/45605
11306         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
11307         * gimple-fold.c (static_object_in_other_unit_p): New function.
11308         (canonicalize_constructor_val): Use it.
11309         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
11310         returning NULL.
11311         (gimple_fold_obj_type_ref_known_binfo): Use
11312         static_object_in_other_unit_p.
11313
11314 2010-09-18  Richard Guenther  <rguenther@suse.de>
11315
11316         PR tree-optimization/45709
11317         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
11318         insertions until after all PHI nodes of the block are processed.
11319
11320 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
11321
11322         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
11323
11324 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
11325
11326         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
11327
11328 2010-09-18  Richard Guenther  <rguenther@suse.de>
11329
11330         PR tree-optimization/45709
11331         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
11332
11333 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11334
11335         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
11336         (dot_deps_stmt): Same.
11337         * graphite-poly.c (dot_lst): Same.
11338         * graphite-scop-detection.c (dot_all_scops): Same.
11339         (dot_scop): Same.
11340
11341 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11342
11343         Revert:
11344         2009-12-16  Ben Elliston  <bje@au.ibm.com>
11345
11346         * tree-data-ref.c (dot_rdg_1): Added back.
11347         (dot_rdg): Same.  Added "#if 0" around system call.
11348
11349 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11350             Richard Henderson  <rth@redhat.com>
11351
11352         * config/i386/i386.c (initial_ix86_tune_features): Add
11353         X86_TUNE_PAD_SHORT_FUNCTION.
11354         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
11355         (ix86_count_insn): New.
11356         (ix86_pad_short_function): Likewise.
11357         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
11358
11359         * config/i386/i386.h (ix86_tune_indices): Add
11360         X86_TUNE_PAD_SHORT_FUNCTION.
11361         (TARGET_PAD_SHORT_FUNCTION): New.
11362
11363         * config/i386/i386.md (UNSPEC_NOPS): New.
11364         (nops): Likewise.
11365
11366 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11367
11368         PR middle-end/45234
11369         * calls.c (expand_call): Make sure that all variable sized
11370         adjustments are multiple of preferred stack boundary after
11371         stack alignment.
11372
11373 2010-09-17  DJ Delorie  <dj@redhat.com>
11374
11375         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
11376         passed an invalid value, print an error instead of ICEing.
11377         (valid_psw_flag): New.
11378         (rx_expand_builtin): Call it for setpsw/clrpsw.
11379         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
11380
11381         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
11382         (bitclr_in_memory): Likewise.
11383         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
11384
11385 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11386
11387         PR middle-end/45678
11388         * cfgexpand.c (update_stack_alignment): New.
11389         (get_decl_align_unit): Use it.
11390         (expand_one_stack_var_at): Call update_stack_alignment.
11391
11392 2010-09-17  Richard Guenther  <rguenther@suse.de>
11393
11394         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
11395         Properly copy the read string.
11396
11397 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
11398
11399         * doc/options.texi (Variable): Document.
11400         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
11401         generate target_flags declarations explicitly.  Don't define
11402         VarExists variables for the driver.
11403         * common.opt (target_flags): New Variable record.
11404         (flag_dump_unnumbered, flag_dump_unnumbered_links,
11405         flag_var_tracking, flag_var_tracking_assignments,
11406         flag_var_tracking_assignments_toggle): Don't mark variables with
11407         VarExists.
11408         * config/i386/i386.c (ix86_isa_flags): Don't define here.
11409         * config/i386/i386.opt (ix86_isa_flags): Define here.
11410         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
11411         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
11412         VarExists.
11413         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
11414         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
11415         Only define for generator programs.
11416         * rtlanal.c (target_flags): Remove.
11417         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
11418         flag_var_tracking_assignments_toggle): Remove.
11419
11420 2010-09-17  Michael Matz  <matz@suse.de>
11421
11422         PR tree-optimization/43432
11423         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
11424         Accept backwards consecutive accesses.
11425         (vect_create_data_ref_ptr): If step is negative generate
11426         decreasing IVs.
11427         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
11428         (perm_mask_for_reverse, reverse_vec_elements): New functions.
11429         (vectorizable_load): Handle loads with negative steps when easily
11430         possible.
11431
11432 2010-09-03  Jan Hubicka  <jh@suse.cz>
11433
11434         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
11435
11436 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
11437
11438         * config/v850/v850.c (v850_function_value_regno_p): Make static.
11439         Adjust comments. Declare.
11440         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
11441         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
11442
11443 2010-09-17  Richard Guenther  <rguenther@suse.de>
11444
11445         * common.opt (combine): Remove.
11446         * gcc.c (default_compilers): Remove specs testing combine.
11447         The C compilers no longer can combine.
11448         (option_map): Remove -combine.
11449         (display_help): Remove -combine.
11450         (driver_handle_option): Remove OPT_combine handling.
11451         (compile_input_file_p): Remove.
11452         (do_spec): Remove code concerning combine.
11453         (main): Likewise.
11454         * doc/invoke.texi: Remove traces of -combine.
11455         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
11456
11457 2010-09-17  Richard Guenther  <rguenther@suse.de>
11458
11459         PR middle-end/45678
11460         * builtins.c (fold_builtin_memory_op): Always properly adjust
11461         alignment of memory accesses.
11462
11463 2010-09-16  Jan Hubicka  <jh@suse.cz>
11464
11465         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
11466         processing clone.
11467
11468 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
11469
11470         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
11471
11472         * config/i386/i386.c (predict_jump): Add prototype.
11473         (flag_opts): Add -m8bit-idiv.
11474         (ix86_split_idivmod): New.
11475
11476         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
11477         Add 2 splitters for SI/DI mode divide.
11478         (divmod<mode>4_1): New pattern.
11479         (udivmod<mode>4_1): Likewise.
11480         (testdi_ccno_1): Likewise.
11481
11482         * config/i386/i386.opt (m8bit-idiv): New.
11483
11484         * doc/invoke.texi: Document -m8bit-idiv.
11485
11486 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
11487
11488         PR bootstrap/45680
11489         * config/i386/i386.c (min_insn_size): Moved out of the
11490         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
11491
11492 2010-09-16  Jan Hubicka  <jh@suse.cz>
11493
11494         * lto-cgraph.c (lto_output_node): Fix handling of clones.
11495         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
11496         unreachable clones with reachable clones.
11497         * tree-inline.c (copy_bb): Fix sanity checking when producing
11498         unreachable clone.
11499
11500 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
11501
11502         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
11503         (TARGET_MEMORY_MOVE_COST): Define.
11504         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
11505
11506 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
11507
11508         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
11509         maybe_tidy_empty_bb.
11510
11511         Revert:
11512         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
11513         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
11514
11515 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11516
11517         * target.def (target_option.optimization): New hook.
11518         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
11519         TARGET_OPTION_OPTIMIZATION hook.
11520         * doc/tm.texi: Regenerate.
11521         * hooks.c (hook_void_int_int): New.
11522         * hooks.h (hook_void_int_int): Declare.
11523         * opts.c: Don't include tm_p.h.
11524         (decode_options): Use targetm.target_option.optimization instead
11525         of OPTIMIZATION_OPTIONS.
11526         * system.h (OPTIMIZATION_OPTIONS): Poison.
11527         * config/arm/arm-protos.h (arm_optimization_options): Remove.
11528         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
11529         (arm_optimization_options): Rename to arm_option_optimization.
11530         Make static.
11531         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
11532         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
11533         (cris_option_optimization): New.
11534         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
11535         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
11536         (crx_option_optimization): New.
11537         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
11538         * config/frv/frv-protos.h (frv_optimization_options): Remove.
11539         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
11540         (frv_optimization_options): Rename to frv_option_optimization.
11541         Make static.
11542         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
11543         * config/h8300/h8300.c (h8300_option_optimization): New.
11544         (TARGET_OPTION_OPTIMIZATION): Define.
11545         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
11546         * config/i386/i386-protos.h (optimization_options): Remove.
11547         * config/i386/i386.c (optimization_options): Rename to
11548         ix86_option_optimization.  Make static.
11549         (TARGET_OPTION_OPTIMIZATION): Define.
11550         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
11551         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
11552         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
11553         (ia64_optimization_options): Rename to ia64_option_optimization.
11554         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
11555         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
11556         commented-out definition.
11557         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
11558         instead of OPTIMIZATION_OPTIONS.
11559         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
11560         (m32r_option_optimization): New.
11561         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
11562         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
11563         Remove.
11564         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
11565         (mcore_option_optimization): New.
11566         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
11567         * config/mep/mep-protos.h (mep_optimization_options): Remove.
11568         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
11569         (mep_optimization_options): Rename to mep_option_optimization.
11570         Make static.  Take unused level and size parameters.
11571         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
11572         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
11573         (mmix_option_optimization): New.
11574         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
11575         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
11576         (pdp11_option_optimization): New.
11577         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
11578         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
11579         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
11580         (optimization_options): Rename to rs6000_option_optimization.
11581         Make static.
11582         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
11583         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
11584         * config/rx/rx.c (rx_set_optimization_options): Rename to
11585         rx_option_optimization.  Make static.  Take unused level and size
11586         parameters.
11587         (TARGET_OPTION_OPTIMIZATION): Define.
11588         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
11589         * config/s390/s390-protos.h (optimization_options): Remove.
11590         * config/s390/s390.c (optimization_options): Rename to
11591         s390_option_optimization.  Make static.  Don't mark size parameter
11592         unused.
11593         (TARGET_OPTION_OPTIMIZATION): Define.
11594         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
11595         * config/sh/sh-protos.h (sh_optimization_options): Remove.
11596         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
11597         (sh_optimization_options): Rename to sh_option_optimization.  Make
11598         static.  Don't mark parameters unused.
11599         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
11600         * config/spu/spu-protos.h (spu_optimization_options): Remove.
11601         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
11602         (spu_optimization_options): Rename to spu_option_optimization.
11603         Make static.
11604         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
11605         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
11606         (v850_option_optimization): New.
11607         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
11608         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
11609         (xtensa_option_optimization): New.
11610         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
11611
11612 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11613
11614         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
11615         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
11616         * doc/tm.texi: Regenerate.
11617         * system.h (OVERRIDE_OPTIONS): Poison.
11618         * target.def (override): Default to hook_void_void.
11619         * targhooks.c (default_target_option_override): Remove.
11620         * genmodes.c, machmode.def: Update comments mentioning
11621         OVERRIDE_OPTIONS.
11622         * config/alpha/alpha-modes.def: Update comment mentioning
11623         alpha_override_options.
11624         * config/alpha/alpha-protos.h (override_options): Remove.
11625         * config/alpha/alpha.c (override_options): Rename to
11626         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
11627         (TARGET_OPTION_OVERRIDE): Define.
11628         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
11629         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
11630         of OVERRIDE_OPTIONS.
11631         * config/arc/arc-protos.h (arc_init): Remove.
11632         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
11633         (arc_init): Rename to arc_option_override.  Make static.
11634         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
11635         (OVERRIDE_OPTIONS): Remove.
11636         * config/arm/arm-protos.h (arm_override_options): Remove.
11637         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
11638         (arm_override_options): Rename to arm_option_override.  Make
11639         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11640         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
11641         * config/arm/arm.md: Update comment referring to arm_override_options.
11642         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11643         instead of OVERRIDE_OPTIONS.
11644         * config/avr/avr-protos.h (avr_override_options): Remove.
11645         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
11646         (avr_override_options): Rename to avr_option_override.  Make static.
11647         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
11648         * config/bfin/bfin-protos.h (override_options): Remove (twice).
11649         * config/bfin/bfin.c (override_options): Rename to
11650         bfin_option_override.  Make static.
11651         (TARGET_OPTION_OVERRIDE): Define.
11652         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
11653         * config/cris/cris-protos.h (cris_override_options): Remove.
11654         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
11655         (cris_override_options): Rename to cris_option_override.  Make static.
11656         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
11657         * config/frv/frv-protos.h (frv_override_options): Remove.
11658         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
11659         (frv_override_options): Rename to frv_option_override.  Make static.
11660         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
11661         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
11662         * config/h8300/h8300.c (h8300_init_once): Rename to
11663         h8300_option_override.  Make static.
11664         (TARGET_OPTION_OVERRIDE): Define.
11665         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
11666         * config/i386/i386-protos.h (override_options): Remove.
11667         * config/i386/i386.c (override_options): Rename to
11668         ix86_option_override_internal.  Make static.  Comments referring
11669         to this function and callers changed.
11670         (ix86_option_override): New.
11671         (TARGET_OPTION_OVERRIDE): Define.
11672         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
11673         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
11674         * config/ia64/ia64.c (ia64_file_start): Update comment referring
11675         to ia64_override_options.
11676         * config/iq2000/iq2000-protos.h (override_options): Remove.
11677         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
11678         (override_options): Rename to iq2000_option_override.  Make static.
11679         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
11680         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
11681         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
11682         (lm32_override_options): Rename to lm32_option_override.  Make static.
11683         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
11684         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
11685         (m32r_option_override): New.
11686         (m32r_init): Update comment.
11687         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
11688         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
11689         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
11690         (m68hc11_override_options): Rename to m68hc11_option_override.
11691         Make static.  Return void.
11692         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
11693         * config/m68k/m68k-protos.h (override_options): Remove.
11694         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
11695         (override_options): Rename to m68k_option_override.  Make static.
11696         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
11697         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
11698         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
11699         (mcore_override_options): Rename to mcore_option_override.  Make
11700         static.
11701         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
11702         * config/mep/mep-protos.h (mep_override_options): Remove.
11703         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
11704         (mep_override_options): Rename to mep_option_override.  Make static.
11705         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
11706         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
11707         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
11708         (mmix_override_options): Rename to mmix_option_override.  Make static.
11709         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
11710         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
11711         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
11712         (mn10300_override_options): Rename to mn10300_option_override.
11713         Make static.
11714         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
11715         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
11716         * config/moxie/moxie.c (moxie_override_options): Rename to
11717         moxie_option_override.  Make static.
11718         (TARGET_OPTION_OVERRIDE): Define.
11719         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
11720         * config/picochip/picochip-protos.h (picochip_override_options):
11721         Remove.  Update comment referring to picochip_override_options.
11722         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
11723         (picochip_override_options): Rename to picochip_option_override.
11724         Make static.  Update comment and definition of
11725         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
11726         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
11727         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11728         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11729         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11730         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11731         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11732         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
11733         instead of OVERRIDE_OPTIONS.
11734         * config/rs6000/rs6000-modes.def: Update comment referring to
11735         rs6000_override_options.
11736         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
11737         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
11738         (rs6000_override_options): Rename to
11739         rs6000_option_override_internal.  Make static.  Commented
11740         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
11741         (rs6000_option_override): New.
11742         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
11743         instead of OVERRIDE_OPTIONS.
11744         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11745         * config/s390/s390-protos.h (override_options): Remove.
11746         * config/s390/s390.c (override_options): Rename to
11747         s390_option_override.  Make static.
11748         (TARGET_OPTION_OVERRIDE): Define.
11749         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
11750         * config/score/score-protos.h (score_override_options): Remove.
11751         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
11752         (score_override_options): Rename to score_option_override.  Make
11753         static.
11754         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
11755         Update comment referring to override_options.
11756         * config/score/score3.c (score3_override_options): Rename to
11757         score3_option_override.
11758         * config/score/score3.h (score3_override_options): Rename to
11759         score3_option_override.
11760         * config/score/score7.c (score7_override_options): Rename to
11761         score7_option_override.
11762         * config/score/score7.h (score7_override_options): Rename to
11763         score7_option_override.
11764         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
11765         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
11766         (sparc_override_options): Rename to sparc_option_override.  Make
11767         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11768         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
11769         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11770         instead of OVERRIDE_OPTIONS.
11771         * config/spu/spu-protos.h (spu_override_options): Remove.
11772         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
11773         (spu_override_options): Rename to spu_option_override.  Make
11774         static.
11775         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
11776         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
11777         OVERRIDE_OPTIONS.
11778         * config/vax/vax-protos.h (override_options): Remove.
11779         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
11780         (override_options): Rename to vax_option_override.  Make static.
11781         Call SUBTARGET_OVERRIDE_OPTIONS.
11782         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
11783         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
11784         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
11785         * config/xtensa/xtensa-protos.h (override_options): Remove.
11786         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
11787         (override_options): Rename to xtensa_option_override.  Make static.
11788         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
11789
11790 2010-09-16  Richard Guenther  <rguenther@suse.de>
11791
11792         PR tree-optimization/45623
11793         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
11794         (get_constraint_for_component_ref): If computing a constraint
11795         for the rhs handle type punning through unions.
11796         (get_constraint_for_address_of): Adjust.
11797         (get_constraint_for_1): Likewise.
11798         (get_constraint_for): Likewise.
11799         (get_constraint_for_rhs): New function.
11800         (do_structure_copy): Adjust.
11801         (make_constraint_to): Likewise.
11802         (handle_const_call): Likewise.
11803         (find_func_aliases): Likewise.
11804         (process_ipa_clobber): Likewise.
11805         (create_variable_info_for): Likewise.
11806
11807 2010-09-16  Ira Rosen  <irar@il.ibm.com>
11808
11809         * tree-vectorizer.c: Fix documentation.
11810         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
11811         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
11812         is_pattern_stmt_p, is_loop_header_bb_p,
11813         stmt_vinfo_set_inside_of_loop_cost,
11814         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
11815         known_alignment_for_access_p): Likewise.
11816         * tree-vect-loop.c: Fix documentation.
11817         (vect_get_cost): Start function name from new line.
11818         * tree-vect-data-refs.c: Fix documentation.
11819         * tree-vect_stmts.c: Likewise.
11820         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
11821         (vectorizable_store): Free vec_oprnds if allocated.
11822         (vectorizable_condition): Initialize several variables to avoid
11823         warnings.
11824         * tree-vect-slp.c: Fix documentation.
11825
11826 2010-09-16  Richard Guenther  <rguenther@suse.de>
11827
11828         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
11829         is TS_TRANSLATION_UNIT_DECL.
11830         (initialize_tree_contains_struct): Adjust.
11831         (all_translation_units): New global vector.
11832         (build_translation_unit_decl): New function.
11833         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
11834         (struct tree_translation_unit_decl): New.
11835         (all_translation_units): Declare.
11836         (union tree_node): Add translation_unit_decl member.
11837         (build_translation_unit_decl): Declare.
11838         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
11839         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
11840         New function.
11841         (pack_value_fields): Call it.
11842         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
11843         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
11844         (lto_output_tree_pointers): Call it.
11845         * lto-streamer-in.c (lto_input_tree_ref): Handle references
11846         to TRANSLATION_UNIT_DECL.
11847         (unpack_ts_translation_unit_decl_value_fields): New function.
11848         (unpack_value_fields): Call it.
11849         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
11850         (lto_input_tree_pointers): Call it.
11851         * lto-streamer.c (check_handled_ts_structures): Adjust.
11852         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
11853         * c-decl.c (all_translation_units): Remove.
11854         (pop_scope): Use build_translation_unit_decl.
11855         (collect_all_refs): Adjust.
11856         (for_each_global_decl): Likewise.
11857         (c_write_global_declarations): Likewise.
11858
11859 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
11860
11861         PR bootstrap/45686
11862         * fold-const.c (fold_checksum_tree): Change slot from const void **
11863         to void **, use CONST_CAST_TREE to store into *slot.
11864
11865 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11866
11867         * config/i386/i386.md: Remove unneeded empty conditions and
11868         preparation statements from expanders.
11869         * config/i386/mmx.md: Ditto.
11870         * config/i386/sse.md: Ditto.
11871
11872 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11873
11874         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
11875
11876 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11877
11878         PR rtl-optimization/45593
11879         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
11880         insns that were in delay slots as stand-alone insns.
11881
11882 2010-09-15  Ian Lance Taylor  <iant@google.com>
11883
11884         * incpath.c (remove_duplicates): If name is not a directory, issue
11885         a warning rather than an error.
11886
11887 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11888
11889         PR middle-end/45644
11890         * tree-sra.c (create_access): Check for bit-fields directly.
11891
11892 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
11893
11894         PR tree-optimization/45633
11895         * tree-cfg.c (verify_gimple_assign_binary): Allow
11896         MINUS_EXPR with lhs and rhs1 pointer vector and
11897         rhs2 sizetype vector.
11898         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
11899         or vector pointer use TER to optimize pointer subtraction.
11900
11901 2010-09-15  Jie Zhang  <jie@codesourcery.com>
11902
11903         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
11904         fcmpd to fcmps.
11905
11906 2010-09-15  Ian Lance Taylor  <iant@google.com>
11907
11908         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
11909
11910 2010-09-15  Ian Lance Taylor  <iant@google.com>
11911
11912         * function.c (get_arg_pointer_save_area): Set
11913         arg_pointer_save_area_init to true.
11914
11915 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11916
11917         * tree-sra.c (generate_subtree_copies): Updated comment.
11918         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
11919         obtained from the statement iterator instead.
11920         (load_assign_lhs_subreplacements): Removed parameters lhs and
11921         right_offset, which is obtained from top_racc instead.  Parameter lacc
11922         is now expected to be the root of the processed tree rather than root's
11923         first child.  Updated all callers.
11924
11925 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
11926
11927         * config/pdp11/pdp11.c (register_move_cost): Rename to
11928         pdp11_register_move_cost.
11929         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
11930         pdp11_register_move_cost.
11931         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
11932         pdp11_register_move_cost instead of register_move_cost.
11933
11934 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
11935
11936         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
11937         pattern for vmovn. Expansion in case of non
11938         -mvectorize-with-neon-quad.
11939         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
11940         non- -mvectorize-with-neon-quad case.
11941         (move_lo_quad_<mode>): New expansion to vmov into low part.
11942         (move_hi_quad_<mode>): New expansion to vmov into high part.
11943         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
11944         (move_lo_quad_v4sf): Likewise.
11945         (move_lo_quad_v8hi): Likewise.
11946         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
11947         low part.
11948         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
11949         high part.
11950         * config/arm/iterators.md (ANY128): New mode iterator.
11951         (V_narrow_pack): New mode attribute.
11952         (V_HALF): Add attribute.
11953         (V_DOUBLE): Add attribute.
11954         (V_mode_nunits): Add attribute.
11955
11956 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11957
11958         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
11959         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
11960
11961 2010-09-15  Olivier Hainque  <hainque@adacore.com>
11962             Jose Ruiz  <ruiz@adacore.com>
11963
11964         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
11965         * config/alpha/osf5-unwind.h: New file.
11966
11967 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11968
11969         PR bootstrap/45672
11970         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
11971         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11972         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11973
11974 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11975
11976         * c-lang.h (struct lang_type): Add variable_size GTY option.
11977
11978 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11979
11980         PR bootstrap/45672
11981         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11982
11983 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11984
11985         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
11986         result isn't used in memory address.
11987
11988 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11989
11990         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
11991         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
11992         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
11993         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
11994         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
11995         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
11996
11997         * target.def: Add units_per_simd_word to vectorize.
11998
11999         * targhooks.c (default_units_per_simd_word): New.
12000         * targhooks.h (default_units_per_simd_word): Likewise.
12001         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
12002         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12003         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
12004         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12005         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
12006         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12007         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
12008         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12009
12010         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
12011         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
12012
12013         * tree-vect-stmts.c: Don't include "tm_p.h".
12014         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
12015         with targetm.vectorize.units_per_simd_word.
12016
12017         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
12018
12019         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
12020
12021         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
12022         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
12023
12024         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
12025         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
12026
12027         * doc/tm.texi: Regenerated.
12028
12029 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12030
12031         * tree-vect-stmts.c: Include "tm_p.h".
12032
12033         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
12034         out of RTX_CODE.
12035
12036 2010-09-14  Martin Jambor  <mjambor@suse.cz>
12037
12038         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
12039         location of generated statement.  Changed all callers.
12040         (build_ref_for_model): New parameter loc which used to set location of
12041         all generated expressions.  Changed all callers.
12042         (generate_subtree_copies): Likewise.
12043         (init_subtree_with_zero): Likewise.
12044         (sra_modify_expr): Set locations of all generated statements and
12045         expressions to the location the original statement.
12046         (handle_unscalarized_data_in_subtree): Likewise.
12047         (load_assign_lhs_subreplacements): Likewise.
12048         (sra_modify_constructor_assign): Likewise.
12049         (sra_modify_assign): Likewise.
12050
12051 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
12052
12053         PR target/45277
12054         PR target/45363
12055         PR target/45407
12056         * doc/install.texi (sparc*-*-*): New section.
12057         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
12058
12059 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
12060
12061         PR middle-end/45567
12062         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
12063         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
12064         (expand_builtin): Adjust caller.
12065         (expand_builtin_unop): Only use subtarget if it has the right mode.
12066
12067 2010-09-14  Tristan Gingold  <gingold@adacore.com>
12068
12069         * configure.ac (plugins): Fix typos.
12070         * configure: Regenerate.
12071
12072 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
12073
12074         PR debug/45660
12075         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
12076         gen_type_die for function/method return type.
12077
12078 2010-09-14  Ira Rosen  <irar@il.ibm.com>
12079
12080         PR tree-optimization/45470
12081         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12082         can throw an exception.
12083         * tree-vect-stmts.c (vectorizable_call): Likewise.
12084
12085 2010-09-14  DJ Delorie  <dj@redhat.com>
12086
12087         PR target/44749
12088         * config/mep/mep-protos.h (mep_save_register_info,
12089         mep_reinit_regs, mep_init_regs): Declare.
12090
12091         * config/mep/mep.c: Move all target definitions to the end of the
12092         file to avoid the need for duplicate declarations.
12093         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
12094         (mep_reorg_erepeat): Remove unused variables.
12095         (mep_expand_builtin): Likewise.
12096
12097         * config/mep/mep-pragma.c: Don't include rtl.h.
12098         (INVALID_REGNUM): New.
12099         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
12100         functions.
12101         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
12102         Avoid enum/integer math.
12103
12104 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
12105
12106         PR target/44749
12107         * config/mep/t-mep (GTM_H): Add insn-constants.h.
12108         * config/mep/mep.c (mep_conditional_register_usage): Take no
12109         parameters.
12110         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
12111         prototype.
12112         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
12113         call to mep_conditional_register_usage.
12114
12115 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
12116
12117         PR debug/43937
12118         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
12119         the DECL as well.
12120
12121 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
12122
12123         PR rtl-optimization/45617
12124         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
12125         even if low N bits of X aren't known to be zero.
12126
12127 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
12128
12129         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
12130
12131         * config/i386/i386.c (initial_ix86_tune_features): Add
12132         X86_TUNE_VECTORIZE_DOUBLE.
12133         (ix86_units_per_simd_word): New.
12134
12135         * config/i386/i386.h (ix86_tune_indices): Add
12136         X86_TUNE_VECTORIZE_DOUBLE.
12137         (TARGET_VECTORIZE_DOUBLE): New.
12138         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
12139
12140 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
12141
12142         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
12143         (new_temp_expr_table): Allocate call_cnt vector.
12144         (free_temp_expr_table): Free it.
12145         (process_replaceable): Add call_cnt parm and set in vector.
12146         (find_replaceable_in_bb): Skip replacement if def/use span a call.
12147         (debug_ter): Dump call_cnt value, remove stderr uses.
12148
12149 2010-09-13  Jan Hubicka  <jh@suse.cz>
12150
12151         * tree.c (build_zero_cst): New.
12152         * tree.h (build_zero_cst): Declare.
12153         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
12154         (get_base_constructor): Break out from ...
12155         (fold_const_aggregate_ref): Here; handle empty constructors.
12156
12157 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12158
12159         * config/arm/arm.md: (define_attr "conds"): Update comment.
12160         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
12161         conds attribute to clob.
12162         (arm_sync_compare_and_swapsi): Likewise.
12163         (arm_sync_compare_and_swap<mode>): Likewise.
12164         (arm_sync_lock_test_and_setsi): Likewise.
12165         (arm_sync_lock_test_and_set<mode>): Likewise.
12166         (arm_sync_new_<sync_optab>si): Likewise.
12167         (arm_sync_new_nandsi): Likewise.
12168         (arm_sync_new_<sync_optab><mode>): Likewise.
12169         (arm_sync_new_nand<mode>): Likewise.
12170         (arm_sync_old_<sync_optab>si): Likewise.
12171         (arm_sync_old_nandsi): Likewise.
12172         (arm_sync_old_<sync_optab><mode>): Likewise.
12173         (arm_sync_old_nand<mode>): Likewise.
12174
12175 2010-09-13  Olivier Hainque  <hainque@adacore.com>
12176
12177         * fwprop.c (forward_propagate_and_simplify): Only attach a
12178         REG_EQUAL note to an insn if the destination is a register.
12179         * gcse.c (try_replace_reg): Likewise.
12180
12181 2010-09-13  Richard Guenther  <rguenther@suse.de>
12182
12183         PR tree-optimization/45611
12184         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
12185         (copy_ref_info): Likewise.
12186
12187 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
12188
12189         PR debug/45604
12190         PR debug/45419
12191         PR debug/45408
12192         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12193         types of MEM_REF pointer types to the same type.
12194
12195 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
12196
12197         PR rtl-optimization/41087
12198         * ifcvt.c (noce_get_condition): Don't allow conditions with
12199         side-effects.
12200
12201 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
12202
12203         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12204         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
12205         * config/frv/frv.c (frv_register_move_cost): Make static. Change
12206         arguments type to reg_class_t. Add mode argument.
12207         (frv_memory_move_cost): New.
12208         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
12209
12210 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
12211
12212         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
12213         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
12214
12215 2010-09-10  Jan Hubicka  <jh@suse.cz>
12216
12217         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
12218
12219 2010-09-10  Richard Guenther  <rguenther@suse.de>
12220
12221         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
12222         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
12223         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
12224         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
12225         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
12226
12227 2010-09-10  Richard Guenther  <rguenther@suse.de>
12228
12229         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
12230         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
12231         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
12232         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
12233
12234 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
12235
12236         PR middle-end/45634
12237         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
12238         of string folding is of integral type.
12239
12240 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
12241
12242         * doc/invoke.texi (-x): Fix typo.
12243
12244 2010-09-10  Richard Guenther  <rguenther@suse.de>
12245
12246         PR debug/44115
12247         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
12248         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12249         Output DECL_DEBUG_EXPR.
12250         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12251         Input DECL_DEBUG_EXPR.
12252
12253 2010-09-10  Richard Guenther  <rguenther@suse.de>
12254
12255         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
12256         (build_index_type): Implement in terms of build_range_type.
12257         (build_range_type): Do not allow NULL_TREE type, improve
12258         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
12259         if we didn't hash.
12260         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
12261         create a distinct copy of the type.
12262
12263 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
12264
12265         * configure: Regenerated.
12266         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
12267
12268 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12269
12270         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
12271         * config/arm/cortex-a9-neon.md: New and partially generated.
12272         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
12273
12274 2010-09-10  Richard Guenther  <rguenther@suse.de>
12275
12276         * tree.h (build_index_2_type): Remove.
12277         * tree.c (build_index_2_type): Remove.
12278
12279 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
12280
12281         PR bootstrap/45630
12282         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
12283         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
12284         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
12285
12286 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12287
12288         PR tree-optimization/44972
12289         * tree-sra.c: Include toplev.h.
12290         (build_ref_for_offset): Entirely reimplemented.
12291         (build_ref_for_model): New function.
12292         (build_user_friendly_ref_for_offset): New function.
12293         (analyze_access_subtree): Removed build_ref_for_offset check.
12294         (propagate_subaccesses_across_link): Likewise.
12295         (create_artificial_child_access): Use
12296         build_user_friendly_ref_for_offset.
12297         (propagate_subaccesses_across_link): Likewise.
12298         (ref_expr_for_all_replacements_p): Removed.
12299         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
12300         (sra_modify_expr): Use build_ref_for_model.
12301         (load_assign_lhs_subreplacements): Likewise.
12302         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
12303         checks for return values of build_ref_for_offset.
12304         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
12305         build_ref_for_offset.
12306         * ipa-prop.h: Include gimple.h
12307         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
12308         (ipa_analyze_indirect_call_uses): Update comment.
12309         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
12310         (IPA_PROP_H): Likewise.
12311
12312 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12313
12314         PR tree-optimization/44972
12315         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
12316         calling build_ref_for_offset.
12317
12318 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12319
12320         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
12321         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
12322         * config/arm/arm-tune.md: Regenerate.
12323         * doc/invoke.texi (ARM Options): Document it.
12324
12325 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
12326
12327         * config/i386/i386.c: Include sched-int.h.
12328         (TARGET_SCHED_DISPATCH): Defined.
12329         (TARGET_SCHED_DISPATCH_DO): Defined.
12330         (DISPATCH_WINDOW_SIZE): Defined.
12331         (MAX_DISPATCH_WINDOWS): Defined.
12332         (MAX_INSN): Defined.
12333         (MAX_IMM): Defined.
12334         (MAX_IMM_SIZE): Defined.
12335         (MAX_IMM_32): Defined.
12336         (MAX_IMM_64): Defined.
12337         (MAX_LOAD): Defined.
12338         (MAX_STORE): Defined.
12339         (BIG): Defined.
12340         (dispatch_group): New.
12341         (num_allowable_groups): New.
12342         (group_name): New.
12343         (sched_insn_info_s): New.
12344         (dispatch_windows_s): New.
12345         (imm_info_s): New.
12346         (dispatch_window_list): New.
12347         (dispatch_window_list1): New.
12348         (get_mem_group): New.
12349         (is_cmp): New.
12350         (dispatch_violation): New.
12351         (is_branch): New.
12352         (is_prefetch): New.
12353         (init_window): New.
12354         (allocate_window): New.
12355         (init_dispatch_sched): New.
12356         (is_end_basic_block): New.
12357         (process_end_window): New.
12358         (allocate_next_window): New.
12359         (find_constant_1): New.
12360         (find_constant): New.
12361         (get_num_immediates): New.
12362         (has_immediate): New.
12363         (get_insn_path): New.
12364         (get_insn_group): New.
12365         (count_num_restricted): New.
12366         (fits_dispatch_window): New.
12367         (add_insn_window): New.
12368         (add_to_dispatch_window): New.
12369         (debug_dispatch_window_file): New.
12370         (debug_dispatch_window): New.
12371         (debug_insn_dispatch_info_file): New.
12372         (debug_ready_dispatch): New.
12373         (do_dispatch): New.
12374         (has_dispatch): New.
12375         * config/i386/i386.h (debug_ready_dispatch): Declared.
12376         (debug_dispatch_window): Declared.
12377         * config/i386/i386.opt (mdispatch-scheduler): New flag.
12378         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
12379         (TARGET_SCHED_DISPATCH_DO): New.
12380         * doc/tm.texi: Regererated.
12381         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
12382         ready_remove_first_dispatch
12383         (schedule_block): Call targetm.sched.dispatch and
12384         targetm.sched.dispatch_do.
12385         (sched_init): Call targetm.sched.dispatch and
12386         targetm.sched.dispatch_do.
12387         (ready_remove_first_dispatch): New.
12388         (number_in_ready): New.
12389         (get_ready_element): New.
12390         * hooks.c (hook_bool_rtx_int_false): New.
12391         (hook_void_rtx_int): New.
12392         * hooks.h (hook_bool_rtx_int_false): Declared.
12393         (hook_void_rtx_int): Declared.
12394         * sched-int.h (IS_DISPATCH_ON): Defined.
12395         (IS_CMP): Defined.
12396         (DISPATCH_VIOLATION): Defined.
12397         (FITS_DISPATCH_WINDOW): Defined.
12398         (DISPATCH_INIT): Defined.
12399         (ADD_TO_DISPATCH_WINDOW): Defined.
12400         (get_ready_element): Declared.
12401         (number_in_ready): Declared.
12402         * target.def (dispatch): Defined.
12403         (dispatch_do): Defined.
12404
12405 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12406
12407         PR middle-end/45312
12408         * reload1.c (merge_assigned_reloads): Remove.
12409         (reload_as_needed): Don't call it.
12410
12411 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
12412
12413         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
12414         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12415         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12416
12417 2010-09-09  Matthias Klose  <doko@ubuntu.com>
12418
12419         PR bootstrap/43847
12420         * configure.ac (--enable-plugin): Enhance for cross builds.
12421         * configure: Regenerate.
12422
12423 2010-09-09  Jan Hubicka  <jh@suse.cz>
12424
12425         PR tree-optimization/45598
12426         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
12427         string folding is of integral type.
12428
12429 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
12430
12431         * configure.ac (gnu_indirect_function): New test.
12432         * configure: Rebuilt.
12433         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
12434         * defaults.h (IFUNC_ASM_TYPE): Provide default.
12435
12436         * doc/extend.texi (Function Attributes): Document ifunc.
12437         * varasm.c (do_assemble_alias): Deal with ifuncs too.
12438
12439 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
12440
12441         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
12442         epilogue instruction move.
12443
12444 2010-09-09  Jan Hubicka  <jh@suse.cz>
12445
12446         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
12447         command line to allow more partitions than input files.
12448
12449 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12450
12451         PR middle-end/44554
12452         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
12453
12454 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12455
12456         PR middle-end/40386
12457         * ira.c (pseudo_for_reload_consideration_p): Don't use
12458         flag_ira_share_spill_slots.
12459
12460 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12461
12462         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
12463         point zero operands that fit into a single GPR.
12464         (s390_preferred_reload_class): Ensure we only return general-purpose
12465         register classes.
12466         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
12467         floating-point zero operands into GPRs.
12468         ("*mov<mode>_64"): Likewise.
12469         ("mov<mode>"): Likewise using lhi.
12470
12471 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12472
12473         * config/s390/s390.c (s390_symref_operand_p): Return false for
12474         literal pool references.
12475         (s390_check_qrst_address): Update caller.
12476
12477 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
12478
12479         * config/i386/predicates.md (ext_register_operand): Check that
12480         SUBREG_REG is really a register before looking for REGNO.
12481         (reg_not_xmm0_operand): Handle SUBREGs correctly.
12482         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
12483
12484 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
12485
12486         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
12487         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
12488         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
12489         * print-rtl.c (print_rtx): Likewise.
12490         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
12491         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
12492         for ADDR_EXPR with non-addressable object.
12493         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
12494         (struct dw_val_struct): Add v.val_decl_ref.
12495         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
12496         Handle DW_OP_GNU_implicit_pointer.
12497         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
12498         (get_ref_die_offset_label): New function.
12499         (implicit_ptr_descriptor): New function.
12500         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
12501         (loc_descriptor): Likewise.
12502         (gen_variable_die): Put even definitions into decl_die_table.
12503         (resolve_addr_in_expr): Resolve still unresolved
12504         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
12505         return false.
12506         (dwarf2out_finish): Call output_location_lists after outputting
12507         .debug_info and .debug_abbrev instead of before.
12508
12509 2010-09-09  Roland McGrath  <roland@redhat.com>
12510
12511         * dwarf2out.c (DWARF_REF_SIZE): Define.
12512         (size_of_loc_descr): Use it for DW_OP_call_ref.
12513
12514 2010-09-09  Alan Modra  <amodra@gmail.com>
12515
12516         * doc/invoke.text: Reinstate mcmodel=medium.
12517         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
12518         CMODEL_MEDIUM as default.
12519         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
12520         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
12521         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
12522         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
12523
12524 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12525
12526         PR target/45250
12527         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
12528         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
12529         (builtin_longjmp): Likewise.
12530         (allocate_stack): Use hard_frame_pointer_rtx instead of
12531         frame_pointer_rtx.
12532         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
12533         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
12534         (pa_can_eliminate): Likewise.
12535         (TARGET_INTERNAL_ARG_POINTER): Define.
12536         (TARGET_CAN_ELIMINATE): Define.
12537         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
12538         pointer.
12539         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
12540         (pa_internal_arg_pointer, pa_can_eliminate,
12541         pa_initial_elimination_offset): New.
12542         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
12543         (HARD_FRAME_POINTER_REGNUM): Set to register three.
12544         (INITIAL_FRAME_POINTER_OFFSET): Delete.
12545         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
12546         Define.
12547         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
12548         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
12549         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
12550         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
12551         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
12552         new soft frame pointer.
12553         * config/pa/pa64-regs.h: Likewise.
12554
12555 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12556
12557         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
12558         numerical constant.
12559         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
12560
12561 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12562
12563         PR debug/45531
12564         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
12565
12566 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12567
12568         PR debug/45419
12569         PR debug/45408
12570         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12571         qualifiers in otherwise equal MEM_REF pointer types.
12572         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
12573         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
12574
12575 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12576
12577         PR target/44392
12578         * config/arm/arm.md (bswapsi2): Handle condition correctly
12579         for armv6 and optimize_size.
12580
12581 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
12582
12583         PR other/18555
12584         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
12585
12586 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12587
12588         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
12589         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
12590         ix86_expand_strlen, legitimate_pic_address_disp_p,
12591         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
12592         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
12593         ix86_check_movabs, ix86_secondary_memory_needed): Change function
12594         prototype to bool.
12595         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
12596         return_in_memory_ms_64, ix86_check_movabs,
12597         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
12598         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
12599         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
12600         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
12601         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
12602         ix86_secondary_memory_needed): Change to bool.  Return
12603         "true" and "false" values.
12604         * config/i386/i386.md: Return "true" and "false" values.
12605
12606 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12607
12608         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12609         run_expensive_tests.
12610
12611 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12612
12613         * toplev.c (output_stack_usage): Use lbasename instead of basename.
12614
12615 2010-09-08  Martin Jambor  <mjambor@suse.cz>
12616
12617         PR other/45443
12618         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
12619         at -O3.
12620
12621 2010-09-08  Richard Guenther  <rguenther@suse.de>
12622
12623         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
12624         (visit): Adjust.
12625         (iterative_hash_gimple_type): Likewise.
12626         (gimple_type_hash): Likewise.
12627         (gimple_register_type): Likewise.
12628         (print_gimple_types_stats): Likewise.
12629         (free_gimple_type_tables): Likewise.
12630
12631 2010-09-08  Michael Matz  <matz@suse.de>
12632
12633         PR tree-optimization/43430
12634         * tree-vect-stmts.c (vectorizable_condition): Support multiple
12635         copies for conditional statements if it's not part of a reduction.
12636
12637 2010-09-08  Michael Matz  <matz@suse.de>
12638
12639         PR tree-optimization/33244
12640         * tree-ssa-sink.c (statement_sink_location): Don't sink into
12641         empty loop latches.
12642
12643 2010-09-08  Richard Guenther  <rguenther@suse.de>
12644
12645         PR tree-optimization/45578
12646         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
12647         Be more careful when transfering alignment information to
12648         the new induction variable.
12649         (copy_ref_info): Likewise.
12650
12651 2010-09-08  Richard Guenther  <rguenther@suse.de>
12652
12653         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
12654         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
12655
12656 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
12657
12658         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
12659         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
12660
12661 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
12662
12663         PR doc/45587
12664         * doc/md.texi: Fixed modes on several standard pattern names.
12665
12666 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
12667
12668         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
12669         (ashl<mode>3): ...this.
12670         (loongson_psra<V_suffix>): Rename to...
12671         (ashr<mode>3): ...this.
12672         (loongson_psrl<V_suffix>): Rename to...
12673         (lshr<mode>3): ...this.
12674         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
12675         (CODE_FOR_loongson_psllw): Define.
12676         (CODE_FOR_loongson_psrlh): Define.
12677         (CODE_FOR_loongson_psrlw): Define.
12678         (CODE_FOR_loongson_psrah): Define.
12679         (CODE_FOR_loongson_psraw): Define.
12680
12681 2010-09-07  Richard Henderson  <rth@redhat.com>
12682
12683         * tree-vect-data-refs.c: Include tm_p.h.
12684         * Makefile.in (tree-vect-data-refs.o): Update deps.
12685         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
12686         Move delarations outside #ifdef RTX_CODE.
12687
12688 2010-09-07  Richard Henderson  <rth@redhat.com>
12689
12690         * final.c (rest_of_handle_final): Unconditionally do
12691         output_function_exception_table before assemble_end_function.
12692
12693 2010-09-07  Jan Hubicka  <jh@suse.cz>
12694
12695         * tree-inline.c (tree_inlinable_function_p): Do not test
12696         DECL_REPLACEABLE_P.
12697         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
12698         update_callee_keys, cgraph_decide_inlining): Test function availability.
12699         * cif-code.def (OVERWRITABLE): New code.
12700
12701 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
12702             Jack Howarth  <howarth@bromo.med.uc.edu>
12703
12704         PR target/36502
12705         PR target/42313
12706         PR target/44651
12707         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
12708         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
12709         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
12710         MAX macro.
12711
12712 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12713
12714         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
12715         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
12716
12717 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12718
12719         * config.gcc: Don't append t-android for Android targets.
12720
12721         * config/t-android: Removed.
12722
12723 2010-09-07  Richard Henderson  <rth@redhat.com>
12724
12725         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
12726         * doc/tm.texi.in: Add doc marker.
12727         * doc/tm.texi: Rebuild.
12728         * except.c (switch_to_exception_section): Always build.
12729         (output_one_function_exception_table): Move section switch,
12730         personality output, and label output ...
12731         (output_function_exception_table): ... here.  Use the new
12732         personality hook.
12733
12734         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
12735         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
12736         TARGET_ASM_INIT_SECTIONS): New.
12737         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
12738         make static.
12739         (TARGET_ASM_UNWIND_EMIT): Update to match.
12740         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
12741
12742         * config/arm/arm.c (arm_asm_emit_except_personality): New.
12743         (arm_asm_init_sections): New.
12744         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
12745
12746 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12747
12748         * config/arm/arm.md: Remove unused variable.
12749
12750 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
12751
12752         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12753         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
12754         (m32r_memory_move_cost): New function.
12755
12756 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12757
12758         * config.gcc: Append t-android for Android targets.
12759
12760         * config/t-android: New.
12761
12762 2010-09-07  Richard Henderson  <rth@redhat.com>
12763
12764         * target.def (unwind_emit_before_insn): New hook.
12765         * doc/tm.texi.in: Add @hook marker for it.
12766         * doc/tm.texi: Rebuild.
12767         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
12768
12769 2010-09-07  Martin Jambor  <mjambor@suse.cz>
12770
12771         PR fortran/43665
12772         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
12773         are any type attributes.
12774
12775 2010-09-07  Jan Hubicka  <jh@suse.cz>
12776
12777         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
12778         array_ref_low_bound in string access folding.
12779
12780 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
12781
12782         PR target/45206
12783         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
12784         eh_return fixup sequence.
12785
12786 2010-09-07  Jan Hubicka  <jh@suse.cz>
12787
12788         * gimple-fold.c (maybe_fold_reference): Verify that operand is
12789         gimple_min_invariant.
12790
12791 2010-09-07  Richard Guenther  <rguenther@suse.de>
12792
12793         PR middle-end/45569
12794         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
12795         nor CONSTRUCTOR can trap.
12796         * tree-complex.c (update_complex_assignment): Update EH info.
12797
12798 2010-09-07  Richard Guenther  <rguenther@suse.de>
12799
12800         PR middle-end/45569
12801         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
12802         * passes.c (execute_function_todo): Do not verify anything if
12803         we saw errors.
12804
12805 2010-09-07  Richard Guenther  <rguenther@suse.de>
12806
12807         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
12808
12809 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
12810
12811         PR target/43137
12812         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
12813         New define_mode_attrs.
12814         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
12815         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
12816         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
12817         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
12818         Remove pool_range attribute.
12819         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
12820         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
12821         pool_range and neg_pool_range attributes.
12822         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
12823         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
12824         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
12825
12826 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12827
12828         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
12829         check glibc.
12830
12831 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12832
12833         PR target/22152
12834         * config/i386/mmx.md (*mov<mode>_internal_rex64,
12835         *mov<mode>_internal_avx, *mov<mode>_internal,
12836         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
12837         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
12838
12839 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
12840
12841         * c-typeck.c (do_warn_double_promotion): Remove.
12842         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
12843         Objective-C++ too.
12844
12845 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
12846
12847         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
12848         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
12849         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
12850         argument type to reg_class_t. Change result type to bool.
12851         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12852
12853 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
12854
12855         PR libobjc/19850
12856         * gthr-posix.h (__gthread_objc_thread_detach): Use
12857         _objc_thread_attribs when detaching a thread.
12858         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
12859
12860 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12861
12862         PR target/45524
12863         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
12864         * configure: Regenerated.
12865
12866 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12867
12868         * combine.c (try_combine): Set subst_low_luid to i0.
12869
12870 2010-09-06  Richard Guenther  <rguenther@suse.de>
12871
12872         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
12873         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
12874         (build_aligned_type): Declare.
12875         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
12876         (check_aligned_type): New function.
12877         (build_aligned_type): Likewise.
12878         * expr.c (expand_assignment): Handle misaligned stores via
12879         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
12880         (expand_expr_real_1): Likewise.
12881         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
12882         * tree-vect-stmts.c (vectorizable_store): Do not build
12883         MISALIGNED_INDIRECT_REF but initialize alignment information.
12884         (vectorizable_load): Likewise.
12885         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
12886         handling.
12887         * cfgexpand.c (expand_debug_expr): Likewise.
12888         * dwarf2out.c (loc_list_from_tree): Likewise.
12889         * fold-const.c (maybe_lvalue_p): Likewise.
12890         (operand_equal_p): Likewise.
12891         (build_fold_addr_expr_with_type_loc): Likewise.
12892         * gimplify.c (gimplify_addr_expr): Likewise.
12893         (gimplify_expr): Likewise.
12894         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
12895         (verify_gimple_assign_single): Likewise.
12896         * tree-dump.c (dequeue_and_dump): Likewise.
12897         (tree_could_trap_p): Likewise.
12898         * tree-predcom.c (ref_at_iteration): Likewise.
12899         * tree-pretty-print.c (dump_generic_node): Likewise.
12900         (op_code_prio): Likewise.
12901         (op_symbol_code): Likewise.
12902         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
12903         * tree-ssa-loop-im.c (for_each_index): Likewise.
12904         (gen_lsm_tmp_name): Likewise.
12905         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
12906         (find_interesting_uses_address): Likewise.
12907         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
12908         * tree-ssa-operands.c (get_expr_operands): Likewise.
12909         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
12910         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12911         (ao_ref_init_from_vn_reference): Likewise.
12912         * tree.c (staticp): Likewise.
12913         (build1_stat): Likewise.
12914         (reference_alias_ptr_type): Likewise.
12915         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
12916         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
12917         MISALIGNED_INDIRECT_REF handling.
12918
12919 2010-09-06  Richard Guenther  <rguenther@suse.de>
12920
12921         PR tree-optimization/45534
12922         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
12923         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
12924         on the target.
12925         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
12926         valid on the target.
12927
12928 2010-09-06  Andreas Schwab  <schwab@redhat.com>
12929
12930         * configure.ac: Quote argument of AC_MSG_WARN.
12931         * configure: Regenerate.
12932
12933 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
12934
12935         * sel-sched.c (move_cond_jump): Correct arguments to
12936         maybe_tidy_empty_bb.
12937         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
12938
12939 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
12940
12941         PR rtl-optimization/44919
12942         * sel-sched.c (move_cond_jump): Remove assert, check that
12943         the several blocks case can only happen with mutually exclusive
12944         insns instead.  Rewrite the movement code to support moving through
12945         several basic blocks.
12946
12947 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12948
12949         * config/i386/i386.md (iptrsize): New mode attribute.
12950         (tp_seg): Ditto.
12951         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
12952         mode iterator.
12953         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
12954         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
12955         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
12956         (stack_tls_protect_set_<mode>): Ditto from
12957         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
12958         of thread base pointer load.
12959         (stack_tls_protect_test_<mode>): Ditto from
12960         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
12961         of thread base pointer load.
12962         (stack_protect_set): Rewrite using indirect functions.
12963         (stack_protect_test): Ditto.
12964         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
12965         (ix86_print_operand): Handle '@'.
12966
12967 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
12968
12969         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
12970         MINUS_EXPR.
12971
12972 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
12973
12974         * doc/invoke.texi: Document -Wdouble-promotion.
12975         * c-typeck.c (convert_arguments): Check for implicit conversions
12976         from float to double.
12977         (do_warn_double_promotion): New function.
12978         (build_conditional_expr): Use it.
12979         (build_binary_op): Likewise.
12980
12981 2010-09-05  Richard Guenther  <rguenther@suse.de>
12982
12983         PR tree-optimization/45535
12984         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
12985         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
12986         dereferencing it.
12987         (indirect_refs_may_alias_p): Likewise.
12988
12989 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
12990
12991         * config/sh/sh.c (sh_option_override): Make static.
12992         Adjust comments.  Declare.
12993         (sh_function_value_regno_p): Likewise.
12994         (sh_register_move_cost): Modify the arguments, make static.
12995         Adjust comments.  Declare.
12996         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
12997         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12998         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
12999         REGISTER_MOVE_COST): Delete.
13000         * config/sh/sh-protos.h (sh_override_options): Delete.
13001         (sh_register_move_cost): Delete.
13002         (sh_function_value_regno_p): Delete.
13003
13004 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
13005
13006         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
13007         m32r_function_value_regno_p): New functions.
13008         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13009         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
13010         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
13011         FUNCTION_VALUE_REGNO_P): Remove.
13012
13013 2010-09-04  Jan Hubicka  <jh@suse.cz>
13014
13015         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
13016         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
13017         fold_read_from_constant_string.
13018
13019         * gimple.h (canonicalize_constructor_val): Declare.
13020         * gimple-fold.c (canonicalize_constructor_val): New function.
13021         (get_symbol_constant_value):Use it.
13022         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
13023
13024 2010-09-04  Jan Hubicka  <jh@suse.cz>
13025
13026         * tree-switch-conversion.c (build_one_array): Set constructor to be
13027         static.
13028         * varpool.c (varpool_finalize_decl): Compute const_value_known.
13029
13030 2010-09-04  Richard Guenther  <rguenther@suse.de>
13031
13032         PR bootstrap/45519
13033         * tree-flow.h (force_gimple_operand_1): Declare.
13034         (force_gimple_operand_gsi_1): Likewise.
13035         * gimplify.c (force_gimple_operand_1): New worker taking a
13036         gimple predicate for ...
13037         (force_gimple_operand): ... which now wraps it.
13038         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
13039         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
13040         last change.
13041         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
13042         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
13043         (create_mem_ref): Likewise.
13044
13045 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
13046
13047         * config/i386/predicates.md (sse_reg_operand): New predicate.
13048         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
13049         predicate for operand 1.
13050         (XFmode push splitter): Use fp_register_operand predicate
13051         for operand 1.
13052         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
13053         (SF-DF float_extend push splitter): Add reload_completed insn
13054         predicate.
13055         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
13056         MODEF mode macro.  Add reload_completed insn predicate.
13057
13058 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
13059
13060         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
13061         (struct df_extract_ref): Remove.
13062         (union df_ref_d): Remove extract_ref member.
13063         (df_ref_create): Remove last three arguments.
13064         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
13065         * df-scan.c (df_ref_record): Remove last three arguments, do not
13066         pass them to df_ref_create_structure.
13067         (df_uses_record): Remove first and last three arguments.  Replace
13068         first argument with DF_REF_REGULAR, adjust calls to remove the
13069         width, offset and mode.  Always call recursively on the second
13070         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
13071         (df_ref_create_structure): Remove first argument.
13072         (struct df_scan_problem_data): Remove ref_extract_pool.
13073         (df_scan_free_internal): Do not free it.
13074         (df_scan_alloc): Do not allocate it.
13075         (df_ref_create): Remove last three arguments, do not pass them to
13076         df_ref_create_structure.
13077         (df_free_ref): Remove DF_REF_EXTRACT case.
13078         (df_notes_rescan): Adjust call to df_uses_record.
13079         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
13080         Remove DF_REF_EXTRACT case.
13081         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
13082         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
13083         and SUBREG definitions.
13084         (df_get_conditional_uses): Remove references to width/offset/mode,
13085         adjust call to df_ref_create_structure.
13086         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
13087         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
13088         calls to df_uses_record and df_ref_record.
13089         * fwprop.c (update_df): Remove references to width/offset/mode,
13090         adjust call to df_ref_create.
13091
13092 2010-09-03  Jan Hubicka  <jh@suse.cz>
13093
13094         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
13095         (build_cdtor_fns): Update use of build_cdtor.
13096
13097 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
13098
13099         * doc/options.texi (SeparateAlias): Document.
13100         * opt-functions.awk (switch_flags): Handle SeparateAlias.
13101         * opth-gen.awk: Generate enumeration names for options marked
13102         SeparateAlias, but not for those marked Ignore.
13103         * opts-common.c (generate_canonical_option): Don't output separate
13104         argument for options marked CL_SEPARATE_ALIAS.
13105         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
13106         * opts.h (CL_SEPARATE_ALIAS): New.
13107         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
13108         CL_COMMON): Adjust definitions.
13109         * config/i386/darwin.opt, config/mips/sde.opt: New.
13110         * common.opt (fdump-final-insns): New.
13111         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
13112         i386/darwin.opt.
13113         (mips*-sde-elf*): Add mips/sde.opt.
13114         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
13115         -mno-data-in-code and -mcode-xonly here.
13116         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
13117         * gcc.c (option_map): Add "j" to --dump entry.
13118         (translate_options): Don't translate -d to -foutput-class-dir= here.
13119
13120 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
13121
13122         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
13123         DR_IS_WRITE.
13124         (compute_all_dependences): Same.
13125         (create_rdg_edge_for_ddr): Same.
13126         * tree-data-ref.h (DR_IS_WRITE): New.
13127         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
13128         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
13129         (write_memrefs_written_at_least_once): Same.
13130         * tree-predcom.c (suitable_component_p): Same.
13131         (determine_roots_comp): Same.
13132         (execute_load_motion): Same.
13133         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
13134         (vect_enhance_data_refs_alignment): Same.
13135         (vect_analyze_group_access): Same.
13136
13137 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
13138
13139         PR testsuite/42843
13140         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
13141         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
13142
13143 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
13144
13145         * dwarf2out.c (file scope): Remove #if0'd code.
13146         (gen_subprogram_die): Same.
13147
13148 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13149
13150         PR middle-end/45484
13151         * dwarf2out.c (flush_queued_reg_saves): Rename to...
13152         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
13153         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
13154         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
13155         * config/i386/i386.c (output_set_got): Call it.
13156
13157 2010-09-03  Michael Matz  <matz@suse.de>
13158
13159         PR middle-end/45415
13160         * tree-sra.c (sra_modify_assign): If we modify the statement,
13161         say so.
13162
13163         * tree-ssa.c (verify_ssa): Check number of operands and links
13164         per statement to agree.
13165
13166 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13167             Iain Sandoe  <iains@gcc.gnu.org>
13168
13169         PR target/45476
13170         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
13171         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
13172         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13173
13174 2010-09-03  Richard Guenther  <rguenther@suse.de>
13175
13176         * lto-streamer-out.c (output_function): Output function
13177         start and end loci.
13178         * lto-streamer-in.c (input_function): Input function start
13179         and end loci.
13180
13181 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13182
13183         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
13184         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
13185         * configure: Regenerate.
13186         * aclocal.m4: Regenerate.
13187
13188 2010-09-03  Jan Hubicka  <jh@suse.cz>
13189
13190         PR lto/44812
13191         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
13192         on functions/variables in other partition.
13193
13194 2010-09-03  Jan Hubicka  <jh@suse.cz>
13195
13196         * cgraph.h (struct varpool_node): Add const_value_known.
13197         (varpool_decide_const_value_known): Declare.
13198         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
13199         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
13200         (input_varpool_node): Restore const_value_known.
13201         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
13202         initializer folding.
13203         * ipa.c (ipa_discover_readonly_nonaddressable_var,
13204         function_and_variable_visibility): Compute const_value_known.
13205         * gimple-fold.c (get_symbol_constant_value): Use varpool for
13206         initializer folding.
13207         * varpool.c (varpool_decide_const_value_known): New function.
13208
13209 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13210
13211         * config/i386/i386.md: Remove empty preparation statements
13212         from splitters.
13213
13214 2010-09-03  Jan Hubicka  <jh@suse.cz>
13215
13216         * passes.c (rest_of_decl_compilation): Do not add local vars into
13217         varpool.
13218         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
13219         static or extern vars are in varpool.
13220         (varpool_finalize_decl): Sanity check that only static vars are
13221         finalized.
13222
13223 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13224
13225         PR debug/45500
13226         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
13227         not just generic vectors with BLKmode.
13228
13229 2010-09-03  Richard Guenther  <rguenther@suse.de>
13230
13231         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
13232         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
13233         * tree.h (TMR_SYMBOL): Remove.
13234         (TMR_BASE, TMR_OFFSET): Adjust.
13235         (TMR_INDEX2): New.
13236         * alias.c (ao_ref_from_mem): Use TMR_BASE.
13237         * builtins.c (get_object_alignment): Merge TMR_BASE and
13238         TMR_SYMBOL handling.
13239         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
13240         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
13241         handling.  Also allow TARGET_MEM_REF as base address.
13242         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
13243         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
13244         base.  Gimplify TMR_INDEX2.
13245         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
13246         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13247         (get_addr_base_and_unit_offset): Likewise.
13248         * tree-eh.c (tree_could_trap_p): Likewise.
13249         * tree-pretty-print.c (dump_generic_node): Likewise.
13250         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
13251         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
13252         base to index2.
13253         (get_address_description): Reconstruct addres description
13254         from merged TMR_BASE and TMR_INDEX2.
13255         (maybe_fold_tmr): Fold propagated addresses.
13256         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
13257         MEM_REF and TARGET_MEM_REF paths.
13258         (indirect_refs_may_alias_p): Likewise.
13259         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
13260         instead of TMR_SYMBOL.
13261         * tree-ssa-operands.c (get_tmr_operands): Simplify.
13262         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
13263         according to changes ...
13264         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
13265         Split TARGET_MEM_REF into two fields plus the base.
13266         * tree.c (mem_ref_offset): Simplify.
13267         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
13268         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
13269         Strip NOPs when folding MEM_REF addresses.
13270         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
13271         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
13272         (fold_gimple_assign): ... not here.
13273
13274 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
13275
13276         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
13277         * config/mips/mips.c (mips_shift_truncation_mask): New function.
13278         (TARGET_SHIFT_TRUNCATION_MASK): Define.
13279
13280 2010-09-02  Richard Henderson  <rth@redhat.com>
13281
13282         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
13283         instead of readelf in the test.
13284         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
13285         in the .debug_frame section for coff targets.
13286         * configure: Rebuild.
13287
13288 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13289
13290         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
13291         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
13292         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13293         (m32c_class_likely_spilled_p): Make static. Change argument type to
13294         reg_class_t. Change result type to bool.
13295
13296 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13297
13298         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
13299         to convert (double)(long) into a single FRIZ instruction or not
13300         when -ffast-math is used.
13301
13302         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
13303         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
13304         or FRIZ instruction if -ffast-math.
13305         * config/rs6000/rs6000.md (friz): Ditto.
13306
13307         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
13308
13309 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13310
13311         * opth-gen.awk (quote, comma): Remove unused variables.
13312
13313 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
13314
13315         * arm.c (arm_override_options): Correct fall-back code to use
13316         SUBTARGET_CPU_DEFAULT.
13317
13318 2010-09-02  Julian Brown  <julian@codesourcery.com>
13319
13320         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
13321         unspecs.
13322         (vcond<mode>, vcondu<mode>): New expanders.
13323         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
13324         comparisons with zero.
13325         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
13326         * config/arm/constraints.md (Dz): New constraint.
13327
13328 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13329
13330         * target.def (class_likely_spilled_p): New hook.
13331         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
13332         * doc/tm.texi: Regenerate.
13333         * targhooks.c (default_class_likely_spilled_p): New function.
13334         * targhooks.h (default_class_likely_spilled_p): Declare.
13335         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
13336         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
13337         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
13338         Use fixed_reg_set instead of fixed_regs.
13339         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13340         * calls.c (avoid_likely_spilled_reg): Ditto.
13341         * ira-conflicts.c (ira_build_conflicts): Ditto.
13342         * ira.c (update_equiv_regs): Ditto.
13343         * mode-switching.c (create_pre_exit): Ditto.
13344         * regmove.c (find_matches): Ditto.
13345         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13346         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
13347         (small_register_class_p): New inline function.
13348         (push_secondary_reload, find_reusable_reload, find_reloads): Use
13349         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
13350
13351         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
13352         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
13353         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13354
13355 2010-09-02  Richard Guenther  <rguenther@suse.de>
13356
13357         PR tree-optimization/44937
13358         PR tree-optimization/45412
13359         * ipa-split.c (split_function): Properly remove PHI nodes.
13360
13361 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13362
13363         * opts.h (struct cl_option): Add warn_message field.
13364         (struct cl_decoded_option): Add warn_message field.
13365         * doc/options.texi (Ignore, Warn): Document.
13366         * opt-functions.awk (needs_state_p): Don't consider aliases or
13367         ignored options to need state saved.
13368         * optc-gen.awk: Handle Warn and Ignore.
13369         * opth-gen.awk: Output OPT_SPECIAL_ignore.
13370         * opts-common.c (decode_cmdline_option): Set warn_message field.
13371         Handle ignored options.
13372         (decode_cmdline_options_to_array, generate_option,
13373         generate_option_input_file): Set warn_message field.
13374         (read_cmdline_option): Generate warnings from warn_message field.
13375         Handle ignored options.
13376         * common.opt (Wunreachable-code, fargument-alias,
13377         fargument-noalias, fargument-noalias-global,
13378         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
13379         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
13380         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
13381         ftree-salias): Mark Ignore.
13382         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
13383         -mintel-syntax and -mno-intel-syntax here.
13384         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
13385         using Warn.
13386         * opts.c (common_handle_option): Don't handle options marked as
13387         ignored.
13388         (enable_warning_as_error): Handle ignored options.
13389
13390 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13391
13392         PR driver/44076
13393         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
13394         alias_target fields.
13395         * opt-functions.awk (opt_sanitized_name): Don't handle
13396         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
13397         * optc-gen.awk: Generate alias fields.
13398         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
13399         Don't generate such constants for aliases.
13400         * opts-common.c (generate_canonical_option): New.
13401         (decode_cmdline_option): Handle aliases.  Use
13402         generate_canonical_option for known options instead of copying the
13403         input option text.
13404         * doc/options.texi (Alias): Document.
13405         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
13406         fstack-check, specs): Mark as aliases.
13407         * gcc.c (driver_handle_option): Canonicalize -L options to joined
13408         arguments.
13409         (driver_handle_option): Don't handle OPT_specs.
13410         * opts.c (common_handle_option): Don't handle options marked as
13411         aliases.
13412         (enable_warning_as_error): Handle aliases.
13413         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
13414         OPT_Wlarger_than_eq.
13415         * tree-optimize.c (tree_rest_of_compilation): Use
13416         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
13417
13418 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13419
13420         * config/i386/i386.md (nonmemory_operand): New mode attribute.
13421         (push memory peephole2): Macroize peepholes using SWI mode iterator.
13422         (move immediate to memory peephole2): Macroize peepholes using
13423         SWI124 mode iterator.
13424         (non-pairable NOT peephole2): Macroize peepholes using SWI124
13425         mode iterator.
13426         (simple lea add peephole2): Macroize peepholes using SWI48
13427         mode iterator.
13428         (simple lea mult peephole2): Ditto.
13429         (imul by 3,5,9 to lea peephole2): Ditto.
13430         (mov $-1, reg peephole2): Macroize peepholes using SWI248
13431         mode iterator.
13432         (imul $32bit_imm,mem,reg peephole2): Ditto.
13433         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
13434
13435 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
13436
13437         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
13438
13439 2010-09-02  Olivier Hainque  <hainque@adacore.com>
13440
13441         PR middle-end/44763
13442         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
13443         (allocno_priority_compare_func): Use it instead of a straight
13444         difference computation over priorities.
13445
13446 2010-09-02  Andi Kleen  <ak@linux.intel.com>
13447
13448         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
13449
13450 2010-09-02  Ira Rosen  <irar@il.ibm.com>
13451
13452         * tree-vectorizer.h (get_later_stmt): New function.
13453         (vect_analyze_data_ref_dependences): Add argument.
13454         * tree-vect-loop.c (vect_analyze_loop): Update call to
13455         vect_analyze_data_ref_dependences.
13456         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
13457         New function.
13458         (vect_analyze_data_ref_dependence): Add argument for basic block
13459         dependencies. Check dependencies in basic block vectorization.
13460         (vect_analyze_data_ref_dependences): Add argument and update call to
13461         vect_analyze_data_ref_dependences.
13462         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
13463         (vect_bb_vectorizable_with_dependencies): New.
13464         (vect_slp_analyze_bb): Check dependencies in basic block.
13465         (vect_schedule_slp_instance): Insert stores before the last store in
13466         SLP instance.
13467
13468 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13469
13470         PR target/45476
13471         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
13472         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13473
13474 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
13475
13476         PR middle-end/45458
13477         * bb-reorder.c (add_labels_and_missing_jumps): Treat
13478         bbs ending with throwing insns like blocks ending with a call.
13479         (fix_up_fall_thru_edges): Likewise.
13480
13481 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
13482
13483         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
13484         (m32c_function_arg_advance): Delete.
13485         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13486         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
13487         comments.  Take a const_tree and a bool.  Declare.
13488         (m32c_function_arg_advance): Likewise.
13489         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13490
13491 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13492
13493         PR target/45476
13494         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
13495         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
13496         * config/i386/mingw32.h: ... here.
13497
13498 2010-09-01  Andi Kleen  <ak@linux.intel.com>
13499
13500         PR lto/45475
13501         * lto-streamer-in.c (lto_input_ts_target_option): Add.
13502         (lto_input_tree_pointers): Call lto_input_ts_target_option.
13503         * lto-streamer-out (lto_output_ts_target_option): Add.
13504         (lto_output_tree_pointers): Call lto_output_ts_target_option.
13505
13506 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
13507
13508         PR/target 45452
13509         * config/i386/cygwin.h: Change order of specified import libraries.
13510         * config/i386/mingw32.h: Likewise.
13511         * config/i386/t-cygwin: Likewise.
13512         * config/i386/t-mingw32: Likewise.
13513         * config/i386/t-mingw-w32: Likewise.
13514         * config/i386/t-mingw-w64: Likewise.
13515
13516 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13517
13518         * config/arm/neon-schedgen.ml (core): New type.
13519         (allCores): List of supported cores.
13520         (availability_table): Add supported cores.
13521         (collate_bypasses): Accept core as a parameter.
13522         (worst_case_latencies_and_bypasses): Accept core as a parameter.
13523         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
13524         and coreStr to get tune attribute and prefix for functional units.
13525         (emit_bypasses): Accept core name and use it.
13526         (calculate_per_core_availability_table): New.
13527         (filter_core): New.
13528         (calculate_core_availability_table): New.
13529         (main): Use calculate_core_availablity_table.
13530         * config/arm/cortex-a8-neon.md: Update copyright year.
13531         Regenerated from ml file and merged in.
13532         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
13533         cortex_a8_neon_mrc.
13534
13535 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
13536
13537         * Makefile.in (tree-switch-conversion.o): Update dependencies.
13538
13539 2010-09-01  Richard Guenther  <rguenther@suse.de>
13540
13541         * alias.c (ao_ref_from_mem): Adjust.
13542         * builtins.c (get_object_alignment): Likewise.
13543         * cfgexpand.c (expand_debug_expr): Likewise.
13544         * gimple.c (get_base_address): Likewise.
13545         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13546         (get_addr_base_and_unit_offset): Likewise.  Fix for
13547         both TMR_SYMBOL and TMR_BASE being set.
13548         * tree-eh.c (tree_could_trap_p): Likewise.
13549         * gimplify.c (gimplify_expr): Do not attempt to gimplify
13550         TMR_SYMBOL.  Always gimplify TMR_BASE.
13551         * tree-cfg.c (verify_types_in_gimple_reference): Verify
13552         TMR_BASE if there is a TMR_SYMBOL.
13553         * tree-pretty-print.c (dump_generic_node): Adjust.
13554         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
13555         (tree_mem_ref_addr): Likewise.
13556         (create_mem_ref_raw): Likewise.
13557         (move_fixed_address_to_symbol): Likewise.
13558         (create_mem_ref): Likewise.
13559         (dump_mem_address): Likewise.
13560         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
13561         Fix for both TMR_SYMBOL and TMR_BASE being set.
13562         (indirect_refs_may_alias_p): Likewise.
13563         * tree-ssa-operands.c (get_tmr_operands): Adjust.
13564         * tree.def (TARGET_MEM_REF): Adjust documentation.
13565
13566 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13567
13568         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
13569         Rename from X86_TUNE_ADD_ESP_4.
13570         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
13571         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
13572         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
13573         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
13574         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
13575         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
13576         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
13577         * config/i386/i386.c (initial_ix86_tune_features)
13578         <X86_TUNE_SINGLE_POP>: Invert members.
13579         <X86_TUNE_DOUBLE_POP>: Ditto.
13580         <X86_TUNE_SINGLE_PUSH>: Ditto.
13581         <X86_TUNE_DOUBLE_PUSH>: Ditto.
13582         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
13583         No longer exported.
13584         (push peephole2 patterns): Macroize peepholes using P mode iterator.
13585         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
13586         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
13587         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
13588
13589 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
13590
13591         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
13592         a volatile LHS if the constructor has only one element.
13593
13594 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
13595
13596         PR bootstrap/45321
13597         * tree.c (stdarg_p): Make fntype parameter const.
13598         * tree.h (stdarg_p): Likewise.
13599         (function_args_iterator): Remove unused fntype field.
13600         (function_args_iter_init): Do not initialize fntype
13601         field.  Make fntype parameter const.
13602
13603 2010-09-01  Richard Guenther  <rguenther@suse.de>
13604
13605         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
13606         estimate.
13607         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
13608         (execute_vrp): Compute number of iteration estimates.
13609         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
13610         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
13611         * tree-data-ref.c (estimated_loop_iterations): Adjust.
13612         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
13613         Infer loop bounds from undefined behavior based on a new parameter.
13614         (estimate_numbers_of_iterations): Likewise.
13615         (scev_probably_wraps_p): Adjust.
13616         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
13617
13618 2010-09-01  Nick Clifton  <nickc@redhat.com>
13619
13620         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
13621         where appropriate.
13622         (xstormy16_legitimate_address_p): Use true and false instead of 1
13623         and 0.
13624         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
13625         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
13626         magic constant 2.
13627         (xstormy16_expand_call): Fix comment at start of function.
13628
13629 2010-09-01  Nick Clifton  <nickc@redhat.com>
13630
13631         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
13632         when pushing accumulator register.
13633         (rx_get_stack_layout): Always save call clobbered registers inside
13634         interrupt handlers.
13635         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
13636
13637 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13638
13639         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
13640         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
13641
13642         * libgcc-std.ver (GCC_4.6.0): Define version.
13643
13644 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13645
13646         * tree-nested.c (convert_all_function_calls): Iterate until after the
13647         sum of static chains in the nest doesn't change.
13648
13649 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
13650
13651         * config/m32c/m32c.c (classes_intersect): Remove.
13652         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
13653         reg_classes_intersect_p instead of classes_intersect.
13654         (class_can_hold_mode): Change arguments type from enum reg_class to
13655         reg_class_t.  Use reg_class_contents instead of class_contents.
13656         (m32c_register_move_cost): Make static. Change arguments type from
13657         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
13658         classes_intersect. Use reg_class_contents instead of class_contents.
13659         (m32c_memory_move_cost): Make static. Change arguments type from
13660         enum reg_class to reg_class_t.
13661         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13662         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13663         * config/m32c/m32c-protos.h (m32c_register_move_cost,
13664         m32c_memory_move_cost): Remove.
13665
13666 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13667
13668         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
13669         (arm_function_arg): Delete.
13670         (arm_needs_doubleword_align): Take a const_tree.
13671         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13672         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
13673         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
13674         (arm_function_arg): Make static.  Take a const_tree and a bool.
13675         (arm_function_arg_advance): Likewise.
13676         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13677
13678 2010-08-31  Andi Kleen  <ak@linux.intel.com>
13679
13680         * common.opt (fwhopr=): Update for -fwhopr=jobserver
13681         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
13682         * lto-wrapper.c (run_gcc): Add jobserver mode.
13683         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
13684         argument.
13685
13686 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
13687
13688         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
13689         (popsi1): Ditto.
13690         (*popdi1_epilogue): Ditto.
13691         (*popsi1_epilogue): Ditto.
13692         (popsi, popdi peephole2 patterns): Update peepholes for changed
13693         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
13694
13695         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
13696         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
13697
13698         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
13699         (override_options): Do not initialize removed ix86_gen_pop1.
13700         (gen_pop): New static function.
13701         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
13702         (release_scratch_register_on_entry): Ditto.
13703         (ix86_restore_reg_using_pop): Ditto.
13704         (ix86_expand_epilogue): Ditto.
13705
13706 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
13707
13708         PR middle-end/45461
13709         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
13710
13711 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13712
13713         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
13714         semicolons.
13715
13716 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13717
13718         * doc/extend.texi: Fix documentation of the return value of
13719         __builtin_choose_expr.
13720
13721 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13722
13723         * config/v850/v850-protos.h (function_arg): Delete.
13724         * config/v850/v850.h (FUNCTION_ARG): Delete.
13725         (FUNCTION_ARG_ADVANCE): Move code to...
13726         * config/v850/v850.c (v850_function_arg_advance): ...here.
13727         (v850_function_arg): Make static.  Take a const_tree and a bool.
13728         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13729
13730 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13731
13732         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
13733         these...
13734         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13735         ...and these...
13736         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
13737         ..to here..
13738         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13739         ...and here.
13740         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13741
13742 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13743
13744         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
13745         Delete.
13746         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13747         * config/rx/rx.c (rx_function_arg_size): Make static.
13748         (rx_function_arg): Likewise.
13749         (rx_function_arg_advance): New function.
13750         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13751
13752 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
13753
13754         * config/arm/arm.c (arm_override_options): Remove superfluous test.
13755         Fix indentation.
13756
13757 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13758
13759         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
13760         (dwarf2out_decl) <CONST_DECL>: Likewise.
13761
13762 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
13763
13764         Stack usage support
13765         * common.opt (-fstack-usage): New option.
13766         * doc/invoke.texi (Debugging options): Document it.
13767         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
13768         allocate_dynamic_stack_space.
13769         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
13770         and propagate it to allocate_dynamic_stack_space.
13771         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
13772         * calls.c (initialize_argument_information): Pass TRUE as 4th
13773         argument to allocate_dynamic_stack_space.
13774         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
13775         to 1 when pushing a variable-sized argument onto the stack.  Pass
13776         TRUE as 4th argument to allocate_dynamic_stack_space.
13777         Update current_function_pushed_stack_size.
13778         (emit_library_call_value_1): Likewise.
13779         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
13780         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
13781         attempt to find an upper bound.  Remove redundant code for the
13782         SETJMP_VIA_SAVE_AREA case.
13783         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
13784         * function.h (struct stack_usage): New structure.
13785         (current_function_static_stack_size): New macro.
13786         (current_function_dynamic_stack_size): Likewise.
13787         (current_function_pushed_stack_size): Likewise.
13788         (current_function_dynamic_alloc_count): Likewise.
13789         (current_function_has_unbounded_dynamic_stack_size): Likewise.
13790         (current_function_allocates_dynamic_stack_space): Likewise.
13791         (struct function): Add new field 'su'.
13792         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
13793         add the value of the dynamic offset to the dynamic stack usage.
13794         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
13795         for variable-sized objects.
13796         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
13797         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
13798         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
13799         BUILT_IN_ALLOCA for variable-sized objects.
13800         * output.h (output_stack_usage): Declare.
13801         * toplev.c (stack_usage_file): New file pointer.
13802         (output_stack_usage): New function.
13803         (open_auxiliary_file): Likewise.
13804         (lang_dependent_init): Open file if flag_stack_usage is set.
13805         (finalize): Close file if stack_usage_file is not null.
13806         * tree.h (ALLOCA_FOR_VAR_P): New macro.
13807         * config/alpha/alpha.c (compute_frame_size): New function.
13808         (alpha_expand_prologue): Use it.
13809         (alpha_start_function): Likewise.
13810         (alpha_expand_epilogue): Likewise.  Set stack usage info.
13811         * config/i386/i386.c (ix86_expand_prologue): Likewise.
13812         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
13813         * config/mips/mips.c (mips_expand_prologue): Likewise.
13814         * config/pa/pa.c (hppa_expand_prologue): Likewise.
13815         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
13816         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
13817
13818 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
13819
13820         PR tree-optimization/45427
13821         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
13822         Handle the case that the exit is never taken correctly.
13823         (number_of_iterations_ne): Pass exit_must_be_taken to
13824         number_of_iterations_ne_max.
13825
13826 2010-08-30  Catherine Moore  <clm@codesourcery.com>
13827
13828         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
13829         Infer -mdspr2 for the the 74K.
13830
13831 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
13832
13833         PR debug/45419
13834         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
13835
13836         PR middle-end/45423
13837         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
13838         and TRUTH_{AND,OR,XOR}_EXPR.
13839         * c-parser.c (c_parser_omp_atomic): Handle boolean
13840         {PRE,POST}_{INC,DEC}REMENT.
13841
13842 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
13843
13844         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
13845         (function_arg): Delete.
13846         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13847         (FUNCTION_INCOMING_ARG): Delete.
13848         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
13849         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
13850         and a bool.
13851         (function_arg): Rename to...
13852         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
13853         a bool.
13854         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
13855         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13856         (TARGET_FUNCTION_INCOMING_ARG): Define.
13857
13858 2010-08-30  Richard Guenther  <rguenther@suse.de>
13859
13860         PR tree-optimization/21602
13861         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
13862         using points-to information.
13863
13864 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
13865
13866         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
13867
13868 2010-08-30  Richard Guenther  <rguenther@suse.de>
13869
13870         PR tree-optimization/45449
13871         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
13872         variables.
13873
13874 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
13875
13876         * opts.h (CL_ERR_NEGATIVE): Define.
13877         * opts.c (unknown_option_callback): Don't postpone warnings for
13878         options marked with CL_ERR_NEGATIVE.
13879         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
13880         for negative versions of CL_REJECT_NEGATIVE options.
13881
13882 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
13883
13884         * config/i386/i386.md (zero_extendsidi2_1): Rename from
13885         zero_extendsidi2_32.
13886         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
13887         using SWI12 mode iterator.
13888         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
13889         to define_insn_and_split pattern.
13890         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
13891         using SWI24 mode iterator.
13892         (*zero_extendqi<mode>2_and): Macroize insn from
13893         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
13894         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
13895         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
13896         SWI24 mode iterator.
13897         (*zero_extendqi<mode>2_movzbl): Ditto from
13898         *zero_extendqi{hi,si}2_movzbl.
13899         (extendsidi2_1): Rename from extendsidi2_32.
13900         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
13901         SWI12 mode iterator.
13902
13903 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
13904
13905         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
13906         general purpose registers.
13907         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
13908         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
13909         with general purpose registers and memory operands.  Add associated
13910         CCImode post-reload splitter.
13911         * config/ia64/div.md: Change BImode to CCImode throughout.
13912
13913 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
13914
13915         * config/ia64/ia64.md (cstorebi4): Fix thinko.
13916
13917 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
13918
13919         * config/picochip/picochip.c (reorder_var_tracking_notes): This
13920         function was dropping debug insns which caused PR45299.
13921
13922 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
13923
13924         * config/i386/sse.md (extsuffix): New code attribute.
13925         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
13926         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
13927         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
13928         and sse4_1_zero_extendv4qiv4si2.
13929         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
13930         and sse4_1_zero_extendv2qiv2di2.
13931         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
13932         and sse4_1_zero_extendv4hiv4si2.
13933         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
13934         and sse4_1_zero_extendv2hiv2di2.
13935         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
13936         and sse4_1_zero_extendv2siv2di2
13937
13938         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
13939         using any_extend code iterator.
13940         (*avx_<s>mulv8hi3_highpart): Macroize insn from
13941         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
13942         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
13943
13944         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
13945         gen_sse4_1_sign_extend* functions.
13946         (struct builtin_description bdesc_args): Ditto.
13947
13948 2010-08-27  Xinliang David Li  <davidxl@google.com>
13949
13950         PR/45422
13951         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
13952         (iv_ca_set_no_cp): Update used inv expr count.
13953         (iv_ca_set_cp): Ditto.
13954         (iv_ca_new): Initialize new member.
13955         (iv_ca_free): Free memory.
13956
13957 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
13958
13959         * config/sh/sh-protos.h (sh_function_arg): Delete.
13960         (sh_function_arg_advance): Delete.
13961         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13962         (PASS_IN_REG_P): Eliminate cast.
13963         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
13964         const_tree and a bool.
13965         (sh_function_arg): Likewise.
13966         (sh_output_mi_thunk): Call sh_function_arg_advance) and
13967         sh_function_arg.
13968         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13969
13970 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
13971             Kaz Kojima  <kkojima@gcc.gnu.org>
13972
13973         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
13974         when possible.
13975         (sh_expand_epilogue): Likewise.
13976         * config/sh/sh.md (movml_push_banked): New insn.
13977         (movml_pop_banked): Likewise.
13978
13979 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
13980
13981         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
13982         gen_regexp_oneof, gen_regexp_sequence): Use the string found
13983         in vector element 0 rather than the original string when there's
13984         only one element.
13985         (gen_regexp): Remove extra semicolon.
13986
13987         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
13988         thumb2_movsf_vfp): Set attribute "insn".
13989         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
13990         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
13991         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
13992         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
13993         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
13994         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
13995         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
13996         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
13997         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
13998         if_not_arith, if_arith_not, cond_move_not): Likewise.
13999
14000 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
14001
14002         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
14003         New declaration.
14004         (rs6000_allocate_stack_temp): Ditto.
14005         (rs6000_expand_convert_si_to_sfdf): Ditto.
14006
14007         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
14008         line.  Update the options set if power6 or power7 server/embedded
14009         type options are used.  If we give a warning for no vsx under
14010         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
14011         (rs6000_allocate_stack_temp): New function to allocate a stack
14012         tempoary and adjust the address so it meets either REG+OFFSET or
14013         REG+REG addressing requirements.
14014         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
14015         that they can be used with the LFIWAX/LFIWZX instrucitons.
14016         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
14017         converting signed/unsigned SImode to either SFmode/DFmode.
14018
14019         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
14020         whether certain instructions can be generated.
14021         (TARGET_FCTIDZ): Ditto.
14022         (TARGET_STFIWX): Ditto.
14023         (TARGET_LFIWAX): Ditto.
14024         (TARGET_LFIWZX): Ditto.
14025         (TARGET_FCFIDS): Ditto.
14026         (TARGET_FCFIDU): Ditto.
14027         (TARGET_FCFIDUS): Ditto.
14028         (TARGET_FCTIDUZ): Ditto.
14029         (TARGET_FCTIWUZ): Ditto.
14030
14031         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
14032         (UNSPEC_FCTID): Ditto.
14033         (UNSPEC_LFIWAX): Ditto.
14034         (UNSPEC_LFIWZX): Ditto.
14035         (UNSPEC_FCTIWUZ): Ditto.
14036         (rreg): Use correct constraints.
14037         (SI_CONVERT_FP): New mode attribute for floating point conversion
14038         tests.
14039         (E500_CONVERT): Ditto.
14040         (lfiwax): New insns for converting from integer to floating point
14041         utilizing newer instructions.  Attempt to optimize conversions
14042         that come from memory so that we don't load the value into a GPR,
14043         spill it to the stack and reload it into a FPR.
14044         (floatsi<mode>2_lfiwax): Ditto.
14045         (floatsi<mode>2_lfiwax_mem): Ditto.
14046         (floatsi<mode>2_lfiwax_mem2): Ditto.
14047         (lfiwzx): Ditto.
14048         (floatunssi<mode>2_lfiwzx): Ditto.
14049         (floatunssi<mode>2_lfiwzx_mem): Ditto.
14050         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
14051         (floatdidf2_mem): Ditto.
14052         (floatunsdidf2_fcfidu): Ditto.
14053         (floatunsdidf2_mem): Ditto.
14054         (floatunsdisf2): Ditto.
14055         (floatunsdisf2_fcfidus): Ditto.
14056         (floatunsdisf2_mem): Ditto.
14057         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
14058         Use FCFID on 32-bit hosts that support it.
14059         (floatsidf2_internal): Ditto.
14060         (floatunssisf2): Ditto.
14061         (floatunssidf2): Ditto.
14062         (floatunssidf2_internal): Ditto.
14063         (floatsisf2): Ditto.
14064         (floatdidf2): Ditto.
14065         (floatdidf2_fpr): Ditto.
14066         (floatunsdidf2): Ditto.
14067         (floatdisf2): Ditto.
14068         (floatdisf2_fcfids): Ditto.
14069         (floatdisf2_internal1): Ditto.
14070         (fixuns_truncsfsi2): Delete, merge into common pattern for both
14071         SF/DF.  Add power7 support.
14072         (fix_truncsfsi2): Ditto.
14073         (fixuns_truncdfsi2): Ditto.
14074         (fixuns_truncdfdi2): Ditto.
14075         (fix_truncdfsi2): Ditto.
14076         (fix_truncdfsi2_internal): Ditto.
14077         (fix_truncdfsi2_internal_gfxopt): Ditto.
14078         (fix_truncdfsi2_mfpgpr): Ditto.
14079         (fctiwz): Ditto.
14080         (btruncdf2): Ditto.
14081         (btruncdf2_fpr): Ditto.
14082         (btructsf2): Ditto.
14083         (ceildf2): Ditto.
14084         (ceildf2_fpr): Ditto.
14085         (ceilsf2): Ditto.
14086         (floordf2): Ditto.
14087         (floordf2_fpr): Ditto.
14088         (floorsf2): Ditto.
14089         (rounddf2): Ditto.
14090         (rounddf2_fpr): Ditto.
14091         (roundsf2): Ditto.
14092         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
14093         (fix_trunc<mode>di2): Ditto.
14094         (fixuns_trunc<mode>si2): Ditto.
14095         (fixuns_trunc<mode>di2): Ditto.
14096         (fctiwz_<mode>): Ditto.
14097         (btrunc<mode>2): Ditto.
14098         (btrunc<mode>2_fpr): Ditto.
14099         (ceil<mode>2): Ditto.
14100         (ceil<mode>2_fpr): Ditto.
14101         (floor<mode>2): Ditto.
14102         (float<mode>2_fpr): Ditto.
14103         (round<mode>2): Ditto.
14104         (round<mode>2_fpr): Ditto.
14105         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
14106         (fixuns_trunc<mode>si2_stfiwx): Ditto.
14107         (fix_truncdfsi2_internal): Ditto.
14108         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
14109         converted value on stack, loaded into GPR, and then stored into
14110         the final destination.
14111         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
14112         FCTIDZ.
14113         (lrint<mode>di2): New insn, provide the lrint builtin functions.
14114         (ftruncdf2): Delete, unused.
14115         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
14116
14117         * config/rs6000/vsx.md (toplevel): Update copyright year.
14118         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
14119         (VSr3): Ditto.
14120
14121 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
14122             Jeremie Salvucci  <jeremie.salvucci@free.fr>
14123
14124         * gengtype.c (output_type_enum): Test the right union member.
14125
14126 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
14127
14128         PR target/41484
14129         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
14130         operands for operand 1.
14131         (sse4_1_extendv4qiv4si2): Ditto.
14132         (sse4_1_extendv2qiv2di2): Ditto.
14133         (sse4_1_extendv4hiv4si2): Ditto.
14134         (sse4_1_extendv2hiv2di2): Ditto.
14135         (sse4_1_extendv2siv2di2): Ditto.
14136         (sse4_1_zero_extendv8qiv8hi2): Ditto.
14137         (sse4_1_zero_extendv4qiv4si2): Ditto.
14138         (sse4_1_zero_extendv2qiv2di2): Ditto.
14139         (sse4_1_zero_extendv4hiv4si2): Ditto.
14140         (sse4_1_zero_extendv2hiv2di2): Ditto.
14141         (sse4_1_zero_extendv2siv2di2): Ditto.
14142         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
14143         (*sse4_1_extendv4qiv4si2): Ditto.
14144         (*sse4_1_extendv2qiv2di2): Ditto.
14145         (*sse4_1_extendv4hiv4si2): Ditto.
14146         (*sse4_1_extendv2hiv2di2): Ditto.
14147         (*sse4_1_extendv2siv2di2): Ditto.
14148         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
14149         (*sse4_1_zero_extendv4qiv4si2): Ditto.
14150         (*sse4_1_zero_extendv2qiv2di2): Ditto.
14151         (*sse4_1_zero_extendv4hiv4si2): Ditto.
14152         (*sse4_1_zero_extendv2hiv2di2): Ditto.
14153         (*sse4_1_zero_extendv2siv2di2): Ditto.
14154
14155 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14156
14157         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
14158         (mips_function_arg): Delete.
14159         (mips_function_arg_boundary): Take a const_tree.
14160         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
14161         (mips_arg_info): Likewise.
14162         (mips_setup_incoming_varargs): Call mips_function_arg_advance
14163         instead of FUNCTION_ARG_ADVANCE.
14164         (mips_function_arg_advance): Adjust prototype.  Make static.
14165         (mips_function_arg): Likewise.
14166         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14167         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
14168
14169 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14170
14171         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14172         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
14173         (function_arg): Delete.
14174         (function_arg_boundary): Take a const_tree.
14175         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
14176         (rs6000_spe_function_arg): Likewise.
14177         (rs6000_parm_start): Likewise.
14178         (rs6000_arg_size): Likewise.
14179         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
14180         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
14181         (rs6000_mixed_function_arg): Likewise.
14182         (function_arg): Rename to...
14183         (rs6000_function_arg): ...this.
14184         (function_arg_advance): Rename to...
14185         (rs6000_function_arg_advance_1): ...this
14186         (rs6000_function_arg_advance): New function.  Call it.
14187         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
14188         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
14189         (rs6000_function_value): Likewise.
14190         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14191
14192 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14193
14194         * config/arm/arm.md (enabled): Test the value of arch_enabled
14195         rather than just using it.
14196
14197 2010-08-27  Olivier Hainque  <hainque@adacore.com>
14198             Eric Botcazou  <ebotcazou@adacore.com>
14199
14200         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
14201         cover all the possible offsets from this base.
14202         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
14203
14204 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
14205
14206         PR tree-optimization/44485
14207         * calls.c (flags_from_decl_or_type): For const or pure
14208         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
14209         together with ECF_CONST resp. ECF_PURE.
14210         * builtins.c (expand_builtin): Use flags_from_decl_or_type
14211         instead of querying flags directly.
14212         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
14213         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
14214
14215 2010-08-26  Richard Guenther  <rguenther@suse.de>
14216
14217         PR tree-optimization/45255
14218         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
14219         and externals are also invariant.
14220
14221 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14222
14223         PR rtl-optimization/44858
14224         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
14225         newi2pat, make sure they don't affect newpat.
14226
14227         PR rtl-optimization/45400
14228         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
14229         SUBREG_REG if both modes are of MODE_INT class.
14230
14231 2010-08-25  Julian Brown  <julian@codesourcery.com>
14232
14233         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
14234         * config/arm/arm.md (generic_sched): No for Cortex-A5.
14235         (generic_vfp): Likewise.
14236         (cortex-a5.md): Include.
14237         * config/arm/cortex-a5.md: New.
14238
14239 2010-08-25  Richard Guenther  <rguenther@suse.de>
14240
14241         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
14242         * gimple.c (gimple_get_alias_set): Remove special handling
14243         for pointers.
14244
14245 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
14246
14247         PR middle-end/45355
14248         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
14249         dead_or_set_p when computing i0_feeds_i2_n.
14250
14251         * combine.c (find_split_point): Undo canonicalization of multiply-add
14252         to (minus x (mult)) when it seems likely that this will increase the
14253         chances of a split.
14254
14255 2010-08-25  Richard Guenther  <rguenther@suse.de>
14256
14257         PR lto/44562
14258         * lto-streamer.c (lto_record_common_node): Do not mess with
14259         TYPE_CANONICAL when not in lto.
14260         * gimple.c (gimple_register_type): Likewise.
14261
14262 2010-08-25  Richard Guenther  <rguenther@suse.de>
14263
14264         PR tree-optimization/45316
14265         * tree-ssa-pre.c (eliminate): Properly clean EH info.
14266
14267 2010-08-25  Richard Guenther  <rguenther@suse.de>
14268
14269         PR tree-optimization/45393
14270         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
14271         and clean EH info.  Avoid SSA update.
14272         (execute_cse_sincos): Cleanup the CFG if it has changed.
14273
14274 2010-08-25  Richard Guenther  <rguenther@suse.de>
14275
14276         PR middle-end/45379
14277         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
14278         TARGET_MEM_REF in alignment computation.
14279
14280 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14281
14282         PR tree-optimization/45059
14283         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
14284         type conversions from newop{1,2}.  Assert t is a comparison and
14285         newop{1,2} after the stripping are gimple vals.
14286
14287 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
14288
14289         * config/arm/iterators.md (VU, SE, V_widen_l): New.
14290         (V_unpack, US): New.
14291         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
14292         (vec_unpack<US>_lo_<mode>): Likewise.
14293         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
14294         (neon_vec_unpack<US>_lo_<mode>): Likewise.
14295         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
14296         (vec_widen_<US>mult_hi_<mode>): Likewise.
14297         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
14298         (neon_vec_<US>mult_hi_<mode>"): Likewise.
14299         (neon_unpack<US>_<mode>): Widening move intermediate step for
14300         vectorizing without -mvectorize-with-neon-quad.
14301         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
14302         for vectorizing without -mvectorize-with-neon-quad.
14303         * config/arm/predicates.md (vect_par_constant_high): Check for
14304         high-half lanes of a vector.
14305         (vect_par_constant_low): Check for low-half lanes of a vector.
14306
14307 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14308
14309         * tree-if-conv.c (struct ifc_dr): New.
14310         (IFC_DR): New.
14311         (DR_WRITTEN_AT_LEAST_ONCE): New.
14312         (DR_RW_UNCONDITIONALLY): New.
14313         (memref_read_or_written_unconditionally): Use the cached values
14314         when possible.
14315         (write_memref_written_at_least_once): Same.
14316         (if_convertible_loop_p): Initialize and free DR->aux fields.
14317
14318 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14319
14320         * gimple.c (gimple_could_trap_p_1): Not static anymore.
14321         Pass an extra bool parameter include_mem.
14322         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
14323         (gimple_assign_rhs_could_trap_p): Same.
14324         * gimple.h (gimple_could_trap_p_1): Declared.
14325         * tree-data-ref.h (same_data_refs_base_objects): New.
14326         (same_data_refs): New.
14327         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
14328         (write_memrefs_written_at_least_once): New.
14329         (ifcvt_memrefs_wont_trap): New.
14330         (operations_could_trap): New.
14331         (ifcvt_could_trap_p): New.
14332         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
14333         Gets a vector of data refs.
14334         (if_convertible_stmt_p): Same.
14335         (if_convertible_loop_p_1): New.
14336         (if_convertible_loop_p): Call if_convertible_loop_p_1.
14337
14338 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14339
14340         * common.opt (ftree-loop-if-convert-stores): New flag.
14341         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
14342         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
14343         the created statement before GSI.
14344         (if_convertible_phi_p): Allow virtual phi nodes when
14345         flag_loop_if_convert_stores is set.
14346         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
14347         Do not handle types that do not match is_gimple_reg_type.
14348         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
14349         when flag_loop_if_convert_stores is set, as LHS can contain
14350         memory refs.
14351         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
14352         to if_convertible_gimple_assign_stmt_p.
14353         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
14354         (replace_phi_with_cond_gimple_assign_stmt): Renamed
14355         predicate_scalar_phi.  Do not handle virtual phi nodes.
14356         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
14357         Call predicate_scalar_phi.
14358         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
14359         just after the labels for flag_loop_if_convert_stores, otherwise
14360         insert the predicate in the end of the BB.
14361         (predicate_mem_writes): New.
14362         (combine_blocks): Call predicate_all_scalar_phis.  When
14363         flag_loop_if_convert_stores is set, call predicate_mem_writes.
14364         (tree_if_conversion): Call mark_sym_for_renaming when
14365         flag_loop_if_convert_stores is set.
14366         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
14367         flag_loop_if_convert_stores is set.
14368
14369 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
14370
14371         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
14372         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
14373         (pa_function_value): Make static.
14374         (override_options): Rename to...
14375         (pa_option_override): ...this. Make static.
14376         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
14377         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
14378         TARGET_OPTION_OVERRIDE): Define.
14379         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
14380         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
14381         Remove.
14382         * config/pa/pa-protos.h (override_options): Remove.
14383
14384 2010-08-24  Richard Guenther  <rguenther@suse.de>
14385
14386         PR middle-end/45379
14387         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
14388         if addr->index is NULL or zero.
14389         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
14390         TARGET_MEM_REF more properly.
14391         (indirect_ref_may_alias_decl_p): Likewise.
14392         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
14393         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
14394
14395 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
14396
14397         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
14398         (m32c_override_options): Rename to...
14399         (m32c_option_override): ...this. Make static.
14400         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
14401         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
14402         Remove.
14403         * config/m32c/m32c-protos.h (m32c_override_options,
14404         m32c_function_value_regno_p): Remove.
14405
14406 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14407
14408         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
14409         Fix a typo in a previous commit.
14410
14411 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
14412
14413         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
14414         Pre-initialize innerloop_iters to one.
14415
14416 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14417
14418         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
14419         existing static function global.
14420
14421         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
14422         is changed to global.
14423
14424         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
14425         may_be_nonaddressable_p on base, and don't collect this reference
14426         if the address of the base could not be taken.
14427
14428 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
14429
14430         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
14431         enable the compiler to autovectorize mathmetical functions for
14432         power7 using the Mathematical Acceleration Subsystem library.
14433
14434         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
14435         handle which vector math library we have.
14436         (rs6000_override_options): Add -mveclibabi=mass support.
14437         (rs6000_builtin_vectorized_libmass): New function to handle auto
14438         vectorizing math functions that are in the MASS library.
14439         (rs6000_builtin_vectorized_function): Call it.
14440
14441         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
14442         -mveclibabi=mass.
14443
14444 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14445
14446         PR boehm-gc/34544
14447         * gthr-posix.h (__gthread_active_init): Delete.
14448         (__gthread_active_p): Do activity check here.
14449         Don't include errno.h on hppa-hpux.  Update comment.
14450         * gthr-posix95.h (__gthread_active_init): Delete.
14451         (__gthread_active_p): Do activity check here.
14452         Don't include errno.h on hppa-hpux.  Update comment.
14453         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
14454         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
14455         add -lpthread when -mt or -pthread is specified.
14456         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
14457         (LINK_GCC_C_SEQUENCE_SPEC): Define.
14458         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
14459         (stublib.c, pthread_default_stacksize_np-stub.o,
14460         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
14461         $(T)libgcc_stub.a): Add methods.
14462         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
14463         (stublib.c, pthread_default_stacksize_np-stub.o,
14464         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
14465         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
14466         pthread_mutex_unlock): New stubs.
14467
14468 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
14469
14470         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
14471         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
14472         options.
14473         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
14474         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
14475         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
14476         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
14477         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
14478         "-l".
14479         * cppspec.c: Include opts.h.
14480         (lang_specific_driver): Use cl_decoded_option structures.
14481         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
14482         * doc/tm.texi: Regenerate.
14483         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
14484         (driver_handle_option): Allow driver options needing no special
14485         processing.
14486         (process_command): Decode options before call to
14487         lang_specific_driver.  Pass decoded options to
14488         lang_specific_driver.
14489         * gcc.h (lang_specific_driver): Update prototype.
14490         * gccspec.c: Include opts.h.
14491         (lang_specific_driver): Use cl_decoded_option structures.
14492         * opts-common.c (option_ok_for_language, generate_option,
14493         generate_option_input_file): New.
14494         (decode_cmdline_option): Use option_ok_for_language.
14495         (decode_cmdline_options_to_array): Use generate_option_input_file.
14496         (handle_generated_option): Use generate_option.
14497         * opts.h (generate_option, generate_option_input_file): Declare.
14498
14499 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
14500
14501         * config/mips/mips.c (mips_override_options): Rename to...
14502         (mips_option_override): ...this. Make static.
14503         (TARGET_OPTION_OVERRIDE): Define.
14504         (mips_in_small_data_p): Update comment.
14505         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
14506         (FIXED_REGISTERS): Update comment.
14507         * config/mips/mips-protos.h (mips_override_options): Remove.
14508
14509 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14510
14511         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
14512
14513 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14514
14515         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
14516         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
14517
14518 2010-08-20  Jan Hubicka  <jh@suse.cz>
14519
14520         * tree-pass.h (pass_ipa_cdtor_merge): New function.
14521         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
14522         heap allocated.
14523         (record_cdtor_fn): Move to ipa.c; do not test for
14524         have_ctors_dtors.
14525         (build_cdtor): Move to ipa.c; add code avoiding construction
14526         when target have ctors/dtors and there is only one ctor/dtor at given
14527         priority.
14528         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
14529         sort; reverse order of constructors.
14530         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
14531         (cgraph_finalize_function): Do not call record_cdtor_fn.
14532         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
14533         (cgraph_build_static_cdtor): Move to ipa.c.
14534         * ipa.c: Include target.h and tree-iterator.h.
14535         (cgraph_build_static_cdtor, static_ctors, static_dtors,
14536         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
14537         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
14538         pass_ipa_cdtor_merge): New.
14539         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
14540         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
14541         bounds access.
14542
14543 2010-08-20  Jan Hubicka  <jh@suse.cz>
14544
14545         PR c++/45307
14546         PR c++/17736
14547         * cgraph.h (cgraph_only_called_directly_p,
14548         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
14549         static cdtors.
14550         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
14551         are not needed.
14552         (cgraph_finalize_function): Static cdtors are reachable.
14553         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
14554
14555 2010-08-20  Jan Hubicka  <jh@suse.cz>
14556
14557         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
14558         flag_wpa.
14559         * lto-streamer-out.c (lto_output): Likewise.
14560         * passes.c (ipa_write_optimization_summaries): Initialize statement
14561         uids.
14562
14563 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14564
14565         * tree.h (alias_diag_flags): New enum.
14566         (alias_pair): Add an 'emitted_diags' field.
14567         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
14568         (assemble_alias): Initialize emitted_diags of new pairs.
14569
14570 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
14571
14572         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
14573         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14574         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14575         (STACK_CHECK_PROTECT): Define.
14576         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
14577         (output_probe_stack_range): Likewise.
14578         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
14579         builtin stack checking is enabled.
14580         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
14581         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
14582         (probe_stack_range): New insn.
14583
14584 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
14585
14586         PR target/45336
14587         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
14588         short first.
14589
14590         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
14591         char first.
14592
14593 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14594
14595         PR target/45336
14596         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
14597         to cover zero extension into 64-bit register.
14598         (*sse2_pextrw): Likewise.
14599         (*sse4_1_pextrd_zext): New insn.
14600
14601 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14602
14603         revert r163410, partially revert r163267.
14604         * config/rs6000/darwin.h (LIB_SPEC): Remove.
14605         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
14606         Darwin versions.
14607
14608 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14609
14610         PR middle-end/44974
14611         * builtins.c (expand_builtin): Don't optimize away
14612         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
14613
14614 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
14615
14616         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
14617         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
14618         alternative 1 of operand 2.
14619
14620 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14621             Paolo Bonzini  <bonzini@gnu.org>
14622
14623         * simplify-rtx.c (simplify_unary_operation_1): Optimize
14624         (sign_extend (zero_extend (...)) and
14625         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
14626
14627 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14628
14629         PR rtl-optimization/45353
14630         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
14631         after bb_note is a BARRIER.
14632
14633 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14634
14635         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
14636         linking libgcc.a.
14637
14638 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14639             Michael Matz  <matz@suse.de>
14640
14641         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
14642
14643 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14644
14645         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
14646         (ggc_mark_roots): ...here.
14647
14648 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14649
14650         * vec.h (FOR_EACH_VEC_ELT): Define.
14651         * c-decl.c: Use it.
14652         * cfgloop.c: Likewise.
14653         * cfgloopmanip.c: Likewise.
14654         * cgraph.c: Likewise.
14655         * cgraphunit.c: Likewise.
14656         * combine.c: Likewise.
14657         * config/bfin/bfin.c: Likewise.
14658         * config/mips/mips.c: Likewise.
14659         * config/rs6000/rs6000.c: Likewise.
14660         * dbxout.c: Likewise.
14661         * df-scan.c: Likewise.
14662         * dominance.c: Likewise.
14663         * dse.c: Likewise.
14664         * dwarf2out.c: Likewise.
14665         * except.c: Likewise.
14666         * expr.c: Likewise.
14667         * function.c: Likewise.
14668         * gcse.c: Likewise.
14669         * genattr.c: Likewise.
14670         * ggc-common.c: Likewise.
14671         * gimplify.c: Likewise.
14672         * graphite-blocking.c: Likewise.
14673         * graphite-clast-to-gimple.c: Likewise.
14674         * graphite-dependences.c: Likewise.
14675         * graphite-interchange.c: Likewise.
14676         * graphite-poly.c: Likewise.
14677         * graphite-scop-detection.c: Likewise.
14678         * graphite-sese-to-poly.c: Likewise.
14679         * graphite.c: Likewise.
14680         * haifa-sched.c: Likewise.
14681         * ifcvt.c: Likewise.
14682         * implicit-zee.c: Likewise.
14683         * ipa-prop.c: Likewise.
14684         * ipa-struct-reorg.c: Likewise.
14685         * ipa.c: Likewise.
14686         * ira-build.c: Likewise.
14687         * ira-color.c: Likewise.
14688         * ira-emit.c: Likewise.
14689         * lambda-code.c: Likewise.
14690         * loop-invariant.c: Likewise.
14691         * loop-unroll.c: Likewise.
14692         * lower-subreg.c: Likewise.
14693         * lto-cgraph.c: Likewise.
14694         * lto-opts.c: Likewise.
14695         * lto-streamer-in.c: Likewise.
14696         * lto-streamer-out.c: Likewise.
14697         * lto-streamer.c: Likewise.
14698         * lto-symtab.c: Likewise.
14699         * matrix-reorg.c: Likewise.
14700         * opts.c: Likewise.
14701         * predict.c: Likewise.
14702         * print-tree.c: Likewise.
14703         * sdbout.c: Likewise.
14704         * sel-sched-dump.c: Likewise.
14705         * sel-sched-ir.c: Likewise.
14706         * sel-sched.c: Likewise.
14707         * sese.c: Likewise.
14708         * stor-layout.c: Likewise.
14709         * tree-cfg.c: Likewise.
14710         * tree-cfgcleanup.c: Likewise.
14711         * tree-chrec.c: Likewise.
14712         * tree-data-ref.c: Likewise.
14713         * tree-emutls.c: Likewise.
14714         * tree-inline.c: Likewise.
14715         * tree-into-ssa.c: Likewise.
14716         * tree-loop-distribution.c: Likewise.
14717         * tree-loop-linear.c: Likewise.
14718         * tree-mudflap.c: Likewise.
14719         * tree-outof-ssa.c: Likewise.
14720         * tree-parloops.c: Likewise.
14721         * tree-predcom.c: Likewise.
14722         * tree-pretty-print.c: Likewise.
14723         * tree-scalar-evolution.c: Likewise.
14724         * tree-ssa-live.c: Likewise.
14725         * tree-ssa-loop-im.c: Likewise.
14726         * tree-ssa-loop-ivcanon.c: Likewise.
14727         * tree-ssa-loop-ivopts.c: Likewise.
14728         * tree-ssa-loop-manip.c: Likewise.
14729         * tree-ssa-loop-niter.c: Likewise.
14730         * tree-ssa-loop-prefetch.c: Likewise.
14731         * tree-ssa-phiprop.c: Likewise.
14732         * tree-ssa-pre.c: Likewise.
14733         * tree-ssa-reassoc.c: Likewise.
14734         * tree-ssa-sccvn.c: Likewise.
14735         * tree-ssa-structalias.c: Likewise.
14736         * tree-ssa.c: Likewise.
14737         * tree-vect-data-refs.c: Likewise.
14738         * tree-vect-loop-manip.c: Likewise.
14739         * tree-vect-loop.c: Likewise.
14740         * tree-vect-patterns.c: Likewise.
14741         * tree-vect-slp.c: Likewise.
14742         * tree-vect-stmts.c: Likewise.
14743         * tree-vrp.c: Likewise.
14744         * tree.c: Likewise.
14745         * value-prof.c: Likewise.
14746         * var-tracking.c: Likewise.
14747         * varasm.c: Likewise.
14748         * vmsdbgout.c: Likewise.
14749
14750 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
14751             Richard Guenther  <richard.guenther@gmail.com>
14752
14753         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
14754         copy the src value and return a copy.
14755         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
14756         (C++ Volatiles): Adjust to describe C++ semantics only.
14757
14758 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
14759
14760         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
14761         be zero or nonzero.
14762         * doc/tm.texi: Regenerate.
14763         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
14764         * df-scan.c (df_get_exit_block_use_set), reginfo.c
14765         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
14766         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
14767         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
14768         to 1.
14769
14770 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14771
14772         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
14773         an extra nop past a sibling call at the very end.
14774
14775 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14776
14777         PR bootstrap/45350
14778         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
14779         a comment.
14780
14781 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14782
14783         * target.def (function_arg, function_incoming_arg): Remove const
14784         qualifier on CUMULATIVE_ARGS parameter.
14785         * targhooks.h (default_function_arg, default_function_incoming_arg):
14786         Likewise.
14787         * targhooks.c (default_function_arg, default_function_incoming_arg):
14788         Likewise.
14789         * config/i386/i386.c (ix86_function_arg): Likewise.
14790
14791 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
14792
14793         PR target/45336
14794         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
14795         SIGN_EXTENDs or ZERO_EXTENDs.
14796
14797 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14798
14799         PR target/42172
14800         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
14801         Take its cost into account if nonnull.
14802         (insn_a_feeds_b): New static function.
14803         (combine_instructions): Look for four-insn combinations.
14804         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
14805         them into account when computing all_adjacent and looking for other
14806         uses.
14807         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
14808         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
14809         (try_combine): New arg I0.  Handle four-insn combinations.
14810         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
14811         like ELIM_I1.
14812
14813 2010-08-19  Jason Merrill  <jason@redhat.com>
14814
14815         PR c++/45307
14816         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
14817         if ctor is empty.
14818         (gimplify_modify_expr_rhs): Adjust.
14819
14820 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14821
14822         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
14823         bitmap_bit_p.
14824         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
14825         * dominance.c (iterate_fix_dominators): Likewise.
14826         * dse.c (set_usage_bits): Likewise.
14827         (set_position_unneeded, record_store): Likewise.
14828         * gimple-fold.c (get_maxval_strlen): Likewise.
14829         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
14830         * ipa-inline.c (update_caller_keys): Likewise.
14831         * ipa-split.c (verify_non_ssa_vars): Likewise.
14832         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
14833         (close_type_exposed_parameter, close_type_full_escape): Likewise.
14834         (close_addressof_down): Likewise.
14835         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
14836         (setup_allocno_left_conflicts_size): Likewise.
14837         (ira_reassign_conflict_allocnos): Likewise.
14838         (ira_reassign_pseudos): Likewise.
14839         * ira-emit.c (change_loop): Likewise.
14840         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
14841         * lto-streamer-out.c (write_symbol): Likewise.
14842         * predict.c (expr_expected_value_1): Likewise.
14843         * regstat.c (regstat_bb_compute_ri): Likewise.
14844         * sel-sched.c (create_block_for_bookkeeping): Likewise.
14845         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
14846         * stmt.c (expand_case): Likewise.
14847         * tree-eh.c (emit_eh_dispatch): Likewise.
14848         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
14849         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
14850         Likewise.
14851         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
14852         (rdg_build_components): Likewise.
14853         * tree-object-size.c (collect_object_sizes_for): Likewise.
14854         * tree-sra.c (convert_callers): Likewise.
14855         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
14856         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
14857         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
14858
14859 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14860
14861         * config/i386/i386.md (*lea_1): Use P mode iterator.
14862         (lea add splitter): Also handle DImode operands.
14863         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
14864         predicate.  Do not use ix86_lea_for_add_ok.
14865         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
14866         (lea ashift splitter): Also handle DImode operands.
14867         (DImode lea ashift splitter): Remove splitter.
14868
14869 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14870
14871         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
14872         ix86_binary_operator_ok.
14873
14874 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
14875
14876         PR rtl-optimization/44691
14877         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
14878         is not a register.
14879
14880 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14881
14882         PR target/45070
14883         * config/arm/arm.c (arm_output_epilogue): Ensure that return
14884          value of size 1-3 is handled correctly.
14885
14886 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14887
14888         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
14889         type for the conditional has wide enough range.
14890
14891 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14892
14893         PR target/45327
14894         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
14895         ix86_binary_operator_ok.
14896
14897 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14898
14899         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
14900         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
14901         code to output insn mnemonic.  Fix comment.
14902         (*addsi_1_zext): Add r-r-0 alternative 1.
14903         <TYPE_LEA>: Split insn to lea.
14904         <default>: Handle alternative 1.
14905         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
14906         multi-level if_then_else RTX to set "type" attribute.
14907         <default>: Handle alternative 2.
14908         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
14909         Use cond RTX instead of multi-level if_then_else RTX to set
14910         "type" attribute.
14911         <default>: Handle alternatives 2 and 4.
14912         (lea splitters): Update calls to ix86_lea_for_add_ok.
14913
14914         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
14915         argument.
14916         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
14917
14918 2010-08-18  Richard Guenther  <rguenther@suse.de>
14919
14920         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
14921         use operand helpers.
14922
14923 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
14924
14925         PR middle-end/45292
14926         * optabs.c (expand_bool_compare_and_swap): Expand pending
14927         pops before trying the optab.
14928
14929 2010-08-18  Yao Qi  <yao@codesourcery.com>
14930
14931         PR target/45094
14932         * config/arm/arm.c (output_move_double): Fix typo generating
14933         instructions ('ldr'->'str').
14934
14935 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
14936
14937         PR rtl-optimization/42575
14938         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
14939         live ranges.
14940
14941 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14942
14943         * config/arm/arm-protos.h (arm_expand_sync): New.
14944         (arm_output_memory_barrier, arm_output_sync_insn): New.
14945         (arm_sync_loop_insns): New.
14946         * config/arm/arm.c (FL_ARCH7): New.
14947         (FL_FOR_ARCH7): Include FL_ARCH7.
14948         (arm_arch7): New.
14949         (arm_print_operand): Support %C markup.
14950         (arm_legitimize_sync_memory): New.
14951         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
14952         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
14953         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
14954         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
14955         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
14956         (arm_process_output_sync_insn, arm_output_sync_insn): New.
14957         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
14958         * config/arm/arm.h (struct arm_sync_generator): New.
14959         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
14960         (TARGET_HAVE_MEMORY_BARRIER): New.
14961         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
14962         * config/arm/arm.md: Include sync.md.
14963         (UNSPEC_MEMORY_BARRIER): New.
14964         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
14965         (VUNSPEC_SYNC_OP):New.
14966         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
14967         (sync_result, sync_memory, sync_required_value): New attributes.
14968         (sync_new_value, sync_t1, sync_t2): Likewise.
14969         (sync_release_barrier, sync_op): Likewise.
14970         (length): Add logic to length attribute defintion to call
14971         arm_sync_loop_insns when appropriate.
14972         * config/arm/sync.md: New file.
14973
14974 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14975
14976         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
14977         ENABLE_TREE_CHECKING.
14978         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
14979         and GCC >= 4.3.
14980
14981 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
14982
14983         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
14984         or optimizing for size, always avoid lea if possible.
14985
14986         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
14987
14988 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
14989
14990         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
14991         Dunmmy function with NULL return unless the target is
14992         OSX >= 10.6 (Darwin10).
14993
14994 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
14995
14996         * gcc.c (spec_function): Add remove-outfile.
14997         (remove_outfile_spec_function): New function.
14998         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
14999         * invoke.texi (replace-outfile): Document.
15000
15001 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
15002
15003         PR target/45296
15004         * reginfo.c (globalize_reg): Reject stack registers.
15005
15006 2010-08-17  Richard Guenther  <rguenther@suse.de>
15007
15008         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
15009         list of conditional equivalences.
15010         (free_all_edge_infos): Adjust.
15011         (record_equivalences_from_incoming_edge): Likewise.
15012         (record_cond): Likewise.
15013         (build_and_record_new_cond): Likewise.
15014         (record_conditions): Likewise.
15015         (dom_opt_leave_block): Likewise.
15016
15017 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
15018
15019         * doc/invoke.texi (ms-extension): Add documentation.
15020
15021 2010-08-17  Richard Guenther  <rguenther@suse.de>
15022
15023         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
15024
15025 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
15026
15027         PR c/40563
15028         * c-decl.c (diagnose_uninitialized_cst_member): New function.
15029         (finish_decl): Use it to issue a -Wc++-compat warning about
15030         uninitialized const field in struct or union.
15031
15032         (finish_struct): Use strip_array_types.
15033
15034 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
15035
15036         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
15037         functions.
15038         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
15039         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
15040         call block_nreverse here.
15041         (blocks_nreverse): Rename decl temporary to block.
15042
15043 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
15044
15045         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
15046         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
15047         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
15048         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
15049         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
15050         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
15051         thumb2_iorsi3): Delete.
15052         (orsi_notsi_si): No longer a named pattern.
15053         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
15054         * config/arm/predicates.md (shift_amount_operand): New.
15055         (mult_operator): New.
15056         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
15057         attr enabled): New.
15058         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
15059         arch matches t2.
15060         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
15061         (not_shiftsi_compare0): Likewise, renamed from
15062         arm_notsi_shiftsi_compare0.
15063         (not_shiftsi_compare0_scratch): Likweise, renamed from
15064         arm_notsi_shiftsi_compare0_scratch.
15065         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
15066         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
15067         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
15068         so that the register alternative is disabled when the shift_operator
15069         is MULT.  Use "M" as the constraint for constants.
15070         (arith_shiftsi splitter): Enable for TARGET_32BIT.
15071         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
15072         constraint for constants.
15073         (arith_shiftsi_compare0_scratch): Likewise.
15074         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
15075         Handle Thumb2 alternative.
15076
15077 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15078
15079         * doc/options.texi (NoDriverArg): Document.
15080         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
15081         -MDX and -MMDX.
15082         * opt-functions.awk (switch_flags): Handle NoDriverArg.
15083         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
15084         marking for CL_NO_DRIVER_ARG options when in the driver.
15085         * opts.h (CL_NO_DRIVER_ARG): Define.
15086         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
15087         CL_COMMON): Update values.
15088
15089 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15090
15091         * common.opt: Add driver options.
15092         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
15093         * doc/options.texi (Driver, RejectDriver): Document.
15094         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
15095         print_prog_name, print_multi_directory, print_sysroot,
15096         print_multi_os_directory, print_multi_lib,
15097         print_sysroot_headers_suffix, report_times, combine_flag,
15098         use_pipes, wrapper_string): Remove.
15099         (save_switch, driver_unknown_option_callback,
15100         driver_wrong_lang_callback, driver_post_handling_callback,
15101         driver_handle_option): New.
15102         (spec_lang, last_language_n_infiles): Make file-scope static
15103         instead of local to process_command.
15104         (process_command): Use decode_cmdline_options_to_array and
15105         read_cmdline_option for option processing.  Compute have_c in
15106         prescan of decoded options.
15107         * opt-functions.awk (switch_flags): Handle Driver and
15108         RejectDriver.
15109         (var_type, var_type_struct): Handle Separate options as generating
15110         const char * variables.
15111         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
15112         CL_TARGET to be passed by caller if required.
15113         (decode_cmdline_options_to_array): Update comment.
15114         * opts.c (complain_wrong_lang): Handle options only valid for the
15115         driver.
15116         (decode_options): Update call to decode_cmdline_options_to_array.
15117         (print_filtered_help): Ignore driver-only options.
15118         (print_specific_help): Ignore CL_DRIVER.
15119         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
15120         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
15121         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
15122         Update values.
15123
15124 2010-08-16  Richard Guenther  <rguenther@suse.de>
15125
15126         * tree-cfg.c (verify_types_in_gimple_reference): Verify
15127         TARGET_MEM_REF a bit.
15128         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
15129         (create_mem_ref_raw): Always create TMR_OFFSET, store the
15130         alias pointer type via it.
15131         (copy_mem_ref_info): Adjust.
15132         (maybe_fold_tmr): Likewise.
15133         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
15134         (reference_alias_ptr_type): Likewise.
15135         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
15136         adjust documentation of TMR_OFFSET operand.
15137         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
15138         use the alias pointer type.
15139         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
15140         initialize mem attrs but the TMR itself.
15141         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
15142         similar to MEM_REF.
15143         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
15144         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
15145         (unshare_and_remove_ssa_names): Likewise.
15146         (copy_ref_info): Adjust.
15147         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
15148         TARGET_MEM_REF case.
15149         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
15150         at TMR_ORIGINAL.
15151         * tree.h (TMR_ORIGINAL): Remove.
15152         * gimple.c (get_base_address): For TARGET_MEM_REF with a
15153         symbol return that.
15154         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
15155         with a symbol.
15156         (get_addr_base_and_unit_offset): Likewise.
15157         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
15158         TARGET_MEM_REFs.
15159         (indirect_ref_may_alias_decl_p): Likewise.
15160         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
15161
15162 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
15163
15164         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
15165         with GCC version 4.6, the default setting (when not optimizing
15166         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
15167         been changed to -fomit-frame-pointer.
15168
15169 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
15170
15171         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
15172         Darwin10.  Do not link libgcc.a for Darwin >= 9.
15173
15174 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
15175
15176         * doc/invoke.texi (Warning Options): Fix terminology and markup
15177         in the description of how unknown warning options are handled.
15178
15179 2010-08-15  Ira Rosen  <irar@il.ibm.com>
15180
15181         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
15182         in basic blocks.
15183         (vect_supportable_dr_alignment): Check alignment for basic blocks.
15184         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
15185         data references.
15186         (vect_bb_vectorization_profitable_p): New function.
15187         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
15188         check if it's worthwhile to vectorize the basic block.
15189
15190 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
15191
15192         * reload.h (register_move_cost, memory_move_secondary_cost,
15193         secondary_reload_class): Adjust prototype.
15194         * rtl.h (reg_class_subset_p): Adjust prototype.
15195         * reload.c (secondary_reload_class): Change arguments type from
15196         enum reg_class to reg_class_t. Change result type to reg_class_t.
15197         * reginfo.c (register_move_cost, reg_class_subset_p): Change
15198         arguments type from enum reg_class to reg_class_t.
15199         (memory_move_secondary_cost): Change arguments type from
15200         enum reg_class to reg_class_t. Change type of saved_flags to
15201         reg_class_t.
15202
15203         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
15204         Remove macros.
15205         (mips_cost): Remove.
15206         (struct mips_rtx_cost_data): Moved to mips.c.
15207         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
15208         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
15209         (mips_cost): Make static.
15210         (mips_canonicalize_move_class): Change argument type to reg_class_t.
15211         Change result type to reg_class_t.
15212         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
15213         type from enum reg_class to reg_class_t.
15214         (mips_register_move_cost): Make static. Change arguments
15215         type from enum reg_class to reg_class_t.
15216         (mips_memory_move_cost): New function.
15217         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15218
15219 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
15220
15221         PR rtl-optimization/43358
15222         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
15223         of a single hard register, using simplify_subreg_regno to decide
15224         what that register should be.
15225
15226 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
15227
15228         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
15229         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
15230         (loongson_pmull<V_suffix>): Rename to...
15231         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
15232
15233 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
15234
15235         * configure.ac: Enable -fomit-frame-pointer on darwin
15236         which support dwarf2.
15237         * config/i386/i386.c (override_options): Same.
15238
15239 2010-08-13  Jie Zhang  <jie@codesourcery.com>
15240
15241         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
15242
15243 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
15244
15245         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
15246         -MMD.
15247
15248 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
15249
15250         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
15251         up dot_prod pattern searching if a stmt is outside the loop.
15252
15253 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
15254             Uros Bizjak  <ubizjak@gmail.com>
15255
15256         * config.gcc: Handle --enable-frame-pointer.
15257
15258         * configure.ac: Add --enable-frame-pointer.
15259         * configure: Regenerated.
15260
15261         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
15262         (override_options): If not configured with --enable-frame-pointer,
15263         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
15264         optimizing for size), -fasynchronous-unwind-tables and
15265         -maccumulate-outgoing-args by default.
15266
15267 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15268
15269         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
15270
15271         PR middle-end/45262
15272         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
15273         -a overflows.  Normalize the range.
15274
15275 2010-08-12  Richard Guenther  <rguenther@suse.de>
15276
15277         PR tree-optimization/45232
15278         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
15279         for types with undefined overflow.
15280         (reassociate_bb): Allow re-associating of bit and min/max
15281         operations for types with undefined overflow.
15282         * tree-ssa-forwprop.c (associate_plusminus): New function.
15283         (tree_ssa_forward_propagate_single_use_vars): Call it.
15284
15285 2010-08-12  Richard Guenther  <rguenther@suse.de>
15286
15287         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
15288         * tree-ssa-alias.c (get_ptr_info): Move ...
15289         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
15290         align and misalign fields conservatively.
15291         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
15292         derive alignment information.
15293         (evaluate_stmt): Derive alignment information from memory
15294         allocation functions.
15295         * tree.h (get_pointer_alignment): Make unsigned.
15296         * builtins.c (get_object_alignment): Use alignment information we
15297         have computed for pointers.
15298         (get_pointer_alignment): Likewise.  Make conservative, return
15299         and unsigned value.
15300         (expand_builtin_strlen): Adjust.
15301         (expand_builtin_memcmp): Likewise.
15302         (expand_builtin_strcmp): Likewise.
15303         (expand_builtin_strncmp): Likewise.
15304         (get_builtin_sync_mem): Use at least mode alignment.
15305         (fold_builtin_memset): Adjust.
15306         (fold_builtin_memory_op): Likewise.
15307         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
15308         information also dump pointer alignment knowledge.
15309         (dump_gimple_stmt): Likewise.
15310
15311 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
15312
15313         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
15314         (EMPTY_FIELD_BOUNDARY): Remove.
15315         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
15316
15317 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15318
15319         PR debug/45259
15320         * caller-save.c (save_call_clobbered_regs): Only swap notes with
15321         DEBUG_INSNs if n_regs_saved.
15322
15323 2010-08-12  Wei Guozhi  <carrot@google.com>
15324
15325         PR target/44999
15326         * config/arm/arm.md (andsi3): Change to zero extension if possible.
15327         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
15328
15329 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
15330
15331         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
15332
15333         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
15334
15335 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15336
15337         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
15338         the case removed in the previous patch, when the only phi argument
15339         is defined in the same loop as the phi node itself.  Handle it
15340         separately from the invariant case by both propagating it outside
15341         the region and replacing the phi node with an assign.
15342
15343 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15344
15345         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
15346         constant phi nodes with one argument are is_gimple_min_invariant
15347         and SSA_NAME_IS_DEFAULT_DEF.
15348
15349 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15350
15351         * graphite-cloog-util.c (oppose_constraint):
15352         Extend loop counter's value range (CLOOG_ORG).
15353         (cloog_matrix_to_ppl_constraint): Same.
15354         (new_Constraint_System_from_Cloog_matrix): Same.
15355         * graphite-cloog-compat.h (matrix_num_type): New.
15356
15357 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15358
15359         * graphite.c (graphite_initialize): Do not initialize
15360         CLooG and initialize the Parma Polyhedra Library
15361         manually when using CLOOG_ORG.
15362         (graphite_finalize): Do not finalize CLooG and finalize
15363         the Parma Polyhedra Library manually when using CLOOG_ORG.
15364         * graphite-cloog-compat.h (cloog_initialize): Hide function
15365         when using CLOOG_ORG.
15366         (cloog_finalize): Same.
15367
15368 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15369
15370         * graphite-clast-to-gimple.c (free_scattering): Change
15371         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
15372         (CLOOG_ORG).
15373         (build_cloog_prog): Same.
15374         * graphite-cloog-compat.h (cloog_domain): Removed.
15375         (cloog_scattering): New.
15376         (cloog_set_domain): Removed.
15377         (cloog_set_scattering): New.
15378         (cloog_next_domain): Removed.
15379         (cloog_next_scattering): New.
15380         (cloog_set_next_domain): Removed.
15381         (cloog_set_next_scattering): New.
15382         (CloogScatteringList): New.
15383         (CloogScattering): New.
15384         (cloog_scattering_free): New.
15385         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
15386         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
15387         New.
15388
15389 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15390
15391         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
15392         CloogState.
15393         (set_cloog_options): Same.
15394         (print_clast_stmt): Same.
15395         (scop_to_clast): Same.
15396         (print_generated_program): Same.
15397         (gloog): Same.
15398         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
15399         (scop_to_clast): Extend with CloogState.
15400         * graphite-cloog-util.c: Include graphite-cloog-compat.h
15401         (new_Cloog_Domain_from_ppl_Polyhedron):
15402         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
15403         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
15404         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15405         * graphite-cloog-util.h (build_cloog_prog): Same.
15406         * graphite-cloog-copat.h (build_cloog_prog): New.
15407         (CloogState): New.
15408         (cloog_state_malloc): New.
15409         (cloog_state_free): New.
15410         (cloog_loop_malloc): New.
15411         (cloog_options_malloc): New.
15412         (cloog_statement_alloc): New.
15413         (cloog_domain_from_cloog_matrix): New.
15414         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
15415         (new_Cloog_Domain_from_ppl_Polyhedron): New.
15416
15417 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15418
15419         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
15420         type of NAME now depends on used CLooG version.
15421         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
15422         (gcc_type_for_clast_expr): Same.
15423         (print_clast_stmt): Replace pprint with clast_pprint.
15424         * graphite-cloog-compat.h: Provide compatibility macros for
15425         CLooG Legacy.
15426         (clast_name_p): New.
15427         (clast_expr_term): New.
15428         (clast_expr_red): New.
15429         (clast_expr_bin): New.
15430         (clast_pprint): New.
15431
15432 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15433
15434         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
15435         compatible to newer CLooG releases (CLOOG_ORG).
15436         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
15437         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
15438         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
15439         (build_cloog_prog) : New.
15440         (cloog_program_extract_scalars): New.
15441         (cloog_program_scatter): New.
15442
15443 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15444
15445         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
15446         conditionally (CLOOG_ORG).
15447         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
15448         (cloog_statement_usr): New.
15449         (cloog_domain): Same.
15450         (cloog_set_domain): Same.
15451         (cloog_next_domain): Same.
15452         (cloog_set_next_domain): Same.
15453         (cloog_program_nb_scattdims): Same.
15454         (cloog_program_set_nb_scattdims): Same.
15455         (cloog_program_names): Same.
15456         (cloog_program_set_names): Same.
15457         (cloog_program_set_context): Same.
15458         (cloog_program_set_loop): Same.
15459         (cloog_program_blocklist): Same.
15460         (cloog_program_set_blocklist): Same.
15461         (cloog_program_scaldims): Same.
15462         (cloog_program_set_scaldims): Same.
15463         (cloog_names_nb_parameters): Same.
15464         (cloog_names_set_nb_parameters): Same.
15465         (cloog_names_parameters): Same.
15466         (cloog_names_set_parameters): Same.
15467         (cloog_names_set_nb_iterators): Same.
15468         (cloog_names_set_iterators): Same.
15469         (cloog_names_set_nb_scattering): Same.
15470         (cloog_names_set_scattering): Same.
15471         (cloog_statement_set_usr): Same.
15472         (cloog_loop_set_next): Same.
15473         (cloog_loop_set_domain): Same.
15474         (cloog_loop_set_block): Same.
15475         (cloog_block_list_next): Same.
15476         (cloog_block_list_set_next):
15477         (cloog_block_list_set_block): Same.
15478
15479 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15480
15481         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
15482         a bool.
15483         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
15484         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
15485         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
15486         when something has been changed.
15487         (rewrite_commutative_reductions_out_of_ssa): Same.
15488
15489 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15490
15491         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
15492         handle the case when def is in the sese region.
15493         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
15494         for invariant expressions.
15495         (rewrite_cross_bb_phi_deps): Removed.
15496         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
15497         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
15498         rewrite_cross_bb_phi_deps.
15499
15500 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15501
15502         * graphite-sese-to-poly.c
15503         (rewrite_commutative_reductions_out_of_ssa_loop): Call
15504         scev_analyzable_p only on is_gimple_reg
15505
15506 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15507
15508         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
15509         (rewrite_close_phi_out_of_ssa): Propagate constant values or
15510         parametric expressions outside the scop region.
15511         (rewrite_cross_bb_scalar_deps): Same.
15512         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
15513
15514 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15515
15516         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
15517         SSA_NAME_DEF_STMT only on SSA_NAMEs.
15518
15519 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15520
15521         * tree-scalar-evolution.c (instantiate_scev_name): Do not
15522         instantiate default definitions.
15523
15524 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
15525             Sebastian Pop  <sebastian.pop@amd.com>
15526
15527         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
15528         (loop_exits_from_bb_p): New.
15529         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
15530         (loop_exits_from_bb_p): Declared.
15531         * graphite-scop-detection.c (scopdet_basic_block_info): Call
15532         loop_exits_to_bb_p.
15533
15534 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15535
15536         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
15537         extra parameter for the region.  Call scev_analyzable_p.
15538         (rewrite_reductions_out_of_ssa): Update call to
15539         rewrite_close_phi_out_of_ssa.
15540         (rewrite_cross_bb_phi_deps): Same.
15541         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
15542         parameter for the region.  Call scev_analyzable_p.
15543         (rewrite_commutative_reductions_out_of_ssa): Update call to
15544         rewrite_commutative_reductions_out_of_ssa_loop.
15545
15546 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15547
15548         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
15549
15550 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15551
15552         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
15553         SSA scalar phi nodes that can be scev_analyzable_p.
15554
15555 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15556
15557         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
15558         handle SSA_NAME_IS_DEFAULT_DEF.
15559
15560 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15561
15562         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
15563
15564 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15565
15566         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
15567         case non close-phi nodes with one argument.
15568
15569 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15570
15571         * sese.h (scev_analyzable_p): Scevs could be expressions without
15572         chrecs and still be scev_analyzable_p.
15573
15574 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15575
15576         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
15577
15578 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15579
15580         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
15581         * cfgloop.h (struct loop): Remove single_iv field.
15582         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
15583         (scop_canonicalize_loops): Removed.
15584         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
15585         over all the loop phi nodes in loop->header.
15586         (build_poly_scop): Remove use of scop_canonicalize_loops.
15587
15588 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15589
15590         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
15591         handle GIMPLE_CALL.
15592
15593 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15594
15595         * tree-chrec.c (chrec_apply): Should only apply to the specified
15596         variable.  Also handle multivariate chains of recurrences that
15597         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
15598
15599 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15600
15601         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
15602         (debug_clast_name_indexes_1): Removed.
15603         (debug_clast_name_indexes): Removed.
15604         (pbb_to_depth_to_oldiv): Removed.
15605         (build_iv_mapping): Replace the use of rename_map with iv_map.
15606         (translate_clast_user): Remove uses of rename_map.  Allocate and
15607         free iv_map.
15608         (translate_clast_for_loop): Remove uses of rename_map.
15609         (translate_clast_for): Same.
15610         (translate_clast_guard): Same.
15611         (translate_clast): Same.
15612         (gloog): Same.
15613         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
15614         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
15615         * sese.c (set_rename): Now static.
15616         (rename_variables_in_stmt): Removed.
15617         (rename_uses): New.
15618         (is_parameter): Removed.
15619         (is_iv): Removed.
15620         (expand_scalar_variables_call): Removed.
15621         (expand_scalar_variables_ssa_name): Removed.
15622         (expand_scalar_variables_expr): Removed.
15623         (expand_scalar_variables_stmt): Removed.
15624         (expand_scalar_variables): Removed.
15625         (rename_variables): Removed.
15626         (remove_condition): Removed.
15627         (get_true_edge_from_guard_bb): Removed.
15628         (get_false_edge_from_guard_bb): Removed.
15629         (struct igp): Removed.
15630         (default_before_guard): Removed.
15631         (convert_for_phi_arg): Removed.
15632         (add_guard_exit_phis): Removed.
15633         (insert_guard_phis): Removed.
15634         (graphite_copy_stmts_from_block): Now also uses iv_map and a
15635         region.  Do not copy conditions.  Do not copy induction variables.
15636         Call rename_uses.
15637         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
15638         the translated statement.  Use the iv_map for the induction
15639         variable renaming.
15640         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
15641         (set_rename): Removed declaration.
15642         (scev_analyzable_p): ...here.
15643         * tree-chrec.c (chrec_apply_map): New.
15644         * tree-chrec.h (chrec_apply_map): Declared.
15645
15646 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15647
15648         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
15649         insert_loop_close_phis.
15650         * sese.c (name_defined_in_loop_p): Removed.
15651         (expr_defined_in_loop_p): Removed.
15652         (alive_after_loop): Removed.
15653         (close_phi_not_yet_inserted_p): Removed.
15654         (struct alep): Removed.
15655         (add_loop_exit_phis): Removed.
15656         (insert_loop_close_phis): Removed.
15657
15658 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15659
15660         * graphite-cloog-util.c
15661         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
15662         * graphite-poly.c
15663         (psct_scattering_dim_for_loop_depth): Same.
15664
15665 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15666
15667         * graphite-cloog-util.h: Added cloog.h.
15668         * graphite-blocking.c: Removed cloog.h.
15669         * graphite-dependences.c: Same.
15670         * graphite-interchange.c: Same.
15671         * graphite-poly.c: Same.
15672         * graphite-ppl.c: Same.
15673         * graphite-scop-detection.c: Same.
15674         * graphite-sese-to-poly.c:
15675         Removed cloog.h.
15676         Removed graphite-clast-to-gimple.h.
15677         (check_poly_representation): Removed (unused).
15678         * graphite-sese-to-poly.h
15679         (check_poly_representation): Removed (unused).
15680
15681 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15682
15683         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
15684         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
15685         (graphite-cloog-util.o): New.
15686         (graphite-ppl.o): Added graphite-cloog-util.h.
15687         * graphite-clast-to-gimple.c:
15688         Added graphite-cloog-util.h to include statements.
15689         * graphite-cloog-util.c: New.
15690         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
15691         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15692         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15693         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15694         (insert_constraint_into_matrix): Same.
15695         (ppl_Constrain_System_number_of_constraints): Same.
15696         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15697         (oppose_constraint): Same.
15698         (cloog_matrix_to_ppl_constraint): Same.
15699         (new_Constraint_System_from_Cloog_Matrix): Same.
15700         * graphite-cloog-util.h: New.
15701         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
15702         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15703         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15704         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15705         (insert_constraint_into_matrix): Same.
15706         * graphite-ppl.c:
15707         Added graphite-cloog-util.h to include statements.
15708         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
15709         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15710         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15711         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15712         (insert_constraint_into_matrix): Same.
15713         (ppl_Constrain_System_number_of_constraints): Same.
15714         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15715         (oppose_constraint): Same.
15716         (cloog_matrix_to_ppl_constraint): Same.
15717         (new_Constraint_System_from_Cloog_Matrix): Same.
15718         * graphite-ppl.h:
15719         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
15720         graphite-cloog-util.h.
15721         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15722         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15723         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15724         (insert_constraint_into_matrix): Same.
15725
15726 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15727
15728         * graphite-clast-to-gimple.c
15729         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
15730         (precision_for_interval): Same.
15731         (gcc_type_for_interval): Same.
15732         (compute_type_for_level): Same.
15733         * graphite-interchange.c
15734         (lst_interchange_profitable_p): Same.
15735         * graphite-poly.c
15736         (psct_scattering_dim_for_loop_depth): Same.
15737         * graphite-ppl.c
15738         (ppl_max_for_le_pointset): Same.
15739         (ppl_min_for_le_pointset): Same.
15740
15741 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15742
15743         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
15744         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
15745
15746 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15747
15748         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
15749         rewrite_close_phi_out_of_ssa.
15750
15751 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15752
15753         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
15754
15755 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15756
15757         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
15758         rename_map.
15759         * sese.c (debug_rename_map): Same.
15760         (get_rename): Same.
15761         (set_rename): Same.
15762         (rename_variables_in_stmt): Same.
15763         (expand_scalar_variables_call): Same.
15764         (expand_scalar_variables_ssa_name): Same.
15765         (expand_scalar_variables_expr): Same.
15766         (expand_scalar_variables_stmt): Same.
15767         (expand_scalar_variables): Same.
15768         (rename_variables): Same.
15769         (graphite_copy_stmts_from_block): Same.
15770         (copy_bb_and_scalar_dependences): Same.
15771
15772 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15773
15774         * graphite-clast-to-gimple.c (copy_renames): Removed.
15775         (translate_clast_for): Do not call copy_renames.
15776         (translate_clast_guard): Same.
15777
15778 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15779
15780         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
15781         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
15782         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
15783         before rewrite_cross_bb_scalar_deps.
15784
15785 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15786
15787         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
15788         Early return in when flag_associative_math is not set.
15789
15790 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15791
15792         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
15793         of SSA copies on edges except for loop->latch.
15794
15795 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15796
15797         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
15798         Split out of rewrite_reductions_out_of_ssa.
15799         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
15800         Declared.
15801         * graphite.c (graphite_transform_loops): Call it.
15802
15803 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15804
15805         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
15806
15807 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
15808
15809         * dbgcnt.def (graphite_scop): New counter.
15810         * graphite.c: Include dbgcnt.h.
15811         (graphite_transform_loops): Use new counter to limit transformations.
15812         * Makefile.in (graphite.o): Depend on DBGCNT_H.
15813
15814 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15815
15816         * passes.c (init_optimization_passes): Add pass_graphite.
15817         Schedule a pass_copy_prop before pass_graphite_transforms.
15818         * timevar.def (TV_GRAPHITE): Declared.
15819         * tree-pass.h (pass_graphite): Declared.
15820         * tree-ssa-loop.c (pass_graphite): New.
15821
15822 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15823
15824         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
15825         Remove calls to rename_nb_iterations and rename_sese_parameters.
15826         * graphite-clast-to-gimple.h (gloog): Update declaration.
15827         * graphite.c (graphite_transform_loops): Update call to gloog.
15828         * sese.c (rename_variables_in_expr): Removed.
15829         (rename_nb_iterations): Removed.
15830         (rename_sese_parameters): Removed.
15831         * sese.h (rename_nb_iterations): Removed.
15832         (rename_sese_parameters): Removed.
15833
15834 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15835
15836         * graphite-clast-to-gimple.c (gloog): Remove call to
15837         sese_adjust_liveout_phis.
15838         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
15839         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
15840         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
15841         rewrite_phi_out_of_ssa.
15842         * sese.c (get_vdef_before_sese): Removed.
15843         (sese_adjust_vphi): Removed.
15844         (sese_adjust_liveout_phis): Removed.
15845         * sese.h (sese_adjust_liveout_phis): Removed.
15846
15847 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15848
15849         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
15850         argument for the place after which to insert the out of SSA copy.
15851         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
15852         (rewrite_phi_out_of_ssa): Same.
15853         (rewrite_cross_bb_scalar_deps): Same.
15854         (insert_copyout): Removed.
15855         (insert_copyin): Removed.
15856         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
15857         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
15858         insert_copyin.
15859
15860 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15861
15862         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
15863         (rewrite_reductions_out_of_ssa): Same.
15864         (rewrite_commutative_reductions_out_of_ssa): Same.
15865         (build_poly_scop): Do not call these functions.
15866         * graphite-sese-to-poly.h (build_poly_scop): Declared.
15867         (rewrite_reductions_out_of_ssa): Declared.
15868         (rewrite_commutative_reductions_out_of_ssa): Declared.
15869         * graphite.c (graphite_transform_loops): Call on every scop
15870         rewrite_commutative_reductions_out_of_ssa before calling
15871         rewrite_reductions_out_of_ssa and build_scop_bbs.
15872
15873 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15874
15875         * graphite-dependences.c (dot_deps): Make system call to dotty run
15876         in background.
15877         (dot_deps_stmt): Same.
15878         * graphite-poly.c (dot_lst): Same.
15879
15880 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15881
15882         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
15883         phi_arg_in_outermost_loop.
15884         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
15885         (remove_invariant_phi): Same.
15886
15887 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
15888
15889         * target.def (output_addr_const_extra): New hook.
15890         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
15891         * doc/tm.texi: Regenerate.
15892         * targhooks.c (default_asm_output_addr_const_extra): New function.
15893         * targhooks.h (default_asm_output_addr_const_extra): Declare.
15894         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
15895         target hook.
15896
15897         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15898         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
15899         * config/i386/i386.h (output_addr_const_extra): Rename to...
15900         (i386_asm_output_addr_const_extra): ...this. Make static.
15901         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15902
15903 2010-08-11  Richard Henderson  <rth@redhat.com>
15904
15905         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
15906
15907 2010-08-11  Nick Clifton  <nickc@redhat.com>
15908
15909         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
15910         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
15911         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
15912         stormy16-lib2-cmpsi.c.
15913
15914         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
15915         -O2.
15916
15917 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
15918
15919         * opts.h (struct cl_option_handler_func): Make handler take
15920         cl_decoded_option structure as parameter, not individual elements.
15921         (struct cl_option_handlers): Make callbacks take cl_decoded_option
15922         structure as parameter, not individual elements.
15923         (handle_option): Take cl_decoded_option structure as parameter,
15924         not individual elements.
15925         (handle_generated_option): Declare.
15926         * opts-common.c (handle_option): Take cl_decoded_option structure
15927         as parameter, not individual elements.  Update calls to callback
15928         and handler functions.
15929         (handle_generated_option): New.
15930         (read_cmdline_option): Update calls to callback functions and
15931         handle_option.
15932         * opts.c (common_handle_option, complain_wrong_lang,
15933         unknown_option_callback, post_handling_callback,
15934         lang_handle_option, target_handle_option): Take cl_decoded_option
15935         structure as parameter, not individual elements.
15936         (lang_handle_option, target_handle_option, common_handle_option):
15937         Assert option has at most one argument.
15938         (enable_warning_as_error): Call handle_generated_option instead of
15939         handle_option.  Do not pass -Werror argument as argument of
15940         generated option.
15941
15942 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15943
15944         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
15945         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
15946         (SUBWORD_BOOL_CAS): Likewise.
15947         (SUBWORD_SYNC_OP): Likewise.
15948         (SUBWORD_TEST_AND_SET): Likewise.
15949         (FETCH_AND_OP_WORD): Parenthesise INF_OP
15950         (SUBWORD_SYNC_OP): Likewise.
15951         (OP_AND_FETCH_WORD): Likewise.
15952
15953 2010-08-10  Xinliang David Li  <davidxl@google.com>
15954
15955         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
15956         compute max/min offset in address.
15957
15958 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
15959
15960         * ira-live.c: Include sbitmap.h.
15961         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
15962         Compress live ranges even more.
15963
15964 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15965
15966         * coverage.c (ctr_labels): Delete.
15967
15968 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15969
15970         PR bootstrap/45177
15971         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
15972         test here from arm_gen_load_multiple_1.
15973         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
15974         multiple_operation_profitable_p.
15975
15976 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15977
15978         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
15979         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
15980
15981 2010-08-10  Richard Henderson  <rth@redhat.com>
15982
15983         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
15984         after saving registers.  Assert that SSE registers are only saved
15985         with a sufficiently aligned frame.
15986         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
15987         remove stack_realign_fp handling.
15988         (ix86_expand_prologue): Save int registers before stack_realign_fp,
15989         and do not mark the stack alignment as frame related.
15990         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
15991
15992         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
15993         saves when re-aligning the stack.
15994
15995 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15996
15997         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
15998         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
15999         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
16000
16001 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16002
16003         * dwarf2out.c (struct die_struct): Move die_tag to the end.
16004
16005 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
16006
16007         * config/arm/iterators.md: New file.
16008         * config/arm/arm.md: Include iterators.md.
16009         (QHSI): Move to new file.
16010         (LTUGEU, cnb, optab, ior_xor): Likewise.
16011         * config/arm/iwmmxt.md (VMMX): Move to new file.
16012         (VSHFT, MMX_char): Likewise.
16013         * config/arm/neon.md (VD): Move to new file.
16014         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
16015         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
16016         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
16017         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
16018         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
16019         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
16020         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
16021         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
16022         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
16023         (Is_d_reg, V_mode_nunits): Likewise.
16024         * config/arm/vec-common.md (VALL): Move to new file.
16025         (VALLW, VINT, VINTW): Likewise.
16026
16027 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
16028
16029         PR middle-end/45182
16030         * combine.c (make_compound_operation): Don't try to convert
16031         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
16032
16033 2010-08-10  Richard Guenther  <rguenther@suse.de>
16034
16035         * tree.h (get_object_alignment): Adjust prototype.
16036         * builtins.c (get_object_alignment): Return unsigned int,
16037         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
16038         and TARGET_MEM_REF properly.
16039         (get_pointer_alignment): Adjust.
16040         * emit-rtl.c (get_mem_align_offset): Adjust comment.
16041         (set_mem_attributes_minus_bitpos): Adjust.
16042         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
16043
16044 2010-08-10  Richard Guenther  <rguenther@suse.de>
16045
16046         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
16047         (copy_prop_visit_assignment): Simplify.
16048         (copy_prop_visit_stmt): Also visit assignments from
16049         constants.
16050         (copy_prop_visit_phi_node): Use operand_equal_p.
16051
16052 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16053
16054         * ipa-split.c (find_split_points): Free stack.
16055
16056 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16057
16058         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
16059         * tree.c (tree_node_kind): Delete corresponding entries.
16060
16061 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
16062
16063         * alias.c (may_alias_p): Remove unused ret.
16064
16065 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
16066
16067         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
16068         alias_sets_conflict_p.
16069         (walk_mems_1): Moved from alias.c.
16070         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
16071         in alias.c.
16072         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
16073         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
16074         * alias.c (walk_mems_2): Moved to ddg.c.
16075         (walk_mems_1): Ditto.
16076         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
16077         to ddg.c.
16078         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
16079         disambiguation.
16080         *(may_alias_p): New function to check whether two memory expression
16081         may alias or not. Currently used in buidling inter-iteration memory
16082         dependence.
16083         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
16084         (insn_alias_sets_conflict_p): Removed
16085         *rtl.h (may_alias_p): New function prototype.
16086
16087 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16088
16089         * tree.c (nreverse): Assert that we don't have a BLOCK.
16090
16091 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16092
16093         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
16094         * config/arm/arm.c (arm_get_pcs_model): Likewise.
16095         * config/avr/avr.c (init_cumulative_args): Likewise.
16096         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
16097         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
16098         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
16099         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
16100         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
16101         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
16102         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
16103         * dwarf2out.c (gen_subprogram_die): Likewise.
16104         * function.c (allocate_struct_function): Likewise.
16105         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
16106         (deserves_ellipsis): Delete.
16107
16108 2010-08-09  Richard Guenther  <rguenther@suse.de>
16109
16110         * tree-ssa-copy.c (cached_last_copy_of): Remove.
16111         (valueize_val): New function.
16112         (get_last_copy_of): Remove.
16113         (set_copy_of_val): Simplify.
16114         (dump_copy_of): Likewise.
16115         (copy_prop_visit_cond_stmt): Use valueize_val.
16116         (copy_prop_visit_phi_node): Properly handle unvisited names.
16117         Drop code managing copy-of chains.
16118         (init_copy_prop): Adjust.
16119         (fini_copy_prop): Likewise.
16120         (execute_copy_prop): Remove obsolete comment.
16121
16122 2010-08-09  Richard Guenther  <rguenther@suse.de>
16123
16124         PR middle-end/44632
16125         * function.c (gimplify_parameters): Do not clear addressable
16126         bit of the original parameter.
16127
16128 2010-08-09  Richard Guenther  <rguenther@suse.de>
16129
16130         PR middle-end/45212
16131         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
16132         alignment from MEM_REF offset only if we took it from the
16133         base object.
16134
16135 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
16136
16137         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
16138
16139 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16140
16141         * c-tree.h (build_arg_info): Declare.
16142         * c-decl.c (build_arg_info): Define.
16143         (get_parm_info): Call it.  Delete initialization code.
16144         * c-parser.c (c_parser_parms_declarator): Likewise.
16145         (c_parser_parms_list_declaractor): Likewise.
16146
16147 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16148
16149         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
16150         (struct c_arg_info): Change type of tags field.
16151         * c-decl.c (grokdeclarator): Update for changed type of tags field.
16152         (get_parm_info): Likewise.
16153         (store_parm_decls_newstyle): Likewise.
16154
16155 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16156
16157         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
16158         (branch_island_list): Delete.
16159         (branch_islands): Declare.
16160         (add_compiler_branch_island): Adjust for branch_islands instead of
16161         branch_island_list.
16162         (macho_branch_islands): Likewise.
16163         (no_previous_def): Likewise.
16164         (get_prev_label): Likewise.
16165
16166 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16167
16168         PR boehm-gc/34544
16169         * gthr-posix.h (__gthread_start): Delete.
16170         (__gthread_active_init): Use pthread_default_stacksize_np instead of
16171         pthread_create to determine if hpux pthreads are active.
16172         * gthr-posix95.h (__gthread_start): Delete.
16173         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
16174
16175 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
16176
16177         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
16178         _WIN64 not expanded.
16179
16180 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
16181             H.J. Lu  <hongjiu.lu@intel.com>
16182
16183         PR target/45213
16184         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
16185         to output 32bit SFmode immediate as 8 byte sign extended value.
16186
16187 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16188
16189         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
16190         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
16191         (SUBWORD_BOOL_CAS): Likewise.
16192         (SUBWORD_SYNC_OP): Likewise.
16193         (SUBWORD_TEST_AND_SET): Likewise.
16194         (FETCH_AND_OP_WORD): Parenthesise INF_OP
16195         (SUBWORD_SYNC_OP): Likewise.
16196         (OP_AND_FETCH_WORD): Likewise.
16197
16198 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16199
16200         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
16201         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
16202         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
16203         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
16204         generic part.
16205         (cortex_a9_sched_adjust_cost): New function.
16206         (xscale_sched_adjust_cost): New function.
16207         * config/arm/arm-protos.h (struct tune_params): New field
16208         sched_adjust_cost.
16209         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
16210
16211 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
16212
16213         PR target/44942
16214         * config/sparc/sparc.c (function_arg_advance): Always take into account
16215         the padding, if any.
16216
16217 2010-08-06  Richard Guenther  <rguenther@suse.de>
16218
16219         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
16220         (dump_lattice_value): Dump it.
16221         (get_default_value): Adjust.
16222         (get_constant_value): Likewise.
16223         (set_value_varying): Likewise.
16224         (set_lattice_value): Make sure to not go up the lattice
16225         with bitwise constant values.
16226         (get_value_for_expr): Handle ADDR_EXPRs.
16227         (value_to_double_int): New function.
16228         (get_value_from_alignment): Likewise.
16229         (do_dbg_cnt): Adjust.
16230         (ccp_lattice_meet): Handle partially constant values.
16231         (bit_value_unop_1): New function.
16232         (bit_value_binop_1): Likewise.
16233         (bit_value_unop): Likewise.
16234         (bit_value_binop): Likewise.
16235         (evaluate_stmt): Track partially constant values if
16236         flag_tree_bit_ccp is set.
16237         (ccp_fold_stmt): Dump if we folded a predicate.
16238         (ccp_visit_stmt): Adjust.
16239         * common.opt (ftree-bit-ccp): New flag.
16240         * doc/invoke.texi (ftree-bit-ccp): Document.
16241         * opts.c (decode_options): Enable bit-CCP at -O1.
16242
16243 2010-08-06  Alan Modra  <amodra@gmail.com>
16244
16245         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
16246         and -mrelocatable-lib description.
16247
16248 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
16249
16250         From Martin Thuresson  <martint@google.com>
16251         * postreload.c (reload_cse_simplify_operands): Use
16252         SET_REGNO_RAW instead of SET_REGNO.
16253         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
16254         SET_REGNO.
16255         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
16256         instead of SET_REGNO.
16257         * rtl.h (SET_REGNO_RAW): New macro.
16258
16259 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
16260
16261         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
16262         computations.  Fix formatting issues.
16263         (num_sign_bit_copies1): Likewise.
16264         (canonicalize_condition): Likewise.
16265
16266 2010-08-05  Richard Henderson  <rth@redhat.com>
16267
16268         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
16269         (floor_log2): Use clz_hwi.
16270         (exact_log2): Use ctz_hwi.
16271         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
16272         * builtins.c (fold_builtin_bitop): Use them.
16273         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
16274         * combine.c (get_pos_from_mask): Use ctz_hwi.
16275         * double-int.c (double_int_ctz): Likewise.
16276         * explow.c (force_reg): Likewise.
16277         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
16278
16279 2010-08-05  Richard Henderson  <rth@redhat.com>
16280
16281         PR target/45189
16282         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
16283         the alignment constant is properly sign-extended.
16284
16285 2010-08-05  Richard Guenther  <rguenther@suse.de>
16286
16287         * expr.c (store_expr): Use emit_block_move only if both
16288         source and target are MEMs.  Use store_bit_field if only
16289         the target is a MEM.
16290
16291 2010-08-05  Richard Henderson  <rth@redhat.com>
16292
16293         PR debug/45188
16294         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
16295         (INCOMING_RETURN_ADDR_RTX): Likewise.
16296         (dwarf2out_do_frame): Remove conditional compilation.
16297         (dwarf2out_frame_init): Likewise.
16298
16299 2010-08-05  Nicolas Setton  <setton@adacore.com>
16300
16301         * gcov.c (flag_display_progress): New static variable.
16302         (main): Display progress info on standard output if requested.
16303         (options): Add -d/--display-progress.
16304         (print_usage): Print them.
16305         (process_args): Handle them.
16306         * doc/gcov.texi: Document them.
16307
16308 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16309
16310         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
16311         (ipcp_insert_stage): Redirect only edges not flagged with
16312         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
16313         discovered constants.
16314
16315 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16316
16317         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
16318         (struct ipa_param_descriptor): New fields types and
16319         cannot_devirtualize.
16320         (ipa_param_cannot_devirtualize_p): New function.
16321         (ipa_param_types_vec_empty): Likewise.
16322         (ipa_make_edge_direct_to_target): Declare.
16323         * ipa-cp.c: Fixed first stage driver name in initial comment,
16324         described devirtualization there too.
16325         (ipcp_analyze_node): Call ipa_analyze_params_uses.
16326         (ipcp_print_all_lattices): Print devirtualization info.
16327         (ipa_set_param_cannot_devirtualize): New function.
16328         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
16329         lattice to BOTTOM.
16330         (ipcp_init_stage): Merged into...
16331         (ipcp_generate_summary): ...its caller.
16332         (ipcp_change_tops_to_bottom): Also process type lists.
16333         (ipcp_add_param_type): New function.
16334         (ipcp_copy_types): Likewise.
16335         (ipcp_propagate_types): Likewise.
16336         (ipcp_propagate_stage): Also propagate types.
16337         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
16338         Also return true if propagated types require it.
16339         (ipcp_update_callgraph): Dump redirection info.
16340         (ipcp_process_devirtualization_opportunities): New function.
16341         (ipcp_const_param_count): Include known type information.
16342         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
16343         on new node.  Fixed formatting.
16344         * ipa-prop.c (make_edge_direct_to_target): Renamed to
16345         ipa_make_edge_direct_to_target and changed all callers.  Made
16346         externally visible.
16347         (ipa_node_duplication_hook): Duplicate types vector.
16348         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
16349         redirect outgoing calls for which we can't get a decl from the
16350         statement.  Check that we can get a decl from the call statement.
16351         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
16352         ipa_analyze_params_uses only when ipa-cp is disabled.
16353         * tree-inline.c (get_indirect_callee_fndecl): Removed.
16354         (expand_call_inline): Do not call get_indirect_callee_fndecl.
16355         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
16356         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
16357
16358 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16359
16360         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
16361         temporary. Emit move from temporary to accum, so REG_EQUAL note will
16362         be attached to this insn in correct mode.
16363
16364 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16365
16366         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
16367         using REGNO of base_reg directly.
16368
16369 2010-08-05  Jie Zhang  <jie@codesourcery.com>
16370
16371         PR tree-optimization/45144
16372         * tree-sra.c (type_consists_of_records_p): Return false
16373         if the record contains bit-field.
16374
16375 2010-08-04  Richard Henderson  <rth@redhat.com>
16376
16377         * config/i386/i386.c (struct ix86_frame): Remove padding and
16378         to_allocate members.
16379         (ix86_compute_frame_layout): Don't store them.
16380         (ix86_can_use_return_insn_p): Use a more direct and more obviously
16381         correct condition for the position of the stack pointer.
16382         (ix86_expand_prologue): Compute remaining stack allocation based
16383         on the ultimate stack pointer offset.
16384         (ix86_expand_epilogue): Use more obvious expressions testing for
16385         the stack pointer already pointing to the saved registers.
16386
16387         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
16388         duplication deconstructing the frame pointer.  Simplify
16389         deallocation of the local stack frame.
16390
16391         * reg-notes.def (CFA_EXPRESSION): New.
16392         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
16393         (dwarf2out_frame_debug_cfa_expression): New.
16394         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
16395
16396         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
16397         * config/i386/i386.c (ix86_expand_prologue): Set it.
16398         (ix86_expand_epilogue): Clear it.
16399         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
16400         context, add REG_CFA_EXPRESSION notes.
16401
16402         * config/i386/i386.h (struct machine_frame_state): Rename from
16403         machine_cfa_state.  Add members tracking SP and FP regardless
16404         of the current CFA register.
16405         (ix86_cfa_state): Remove.
16406         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
16407         and sse_reg_save_offset members.
16408         (ix86_compute_frame_layout): Set them.
16409         (gen_push): Increment sp_offset too.
16410         (choose_baseaddr_len, choose_baseaddr): New.
16411         (ix86_emit_save_reg_using_mov): New.
16412         (ix86_emit_save_regs_using_mov): Use it.
16413         (ix86_emit_save_sse_regs_using_mov): Likewise.
16414         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
16415         compare vs the saved red_zone_offset.
16416         (pro_epilogue_adjust_stack): Adjust sp_offset.
16417         (ix86_adjust_stack_and_probe): Likewise.
16418         (ix86_expand_prologue): Set up, use, and validate the new
16419         frame_state_info members.  Use gen_frame_mem.
16420         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
16421         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
16422         new frame_state_info members.
16423         (ix86_emit_leave): Likewise.
16424         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
16425         out-of-range stack pointer offsets here.
16426         (ix86_emit_restore_sse_regs_using_mov): Likewise.
16427         (ix86_expand_epilogue): Use and validate the new frame_state_info
16428         members.  Break up and simplify the logic selecting the
16429         restore_regs_via_mov code path.  Ensure that there will be no
16430         out-of-range stack pointer offsets.
16431
16432         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
16433
16434         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
16435         argument name to reflect the expected tree; fix indentation.
16436         (ix86_asm_output_function_label): Output the entire 32-bit
16437         ms_hook here as bytes ...
16438         (ix86_expand_prologue): ... not here as insns.  Attach the
16439         unwind info for the ms_hook to a blockage insn.
16440         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
16441         (ix86_ms_bitfield_layout_p): Fix indentation.
16442         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
16443
16444         * config/i386/i386.c (ix86_using_red_zone): New.
16445         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
16446         ix86_expand_prologue, ix86_force_to_memory): Use it.
16447
16448         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
16449         saving the int registers.
16450
16451         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
16452         and DWARF2_UNWIND_INFO conditional compilation.
16453
16454 2010-08-04  Richard Henderson  <rth@redhat.com>
16455
16456         PR debug/45171
16457         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
16458         an is_naming_typedef_decl.
16459
16460 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
16461
16462         PR rtl-optimization/45162
16463         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
16464         * dce.c (word_dce_process_block): Likewise.
16465
16466 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
16467
16468         PR target/44583
16469         * config/ia64/constraints.md (Z): New.
16470         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
16471         (xfreg_or_signed_fp01_operand): New.
16472         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
16473         with fr_reg_or_signed_fp01_operand and constraint G with Z.
16474         (subsf3): Ditto.
16475         (*maddsf4): Ditto.
16476         (*msubsf4): Ditto.
16477         (adddf3): Ditto.
16478         (adddf3_trunc): Ditto.
16479         (subdf3): Ditto.
16480         (*subdf3_trunc): Ditto.
16481         (*madddf4): Ditto.
16482         (*madddf4_trunc): Ditto.
16483         (*msubdf4): Ditto.
16484         (*msubdf4_trunc): Ditto.
16485         (addxf3): Replace xfreg_or_fp01_operand with
16486         xfreg_or_signed_fp01_operand and constraint G with Z.
16487         (*addxf3_truncsf): Ditto.
16488         (*addxf3_truncdf): Ditto.
16489         (subxf3): Ditto.
16490         (*subxf3_truncsf): Ditto.
16491         (*subxf3_truncdf): Ditto.
16492         (*maddxf4): Ditto.
16493         (*maddxf4_truncsf): Ditto.
16494         (*maddxf4_truncdf): Ditto.
16495         (*msubxf4): Ditto.
16496         (*msubxf4_truncsf): Ditto.
16497         (*msubxf4_truncdf): Ditto.
16498
16499 2010-08-04  Richard Guenther  <rguenther@suse.de>
16500
16501         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
16502         if either alias-set is zero.
16503
16504 2010-08-04  Richard Guenther  <rguenther@suse.de>
16505
16506         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
16507         * tree-ssa-ccp.c: ... here.
16508         * tree-ssa-copy.c: ... and here.
16509         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
16510         value_range_t): Move ...
16511         * tree-vrp.c: ... here.
16512         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
16513         (substitute_and_fold): Adjust prototype.
16514         * tree-ssa-propagate.c (replace_uses_in): Adjust.
16515         (replace_phi_args_in): Likewise.
16516         (substitute_and_fold): Take callback to query lattice instead
16517         of pointer to lattice.  Replace SSA name defs with lattice
16518         values first.
16519         * tree-ssa-ccp.c (ccp_finalize): Adjust.
16520         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
16521         (get_value): New function.
16522         (fini_copy_prop): Adjust.
16523         * tree-vrp.c (vrp_finalize): Adjust.
16524
16525 2010-08-04  Richard Guenther  <rguenther@suse.de>
16526
16527         PR middle-end/45176
16528         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
16529         points-to set for original MEM_REF.
16530
16531 2010-08-04  Richard Guenther  <rguenther@suse.de>
16532
16533         * tree-ssa-ccp.c (get_constant_value): New function.
16534         (get_rhs_assign_op_for_ccp): Remove.
16535         (valueize_op): New function.
16536         (ccp_fold): Use get_constant_value and valueize_op.
16537         (fold_const_aggregate_ref): Likewise.
16538         (ccp_fold_stmt): Likewise.
16539         (visit_assignment): Simplify.
16540
16541 2010-08-04  Richard Guenther  <rguenther@suse.de>
16542
16543         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
16544         * double-int.h (double_int_ctz): Declare.
16545         * double-int.c (double_int_ctz): New function.
16546
16547 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
16548
16549         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
16550         Define.
16551         picochip_expand_movmemhi : Expand movmem pattern.
16552         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
16553         Declare.
16554         * config/picochip/picochip.md (movmemhi) : New pattern.
16555
16556 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16557
16558         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
16559
16560 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
16561
16562         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
16563         NEG as operand of a MULT by merging it with the other operand.
16564         * combine.c (make_compound_operation): Use trunc_int_for_mode when
16565         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
16566         MULT.
16567         * config/arm/constraints.md (M): Examine only 32 bits of a
16568         HOST_WIDE_INT.
16569         * config/arm/predicates.md (power_of_two_operand): Likewise.
16570
16571 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16572
16573         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
16574         non-NOTE insns.
16575
16576 2010-08-03  Jan Hubicka  <jh@suse.cz>
16577
16578         * ipa-split.c (struct split_point): Add split_part_set_retval.
16579         (find_retval): Forward declare.
16580         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
16581         (consider_split): Compute current->split_part_set_retval.
16582         (visit_bb): Do not look into return value.
16583         (split_function): Handle !split_part_set_retval
16584
16585 2010-08-03  Martin Jambor  <mjambor@suse.cz>
16586
16587         * tree-sra.c (completely_scalarize_record): New parameter REF, create
16588         its own access->expr intead of using build_ref_for_offset.
16589
16590 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
16591
16592         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
16593         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
16594         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
16595         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
16596         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
16597         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
16598         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
16599         DEFAULT_SWITCH_TAKES_ARG.
16600         * config/rx/rx.opt (-patch=): Remove option.
16601         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
16602         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
16603         * doc/invoke.texi (RX Options): Remove -patch=.
16604         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
16605         (option_map): Remove --profile-blocks, --quiet and --silent.
16606
16607 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16608
16609         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
16610         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
16611         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
16612         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16613         Update calls to ix86_expand_compare and ix86_expand_branch.
16614         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
16615         ix86_expand_compare.
16616         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
16617         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16618         Make static.
16619         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
16620         and ix86_compare_op1.  Update calls to ix86_expand_compare.
16621         (ix86_expand_int_movcc): Ditto.
16622         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
16623         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
16624         (ix86_expand_setcc): Ditto.
16625         (ix86_expand_compare): Remove prototype.
16626         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
16627         ix86_compare_op0 and ix86_compare_op1.  Update calls
16628         to ix86_expand_branch to directly pass operands[1] and operands[2].
16629         (cbranchxf4): Ditto.
16630         (cbranch<MODEF:mode>4): Ditto.
16631         (cbranchcc4): Ditto.
16632         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
16633         Update calls to ix86_expand_setcc to directly pass operands[2] and
16634         operands[3].
16635         (cstorexf4): Ditto.
16636         (cstore<MODEF:mode>4): Ditto.
16637         (cstorecc4): Ditto.
16638
16639 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16640
16641         PR target/45063
16642         * caller-save.c (save_call_clobbered_regs): Remove regs from
16643         hard_regs_saved when they are set.
16644
16645 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
16646
16647         PR target/41089
16648         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
16649         as volatile.
16650
16651 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
16652
16653         * common.opt (ftree-loop-distribute-patterns): New.
16654         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
16655         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
16656         at -O3.
16657         * tree-data-ref.c (stores_zero_from_loop): New.
16658         * tree-data-ref.h (stores_zero_from_loop): Declared.
16659         * tree-loop-distribution.c (tree_loop_distribution): Call
16660         stores_zero_from_loop.
16661         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
16662
16663 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16664
16665         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
16666         into account.
16667
16668         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
16669         * config/arm/arm.c (thumb1_code): New variable.
16670         (arm_override_options): Set it.
16671         (thumb1_final_prescan_insn): Keep track of condition code status.
16672         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
16673         jumps that depend on them.
16674         * config/arm/arm.h (thumb1_code): Declare variable.
16675         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
16676         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
16677         thumb1_cc_mode.
16678         (CC_STATUS_INIT): New macro.
16679         * config/arm/constraints.md (Pd): New constraint.
16680         * config/arm/predicates.md (noov_comparison_operator): New predicate.
16681         * config/arm/arm.md (is_thumb1): New define_attr.
16682         (conds): Set default to "clob" when generating Thumb1 code.
16683         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
16684         code are set.  Use two-operand assembly syntax.
16685         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
16686         pattern.
16687         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
16688         codes are set.  Use two-operand assembly syntax.
16689         (zero_extendhisi splitter): Remove constraints.
16690         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
16691         thumb1_movsf_insn): Set conds attribute as appropriate.
16692         (cbranchsi4_insn): Use condition code status from struct
16693         machine_function to determine whether the comparison can be eliminated.
16694         Discourage the alternative using high registers.
16695         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
16696         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
16697         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
16698         subsi3_cbranch): Delete.
16699         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
16700         one subtract and one cbranch insn.
16701
16702         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
16703         thumb2_movdf_soft_insn): Delete patterns.
16704         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
16705         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
16706         (pool_range, neg_pool_range): Use them to define defaults.
16707         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
16708         and allow for TARGET_32BIT.
16709
16710         PR target/40457
16711         * config/arm/arm.h (arm_regs_in_sequence): Declare.
16712         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
16713         load_multiple_sequence, store_multiple_sequence): Delete
16714         declarations.
16715         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
16716         declarations.
16717         * config/arm/ldmstm.md: New file.
16718         * config/arm/arm.c (arm_regs_in_sequence): New array.
16719         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
16720         CHECK_REGS.  All callers changed.
16721         If SAVED_ORDER is nonnull, copy the computed order into it.
16722         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
16723         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
16724         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
16725         If SAVED_ORDER is nonnull, copy the computed order into it.
16726         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
16727         like REGS.  Handle Thumb mode.
16728         (arm_gen_load_multiple_1): New function, broken out of
16729         arm_gen_load_multiple.
16730         (arm_gen_store_multiple_1): New function, broken out of
16731         arm_gen_store_multiple.
16732         (arm_gen_multiple_op): New function, with code from
16733         arm_gen_load_multiple and arm_gen_store_multiple moved here.
16734         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
16735         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
16736         changed.
16737         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
16738         * config/arm/predicates.md (commutative_binary_operator): New.
16739         (load_multiple_operation, store_multiple_operation): Handle more
16740         variants of these patterns with different starting offsets.  Handle
16741         Thumb-1.
16742         * config/arm/arm.md: Include "ldmstm.md".
16743         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
16744         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
16745         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
16746         peepholes): Delete.
16747         * config/arm/ldmstm.md: New file.
16748         * config/arm/arm-ldmstm.ml: New file.
16749
16750         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
16751         if statement which adds extra costs to frame-related expressions.
16752
16753 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16754
16755         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
16756
16757 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
16758
16759         PR target/45142
16760         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
16761         alternative 2.
16762         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
16763         split V4SI operands.
16764
16765 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
16766
16767         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16768         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
16769         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
16770         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
16771
16772 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
16773
16774         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
16775         LOCAL_INCLUDE_DIR.
16776
16777 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
16778
16779         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
16780         used in the call to optab_for_tree_code.  Fix the second
16781         is_widening_mult_p call.  Check that both unwidened operands
16782         have the same sign.
16783
16784 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
16785
16786         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
16787
16788 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
16789
16790         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16791
16792 2010-07-30  DJ Delorie  <dj@redhat.com>
16793
16794         * config/rx/predicates.md (rx_constshift_operand): New.
16795         * config/rx/rx.md (zs_cond): New.
16796         (cbranchsi4): Remove mode.
16797         (*cbranchsi4_<code>): Likewise.
16798         (*tstbranchsi4_<code>): New.
16799         (*tstbranchsi4r_<code>): New.
16800         (*tstbranchsi4m_eq): New.
16801         (*tstbranchsi4m_ne): New.
16802         (cbranchsf4): Remove mode.
16803         (*cbranchsf4_<code>): Likewise.
16804
16805 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
16806
16807         * rtlanal.c (simplify_subreg_regno): Don't treat
16808         HARD_FRAME_POINTER_REGNUM specially.
16809
16810 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
16811
16812         * common.opt (-G): Don't define option here.
16813         * config/g.opt: New.
16814         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
16815         rs6000/powerpc and score targets.
16816         * opts.c (common_handle_option): Don't handle -G here.
16817         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
16818         * config/frv/frv.c (frv_handle_option): Handle -G.
16819         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
16820         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
16821         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
16822         * config/mips/mips.c (mips_handle_option): Handle -G.
16823         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
16824         * config/score/score.c (score_handle_option): Handle -G.
16825
16826 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
16827
16828         * config/mmix/mmix.c: Include basic-block.h.
16829
16830 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
16831
16832         PR debug/45055
16833         PR rtl-optimization/45137
16834         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
16835         prototypes.
16836         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
16837         New functions.
16838         * combine.c (next_nonnote_nondebug_insn): Removed.
16839         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
16840         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
16841         * sched-deps.c (sched_analyze_insn): Likewise.
16842         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
16843         * rtlanal.c (canonicalize_condition): Likewise.
16844         * postreload.c (reload_combine_recognize_pattern): Likewise.
16845         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
16846
16847 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
16848
16849         * config/i386/i386.md (int_cond): Remove code iterator.
16850         (fp_cond): Ditto.
16851         (cbranch<mode>4): Use ordered_comparison_operator predicate
16852         for operator0.
16853         (cstore<mode>4): Ditto for operator1.
16854         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
16855         (add<mode>cc): ditto.
16856
16857 2010-07-30  Richard Guenther  <rguenther@suse.de>
16858
16859         PR middle-end/45141
16860         * expr.c (expand_expr_real_1): Check for not handled base address.
16861
16862 2010-07-30  Richard Guenther  <rguenther@suse.de>
16863
16864         * ipa-prop.c (ipa_modify_formal_parameters): Use
16865         build_distinct_type_copy.
16866
16867 2010-07-30  Anthony Green  <green@moxielogic.com>
16868
16869         * config/moxie/rtems.h: New file.
16870         * config.gcc: Add moxie-rtems support.
16871
16872 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16873
16874         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
16875         df flags as in run_fast_df_dce.
16876
16877 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16878
16879         Revert:
16880         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16881
16882         * rtl.def (NOTE): Swap operands 4 and 5.
16883         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
16884         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
16885         Adjust accordingly.
16886         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
16887
16888 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16889
16890         PR debug/45110
16891         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
16892         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
16893         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
16894         formal parameters.
16895         (gen_decl_die): Change return type to dw_die_ref, return what
16896         gen_formal_parameter_die returned.
16897
16898 2010-07-29  Martin Jambor  <mjambor@suse.cz>
16899
16900         * dbgcnt.def (eipa_sra): New counter.
16901         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
16902
16903 2010-07-29  Xinliang David Li  <davidxl@google.com>
16904
16905         PR bootstrap/45119
16906         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
16907         in revision 162652.
16908
16909 2010-07-29  Richard Guenther  <rguenther@suse.de>
16910
16911         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
16912         (TV_TREE_STORE_CCP): Likewise.
16913         (TV_TREE_REDPHI): Likewise.
16914
16915 2010-07-29  Richard Guenther  <rguenther@suse.de>
16916
16917         * double-int.h (double_int_and_not): New function.
16918         * combine.c (try_combine): Use it.
16919         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
16920
16921 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16922
16923         PR rtl-optimization/42575
16924         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
16925         Argument AU removed.  All callers changed.  Ignore artificial refs.
16926         Use return value of df_word_lr_simulate_defs to decide whether an insn
16927         is necessary.
16928         (fast_dce): Rename arg to WORD_LEVEL.
16929         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
16930         static.
16931         (pass_fast_rtl_byte_dce): Delete.
16932         * dce.h (run_word_dce): Declare.
16933         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
16934         All callers changed.  Simplify code to only deal with two-word regs.
16935         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
16936         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
16937         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
16938         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
16939         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
16940         (df_word_lr_mark_ref): Declare.
16941         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
16942         df_word_lr_simulate_uses): Declare or rename from byte variants.
16943         (df_byte_lr_simulate_artificial_refs_at_top,
16944         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16945         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
16946         declarations.
16947         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
16948         (enum df_mm): Delete.
16949         * df-byte-scan.c: Delete file.
16950         * df-problems.c (df_word_lr_problem_data): Renamed from
16951         df_byte_lr_problem_data, all members deleted except for
16952         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
16953         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
16954         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16955         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
16956         df_byte_lr_confluence_0): Delete functions.
16957         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
16958         callers changed.
16959         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
16960         Don't initialize members that were deleted, don't try to discover data
16961         about registers.  Ignore hard regs.
16962         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
16963         (df_word_lr_mark_ref): New function.
16964         (df_word_lr_bb_local_compute): Renamed from
16965         df_byte_bb_lr_local_compute; all callers changed.  Use
16966         df_word_lr_mark_ref.  Assert that artificial refs don't include
16967         pseudos.  Ignore hard registers.
16968         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
16969         Assert that exit block uses don't contain pseudos.
16970         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
16971         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
16972         callers changed.  Ignore hard regs.
16973         (df_word_lr_transfer_function): Renamed from
16974         df_byte_lr_transfer_function; all callers changed.
16975         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
16976         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
16977         changed.
16978         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
16979         callers changed.
16980         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
16981         confluence operator 0 set to NULL.
16982         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
16983         callers changed.
16984         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
16985         Return bool, true if bitmap changed or insn otherwise necessary.
16986         All callers changed.  Simplify using df_word_lr_mark_ref.
16987         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
16988         all callers changed.  Simplify using df_word_lr_mark_ref.
16989         * lower-subreg.c: Include "dce.h"
16990         (decompose_multiword_subregs): Call run_word_dce if df available.
16991         * Makefile.in (lower-subreg.o): Adjust dependencies.
16992         (df-byte-scan.o): Delete.
16993         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
16994
16995 2010-07-29  Richard Guenther  <rguenther@suse.de>
16996
16997         * tree.c (build_vector): Assert that the vector constant
16998         has enough elements.
16999         (build_vector_from_ctor): Pad with trailing zeros.
17000
17001 2010-07-29  Richard Guenther  <rguenther@suse.de>
17002
17003         PR tree-optimization/45120
17004         * tree-ssa-structalias.c (get_constraint_for_component_ref):
17005         Handle offset in DEREFs properly.
17006         (get_constraint_for_1): Handle MEM_REF offset properly.
17007
17008 2010-07-29  Richard Guenther  <rguenther@suse.de>
17009
17010         PR middle-end/45034
17011         * convert.c (convert_to_integer): Always use an unsigned
17012         type for narrowed negate and bitwise not.
17013
17014 2010-07-29  Ira Rosen  <irar@il.ibm.com>
17015
17016         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
17017         to outer loop when creating reduction epilogue for double reduction,
17018         and switch back to the inner loop when updating the phi nodes.
17019         Update uses of outer loop exit phi nodes in double reduction (instead
17020         of uses of reduction).
17021
17022 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
17023
17024         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
17025         popcount on power7 and parity on power6 systems.
17026         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
17027         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
17028         instructions.
17029
17030         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
17031         (UNSPEC_PARITY): Ditto.
17032         (SFDF): New iterator for SF/DF.
17033         (rreg2): New mode attribute for floating register constraint.
17034         (TARGET_FLOAT): New mode attribute for whether single/double float
17035         is supported.
17036         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
17037         pattern.
17038         (parity<mode>2_cmpb): New insn for parity on power6 and newer
17039         machines.
17040         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
17041         pattern.  Add support for fcpsgn instruction added in power6.
17042         (copysignsf3): Delete.
17043         (copysigndf3): Delete.
17044         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
17045         instead of if_then_else in RTL to avoid problems with -0.
17046
17047         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
17048         of if_then_else to mirror scalar code.
17049         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
17050         rs6000.md.
17051
17052         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
17053         instead of if_then_else.
17054
17055 2010-07-28  Xinliang David Li  <davidxl@google.com>
17056
17057         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
17058         (dump_cand): Dump var_before/after.
17059         (htab_inv_expr_eq): New function.
17060         (htab_inv_expr_hash): New function.
17061         (tree_ssa_iv_optimize_init): Support pseudo invariants.
17062         (add_candidate_1): consider base type precision.
17063         (set_use_iv_cost): New parameter.
17064         (adjust_setup_cost): Use profile information.
17065         (get_address_cost): Do not hard code width in computing address
17066         offset limits.
17067         (compare_aff_trees): New function.
17068         (get_loop_invariant_expr_id): New function.
17069         (get_computation_cost_at): New parameter and use profile information.
17070         (get_computation_cost): New parameter.
17071         (determine_use_iv_cost_generic): Pass new parameter.
17072         (determine_use_iv_cost_address): Ditto.
17073         (determine_use_iv_cost_condition): Ditto.
17074         (autoinc_possible_for_pair): Ditto.
17075         (determine_use_iv_costs): More dumps.
17076         (iv_ca_get_num_inv_exprs): New function.
17077         (iv_ca_recount_cost): Consider loop invariants in register pressure
17078         cost.
17079         (iv_ca_add_use): New parameter.
17080         (iv_ca_dump): Better dumping.
17081         (iv_ca_extend): New parameter.
17082         (try_add_cand_for): Attempt to get better partial solution.
17083         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
17084         (create_new-ivs): More dumps.
17085         (rewrite_use_compare): Ditto.
17086         (free_loop_data): More cleanup.
17087         (treee_ssa_iv_optimize_finalize): Ditto.
17088
17089 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
17090
17091         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
17092         * config/i386/i386.c (ix86_profile_before_prologue): New.
17093         (override_options): Add special handling for -mfentry.
17094         (ix86_function_regparm): Likewise.
17095         (ix86_function_sseregparm): Likewise.
17096         (ix86_frame_pointer_required): Likewise.
17097         (ix86_expand_prologue): Check for ms_hook_prologue.
17098         (x86_function_profiler): Adjust mcount output.
17099         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
17100         * config/i386/i386.opt (mfentry): New.
17101         * doc/invoke.texi (mfentry): Add documentation.
17102         * doc/tm.texi: Regenerated..
17103         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
17104         * final.c (final_start_function): Replace macro
17105         PROFILE_BEFORE_PROLOGUE by target hook.
17106         * function.c (thread_prologue_and_epilogue_insns): Likewise.
17107         * target.def (profile_before_prologue): New hook.
17108         * targhooks.c (default_profile_before_prologue): New.
17109         * targhooks.h (default_profile_before_prologue): New.
17110
17111 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
17112
17113         PR debug/45105
17114         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
17115
17116         PR debug/45103
17117         * dwarf2out.c (dwarf2out_var_location): Always consider
17118         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
17119
17120 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17121
17122         PR rtl-optimization/45107
17123         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
17124
17125 2010-07-28  Richard Guenther  <rguenther@suse.de>
17126
17127         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
17128         (set_lattice_value): Do not query an old default value.
17129         (get_value_for_expr): New function.  Properly canonicalize
17130         float values.
17131         (ccp_visit_phi_node): Use it.
17132
17133 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
17134
17135         * config/arm/arm.c (arm_pcs_default): Remove static.
17136         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
17137         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
17138         (arm_pcs_default): Declare.
17139
17140 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
17141
17142         * config/rs6000/rs6000.c (rs6000_override_options):
17143         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
17144         ... to darwin_rs6000_override_options.
17145         (rs6000_return_in_memory): Update preceding comment for darwin
17146         64 bit ABI.  Use TARGET_MACHO inline.
17147         (rs6000_darwin64_struct_check_p): New.
17148         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
17149         (function_arg): Likewise.
17150         (rs6000_arg_partial_bytes): Likewise.
17151         (rs6000_function_value): Likewise.
17152
17153 2010-07-28  Andi Kleen  <ak@linux.intel.com>
17154
17155         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
17156
17157 2010-07-28  Richard Guenther  <rguenther@suse.de>
17158
17159         PR middle-end/44903
17160         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
17161         targets try harder to not generate unaligned accesses.
17162
17163 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17164
17165         PR rtl-optimization/45101
17166         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
17167         for gcse-las.
17168
17169 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17170
17171         PR tree-optimization/44885
17172         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
17173         with non-aliased component.
17174
17175 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
17176
17177         * config/darwin-driver.c (SWITCH_TAKES_ARG,
17178         WORD_SWITCH_TAKES_ARG): Remove.
17179         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
17180         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
17181         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
17182         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
17183         definitions from gcc.c.
17184         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
17185         defaults.h.
17186         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
17187         Move to defaults.h.
17188         * opts-common.c: Include tm.h.
17189         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
17190         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
17191         Handle more than one argument.  Set canonical_option_num_elements.
17192         (decode_cmdline_options_to_array): Set
17193         canonical_option_num_elements and trailing elements of
17194         canonical_option.
17195         * opts.h (struct cl_decoded_option): Allow four elements in
17196         canonical_option.  Add field canonical_option_num_elements.
17197         * Makefile.in (opts-common.o): Update dependencies.
17198
17199 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17200
17201         PR middle-end/44790
17202         PR middle-end/44993
17203         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
17204         sure the base has address_mode before adding the offset.
17205
17206 2010-07-27  Xinliang David Li  <davidxl@google.com>
17207
17208         * tree-flow.h (create_mem_ref): Add one new parameter.
17209         * tree-ssa-address.c (create_mem_ref): New parameter.
17210         (addr_to_parts): Ditto.
17211         (move_variant_to_index): New function.
17212         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
17213
17214 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17215
17216         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
17217         4 and 5.
17218         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
17219         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
17220         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
17221         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
17222         CODE_LABELs and NOTEs.
17223         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
17224         * combine.c (try_combine): Likewise.
17225         * ira.c (setup_prohibited_mode_move_regs): Likewise.
17226         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
17227
17228 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17229
17230         * coretypes.h (struct cl_option_handlers): Declare.
17231         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
17232         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
17233         * langhooks-def.h (lhd_handle_option): Declare.
17234         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
17235         * langhooks.c (lhd_handle_option): New.
17236         * langhooks.h (struct lang_hooks): Update prototype and return
17237         value type of handle_option hook.
17238         * optc-gen.awk: Generate target_flags_explicit definition for the
17239         driver.
17240         * opts-common.c: Include diagnostic.h.
17241         (handle_option): Move from opts.c.  Update prototype and return
17242         value type.  Use handlers structure.
17243         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
17244         handlers structure.
17245         (set_option): Move from opts.c.
17246         * opts.c (common_handle_option): Update prototype and return value
17247         type.  Update calls to handle_option and enable_warning_as_error.
17248         (unknown_option_callback, post_handling_callback,
17249         lang_handle_option, target_handle_option): New.
17250         (handle_option, read_cmdline_option): Move to opts-common.c.
17251         (read_cmdline_options): Update prototype.  Update call to
17252         read_cmdline_option.
17253         (decode_options): Initialize and use handlers structure.
17254         (set_option): Move to opts-common.c.
17255         (enable_warning_as_error): Update prototype.  Update call to
17256         handle_option.
17257         * opts.h (struct cl_option_handler_func, struct
17258         cl_option_handlers): New.
17259         (handle_option, enable_warning_as_error): Update prototypes.
17260         (read_cmdline_option): Declare.
17261         * Makefile.in (opts-common.o): Update dependencies.
17262
17263 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17264
17265         * config/arm/arm.c (params.h): Include.
17266         (arm_override_options): Tune gcse-unrestricted-cost.
17267         * config/arm/t-arm (arm.o): Define dependencies.
17268
17269 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17270
17271         PR target/42495
17272         PR middle-end/42574
17273         * basic-block.h (get_dominated_to_depth): Declare.
17274         * dominance.c (get_dominated_to_depth): New function, use
17275         get_all_dominated_blocks as a base.
17276         (get_all_dominated_blocks): Use get_dominated_to_depth.
17277
17278         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
17279         (hoist_exprs): Remove.
17280         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
17281         (compute_code_hoist_vbeinout): Add debug print outs.
17282         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
17283
17284         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
17285         quadratic behavior.
17286         * params.h (MAX_HOIST_DEPTH): New macro.
17287         * doc/invoke.texi (max-hoist-depth): Document.
17288
17289 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17290
17291         PR rtl-optimization/40956
17292         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
17293         constants.
17294
17295 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17296
17297         PR target/42495
17298         PR middle-end/42574
17299         * config/arm/arm.c (legitimize_pic_address): Use
17300         gen_calculate_pic_address pattern to emit calculation of PIC address.
17301         (will_be_in_index_register): New function.
17302         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
17303         (thumb1_legitimate_address_p): Use it provided !strict_p.
17304         * config/arm/arm.md (calculate_pic_address): New expand and split.
17305
17306 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17307
17308         PR target/42495
17309         PR middle-end/42574
17310         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
17311         * config/arm/arm.md (define_split "J", define_split "K"): Make
17312         IRA/reload friendly.
17313
17314 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17315
17316         * gcse.c (insert_insn_end_basic_block): Update signature, remove
17317         unused checks.
17318         (pre_edge_insert, hoist_code): Update.
17319
17320 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17321
17322         PR target/42495
17323         PR middle-end/42574
17324         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
17325
17326 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17327
17328         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
17329
17330 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17331
17332         PR rtl-optimization/40956
17333         PR target/42495
17334         PR middle-end/42574
17335         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
17336         for hoisting.
17337         (hoist_code): Count occurences in current block too.
17338
17339 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17340
17341         * gcse.c (struct expr:max_distance): New field.
17342         (doing_code_hoisting_p): New static variable.
17343         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
17344         simple expressions, don't change behavior for PRE.  Set max_distance.
17345         (insert_expr_in_table): Set new max_distance field.
17346         (hash_scan_set): Update.
17347         (hoist_expr_reaches_here_p): Stop search after max_distance
17348         instructions.
17349         (find_occr_in_bb): New static function.  Use it in ...
17350         (hoist_code): Calculate sizes of basic block before any changes are
17351         done.  Pass max_distance to hoist_expr_reaches_here_p.
17352         (one_code_hoisting_pass): Set doing_code_hoisting_p.
17353
17354         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
17355         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
17356         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
17357         macros.
17358         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
17359         Document.
17360
17361 2010-07-27  Jeff Law  <law@redhat.com>
17362             Maxim Kuvyrkov  <maxim@codesourcery.com>
17363
17364         * gcse.c (compute_transpout, transpout): Remove, move logic
17365         to prune_expressions.
17366         (compute_pre_data): Move pruning of trapping expressions ...
17367         (prune_expressions): ... here.  New static function.
17368         (compute_code_hoist_data): Use it.
17369         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
17370
17371 2010-07-27  Xinliang David Li  <davidxl@google.com>
17372
17373         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
17374         (rewrite_use_address): Adjust iv update position when needed.
17375
17376 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17377
17378         * dbgcnt.def (hoist_insn): New debug counter.
17379         * gcse.c (hoist_code): Use it.
17380
17381 2010-07-27  Xinliang David Li  <davidxl@google.com>
17382
17383         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
17384         (niter_for_single_dom_exit): Passes additional parameter.
17385         (iv_period): Fix comments.
17386         (may_eliminate_iv): Handles multiple exit loops properly.
17387         (free_tree_niter_desc): New function.
17388         (free_loop_data): Frees up loop iteration descriptors.
17389
17390 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17391
17392         PR target/44542
17393         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
17394         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
17395         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
17396         (expand_one_var): Don't consider DECL_ALIGN for variables for
17397         which expand_one_stack_var_at has been already called.
17398
17399         PR testsuite/44701
17400         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
17401         constraints on IA-64.
17402
17403 2010-07-27  Jie Zhang  <jie@codesourcery.com>
17404
17405         PR target/44290
17406         Revert:
17407         2010-07-23  Jie Zhang  <jie@codesourcery.com>
17408
17409         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17410         false if ! tree_versionable_function_p.
17411
17412 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17413
17414         * dwarf2out.c (add_data_member_location_attribute): Use
17415         add_AT_unsigned instead of add_AT_int if offset is non-negative.
17416
17417 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17418
17419         * postreload.c (try_replace_in_use): New static function.
17420         (reload_combine_recognize_const_pattern): Use it here.  Allow
17421         substituting into a final add insn, and substituting into a memory
17422         reference in an insn that sets the reg.
17423
17424 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17425
17426         * common.opt (o): Add MissingArgError.
17427         * doc/options.texi (MissingArgError): Document.
17428         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
17429         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
17430         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
17431         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
17432         * langhooks.h (struct lang_hooks): Remove missing_argument.
17433         * optc-gen.awk: Handle MissingArgError and output new structure
17434         field initializers.
17435         * opts.c (read_cmdline_option): Use missing_argument_error field
17436         instead of missing_argument langhook.
17437         * opts.h (struct cl_option): Add missing_argument_error field.
17438         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
17439
17440 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17441
17442         PR target/29090
17443         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
17444         Darwin64 ABI, for zero-sized objects.
17445
17446 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17447
17448         PR target/35491
17449         PR target/29090
17450
17451         Merge from Apple local 4.2.1.
17452         2005-05-11  Stan Shebs  <shebs@apple.com>
17453         Fix 64-bit varargs for Darwin (Radar 4028089).
17454         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
17455         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
17456         Add argument, add case for 8-byte register half-filled with a float.
17457         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
17458         single-precision floats specially.
17459
17460 2010-07-27  Ira Rosen  <irar@il.ibm.com>
17461
17462         PR tree-optimization/44152
17463         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
17464         complex numbers for further check.
17465         (vect_supported_load_permutation_p): Check nodes with
17466         complex numbers.
17467
17468 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17469
17470         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
17471         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
17472         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
17473         (LANG_HOOKS_INITIALIZER): Add new hooks.
17474         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
17475         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
17476         and complain_wrong_lang_p.  Update init_options prototype.
17477         * c-objc-common.c (c_initialize_diagnostics): First call
17478         c_common_initialize_diagnostics.
17479         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
17480         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
17481         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
17482         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
17483         (hook_uint_void_0): New.
17484         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
17485         (hook_uint_void_0): New.
17486         * opts-common.c (decode_cmdline_option,
17487         decode_cmdline_options_to_array): Also fill in canonical_option field.
17488         * opts.c (complain_wrong_lang): Use langhook to determine whether
17489         to complain instead of special-casing LTO.
17490         (decode_options): Separate lang_mask determination with
17491         option_lang_mask hook from call of init_options hook.
17492         * opts.h (struct cl_decoded_option): Add canonical_option.
17493
17494 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17495
17496         PR tree-optimization/45083
17497         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
17498
17499 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17500
17501         * postreload.c (reload_combine_recognize_const_pattern): Move test
17502         for limiting the insn movement to the right scope.
17503
17504         PR rtl-optimization/45051
17505         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
17506         than reg_mentioned_p.
17507
17508 2010-07-26  Richard Henderson  <rth@redhat.com>
17509
17510         PR target/44132
17511         * tree-emutls.c: New file.
17512         * Makefile.in (OBJS-common): Add it.
17513         * tree-pass.h (pass_ipa_lower_emutls): Declare.
17514         * passes.c (init_optimization_passes): Add it.
17515
17516         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
17517         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
17518         * expr.c (emutls_var_address): Delete.
17519         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
17520         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
17521         (emutls_finish): Delete.
17522         * toplev.c (compile_file): Don't call it.
17523         * tree.h (emutls_decl): Delete.
17524         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
17525         (emutls_finish, emutls_finalize_control_var): Delete.
17526         (emutls_object_type): Move to tree-emutls.c.
17527         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
17528         default_emutls_var_fields, get_emutls_object_type,
17529         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
17530         default_emutls_var_init): Likewise.
17531         (get_variable_section): Don't special case emutls.
17532         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
17533         default_elf_select_section, default_unique_section,
17534         default_encode_section_info): Likewise.
17535         * varpool.c (decide_is_variable_needed): Likewise.
17536         * gimple-iterator.c (update_call_edge_frequencies): New
17537         (gsi_insert_on_edge_immediate): Use it.
17538         (gsi_insert_seq_on_edge_immediate): Likewise.
17539         (gsi_commit_one_edge_insert): Likewise.
17540
17541         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
17542         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
17543         (x86_64_elf_unique_section): Likewise.
17544
17545 2010-07-26  Jan Hubicka  <jh@suse.cz>
17546
17547         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
17548         GTY((skip)).
17549
17550 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
17551
17552         * target.def (output_source_filename): New hook.
17553         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
17554         * doc/tm.texi: Regenerate.
17555         * toplev.c (output_file_directive) Remove function.
17556         * toplev.h (output_file_directive) Remove.
17557         * output.h (default_asm_output_source_filename,
17558         output_file_directive): Declare.
17559         * varasm.h (default_asm_output_source_filename,
17560         output_file_directive): New functions.
17561
17562         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17563         * config/mips/mips-protos.h (mips_output_filename): Remove.
17564         * config/mips/mips.c (mips_output_filename): Make Static.
17565         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
17566
17567 2010-07-26  Richard Guenther  <rguenther@suse.de>
17568
17569         PR tree-optimization/43784
17570         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
17571         if the destination is used by the call.
17572
17573 2010-07-26  Richard Guenther  <rguenther@suse.de>
17574
17575         PR middle-end/45073
17576         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
17577         SSA updating on being in SSA form.
17578
17579 2010-07-26  Richard Guenther  <rguenther@suse.de>
17580
17581         PR middle-end/45056
17582         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
17583
17584 2010-07-26  Richard Guenther  <rguenther@suse.de>
17585
17586         PR tree-optimization/45071
17587         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
17588         adjust op->opcode.
17589
17590 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
17591
17592         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
17593         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
17594         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
17595         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
17596         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
17597         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
17598         save_r31, return_r31, save_interrupt, return_interrupt,
17599         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
17600         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
17601         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
17602         new ABI requirements.
17603         (save_r6_r9, L_callt_save_r6_r9): Remove.
17604         * config/v850/predicates.md (even_reg_operand, disp23_operand,
17605         const_float_1_operand const_float_0_operand): New Predicates.
17606         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
17607         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
17608         * config/v850/t-v850: Update multilibs for new target variants.
17609         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
17610         * config/v850/t-v850e: Likewise.
17611         * config/v850/v850.c (v850_issue_rate): New.
17612         (v850_strict_argument_naming): New.
17613         (function_arg): Modify to generate a different ABI.
17614         (print_operand): Update case 'z' to support float modes.
17615         (output_move_single): Modify to generate appropriate and better
17616         assembly.
17617         (v850_float_z_comparison_operator, v850_select_cc_mode,
17618         v850_float_nz_comparison_operator,  v850_gen_float_compare,
17619         v850_gen_compare): New functions to support comparison of float values.
17620         (ep_memory_offset): Add support for V850E2 targets.
17621         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
17622         (INTERRUPT_REGPARM_NUM): Remove.
17623         (compute_register_save_size): Add extra case to save/restore long call.
17624         (use_prolog_function): New function to support prologue.
17625         (expand_prologue): Add support for V850E2 targets and modified
17626         as per the current ABI requirements.
17627         (expand_epilogue): Likewise.
17628         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
17629         (construct_save_jarl): Likewise.
17630         (construct_dispose_instruction): Update as per the current ABI
17631         requirements.
17632         (construct_prepare_instruction): Likewise.
17633         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
17634         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
17635         (CPP_SPEC): Updated to support v850e2 targets.
17636         (STRICT_ALIGNMENT): Modified.
17637         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
17638         (FIXED_REGISTERS): Likewise.
17639         (CALL_USED_REGISTERS): Likewise.
17640         (CONDITIONAL_REGISTER_USAGE): Updated.
17641         (HARD_REGNO_MODE_OK): Updated.
17642         (reg_class): Updated to add even registers.
17643         (REG_CLASS_NAMES): Likewise.
17644         (REG_CLASS_CONTENTS): Likewise.
17645         (REGNO_REG_CLASS): Updated for CC registers.
17646         (REG_CLASS_FROM_LETTER): Added support for even registers.
17647         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
17648         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
17649         ARG_POINTER_REGNUM): Updated.
17650         (FUNCTION_ARG_ADVANCE): Define.
17651         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
17652         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
17653         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
17654         (GO_IF_LEGITIMATE_ADDRESS): Updated.
17655         (SELECT_CC_MODE): Define.
17656         (REGISTER_NAMES): Updated to add psw and fcc registers.
17657         (ADDITIONAL_REGISTER_NAMES): Updated.
17658         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
17659         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
17660         * config/v850/v850.md (define_constants): Define new constants.
17661         (type): Update store,bit1,macc,div,fpu and single attributes.
17662         (cpu): New attribute.
17663         (cc): Add set_z attribute.
17664         (unsign23byte_load, sign23byte_load, unsign23hword_load,
17665         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
17666         23word_store): New instructions for 23-bit displacement load and store.
17667         (movqi_internal, movhi_internal): Update the attributes.
17668         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
17669         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
17670         the attributes.
17671         (v850_tst1): Modified using CC_REGNUM.
17672         (tstsi): Remove.
17673         (cmpsi): Modified as define_expand from define_insn.
17674         (cmpsi_insn, cmpsf, cmpdf): New instructions.
17675         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
17676         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
17677         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
17678         one_cmplsi2): Clobber the CC_REGNUM register.
17679         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
17680         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
17681         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
17682         (setf_insn, set_z_insn, set_nz_insn): New instructions for
17683         v850e2v3 target.
17684         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
17685         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
17686         targets.
17687         (sasf_1, sasf_2): Remove.
17688         (sasf): New instruction.
17689         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
17690         targets. CC_REGNUM register is clobbered and attributes are
17691         updated.
17692         (branch_z_normal, branch_z_invert, branch_nz_normal,
17693         branch_nz_invert): New branch related instructions.
17694         (jump): Updated the attributes.
17695         (switch): Update to support new targets. CC_REGNUM register is
17696         clobbered and attributes are updated.
17697         (call_internal_short, call_internal_long, call_value_internal_short,
17698         call_value_internal_long): Updated the attributes.
17699         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
17700         clobbered and attributes are updated.
17701         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
17702         Update to support new targets. CC_REGNUM register is clobbered.
17703         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
17704         instructions.
17705         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
17706         are updated.
17707         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
17708         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
17709         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
17710         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
17711         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
17712         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
17713         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
17714         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
17715         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
17716         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
17717         point instructions defined for V850e2v3 target.
17718         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
17719         Add support for V850E2 targets and CC_REGNUM register is clobbered.
17720         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
17721         support for new targets.
17722         * config/v850/v850-modes.def: New file.
17723         * config/v850/v850.opt(mstrict-align): Remove.
17724         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
17725         mv850e2v3): New command line options for V850.
17726         * config.gcc: Update the newly added files.
17727         * doc/invoke.texi: Update the newly added command line options for
17728         V850 target.
17729
17730 2010-07-26  Richard Guenther  <rguenther@suse.de>
17731
17732         PR tree-optimization/45052
17733         * ipa-pure-const.c (check_stmt): Check volatileness.
17734
17735 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17736
17737         PR target/44707
17738         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
17739         * config/sparc/sparc.c: Include reload.h.
17740         (legitimize_tls_address): Rename into...
17741         (sparc_legitimize_tls_address): ...this.
17742         (legitimize_pic_address): Rename into...
17743         (sparc_legitimize_pic_address): ...this.
17744         (sparc_expand_move): Adjust to above renaming.
17745         (sparc_tls_referenced_p): Likewise.
17746         (sparc_legitimize_tls_address): Likewise.
17747         (sparc_legitimize_pic_address): Likewise.
17748         (sparc_legitimize_address): Likewise.
17749         (sparc_output_mi_thunk): Likewise.
17750         (sparc_legitimize_reload_address): New global function.  Recognize
17751         (lo_sum (high ...) ...) patterns generated by earlier passes.
17752         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
17753
17754 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17755
17756         PR target/44484
17757         * config/sparc/predicates.md (memory_reg_operand): Delete.
17758         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
17759         (*sync_compare_and_swap): Encode the address form in the pattern.
17760         (*sync_compare_and_swapdi_v8plus): Likewise.
17761
17762 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
17763
17764         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
17765         Streamline paragraph on compatibility with the system compiler.
17766
17767 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
17768
17769         PR middle-end/45035
17770         * alias.c (true_dependence_1): Fix thinko in merge of old
17771         true_dependence and canon_true_dependence.
17772
17773 2010-07-23  Jan Hubicka  <jh@suse.cz>
17774
17775         * lto-streamer-out.c (write_symbol): Fix visibilities of external
17776         references.
17777
17778 2010-07-23  Le-Chun Wu  <lcwu@google.com>
17779
17780         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
17781         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
17782         and an unnecessary assignment.
17783         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
17784         self-assign warning.
17785         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
17786         unnecessary self-init.
17787
17788 2010-07-23  Richard Guenther  <rguenther@suse.de>
17789
17790         PR lto/43071
17791         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
17792         for -flto and -fwhopr.
17793
17794 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
17795
17796         PR target/41943
17797         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
17798         (stmp-int-hdrs): Prefix/postfix headers by include_next.
17799         * config.gcc (user_headers_inc_next_pre): New.
17800         (user_headers_inc_next_post): Likewise.
17801         (*-w64-mingw*): Use for float.h post-fixing, and for
17802         stddef.h/stdarg.h pre-fixing by include_next.
17803         * configure.ac (user_headers_inc_next_post): New.
17804         (user_headers_inc_next_pre): New.
17805         * configure: Regenerated.
17806
17807 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17808
17809         * configure.ac: Don't disable TLS on Solaris 8/9 by default
17810         Set tga_func for Solaris 2/x86 resp. SPARC.
17811         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
17812         (LIB_THREAD_LDFLAGS_SPEC): Define.
17813         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
17814         * configure: Regenerate.
17815         * config.in: Regenerate.
17816         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
17817         -pthread, -threads, LIB_TLS_SPEC with -pthread.
17818         * doc/install.texi (Specific, *-*-solaris2*): Document use of
17819         alternate thread libraries on Solaris 8.
17820         Document TLS patch requirements.
17821         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
17822         Document tls.
17823
17824         PR target/18788
17825         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
17826         -shared.
17827
17828 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
17829
17830         * tree.h (struct tree_base): Add nameless_flag bitfield.
17831         (TYPE_NAMELESS, DECL_NAMELESS): Define.
17832         * omp-low.c (create_omp_child_function, scan_omp_parallel,
17833         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
17834         DECL_ARTIFICIAL where needed.
17835         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
17836         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
17837         has DECL_NAMELESS set.
17838
17839 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17840
17841         PR tree-optimization/44915
17842         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
17843         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
17844         (analyze_function): Likewise.
17845
17846 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17847
17848         PR tree-optimization/44914
17849         * tree-sra.c (sra_modify_function_body): Return true if CFG was
17850         changed, add purging dead eh edges.
17851         (ipa_sra_modify_function_body): Return true if CFG was changed,
17852         simplify purging dead eh edges.
17853         (modify_function): Return true if CFG was changed.
17854         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
17855         was changed.
17856         (ipa_early_sra): Likewise.
17857
17858 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17859
17860         PR target/44290
17861         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
17862         if "naked".
17863         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17864         false if ! tree_versionable_function_p.
17865
17866 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
17867
17868         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
17869         * ipa-pure-const.c (special_builtlin_state): Remove
17870         BUILT_IN_ARGS_INFO case.
17871         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
17872         * builtins.c (expand_builtin): Likewise.
17873         (expand_builtin_args_info): Remove.
17874         * doc/tm.texi (__builtin_args_info): Remove.
17875         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
17876         * doc/tm.text.in: Likewise.
17877
17878 2010-07-23  Richard Guenther  <rguenther@suse.de>
17879
17880         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
17881         (lto_symtab_merge_decls_2): Likewise.
17882         * tree-ssa.c (useless_type_conversion_p): Likewise.
17883         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17884         * gimple.c (gtc_visited2, gtc_ob2): Remove.
17885         (struct type_pair_d): Make same_p an array indexed by mode.
17886         Update comment.
17887         (lookup_type_pair): Update initialization.
17888         (struct sccs): Adjust same_p type.
17889         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
17890         Adjust.
17891         (print_gimple_types_stats): Likewise.
17892         * gimple.h (enum gtc_mode): New.
17893         (gimple_types_compatible_p): Adjust prototype.
17894
17895 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
17896
17897         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
17898         again after processing insn.
17899
17900 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17901
17902         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
17903         proper words when !tree_versionable_function_p.
17904
17905 2010-07-23  Richard Guenther  <rguenther@suse.de>
17906
17907         PR tree-optimization/45037
17908         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
17909
17910 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17911
17912         * doc/extend.texi: Remove IP2K from the description of naked attribute.
17913         Add MCORE instead.
17914
17915 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17916
17917         PR lto/44992
17918         * lto-opts.c (lto_write_options): Add NULL file_data argument to
17919         lto_get_section_name.
17920         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
17921         * lto-streamer-out.c (produce_asm): Likewise.
17922         (copy_function): Likewise.
17923         (produce_symtab): Likewise.
17924         (produce_asm_for_decls): Likewise.
17925         * lto-streamer.c (lto_get_section_name): Add file_data argument.
17926         Rewrite to add random postfix to LTO sections.
17927         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
17928         (lto_get_section_name): Add file_data argument to prototype.
17929
17930 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17931
17932         * lto-section-in.c (lto_section_name): Synchronize names
17933         with lto_get_section_name.
17934
17935 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17936
17937         * lto-opts.c (lto_read_file_options): Check for missing section.
17938
17939 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17940
17941         * ira.c (check_allocation): Correctly handle the case where an allocno
17942         with two objects was allocated to a single reg.
17943
17944 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
17945
17946         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
17947         (is_widening_mult_p): Likewise.
17948         (convert_to_widen): Use them.
17949         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
17950         well as integer ones.
17951
17952 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
17953
17954         * alias.c (true_dependence_1): New function, merged version of
17955         true_dependence and canon_true_dependence.
17956         (true_dependence): Simplify.
17957         (canon_true_dependence): Simplify.
17958
17959 2010-07-22  Richard Henderson  <rth@redhat.com>
17960
17961         PR target/45027
17962         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
17963         of V4SFmode for the SSE saves; increase stack alignment if needed.
17964         (ix86_gimplify_va_arg): Don't increase stack alignment here.
17965
17966 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
17967
17968         PR bootstrap/45028
17969         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
17970         call cprop_find_used_regs again via note_uses.
17971
17972 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
17973
17974         * alias.c (get_alias_set): Fix formatting issues.
17975
17976 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
17977
17978         PR middle-end/44878
17979         * stmt.c (expand_value_return):  Call promote_function_mode with
17980         a for_return argument of 2 when returning by reference.
17981
17982 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
17983
17984         PR debug/45024
17985         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
17986         unit DIE if we can find the scope DIE.
17987
17988 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17989
17990         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
17991         changed.  Initialize OBJECT_SUBWORD.
17992         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
17993         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
17994         all callers changed.
17995         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
17996         (finish_allocno): Likewise.
17997         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
17998         (remove_low_level_allocnos): Likewise.
17999         (update_bad_spill_attribute): Likewise.
18000         (setup_min_max_allocno_live_range_point): Likewise.
18001         (sort_conflict_id_map): Likewise.
18002         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
18003         (ior_hard_reg_conflicts): New function.
18004         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
18005         (compress_conflict_vecs): Iterate over objects, not allocnos.
18006         (ira_add_live_range_to_object): New function.
18007         (object_range_compare_func): Renamed from allocno_range_compare_func.
18008         All callers changed.
18009         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
18010         subobjects, widen the min/max range of the lowest-order object to
18011         potentially include all other such low-order objects.
18012         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
18013         (check_allocation): Likewise.  Use more fine-grained tests for register
18014         conflicts.
18015         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
18016         allocno subobjects.
18017         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
18018         choices about which bits to set in each set.  Don't use
18019         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
18020         using the multiple sets we computed.
18021         (push_allocno_to_stack): Iterate over allocno subobjects.
18022         (all_conflicting_hard_regs_coalesced): New static function.
18023         (setup_allocno_available_regs_num): Use it.
18024         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
18025         subobjects.
18026         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
18027         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
18028         by ALLOCNO_NUM_OBJECTS.
18029         (calculate_spill_cost): Likewise.
18030         (color_pass): Express if statement in a more normal way.
18031         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
18032         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
18033         (setup_slot_coalesced_allocno_live_ranges): Likewise.
18034         (allocno_reload_assign): Likewise.
18035         (ira_reassign_pseudos): Likewise.
18036         (fast_allocation): Likewise.
18037         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18038         (print_allocno_conflicts): Likewise.
18039         (ira_build_conflicts): Likewise.
18040         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
18041         callers changed.  Test subword 0 of each allocno for conflicts.
18042         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
18043         callers changed.  Iterate over allocno subobjects.
18044         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
18045         * ira-int.h (struct ira_allocno): New member: num_objects.
18046         Rename object to objects and change it into an array.
18047         (ALLOCNO_OBJECT): Add new argument N.
18048         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
18049         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
18050         (ior_hard_reg_conflicts): Declare.
18051         (ira_add_live_range_to_object): Declare.
18052         (ira_allocno_object_iterator): New.
18053         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
18054         (FOR_EACH_ALLOCNO_OBJECT): New macro.
18055         * ira-lives.c (objects_live): Renamed from allocnos_live; all
18056         uses changed.
18057         (allocnos_processed): New sparseset.
18058         (make_object_born): Renamed from make_allocno_born; take an
18059         ira_object_t argument.  All callers changed.
18060         (make_object_dead): Renamed from make_allocno_dead; take an
18061         ira_object_t argument.  All callers changed.
18062         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
18063         All callers changed.
18064         (mark_pseudo_regno_live): Iterate over allocno subobjects.
18065         (mark_pseudo_regno_dead): Likewise.
18066         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
18067         functions.
18068         (mark_ref_live): Detect subword accesses and call
18069         mark_pseudo_regno_subword_live as appropriate.
18070         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
18071         (process_bb_nodes_live): Deal with object-related updates first; set
18072         and test bits in allocnos_processed to avoid computing allocno
18073         statistics more than once.
18074         (create_start_finish_chains): Iterate over objects, not allocnos.
18075         (print_object_live_ranges): New function.
18076         (print_allocno_live_ranges): Use it.
18077         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
18078         and objects_live.
18079
18080 2010-07-22  Richard Guenther  <rguenther@suse.de>
18081
18082         PR lto/42451
18083         * gimple.c (gtc_next_dfs_num): New global.
18084         (struct sccs): Make value a union, add integer same_p member.
18085         (gtc_visit): New function.
18086         (gimple_types_compatible_p_1): New function, split out from ...
18087         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
18088         (iterative_hash_gimple_type): Adjust for sccs change.
18089
18090 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18091
18092         PR tree-optimization/44891
18093         * tree-sra.c: Include gimple-pretty-print.h.
18094         (replace_uses_with_default_def_ssa_name): Renamed to
18095         get_repl_default_def_ssa_name, return the new SSA name instead of
18096         replacing the old one.
18097         (sra_modify_assign): Dump a message when removing a load, if the LHS
18098         is an SSA_NAME, do not do any propagation, just set the RHS to a
18099         default definition SSA NAME, type convert if necessary.
18100         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
18101
18102 2010-07-22  Richard Guenther  <rguenther@suse.de>
18103
18104         PR tree-optimization/45017
18105         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
18106         TYPE_PRECISION of integral types in addition to size.
18107
18108 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
18109
18110         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
18111         when no C library is specified.
18112
18113 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18114
18115         * ipa-prop.h (struct ipa_node_params): Updated comment.
18116         (struct ipa_edge_args): Likewise.
18117         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
18118
18119 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18120
18121         * cgraphunit.c (verify_edge_count_and_frequency): New function.
18122         (verify_cgraph_node): Verify frequencies of indirect edges.
18123         * tree-inline.c (tree_function_versioning): Update frequencies of
18124         indirect edges.
18125
18126 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18127
18128         PR target/43698
18129         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
18130         Set *arm_rev to be predicable.
18131
18132 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18133
18134         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
18135         (LINK_COMMAND_SPEC_A): New.
18136         (DSYMUTIL): New.
18137         (DSYMUTIL_SPEC): New.
18138         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
18139         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
18140
18141 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18142
18143         * calls.c (load_register_parameters): Move check for zero
18144         sized items so that only the call to
18145         mem_overlaps_already_clobbered_arg_p () is protected.
18146
18147 2010-07-22  Jan Hubicka  <jh@suse.cz>
18148
18149         * ipa-pure-const.c (varying_state): Break out from ...
18150         (get_function_state): ... here; always return varying_state
18151         when state would be NULL otherwise.
18152         (remove_node_data): Do not free varying state.
18153
18154 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18155
18156         PR bootstrap/44970
18157         PR middle-end/45009
18158         * postreload.c: Include "target.h".
18159         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
18160         into account.
18161         (fixup_debug_insns): Don't copy the rtx.
18162         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
18163         Don't copy when replacing.  Call fixup_debug_insns in the case where
18164         we merged one add with another.
18165         (reload_combine_recognize_pattern): Fail if there aren't any uses.
18166         Try harder to determine whether we're picking a valid index register.
18167         Don't set store_ruid for an insn we're going to scan in the
18168         next iteration.
18169         (reload_combine): Remove unused code.
18170         (reload_combine_note_use): When updating use information for
18171         an old insn, ignore a use that occurs after store_ruid.
18172         * Makefile.in (postreload.o): Update dependencies.
18173
18174         * function.c (record_hard_reg_sets): Restrict the previous change
18175         to cases where the incoming nominal mode is the same as the
18176         incoming promoted mode and everything happens in MODE_INT.
18177
18178 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18179
18180         PR debug/45015
18181         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
18182         ASM_OPERANDS_OUTPUT_IDX.
18183         (adjust_insn): For inline asm with multiple sets ensure first
18184         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
18185         the insn.
18186
18187 2010-07-21  Richard Henderson  <rth@redhat.com>
18188
18189         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
18190         comparison for avoiding xmm register saves.  Emit the xmm register
18191         saves explicitly.
18192         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
18193         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
18194         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
18195         Remove patterns and the associated splitters.
18196
18197 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
18198
18199         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
18200         and imagine parts of a complex, so that they can have the same
18201         base and fall into the same group.
18202
18203 2010-07-21  Richard Guenther  <rguenther@suse.de>
18204
18205         PR lto/45018
18206         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
18207         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
18208         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
18209
18210 2010-07-21  Martin Jambor  <mjambor@suse.cz>
18211
18212         PR tree-optimization/44900
18213         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
18214         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
18215
18216 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
18217
18218         PR middle-end/44738
18219         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
18220
18221 2010-07-21  Richard Guenther  <rguenther@suse.de>
18222
18223         PR middle-end/45013
18224         * tree-ssa.c (useless_type_conversion_p): Dispatch to
18225         gimple_types_compatible_p only when in lto.
18226         * gimple.c (gimple_types_compatible_p): Use canonical types
18227         to speed up comparison.
18228
18229 2010-07-21  Richard Guenther  <rguenther@suse.de>
18230
18231         * tree-flow.h (referenced_var): Move define ...
18232         * tree-flow-inline.h (referenced_var): ... here as an inline
18233         function.  Assert here ...
18234         * tree-dfa.c (referenced_var_lookup): ... instead of here.
18235         * tree-ssa.c (maybe_optimize_var): Check if the variable
18236         is in referenced vars.
18237         (execute_update_addresses_taken): Remove old broken check.
18238         * gimple-pretty-print.c (pp_points_to_solution): Use
18239         referenced_var_lookup.
18240         * tree-into-ssa.c (dump_decl_set): Likewise.
18241
18242 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18243
18244         PR debug/45003
18245         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
18246         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
18247         ZERO_EXTEND here.
18248
18249 2010-07-20  Richard Henderson  <rth@redhat.com>
18250
18251         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
18252
18253 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18254
18255         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
18256         computing the sum of the stack pointer and a large constant.
18257         * config/arm/constraints.md (M): Remove superfluous parentheses.
18258         (Pc): New constraint.
18259
18260 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18261
18262         PR debug/45006
18263         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
18264         operand's type if exp is tcc_unary class tree.
18265
18266 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18267
18268         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
18269         Reverse sense of if_then_else condition.
18270
18271 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18272
18273         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
18274         * config/rs6000/rs6000.c (rs6000_override_options): Set
18275         rs6000_block_move_inline_limit appropriately.
18276         (expand_block_move): Use rs6000_block_move_inline_limit.
18277         * doc/invoke.texi (mblock-move-inline-limit): Document.
18278
18279 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18280
18281         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
18282         FROM and TO.  All callers changed.  Don't look for tracked uses,
18283         just scan the RTL for DEBUG_INSNs and substitute.
18284         (reload_combine_recognize_pattern): Call fixup_debug_insns.
18285         (reload_combine): Ignore DEBUG_INSNs.
18286
18287 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18288
18289         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
18290         depth to 8 from 5.
18291
18292         PR debug/45003
18293         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
18294         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
18295         instead of the result's type.
18296
18297 2010-07-20  Richard Guenther  <rguenther@suse.de>
18298
18299         PR tree-optimization/44977
18300         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
18301         SSA form.
18302
18303 2010-07-20  Richard Guenther  <rguenther@suse.de>
18304
18305         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
18306         (lto_symtab_merge_decls_2): Likewise.
18307         * gimple.h (gimple_types_compatible_p): Declare.
18308         * gimple.c (gimple_queue_type_fixup): Remove.
18309         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
18310         (gimple_compatible_complete_and_incomplete_type_p): New function.
18311         (gimple_types_compatible_p): Adjust.
18312         (gimple_register_type): Remove type fixup code.
18313         (print_gimple_types_stats): Adjust.
18314         (free_gimple_type_tables): Likewise.
18315         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
18316         * tree-ssa.c (useless_type_conversion_p): Likewise.
18317
18318 2010-07-20  Richard Guenther  <rguenther@suse.de>
18319
18320         PR middle-end/44971
18321         PR middle-end/44988
18322         * tree-ssa.c (maybe_optimize_var): New function split out from ...
18323         (execute_update_addresses_taken): ... here.
18324         (non_rewritable_mem_ref_base): Likewise.
18325         (execute_update_addresses_taken): Do not iterate over all referenced
18326         vars but just all local decls and parms.
18327         Properly check call and asm arguments and rewrite call arguments.
18328
18329 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
18330
18331         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
18332         to top level.
18333         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
18334         definitions ...
18335         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
18336         New macro.
18337         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
18338
18339 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
18340
18341         * gengtype.c (start_root_entry): New function, split out from
18342         write_root.  Check whether V is null and raise an error if so.
18343         (write_field_root): Check for V being null.  Don't raise an error here;
18344         set V to null instead.
18345         (write_root): Update comment above function.  Use start_root_entry.
18346
18347 2010-07-19  Xinliang David Li  <davidxl@google.com>
18348
18349         PR testsuite/44932
18350         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
18351         def edges.
18352         (find_uninit_use): Add dump.
18353         (is_use_properly_guarded): Ditto.
18354         (warn_uninitialized_phi): Ditto.
18355         (execute_late_warn_uninitialized): Ditto.
18356
18357 2010-07-19  Richard Guenther  <rguenther@suse.de>
18358
18359         PR middle-end/44941
18360         * expr.c (emit_block_move_hints): Move zero size check first.
18361         Move asserts to more useful places.
18362         * calls.c (load_register_parameters): Check for zero size.
18363
18364 2010-07-19  Richard Henderson  <rth@redhat.com>
18365
18366         * tree-optimize.c (execute_all_early_local_passes): New.  Change
18367         cgraph_state here ...
18368         (execute_early_local_optimizations): ... not here.  Remove.
18369         (pass_early_local_passes, pass_all_early_optimizations): Update.
18370
18371 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
18372
18373         * postreload.c (reload_combine_closest_single_use): Ignore the
18374         number of uses for DEBUG_INSNs.
18375         (fixup_debug_insns): New static function.
18376         (reload_combine_recognize_const_pattern): Use it.  Don't let the
18377         main loop be affected by DEBUG_INSNs.
18378         Really disallow moving adds past a jump insn.
18379         (reload_combine_recognize_pattern): Don't update use_ruid here.
18380         (reload_combine_note_use): Do it here.
18381         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
18382
18383 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
18384
18385         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
18386         of a loop.
18387         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
18388
18389 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
18390
18391         * config/i386/darwin.h: Define darwin_emit_branch_islands.
18392         (TARGET_MACHO_BRANCH_ISLANDS): New.
18393         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
18394         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
18395         default value.
18396         * config/i386/i386.c (output_pic_addr_const): Do not emit
18397         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
18398         (x86_output_mi_thunk): Adjust symbol creation.
18399         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
18400         Remove out of date comment.
18401         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
18402         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18403         (DARWIN_GENERATE_ISLANDS): Ditto.
18404         (output_call):  Do not emit branch islands unless
18405         darwin_emit_branch_islands is set.
18406         * config/darwin.c: Declare darwin_emit_branch_islands.
18407         (machopic_indirect_data_reference): Do not emit unless
18408         darwin_emit_branch_islands is set.
18409         (darwin_override_options): Set darwin_emit_branch_islands
18410         where it is needed.
18411         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18412
18413 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18414
18415         * doc/sourcebuild.texi (Effective-Target Keywords): Document
18416         sse_runtime, sse2_runtime.
18417
18418 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
18419
18420         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
18421         low half of a single-register SCmode return value before ORing
18422         it with the high half.
18423         * config/mips/mips16.S (MERGE_GPRf): Likewise.
18424
18425 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18426
18427         PR target/44805
18428         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
18429         on all targets.
18430
18431 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
18432
18433         PR target/42235
18434         * postreload.c (reload_cse_move2add): Return bool, true if anything.
18435         changed.  All callers changed.
18436         (move2add_use_add2_insn): Likewise.
18437         (move2add_use_add3_insn): Likewise.
18438         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
18439         reload_combine.
18440         (RELOAD_COMBINE_MAX_USES): Bump to 16.
18441         (last_jump_ruid): New static variable.
18442         (struct reg_use): New members CONTAINING_MEM and RUID.
18443         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
18444         (reload_combine_split_one_ruid, reload_combine_split_ruids,
18445         reload_combine_purge_insn_uses, reload_combine_closest_single_use
18446         reload_combine_purge_reg_uses_after_ruid,
18447         reload_combine_recognize_const_pattern): New static functions.
18448         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
18449         is true for our reg and that we have available index regs.
18450         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
18451         callers changed.  Use them to initialize fields in struct reg_use.
18452         (reload_combine): Initialize last_jump_ruid.  Be careful when to
18453         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
18454         Call reload_combine_recognize_const_pattern.
18455         (reload_combine_note_store): Update REAL_STORE_RUID field.
18456
18457 2010-07-16  Jason Merrill  <jason@redhat.com>
18458
18459         * Makefile.in (opts-common.o): Depend on options.h.
18460
18461 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18462
18463         * tree.c (build_common_builtin_nodes): Use build_function_type_list
18464         instead of build_function_type.
18465         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
18466         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
18467
18468 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18469
18470         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
18471         do all the work.
18472         (rs6000_emit_int_cmove): Use function pointers for insn generation.
18473         Don't force values into registers unnecessarily.
18474         (output_isel): Assert that we're not given conditions we can't handle.
18475         Delete corresponding code.
18476         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
18477         scc_comparison_operator constraint.  Permit 0 for the consequent
18478         operand.  Permit any GPR for the alternative operand.
18479         (isel_unsigned_<mode>): Likewise.
18480
18481 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
18482
18483         PR target/44942
18484         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
18485         argument to const_tree.
18486         * config/i386/i386.c (function_arg_advance): If padding needs to be
18487         inserted before argument, increment cum->words by number of padding
18488         words as well.
18489         (contains_aligned_value_p): Change argument to const_tree.
18490         (ix86_function_arg_boundary): Change second argument to const_tree.
18491
18492 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
18493
18494         PR target/42235
18495         * function.c (record_hard_reg_sets): New static function.
18496         (assign_parm_setup_reg): If an optab for extending exists and the
18497         generated code clobbbers no hard regs, emit the insn directly and
18498         create a REG_EQUIV note.
18499
18500 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18501
18502         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
18503         TREE_CHAIN.
18504         * c-typeck.c (push_init_level): Likewise.
18505         (process_init_element): Likewise.
18506
18507 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
18508
18509         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
18510         (integer_three_node): Add.
18511         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
18512         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
18513         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
18514         of call build_int_cst.
18515         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
18516         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
18517         (find_interesting_uses_address): Ditto.
18518         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
18519         * tree-eh.c (lower_eh_constructs_2): Ditto.
18520         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
18521         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
18522         * expmed.c (expand_divmod): Ditto.
18523         * tree-mudflap.c (mx_register_decls): Ditto.
18524         * varasm.c (array_size_for_constructor): Ditto.
18525         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
18526         * c-parser.c (c_parser_postfix_expression): Ditto.
18527
18528 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18529
18530         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
18531         New static variables.
18532         (reload_combine_recognize_pattern): New static function, broken out
18533         of reload_combine.
18534         (reload_combine): Use it.  Only initialize first_index_reg and
18535         last_index_reg once.
18536
18537 2010-07-15  Richard Henderson  <rth@redhat.com>
18538
18539         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
18540         when done.
18541
18542 2010-07-15  Jan Hubicka  <jh@suse.cz>
18543
18544         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
18545         comdats for broken gold.
18546         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
18547
18548 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18549
18550         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
18551
18552 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18553
18554         * tree.h (DECL_CHAIN): Define.
18555         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
18556         * c-decl.c: Likewise.
18557         * c-parser.c: Likewise.
18558         * c-typeck.c: Likewise.
18559         * cfgexpand.c: Likewise.
18560         * cgraph.c: Likewise.
18561         * cgraphunit.c: Likewise.
18562         * combine.c: Likewise.
18563         * config/alpha/alpha.c: Likewise.
18564         * config/arm/arm.c: Likewise.
18565         * config/frv/frv.c: Likewise.
18566         * config/i386/i386.c: Likewise.
18567         * config/i386/winnt-cxx.c: Likewise.
18568         * config/ia64/ia64.c: Likewise.
18569         * config/iq2000/iq2000.c: Likewise.
18570         * config/mep/mep.c: Likewise.
18571         * config/mips/mips.c: Likewise.
18572         * config/pa/som.h: Likewise.
18573         * config/rs6000/rs6000.c: Likewise.
18574         * config/s390/s390.c: Likewise.
18575         * config/sh/sh.c: Likewise.
18576         * config/sh/symbian-cxx.c: Likewise.
18577         * config/sparc/sparc.c: Likewise.
18578         * config/spu/spu.c: Likewise.
18579         * config/stormy16/stormy16.c: Likewise.
18580         * config/vxworks.c: Likewise.
18581         * config/xtensa/xtensa.c: Likewise.
18582         * coverage.c: Likewise.
18583         * dbxout.c: Likewise.
18584         * dwarf2out.c: Likewise.
18585         * emit-rtl.c: Likewise.
18586         * expr.c: Likewise.
18587         * function.c: Likewise.
18588         * gimple-low.c: Likewise.
18589         * gimple-pretty-print.c: Likewise.
18590         * gimplify.c: Likewise.
18591         * integrate.c: Likewise.
18592         * ipa-inline.c: Likewise.
18593         * ipa-prop.c: Likewise.
18594         * ipa-split.c: Likewise.
18595         * ipa-struct-reorg.c: Likewise.
18596         * ipa-type-escape.c: Likewise.
18597         * langhooks.c: Likewise.
18598         * lto-cgraph.c: Likewise.
18599         * omp-low.c: Likewise.
18600         * stor-layout.c: Likewise.
18601         * tree-cfg.c: Likewise.
18602         * tree-complex.c: Likewise.
18603         * tree-dfa.c: Likewise.
18604         * tree-dump.c: Likewise.
18605         * tree-inline.c: Likewise.
18606         * tree-mudflap.c: Likewise.
18607         * tree-nested.c: Likewise.
18608         * tree-object-size.c: Likewise.
18609         * tree-pretty-print.c: Likewise.
18610         * tree-sra.c: Likewise.
18611         * tree-ssa-live.c: Likewise.
18612         * tree-ssa-loop-niter.c: Likewise.
18613         * tree-ssa-math-opts.c: Likewise.
18614         * tree-ssa-reassoc.c: Likewise.
18615         * tree-ssa-sccvn.c: Likewise.
18616         * tree-ssa-structalias.c: Likewise.
18617         * tree-tailcall.c: Likewise.
18618         * tree-vrp.c: Likewise.
18619         * tree.c: Likewise.
18620         * var-tracking.c: Likewise.
18621         * varasm.c: Likewise.
18622
18623 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18624
18625         PR target/44877
18626         * config/spu/spu.c (spu_expand_builtin_1): Allow references
18627         (as well as pointers) as argument to mask_for_load builtins.
18628
18629 2010-07-15  Richard Guenther  <rguenther@suse.de>
18630
18631         PR tree-optimization/44946
18632         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
18633         with accessing only padding properly.
18634
18635 2010-07-15  Jan Hubicka  <jh@suse.cz>
18636
18637         * ipa.c (function_and_variable_visibility): Variables marked as used
18638         should not be localized.
18639
18640 2010-07-15  Jan Hubicka  <jh@suse.cz>
18641
18642         * cgraph.c: Include lto-streamer.h
18643         (change_decl_assembler_name): Work when assembler name hash is at place.
18644         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
18645         be sure to rename it to avoid name clash.
18646         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
18647         Localize hidden symbols only when locally defined.
18648
18649 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
18650
18651         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
18652
18653 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
18654             Kevin F. Quinn  <kevquinn@gentoo.org>
18655
18656         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
18657         * common.opt: Add -Wtrampolines.
18658         * doc/invoke.texi: Add -Wtrampolines.
18659
18660 2010-07-15  Jie Zhang  <jie@codesourcery.com>
18661
18662         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
18663         cortex_a8_issue_ls.
18664
18665 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
18666
18667         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
18668         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
18669
18670 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18671
18672         * config/spu/spu.c (reg_names): Remove prototype.
18673         (call_used_regs): Likewise.
18674
18675 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
18676
18677         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
18678         "unused" with attribute "used".
18679         (__JCR_END__): Likewise.
18680         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
18681         "used" attribute.
18682         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
18683
18684 2010-07-14  Richard Guenther  <rguenther@suse.de>
18685
18686         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
18687         (maybe_fixup_decls): Likewise.
18688         (input_gimple_stmt): Do not fixup anything.
18689         * lto-streamer-out.c (output_gimple_stmt): Make sure all
18690         non-automatic variable uses are wrapped inside a MEM_REF.
18691
18692 2010-07-14  Richard Henderson  <rth@redhat.com>
18693
18694         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
18695         for functions.
18696         * varasm.c (assemble_variable): Remove early exit for functions;
18697         assert that we're given a variable.
18698
18699 2010-07-14  Jie Zhang  <jie@codesourcery.com>
18700
18701         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
18702         cortex_a8_default when neon_type is not none.
18703
18704 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18705
18706         * lower-subreg.c (subreg_context): New static bitmap.
18707         (decompose_multiword_subregs): Allocate and free it.
18708         (find_decomposable_subregs): Set a bit in it for a register that
18709         occurs in a subreg that changes mode but not size.
18710         (can_decompose_p): Test it instead of non_decomposable_context.
18711
18712 2010-07-14  Richard Guenther  <rguenther@suse.de>
18713
18714         PR tree-optimization/44824
18715         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
18716         is_gimple_mem_ref_addr.
18717         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
18718         non-decl_address_invariant_p addresses.
18719
18720 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18721
18722         * reload.c (find_reloads): Revert code to penalize small register
18723         classes that was brought in with the IRA merge.
18724
18725 2010-07-14  Richard Guenther  <rguenther@suse.de>
18726
18727         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
18728         as base of ARRAY_REFs.
18729
18730 2010-07-14  Richard Guenther  <rguenther@suse.de>
18731
18732         PR middle-end/44930
18733         * tree-pretty-print.c (do_niy): Do not print a newline.
18734
18735 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18736
18737         * ira-int.h (struct ira_object): New.
18738         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
18739         (struct ira_allocno): Remove members min, max,
18740         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
18741         conflict_allocnos_num and conflict_vec_p.  Add new member object.
18742         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
18743         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
18744         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
18745         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
18746         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
18747         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
18748         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
18749         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
18750         an ira_object_t rather than ira_allocno_t.  All uses changed.
18751         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18752         contains a vector of ira_object_t; all uses changed.
18753         (ira_objects_num): Declare variable.
18754         (ira_create_allocno_object): Declare function.
18755         (ira_conflict_vector_profitable_p): Adjust prototype.
18756         (ira_allocate_conflict_vec): Renamed from
18757         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
18758         (ira_allocate_object_conflicts): Renamed from
18759         ira_allocate_allocno_conflicts; first arg now ira_object_t.
18760         (struct ira_object_iterator): New.
18761         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
18762         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
18763         to conflict_vec_p.  All uses changed.
18764         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
18765         Changed to take into account that conflicts are now tracked for
18766         objects.
18767         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
18768         Args changed to accept ira_object_t.  All uses changed.
18769         (allocnos_conflict_p): New static function.
18770         (collected_conflict_objects): Renamed from collected_allocno_objects;
18771         now a vector of ira_object_t.  All uses changed.
18772         (build_conflict_bit_table): Changed to take into account that
18773         conflicts are now tracked for objects.
18774         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
18775         (print_allocno_conflicts, ira_build_conflicts): Likewise.
18776         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
18777         setup_allocno_left_conflicts_size, allocno_reload_assign,
18778         fast_allocation): Likewise.
18779         * ira-lives.c (make_hard_regno_born, make_allocno_born)
18780         process_single_reg_class_operands, process_bb_node_lives): Likewise.
18781         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
18782         Likewise.
18783         * ira-build.c (ira_objects_num): New variable.
18784         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18785         contains a vector of ira_object_t; all uses changed.
18786         (ira_object_id_map_vec): Corresponding change.
18787         (object_pool): New static variable.
18788         (initiate_allocnos): Initialize it.
18789         (finish_allocnos): Free it.
18790         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
18791         New functions.
18792         (ira_create_allocno): Don't set members that were removed.
18793         (ira_set_allocno_cover_class): Don't change conflict hard regs.
18794         (merge_hard_reg_conflicts): Changed to take into account that
18795         conflicts are now tracked for objects.
18796         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
18797         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
18798         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
18799         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
18800         setup_min_max_conflict_allocno_ids, ):  Likewise.
18801         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
18802         to ira_object_t; all callers changed.
18803         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
18804         to ira_object_t, all callers changed.
18805         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
18806         to ira_object_t, all callers changed.
18807         (conflict_check, curr_conflict_check_tick): Renamed from
18808         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
18809         changed.
18810         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
18811         arg changed to ira_object_t, all callers changed.
18812         (create_cap_allocno): Call ira_create_allocno_object.
18813         (finish_allocno): Free the corresponding object.
18814         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
18815         callers changed.  Adjusted for dealing with objects.
18816         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
18817         dealing with objects.
18818         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
18819
18820         * ira-int.h (struct live_range): Rename allocno member to object
18821         and change type to ira_object_t.
18822         (struct ira_object): New member live_ranges.
18823         (struct ira_allocno): Remove member live_ranges.
18824         (ALLOCNO_LIVE_RANGES): Remove.
18825         (OBJECT_LIVE_RANGES): New macro.
18826         (ira_create_live_range, ira_copy_live_range_list,
18827         ira_merge_live_range_list, ira_live_ranges_intersect_p,
18828         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
18829         * ira-build.c (ira_create_object): Initialize live ranges here.
18830         (ira_create_allocno): Not here.
18831         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
18832         changed to ira_object_t, all callers changed.
18833         (copy_live_range): Rename from copy_allocno_live_range, all callers
18834         changed.
18835         (ira_copy_live_range_list): Rename from
18836         ira_copy_allocno_live_range_list, all callers changed.
18837         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
18838         all callers changed.
18839         (ira_live_ranges_intersect_p): Rename from
18840         ira_allocno_live_ranges_intersect_p, all callers changed.
18841         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
18842         callers changed.
18843         (ira_finish_live_range_list): Rename from
18844         ira_finish_allocno_live_range_list, all callers changed.
18845         (change_object_in_range_list): Rename from change_allocno_in_range_list,
18846         last arg changed to ira_object_t, all callers changed.
18847         (finish_allocno): Changed to expect live ranges in the allocno's object.
18848         (move_allocno_live_ranges, copy_allocno_live_ranges,
18849         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
18850         ira_flattening, ira_build): Likewise.
18851         * ira-color.c (allocnos_have_intersected_live_ranges_p,
18852         slot_coalesced_allocno_live_ranges_intersect,
18853         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
18854         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18855         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
18856         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
18857         make_allocno_dead, create_start_finish_chains,
18858         remove_some_program_points_and_update_live_ranges,
18859         ira_debug_live_range_list): Likewise.
18860
18861         * ira-int.h (ira_object_conflict_iterator): Rename from
18862         ira_allocno_conflict_iterator.
18863         (ira_object_conflict_iter_init): Rename from
18864         ira_allocno_conflict_iter_init, second arg changed to
18865         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
18866         FOR_EACH_ALLOCNO_CONFLICT.
18867         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
18868         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
18869         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
18870         * ira-conflicts.c (print_allocno_conflicts): Likewise.
18871
18872 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
18873
18874         PR other/44874
18875         * tree-dump.c (dump_options): Add enumerate_locals entry.
18876         Add TDF_NOID exclusion to all entry.
18877         * tree-dump.h (dump_enumerated_decls): Declare.
18878         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
18879         Don't display type uid.
18880         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
18881         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
18882         * tree-ssa-live.c: Include gimple.h.
18883         (numbered_tree_d): New struct.
18884         (numbered_tree): New typedef.
18885         (DEF_VEC_O (numbered_tree): New.
18886         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
18887         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
18888         (dump_enumerated_decls): Likewise.
18889         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
18890         debug info and flag_dump_final_insns, call dump_enumerated_decls.
18891         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
18892         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
18893
18894 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
18895
18896         * expmed.h (MAX_BITS_PER_WORD): Move to...
18897         * defaults.h (MAX_BITS_PER_WORD): ...here.
18898
18899 2010-07-13  DJ Delorie  <dj@redhat.com>
18900
18901         * config/h8300/h8300.c (h8300_init_once): Default to
18902         -fstrict_volatile_bitfields.
18903
18904         * config/sh/sh.c (sh_override_options): Default to
18905         -fstrict_volatile_bitfields.
18906
18907         * config/rx/rx.c (rx_option_override): New.
18908
18909         * config/m32c/m32c.c (m32c_override_options): Default to
18910         -fstrict_volatile_bitfields.
18911
18912 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
18913
18914         * tree.h (build_function_call_expr): Delete.
18915         (build_call_expr_loc_array): New function.
18916         (build_call_expr_loc_vec): New function.
18917         * tree-flow.h (struct omp_region): Change type of ws_args field
18918         to a VEC.
18919         * builtins.c (build_function_call_expr): Delete.
18920         (build_call_expr_loc_array): New function.
18921         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
18922         (build_call_expr): Likewise.
18923         (build_call_expr_loc_vec): New function.
18924         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
18925         build_function_call_expr.
18926         * expr.c (emutls_var_address): Likewise.
18927         * varasm.c (emutls_common_1): Likewise.
18928         * omp-low.c (expand_omp_atomic_mutex): Likewise.
18929         (expand_omp_taskreg): Adjust for new type of region->ws_args.
18930         (get_ws_args_for): Return a VEC instead of a tree.
18931         (expand_parallel_call): Call build_call_expr_loc_vec instead of
18932         build_function_call_expr.
18933         * stor-layout.c (self_referential_size): Likewise.
18934
18935 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18936
18937         PR testsuite/44701
18938         * recog.c (constrain_operands): Allow side-effects in memory
18939         operands if either < or > constraint is used, rather than if
18940         both < and > is used.
18941
18942 2010-07-13  Richard Guenther  <rguenther@suse.de>
18943
18944         PR middle-end/44911
18945         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
18946         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
18947         without name.
18948
18949 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
18950
18951         PR target/44761
18952         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
18953         to variable emited.
18954         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
18955         * config/sh/sh.md (symGOT_load): Likewise.
18956         (symDTPOFF2reg): Likewise.
18957         (symTPOFF2reg): Likewise.
18958
18959 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18960
18961         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
18962         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
18963
18964 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18965
18966         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
18967         explanation.
18968         Find ucontext_t * on Solaris 11.
18969         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
18970         Handle new Solaris 11 __sighndlr patterns.
18971
18972 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18973
18974         PR debug/44901
18975         * vec.h (VEC_block_remove): Fix comment.
18976         * tree-ssa-live.c (remove_unused_locals): Don't use
18977         VEC_unordered_remove on local_decls, instead replace a single
18978         vector element in each iteration if at least one element had
18979         to be removed and VEC_truncate at the end.
18980         * omp-low.c (expand_omp_taskreg): Likewise.
18981
18982 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18983
18984         * c-decl.c (finish_function): Fix typo in comment.
18985
18986 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
18987
18988         PR bootstrap/44921
18989         * postreload.c (move2add_use_add3_insn): Silence gcc warning
18990         on min_regno.
18991
18992 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
18993
18994         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
18995         (simplify_stmt_using_ranges): Use it.
18996
18997 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18998
18999         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
19000         member.  Do not mark as GTY(()).
19001         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
19002         (spu_builtin_decls): New static variable.
19003         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
19004         (spu_init_builtins): Likewise.
19005         (spu_builtin_mul_widen_even): Likewise.
19006         (spu_builtin_mul_widen_odd): Likewise.
19007         (spu_builtin_mask_for_load): Likewise.
19008         (spu_builtin_vec_perm): Likewise.
19009         * config/spu/spu-c.c: Include "target.h".
19010         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
19011         of using spu_builtins[].fndecl.
19012
19013 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19014
19015         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
19016         imply -minterlink-mips16.
19017
19018 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19019
19020         * config/mips/mips.h (mips16_globals): Declare.
19021         (SWITCHABLE_TARGET): Define.
19022         * config/mips/mips.c: Include target-globals.h.
19023         (mips16_globals): New variable.
19024         (mips_set_mips16_mode): Use save_target_globals and
19025         restore_target_globals instead of target_reinit.
19026
19027 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19028
19029         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
19030         to say that the function can be called more than once.
19031         * target-globals.c (save_target_globals): Call init_reg_sets.
19032
19033 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19034
19035         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
19036         * bb-reorder.h: New file.
19037         * bb-reorder.c (default_target_bb_reorder): New variable.
19038         (this_target_bb_reorder): New conditional variable.
19039         (uncond_jump_length): Redefine as a macro.
19040         * target-globals.h (this_target_bb_reorder): Declare.
19041         (target_globals): Add a bb_reorder field.
19042         (restore_target_globals): Copy the bb_reorder field to
19043         this_target_bb-reorder.
19044         * target-globals.c: Include bb-reorder.h.
19045         (default_target_globals): Initialize the bb_reorder field.
19046         (save_target_globals): Likewise.
19047
19048 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19049
19050         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
19051         * gcse.h: New file.
19052         * gcse.c: Include gcse.h.
19053         (default_target_gcse): New variable.
19054         (this_target_gcse): New conditional variable.
19055         (can_copy): Redefine as a macro.
19056         (can_copy_init_p): New macro.
19057         (can_copy_p): Remove can_copy_init_p.
19058         * target-globals.h (this_target_gcse): Declare.
19059         (target_globals): Add a gcse field.
19060         (restore_target_globals): Copy the gcse field to this_target_gcse.
19061         * target-globals.c: Include gcse.h.
19062         (default_target_globals): Initialize the gcse field.
19063         (save_target_globals): Likewise.
19064
19065 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19066
19067         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
19068         and x_ira_prohibited_mode_move_regs_initialized_p.
19069         (ira_prohibited_mode_move_regs): Redefine as a macro.
19070         * ira.c (ira_prohibited_mode_move_regs): Delete.
19071         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
19072
19073 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19074
19075         * reload.h (target_reload): Add x_cached_reg_save_code and
19076         x_cached_reg_restore_code.
19077         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
19078         Redefine as macros.
19079
19080 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19081
19082         * Makefile.in (target-globals.o): Depend on builtins.h.
19083         * builtins.h: New file.
19084         * builtins.c: Include builtins.h.
19085         (default_target_builtins): New variable.
19086         (this_target_builtins): New conditional variable.
19087         (apply_args_mode, apply_result_mode): Redefine as macros.
19088         * target-globals.h (this_target_builtins): Declare.
19089         (target_globals): Add a builtins field.
19090         (restore_target_globals): Copy the builtins field to
19091         this_target_builtins.
19092         * target-globals.c: Include builtins.h.
19093         (default_target_globals): Initialize the builtins field.
19094         (save_target_globals): Likewise.
19095
19096 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19097
19098         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
19099         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
19100         from expmed.c.
19101         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
19102         (alg_hash, alg_hash_used_p): New macros.
19103         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
19104         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
19105         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
19106
19107 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19108
19109         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
19110         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
19111         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
19112         (this_op_costs, costs_classes): Redefine as macros.
19113         (record_reg_classes): Don't take op_costs as a parameter.
19114         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
19115         (scan_one_insn): Update call to record_operand_costs.
19116
19117 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19118
19119         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
19120         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
19121         (target_ira_int): New structure.
19122         (default_target_ira_int): Declare.
19123         (this_target_ira_int): Declare as a variable or define as a macro.
19124         (ira_reg_mode_hard_regset, ira_register_move_cost)
19125         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
19126         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
19127         (prohibited_class_mode_regs, ira_important_classes_num)
19128         (ira_important_classes, ira_reg_class_intersect)
19129         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
19130         (ira_reg_class_union): Redefine as macros.
19131         * ira.h (target_ira): New structure.
19132         (default_target_ira): Declare.
19133         (this_target_ira): Declare as a variable or define as a macro.
19134         (ira_available_class_regs, ira_hard_regno_cover_class)
19135         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
19136         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
19137         (ira_class_hard_regs_num): Redefine as macros.
19138         * ira.c (default_target_ira, default_target_ira_int): New variables.
19139         (this_target_ira, this_target_ira_int): New conditional variables.
19140         (ira_reg_mode_hard_regset, ira_memory_move_cost)
19141         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
19142         (ira_class_subset_p): Delete.
19143         (no_unit_alloc_regs): Redefine as a macro.
19144         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
19145         (ira_class_hard_regs_num, ira_class_hard_reg_index)
19146         (ira_available_class_regs): Delete.
19147         (alloc_reg_class_subclasses): Redefine as a macro.
19148         (ira_reg_class_cover_size, ira_reg_class_cover)
19149         (ira_important_classes_num, ira_important_classes)
19150         (ira_important_class_nums, ira_class_translate): Delete.
19151         (cover_class_order): Document the variable's lifetime.
19152         (reorder_important_classes): Don't set ira_important_class_nums.
19153         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
19154         (ira_reg_class_super_classes, ira_reg_class_union)
19155         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
19156         Delete.
19157         (setup_reg_class_nregs): Don't set ira_max_regs.
19158         (prohibited_class_mode_regs): Delete.
19159         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
19160         (target_globals): Add ira and ira_int fields.
19161         (restore_target_globals): Copy the ira field to this_target_ira
19162         and the ira_int field to this_target_ira_int.
19163         * target-globals.c: Include ira-int.h.
19164         (default_target_globals): Initialize the ira and ira_int fields.
19165         (save_target_globals): Likewise.
19166
19167 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19168
19169         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
19170         * cfgloop.h (target_cfgloop): New structure.
19171         (default_target_cfgloop): Declare.
19172         (this_target_cfgloop): Declare as a variable or define as a macro.
19173         (target_avail_regs, target_clobbered_regs, target_res_regs)
19174         (target_reg_cost, target_spill_cost): Redefine as macros.
19175         * cfgloopanal.c (default_target_cfgloop): New variable.
19176         (this_target_cfgloop): New conditional variable.
19177         (target_avail_regs, target_clobbered_regs, target_res_regs)
19178         (target_reg_cost, target_spill_cost): Delete.
19179         * target-globals.h (this_target_cfgloop): Declare.
19180         (target_globals): Add a cfgloop field.
19181         (restore_target_globals): Copy the cfgloop field to
19182         this_target_cfgloop.
19183         * target-globals.c: Include cfgloop.h.
19184         (default_target_globals): Initialize the cfgloop field.
19185         (save_target_globals): Likewise.
19186
19187 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19188
19189         * regs.h (target_regs): Add x_direct_load, x_direct_store and
19190         x_float_extend_from_mem.
19191         (direct_load, direct_store, float_extend_from_mem): New macros.
19192         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
19193
19194 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19195
19196         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
19197         (target-globals.o): Depend on $(LIBFUNCS_H).
19198         * libfuncs.h: Include hashtab.h.
19199         (libfunc_entry): Moved from optabs.c.
19200         (target_libfuncs): New structure.
19201         (default_target_libfuncs): Declare.
19202         (this_target_libfuncs): Declare as a variable or define as a macro.
19203         (libfunc_table): Redefine as a macro.
19204         * optabs.c (default_target_libfuncs): New variable.
19205         (this_target_libfuncs): New conditional variable.
19206         (libfunc_table): Delete.
19207         (libfunc_entry): Moved to optabs.h.
19208         (libfunc_hash): Redefine as a macro.
19209         (hash_libfunc, eq_libfunc): Fix comments.
19210         (init_optabs): Use libfunc_hash to detect cases where the function
19211         has already been called.  Clear the hash table instead of
19212         recreating it.
19213         * target-globals.h (this_target_libfuncs): Declare.
19214         (target_globals): Add a libfuncs field.
19215         (restore_target_globals): Copy the libfuncs field to
19216         this_target_libfuncs.
19217         * target-globals.c: Include libfuncs.h.
19218         (default_target_globals): Initialize the libfuncs field.
19219         (save_target_globals): Likewise.
19220
19221 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19222
19223         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
19224         in all dependency lists.
19225
19226 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19227
19228         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
19229         * optabs.h (target_optabs): New structure.
19230         (default_target_optabs): Declare.
19231         (this_target_optabs): Declare as a variable or define as a macro.
19232         (optab_table, convert_optab_table, direct_optab_table): Redefine
19233         as macros.
19234         * optabs.c (default_target_optabs): New variable.
19235         (this_target_optabs): New conditional variable.
19236         (optab_table, convert_optab_table, direct_optab_table): Delete.
19237         * target-globals.h (this_target_optabs): Declare.
19238         (target_globals): Add a optabs field.
19239         (restore_target_globals): Copy the optabs field to
19240         this_target_optabs.
19241         * target-globals.c: Include expr.h and optabs.h.
19242         (default_target_globals): Initialize the optabs field.
19243         (save_target_globals): Likewise.
19244
19245 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19246
19247         * flags.h (target_flagstate): Add x_flag_excess_precision.
19248         (flag_excess_precision): Redefine as a macro.
19249         * toplev.c (flag_excess_precision): Delete.
19250
19251 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19252
19253         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
19254         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
19255         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
19256         (no_caller_save_reg_set): Redefine as a macro.
19257         * reload.h (target_reload): Add x_caller_save_initialized_p and
19258         x_regno_save_mode.
19259         (caller_save_initialized_p): Redefine as a macro.
19260         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
19261         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
19262         (regno_save_mode): Redefine as a macro.
19263
19264 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19265
19266         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
19267         * expmed.h: New file.
19268         * expmed.c (default_target_costs): New variable.
19269         (this_target_costs): New conditional variable.
19270         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
19271         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
19272         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
19273         * target-globals.h (this_target_expmed): Declare.
19274         (target_globals): Add a expmed field.
19275         (restore_target_globals): Copy the expmed field to
19276         this_target_expmed.
19277         * target-globals.c: Include expmed.h.
19278         (default_target_globals): Initialize the expmed field.
19279         (save_target_globals): Likewise.
19280
19281 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19282
19283         * Makefile.in (target-globals.o): Depend on reload.h.
19284         * reload.h (target_reload): New structure.
19285         (default_target_reload): Declare.
19286         (this_target_reload): Declare as a variable or define as a macro.
19287         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
19288         * reload1.c (default_target_reload): New variable
19289         (this_target_reload): New conditional variable.
19290         (indirect_symref_ok, double_reg_address_ok): Delete.
19291         (spill_indirect_levels): Redefine as a macro.
19292         * target-globals.h (this_target_reload): Declare.
19293         (target_globals): Add a reload field.
19294         (restore_target_globals): Copy the reload field to
19295         this_target_reload.
19296         * target-globals.c: Include hard-reg-set.h.
19297         (default_target_globals): Initialize the reload field.
19298         (save_target_globals): Likewise.
19299
19300 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19301
19302         * rtl.h (target_rtl): Add x_static_reg_base_value.
19303         * alias.c (static_reg_base_value): Redefine as a macro.
19304
19305 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19306
19307         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
19308         (GTFILES): Remove reginfo.c.
19309         * rtl.h (target_rtl): Add x_top_of_stack.
19310         (top_of_stack): New macro.
19311         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
19312         (top_of_stack): Delete.
19313
19314 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19315
19316         * regs.h (target_regs): Add x_hard_regs_of_mode,
19317         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
19318         x_may_move_out_cost and x_last_mode_for_init_move_cost.
19319         (have_regs_of_mode, contains_reg_of_mode, move_cost)
19320         (may_move_in_cost, may_move_out_cost): Redefine as macros.
19321         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
19322         (may_move_in_cost, may_move_out_cost): Delete.
19323         (last_mode_for_init_move_cost): Redefine as a macro.
19324
19325 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19326
19327         * hard-reg-set.h (target_hard_regs): New structure.
19328         (default_target_hard_regs): Declare.
19329         (this_target_hard_regs): Declare as a variable or define as a macro.
19330         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
19331         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
19332         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
19333         (reg_class_size, reg_class_subclasses, reg_class_subunion)
19334         (reg_class_superunion, reg_names): Redefine as macros.
19335         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
19336         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
19337         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
19338         (reg_class_contents, reg_class_size, reg_class_subclasses)
19339         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
19340         (default_target_hard_regs): New variable
19341         (this_target_hard_regs, initial_call_really_used_regs)
19342         (initial_reg_alloc_order): New conditional variables.
19343         (initial_reg_names): New variable.
19344         (init_reg_sets): Assert that initial_call_really_used_regs,
19345         initial_reg_alloc_order and initial_reg_names
19346         are all the same size as their variable counterparts.  Use them to
19347         initialize those counterparts.
19348         * target-globals.h (this_target_hard_regs): Declare.
19349         (target_globals): Add a hard_regs field.
19350         (restore_target_globals): Copy the hard_regs field to
19351         this_target_hard_regs.
19352         * target-globals.c: Include hard-reg-set.h.
19353         (default_target_globals): Initialize the hard_regs field.
19354         (save_target_globals): Likewise.
19355
19356 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19357
19358         * Makefile.in (target-globals.o): Depend on $(RTL_H).
19359         * rtl.h (target_rtl): New structure.
19360         (default_target_rtl): Declare.
19361         (this_target_rtl): Declare as a variable or define as a macro.
19362         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
19363         Redefine as macros.
19364         * emit-rtl.c (default_target_rtl): New variable.
19365         (this_target_rtl): New conditional variable.
19366         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
19367         (return_address_pointer_rtx): Delete.
19368         (initial_regno_reg_rtx): New macro.
19369         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
19370         (init_emit_regs): Likewise.
19371         * target-globals.h (this_target_rtl): Declare.
19372         (target_globals): Add a rtl field.
19373         (restore_target_globals): Copy the rtl field to this_target_rtl.
19374         * target-globals.c: Include rtl.h.
19375         (default_target_globals): Initialize the rtl field.
19376         (save_target_globals): Likewise.
19377
19378 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19379
19380         * Makefile.in (target-globals.o): Depend on $(REGS_H).
19381         * regs.h (target_reg_modes): New structure.
19382         (default_target_reg_modes): Declare.
19383         (this_target_reg_modes): Declare as a variable or define as a macro.
19384         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
19385         * reginfo.c (default_target_reg_modes): New variable.
19386         (this_target_reg_modes): New conditional variable.
19387         (hard_regno_nregs, reg_raw_mode): Delete.
19388         * target-globals.h (this_target_regs): Declare.
19389         (target_globals): Add a regs field.
19390         (restore_target_globals): Copy the regs field to this_target_regs.
19391         * target-globals.c: Include regs.h.
19392         (default_target_globals): Initialize the regs field.
19393         (save_target_globals): Likewise.
19394
19395 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19396
19397         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
19398         * doc/tm.texi: Regenerate.
19399         * Makefile.in (OBJS-common): Add target-globals.o.
19400         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
19401         and target-globals.h.
19402         (target-globals.o): New rule.
19403         (GTFILES): Include $(srcdir)/target-globals.h.
19404         * defaults.h (SWITCHABLE_TARGET): Define.
19405         * gengtype.c (open_base_files): Add target-globals.h to the
19406         list of includes.
19407         * target-globals.h: New file.
19408         * target-globals.c: Likewise.
19409
19410         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
19411         * flags.h (target_flag_state): New structure.
19412         (default_target_flag_state): Declare.
19413         (this_target_flag_state): Declare as a variable or define as a macro.
19414         (align_loops_log): Redefine as a macro.
19415         (align_loops_max_skip, align_jumps_log): Likewise.
19416         (align_jumps_max_skip, align_labels_log): Likewise.
19417         (align_labels_max_skip, align_functions_log): Likewise.
19418         * toplev.c (default_target_flag_state): New variable.
19419         (this_target_flag_state): New conditional variable.
19420         (align_loops_log): Delete.
19421         (align_loops_max_skip, align_jumps_log): Likewise.
19422         (align_jumps_max_skip, align_labels_log): Likewise.
19423         (align_labels_max_skip, align_functions_log): Likewise.
19424         * target-globals.h (this_target_flag_state): Declare.
19425         (target_globals): Add a flag_state field.
19426         (restore_target_globals): Copy the flag_state field to
19427         this_target_flag_state.
19428         * target-globals.c: Include flags.h.
19429         (default_target_globals): Initialize the flag_state field.
19430         (save_target_globals): Likewise.
19431
19432 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19433
19434         * postreload.c (reg_symbol_ref[]): New.
19435         (move2add_use_add2_insn): New.
19436         (move2add_use_add3_insn): New.
19437         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
19438         (move2add_note_store): Likewise.
19439
19440 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
19441
19442         PR rtl-optimization/44752
19443         * genautomata.c (main): Don't emit an empty file even if there
19444         is no automaton.
19445
19446 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19447
19448         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
19449         ix86_solaris_return_in_memory.
19450         * config/i386-protos.h: Reflect this.
19451         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19452         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19453         Move ...
19454         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
19455
19456 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19457
19458         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
19459         align the stack when it's going to be saved.
19460
19461 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19462
19463         PR pch/14940
19464         * config/host-solaris.c (mmap_fixed): New function.
19465         (sol_gt_pch_get_address): Use it.
19466         (sol_gt_pch_use_address): Likewise.
19467
19468 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19469
19470         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
19471         pentiumpro on Solaris 8 and 9/x86.
19472         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
19473         Document SSE/SSE2 support.
19474         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
19475
19476 2010-07-12  Andi Kleen  <ak@linux.intel.com>
19477
19478         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
19479         instead of gcc_assert to print better error message for multiple
19480         prevailing defs.
19481
19482 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
19483
19484         * config/i386/i386.c (ix86_asm_output_function_label): Change format
19485         string placeholder from 0x%x to %#x.
19486         (ix86_code_end): Use putc to output '\n'.
19487         (ix86_print_operand) <case ';'>: Use putc to output ';'.
19488
19489 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
19490
19491         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
19492         in directive -export.
19493
19494 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
19495
19496         * reginfo.h (reg_classes_intersect_p): Change arguments type to
19497         reg_class_t.
19498         * rtl.h (reg_classes_intersect_p): Adjust prototype.
19499
19500         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19501         Remove macros.
19502         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
19503         rs6000_memory_move_cost): Remove
19504         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
19505         TARGET_MEMORY_MOVE_COST): Define.
19506         (rs6000_register_move_cost): Make static. Change arguments type from
19507         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
19508         (rs6000_memory_move_cost): Make static. Change arguments type from
19509         'enum reg_class' to reg_class_t.
19510
19511 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
19512
19513         PR middle-end/42505
19514         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
19515         lookup code into....
19516         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
19517         new functions.
19518         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
19519         * cfgloopanal.c (target_clobbered_regs): Define.
19520         (init_set_costs): Initialize target_clobbered_regs.
19521         (estimate_reg_pressure_cost): Add call_p argument.  When true,
19522         adjust the number of available registers to exclude the
19523         call-clobbered registers.
19524         * cfgloop.h (target_clobbered_regs): Declare.
19525         (estimate_reg_pressure_cost): Adjust declaration.
19526         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
19527         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
19528         (determine_set_costs): Dump target_clobbered_regs.
19529         (loop_body_includes_call): New function.
19530         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
19531         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
19532         call_p flag through.
19533         (best_gain_for_invariant): Likewise.
19534         (find_invariants_to_move): Likewise.
19535         (move_single_loop_invariants): Likewise, using already-computed
19536         has_call field.
19537
19538 2010-07-10  Richard Guenther  <rguenther@suse.de>
19539             Joern Rennecke  <joern.rennecke@embecosm.com>
19540
19541         PR debug/44832
19542         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
19543         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
19544         unless they have DECL_IGNORED_P set.
19545
19546 2010-07-10  Richard Guenther  <rguenther@suse.de>
19547
19548         PR lto/44889
19549         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
19550         helper function.
19551         (gimple_types_compatible_p): Similar to pointed-to
19552         types allow and merge a mix of complete and incomplete aggregate.
19553         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
19554         (iterative_hash_gimple_type): Adjust for that.
19555
19556 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
19557
19558         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
19559
19560 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
19561
19562         PR objc/44140
19563         * config/darwin.c (output_objc_section_asm_op): Save and restore
19564         section when outputting ObjC section list.
19565
19566 2010-07-09  Jan Hubicka  <jh@suse.cz>
19567
19568         * lto-streamer-out.c (produce_symtab): Do not write alias
19569         cgraph/varpool nodes.
19570
19571 2010-07-09  Jan Hubicka  <jh@suse.cz>
19572
19573         * tree-inline.c (declare_return_variable): Fix ICE while
19574         inlining DECL_BY_VALUE function not in SSA form
19575
19576 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
19577
19578         PR tree-optimization/44576
19579         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
19580         New.  Pull out from is_loop_prefetching_profitable to implement
19581         the trip count to ahead ratio heuristic.
19582         (mem_ref_count_reasonable_p): New.  Pull out from
19583         is_loop_prefetching_profitable to implement the instruction to
19584         memory reference ratio heuristic.  Also consider not reasonable if
19585         the memory reference count is above a threshold (to avoid
19586         explosive compilation time.
19587         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
19588         is_loop_prefetching_profitable to implement the instruction to
19589         prefetch ratio heuristic.
19590         (is_loop_prefetching_profitable): Removed.
19591         (loop_prefetch_arrays): Distribute the cost analysis across the
19592         function to allow early exit of the prefetch analysis.
19593         is_loop_prefetching_profitable is splitted into three functions,
19594         with each one called as early as possible.
19595         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
19596         number of memory references in a loop is considered too many.
19597
19598 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19599
19600         * reload.c (find_reloads): Don't clear badop if we have a winreg
19601         alternative, but not win, and the class only has fixed regs.
19602         * hard-reg-set.h (class_only_fixed_regs): Declare.
19603         * reginfo.c (class_only_fixed_regs): New array.
19604         (init_reg_sets_1): Initialize it.
19605         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
19606         discourage alternatives using the stack pointer.
19607
19608         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
19609
19610         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
19611
19612         * config/arm/arm.md (cbranchqi4): Fix array size.
19613         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
19614         calculating length.
19615
19616 2010-07-09  Richard Guenther  <rguenther@suse.de>
19617
19618         * gimple.c (struct type_fixup_s): New struct and VEC type.
19619         (gimple_register_type_fixups): New static global.
19620         (gimple_queue_type_fixup): New function.
19621         (gimple_types_compatible_p): Queue type fixups instead of
19622         applying them here.
19623         (gimple_register_type): Apply queued fixups for the
19624         canonical type.  Empty the type fixup queue.
19625
19626 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19627
19628         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
19629         * configure: Regenerate.
19630         * config.in: Ditto.
19631
19632 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19633             Denys Vlasenko  <dvlasenk@redhat.com>
19634             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19635
19636         PR tree-optimization/28632
19637         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
19638         (extract_range_from_binary_expr): Further optimize
19639         BIT_AND_EXPR and BIT_IOR_EXPR.
19640
19641 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
19642
19643         * tree-if-conv.c (fold_or_predicates): New.
19644         (add_to_predicate_list): Call it.
19645
19646 2010-07-09  Richard Guenther  <rguenther@suse.de>
19647
19648         PR middle-end/44890
19649         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
19650         if base is a pointer.
19651         * tree-cfg.c (verify_expr): Update MEM_REF checking.
19652
19653 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
19654
19655         PR target/44877
19656         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
19657         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
19658         builtin mask for load/store builtins.
19659
19660 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19661
19662         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
19663         for "lock addl".
19664         * configure: Regenerate.
19665         * config/i386/i386.c (ix86_print_operand) <case ';'>:
19666         Remove TARGET_MACHO.
19667
19668 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
19669
19670         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
19671         default ISA flags.
19672         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
19673
19674 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
19675
19676         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
19677
19678 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
19679
19680         * config/picochip/picochip.md (commsTestPort): Emit more
19681         efficient sequence for tstport instruction.
19682
19683 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19684
19685         * config/i386/i386.c (ix86_veclib_handler): Make static.
19686
19687 2010-07-09  Richard Guenther  <rguenther@suse.de>
19688
19689         PR tree-optimization/44852
19690         * tree-ssa-alias.c: Include toplev.h for exact_log2.
19691         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
19692         in MEM_REF.
19693         (indirect_refs_may_alias_p): Likewise.
19694         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
19695
19696 2010-07-09  Richard Guenther  <rguenther@suse.de>
19697
19698         PR tree-optimization/44882
19699         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
19700         sets do conflict.
19701         (vectorizable_load): Likewise.
19702
19703 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19704
19705         PR target/40657
19706         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
19707         All callers changed.
19708         Handle the case when we're called for the epilogue.
19709         (thumb_unexpanded_epilogue): Use it.
19710         (thumb1_expand_epilogue): Likewise.
19711
19712 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19713
19714         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
19715         both ranges are range_int_cst_p with non-negative minimum,
19716         try harder to derive smaller range.
19717
19718 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19719
19720         * genrecog.c: Include diagnostic-core.h before toplev.h.
19721         * genoutput.c: Likewise.
19722         * genextract.c: Likewise.
19723         * genautomata.c: Likewise.
19724         * genemit.c: Likewise.
19725         * genpeep.c: Likewise.
19726         * genattrtab.c: Likewise.
19727         * genconditions.c: Likewise.
19728         * genpreds.c: Likewise.
19729
19730 2010-07-08  Andi Kleen  <ak@linux.intel.com>
19731
19732         * lto-section-in.c (lto_section_name): Add missing comma.
19733
19734 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
19735
19736         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
19737         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
19738         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
19739         (ia64_override_options): Rename to...
19740         (ia64_option_override): ... this one. Make static.
19741
19742 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19743
19744         PR middle-end/44843
19745         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
19746         pointed-to type of the offset in a MEM_REF to compute the alignment.
19747
19748 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
19749
19750         * final.c (final_scan_insn): Replace
19751         TARGET_UNWIND_INFO macro check by unwind_emit
19752         hook NULL check.
19753         * targhooks.c (default_unwind_emit): Removed.
19754         * targhooks.h (default_unwind_emit): Likewise.
19755         * target.def (unwind_emit): Set default value to NULL.
19756
19757         * config/i386/i386-protos.h (ix86_asm_output_function_label):
19758         New prototype.
19759         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
19760         for NULL fntype argument and allow 64-bit targets.
19761         (ix86_asm_output_function_label): New function.
19762         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
19763         (ix86_handle_fndecl_attribute): Likewise.
19764         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
19765         * doc/doc/tm.texi: Regenerated.
19766         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
19767         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
19768         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
19769         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
19770         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19771         * config/elfos.h: Likewise.
19772         * config/i386/cygming.h: Likewise.
19773         * config/netbsd-aout.h: Likewise.
19774         * config/openbsd.h: Likewise.
19775         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
19776         by ix86_asm_output_function_label function call.
19777         * varasm.c (assemble_start_function): Use
19778         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19779
19780 2010-07-08  Jan Hubicka  <jh@suse.cz>
19781
19782         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
19783         New function.
19784         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
19785         Declare.
19786         * ipa-cp.c (ipcp_estimate_growth): Use it.
19787         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
19788         Likewise.
19789
19790 2010-07-08  Jan Hubicka  <jh@suse.cz>
19791
19792         * tree-inline.c (declare_return_variable): Allocate annotation for new
19793         temporary.
19794
19795 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19796
19797         PR tree-optimization/44710
19798         * tree-if-conv.c (parse_predicate): New.
19799         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
19800         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
19801
19802 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19803
19804         * common.opt (ftree-loop-if-convert): New flag.
19805         * doc/invoke.texi (ftree-loop-if-convert): Documented.
19806         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
19807         when flag_tree_loop_if_convert is set.
19808
19809 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
19810
19811         * config/i386/i386.c: Use short syntax for function calls
19812         through function pointers.
19813         * config/i386/i386.md: Ditto.
19814
19815 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19816
19817         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
19818
19819 2010-07-08  Richard Guenther  <rguenther@suse.de>
19820
19821         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
19822         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
19823
19824 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
19825
19826         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
19827         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
19828         (loc_list_from_tree): Likewise.
19829         (output_loc_operands): Handle outputting DW_OP_const[48]u
19830         with loc->dtprel set.
19831         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
19832
19833 2010-07-08  Jan Hubicka  <jh@suse.cz>
19834
19835         * ipa.c: Include pointer-set.h
19836         (cgraph_externally_visible_p): New attribute ALIASED;
19837         when in LTO, hidden symbols are local unless they are aliased.
19838         (function_and_variable_visibility): Compute aliased nodes;
19839         handle LTO and hidden symbol on functions and vars.
19840         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
19841         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
19842
19843 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19844
19845         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
19846         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19847         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19848         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19849         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19850         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
19851         (ix86_gen_probe_stack_range): Likewise.
19852         (override_options): Set them.
19853         (ix86_target_stack_probe): New function.
19854         (ix86_compute_frame_layout): Force use of push instructions to
19855         save registers if stack checking with probes is enabled.
19856         (get_scratch_register_on_entry): New function.
19857         (release_scratch_register_on_entry): Likewise.
19858         (ix86_adjust_stack_and_probe): Likewise.
19859         (output_adjust_stack_and_probe): Likewise.
19860         (ix86_emit_probe_stack_range): Likewise.
19861         (output_probe_stack_range): Likewise.
19862         (ix86_expand_prologue): Emit stack checking code if static built-in
19863         stack checking is enabled.
19864         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
19865         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
19866         (output_adjust_stack_and_probe): Likewise.
19867         (output_probe_stack_range): Likewise.
19868         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
19869         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
19870         TARGET_STACK_PROBE.
19871         (allocate_stack_worker_64): Likewise.
19872         (allocate_stack): Likewise.
19873         (adjust_stack_and_probe): New insn.
19874         (probe_stack_range): Likewise.
19875
19876 2010-07-08  Richard Guenther  <rguenther@suse.de>
19877
19878         PR tree-optimization/44831
19879         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
19880         a MEM_REF preserving TBAA info of the original dereference.
19881         Dereference the original pointer if the address is not invariant.
19882         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
19883         at least one invariant address that we are going to dereference.
19884
19885 2010-07-08  Richard Guenther  <rguenther@suse.de>
19886
19887         PR tree-optimization/44861
19888         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
19889         information when building MEM_REFs.
19890         (vectorizable_load): Likewise.
19891         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
19892
19893 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19894
19895         * config/sol2-c.c: Do not include diagnostic-core.h.
19896
19897 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19898
19899         PR bootstrap/44768
19900         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
19901         with respect to current_function_decl. Pass decl of the function.
19902         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
19903         * ipa-inline.c (compute_inline_parameters): Pass decl to
19904         estimated_stack_frame_size.
19905
19906 2010-07-08  Richard Guenther  <rguenther@suse.de>
19907
19908         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
19909         New function.
19910         (valueize_refs): Call it.
19911
19912 2010-07-08  Richard Guenther  <rguenther@suse.de>
19913
19914         PR rtl-optimization/44838
19915         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
19916         SSA form do not use pointer equivalence.
19917
19918 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19919
19920         * dwarf2out.c (AT_linkage_name): Delete.
19921         (add_linkage_attr): New function.
19922         (add_linkage_name): Call it to emit the linkage attribute.
19923         (dwarf2out_finish): Likewise.
19924         (move_linkage_attr): Explicitly accept both attribute variants.
19925
19926 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19927
19928         * toplev.h: Do not include diagnostic-core.h.
19929         Include diagnostic-core.h in every file that includes toplev.h.
19930         * c-tree.h: Do not include toplev.h.
19931         * pretty-print.h: Update comment.
19932         * Makefile.in: Update dependencies.
19933         * alias.c: Include diagnostic-core.h in every file that includes
19934         toplev.h.
19935         * attribs.c: Likewise.
19936         * auto-inc-dec.c: Likewise.
19937         * bb-reorder.c: Likewise.
19938         * bt-load.c: Likewise.
19939         * caller-save.c: Likewise.
19940         * calls.c: Likewise.
19941         * cfg.c: Likewise.
19942         * cfganal.c: Likewise.
19943         * cfgbuild.c: Likewise.
19944         * cfgcleanup.c: Likewise.
19945         * cfghooks.c: Likewise.
19946         * cfgloop.c: Likewise.
19947         * combine.c: Likewise.
19948         * config/alpha/alpha.c: Likewise.
19949         * config/arc/arc.c: Likewise.
19950         * config/arm/arm.c: Likewise.
19951         * config/arm/pe.c: Likewise.
19952         * config/avr/avr.c: Likewise.
19953         * config/bfin/bfin.c: Likewise.
19954         * config/cris/cris.c: Likewise.
19955         * config/crx/crx.c: Likewise.
19956         * config/darwin-c.c: Likewise.
19957         * config/darwin.c: Likewise.
19958         * config/fr30/fr30.c: Likewise.
19959         * config/frv/frv.c: Likewise.
19960         * config/h8300/h8300.c: Likewise.
19961         * config/host-darwin.c: Likewise.
19962         * config/i386/i386.c: Likewise.
19963         * config/i386/netware.c: Likewise.
19964         * config/i386/nwld.c: Likewise.
19965         * config/i386/winnt-cxx.c: Likewise.
19966         * config/i386/winnt-stubs.c: Likewise.
19967         * config/i386/winnt.c: Likewise.
19968         * config/ia64/ia64-c.c: Likewise.
19969         * config/ia64/ia64.c: Likewise.
19970         * config/iq2000/iq2000.c: Likewise.
19971         * config/lm32/lm32.c: Likewise.
19972         * config/m32c/m32c-pragma.c: Likewise.
19973         * config/m32c/m32c.c: Likewise.
19974         * config/m32r/m32r.c: Likewise.
19975         * config/m68hc11/m68hc11.c: Likewise.
19976         * config/m68k/m68k.c: Likewise.
19977         * config/mcore/mcore.c: Likewise.
19978         * config/mep/mep-pragma.c: Likewise.
19979         * config/mep/mep.c: Likewise.
19980         * config/mmix/mmix.c: Likewise.
19981         * config/mn10300/mn10300.c: Likewise.
19982         * config/moxie/moxie.c: Likewise.
19983         * config/pa/pa.c: Likewise.
19984         * config/pdp11/pdp11.c: Likewise.
19985         * config/picochip/picochip.c: Likewise.
19986         * config/rs6000/rs6000-c.c: Likewise.
19987         * config/rs6000/rs6000.c: Likewise.
19988         * config/rx/rx.c: Likewise.
19989         * config/s390/s390.c: Likewise.
19990         * config/score/score.c: Likewise.
19991         * config/score/score3.c: Likewise.
19992         * config/score/score7.c: Likewise.
19993         * config/sh/sh.c: Likewise.
19994         * config/sh/symbian-base.c: Likewise.
19995         * config/sh/symbian-c.c: Likewise.
19996         * config/sh/symbian-cxx.c: Likewise.
19997         * config/sol2-c.c: Likewise.
19998         * config/sol2.c: Likewise.
19999         * config/sparc/sparc.c: Likewise.
20000         * config/spu/spu.c: Likewise.
20001         * config/stormy16/stormy16.c: Likewise.
20002         * config/v850/v850-c.c: Likewise.
20003         * config/v850/v850.c: Likewise.
20004         * config/vax/vax.c: Likewise.
20005         * config/vxworks.c: Likewise.
20006         * config/xtensa/xtensa.c: Likewise.
20007         * convert.c: Likewise.
20008         * cse.c: Likewise.
20009         * cselib.c: Likewise.
20010         * dbgcnt.c: Likewise.
20011         * dbxout.c: Likewise.
20012         * ddg.c: Likewise.
20013         * dominance.c: Likewise.
20014         * emit-rtl.c: Likewise.
20015         * explow.c: Likewise.
20016         * expmed.c: Likewise.
20017         * fixed-value.c: Likewise.
20018         * fold-const.c: Likewise.
20019         * fwprop.c: Likewise.
20020         * gcse.c: Likewise.
20021         * ggc-common.c: Likewise.
20022         * ggc-page.c: Likewise.
20023         * ggc-zone.c: Likewise.
20024         * gimple-low.c: Likewise.
20025         * gimplify.c: Likewise.
20026         * graph.c: Likewise.
20027         * haifa-sched.c: Likewise.
20028         * ifcvt.c: Likewise.
20029         * implicit-zee.c: Likewise.
20030         * integrate.c: Likewise.
20031         * ira-build.c: Likewise.
20032         * ira-color.c: Likewise.
20033         * ira-conflicts.c: Likewise.
20034         * ira-costs.c: Likewise.
20035         * ira-lives.c: Likewise.
20036         * ira.c: Likewise.
20037         * lists.c: Likewise.
20038         * loop-doloop.c: Likewise.
20039         * loop-iv.c: Likewise.
20040         * lto-opts.c: Likewise.
20041         * lto-symtab.c: Likewise.
20042         * main.c: Likewise.
20043         * modulo-sched.c: Likewise.
20044         * optabs.c: Likewise.
20045         * params.c: Likewise.
20046         * plugin.c: Likewise.
20047         * postreload-gcse.c: Likewise.
20048         * postreload.c: Likewise.
20049         * predict.c: Likewise.
20050         * profile.c: Likewise.
20051         * real.c: Likewise.
20052         * regcprop.c: Likewise.
20053         * reginfo.c: Likewise.
20054         * regmove.c: Likewise.
20055         * reorg.c: Likewise.
20056         * resource.c: Likewise.
20057         * rtl.c: Likewise.
20058         * rtlanal.c: Likewise.
20059         * sched-deps.c: Likewise.
20060         * sched-ebb.c: Likewise.
20061         * sched-rgn.c: Likewise.
20062         * sdbout.c: Likewise.
20063         * sel-sched-dump.c: Likewise.
20064         * sel-sched-ir.c: Likewise.
20065         * simplify-rtx.c: Likewise.
20066         * stmt.c: Likewise.
20067         * stor-layout.c: Likewise.
20068         * store-motion.c: Likewise.
20069         * targhooks.c: Likewise.
20070         * tree-cfg.c: Likewise.
20071         * tree-cfgcleanup.c: Likewise.
20072         * tree-dump.c: Likewise.
20073         * tree-eh.c: Likewise.
20074         * tree-inline.c: Likewise.
20075         * tree-nomudflap.c: Likewise.
20076         * tree-object-size.c: Likewise.
20077         * tree-optimize.c: Likewise.
20078         * tree-outof-ssa.c: Likewise.
20079         * tree-phinodes.c: Likewise.
20080         * tree-profile.c: Likewise.
20081         * tree-ssa-ccp.c: Likewise.
20082         * tree-ssa-coalesce.c: Likewise.
20083         * tree-ssa-live.c: Likewise.
20084         * tree-ssa-loop-niter.c: Likewise.
20085         * tree-ssa-loop-prefetch.c: Likewise.
20086         * tree-ssa-loop.c: Likewise.
20087         * tree-ssa-structalias.c: Likewise.
20088         * tree-ssa-uninit.c: Likewise.
20089         * tree-ssa.c: Likewise.
20090         * tree-vect-data-refs.c: Likewise.
20091         * tree-vect-loop-manip.c: Likewise.
20092         * tree-vect-loop.c: Likewise.
20093         * tree-vect-patterns.c: Likewise.
20094         * tree-vect-stmts.c: Likewise.
20095         * tree-vrp.c: Likewise.
20096         * varasm.c: Likewise.
20097         * vec.c: Likewise.
20098         * web.c: Likewise.
20099         * xcoffout.c: Likewise.
20100
20101 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
20102
20103         * gengtype.c (write_field_root): New function.
20104         (write_root): Use it.
20105
20106 2010-07-07  Wei Guozhi  <carrot@google.com>
20107
20108         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20109         of lowest bits to lshift/compare): Add a missing line.
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): New.
20115
20116 2010-07-07  Tom Tromey  <tromey@redhat.com>
20117
20118         * doc/tm.texi: Update.
20119         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
20120         Add @hook.
20121         * target.def (want_debug_pub_sections): New hook.
20122         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
20123         * dwarf2out.c (add_pubname_string): Check
20124         targetm.want_debug_pub_sections.
20125         (add_pubname): Likewise.
20126         (add_pubtype): Likewise.
20127
20128 2010-07-07  Jie Zhang  <jie@codesourcery.com>
20129
20130         * genautomata.c (output_automata_list_min_issue_delay_code):
20131         Correctly decompress min_issue_delay.
20132
20133 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20134
20135         PR rtl-optimization/44404
20136         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
20137         possible, use reg_overlap_mentioned_p instead.
20138
20139 2010-07-07  Duncan Sands  <baldrick@free.fr>
20140
20141         PR middle-end/41355
20142         * tree.c (build_function_type_skip_args): Copy the original type using
20143         build_distinct_type_copy rather than copy_node.
20144
20145 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20146
20147         PR target/44850
20148         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
20149         revision 161876.
20150         (ix86_expand_prologue): Likewise.
20151         (ix86_handle_fndecl_attribute): Likewise.
20152         (ix86_asm_declare_function_name): Likewise.
20153         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20154         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20155         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
20156         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
20157         * doc/extend.texi: Likewise.
20158
20159 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20160
20161         PR target/44844
20162         * config/i386/i386.md (rdrand<mode>): Changed to expand to
20163         retry if the carry flag isn't valid.
20164         (rdrand<mode>_1): New.
20165
20166 2010-07-07  Richard Guenther  <rguenther@suse.de>
20167
20168         PR middle-end/44790
20169         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
20170         for expanding the constant offset for MEM_REFs.
20171
20172 2010-07-07  Richard Guenther  <rguenther@suse.de>
20173
20174         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
20175         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
20176         * gimple.h (is_gimple_operand): Remove.
20177         * gimple.c (is_gimple_operand): Likewise.
20178         (walk_gimple_op): Fix wi->val_only setting for calls.
20179         * tree-cfg.c (verify_gimple_call): Fix argument validation.
20180         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
20181         invalid gimple calls.
20182
20183 2010-07-06  Jan Hubicka  <jh@suse.cz>
20184
20185         * lto-cgraph.c (output_cgraph): Add missing declaration.
20186
20187 2010-07-06  Jan Hubicka  <jh@suse.cz>
20188
20189         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
20190         partition.
20191
20192 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
20193
20194         * doc/gimple.texi (GIMPLE_DEBUG): Document.
20195         * doc/rtl.texi (Debug Information): New node.
20196         (NOTE_INSN_VAR_LOCATION): Document.
20197         (debug_insn): Likewise.
20198         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
20199
20200 2010-07-07  Jan Hubicka  <jh@suse.cz>
20201
20202         With parts by Richard Guenther.
20203
20204         PR middle-end/44813
20205         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
20206         for functions passed by reference.
20207         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
20208         in memory when passed by reference.
20209         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
20210         beggining.
20211         * ipa-split.c (split_function): Cleanup way return value is passed;
20212         handle SSA DECL_BY_REFERENCE retvals.
20213         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
20214         DECL_BY_REFERENCE is set.
20215         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
20216         find_what_p_points_to): Handle RESULT_DECL.
20217         * tree-inline.c (declare_return_variable): Get new entry_block argument;
20218         when passing by reference ensure that RESULT_DECL is gimple_val.
20219         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
20220         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
20221
20222 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20223
20224         PR rtl-optimization/44787
20225         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
20226         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
20227
20228 2010-07-06  Jan Hubicka  <jh@suse.cz>
20229
20230         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
20231         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
20232         with body can prevail.
20233         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
20234         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
20235         * cgraph.c (cgraph_get_node_or_alias): New function.
20236         * cgraph.h (cgraph_get_node_or_alias): Declare.
20237
20238 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
20239
20240         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
20241         support.
20242         (ix86_expand_prologue): Likewise.
20243         (ix86_handle_fndecl_attribute): Likewise.
20244         (ix86_asm_declare_function_name): New function for
20245         ASM_DECLARE_FUNCTION_NAME.
20246         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
20247         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
20248         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
20249         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
20250         * doc/extend.texi: Adjust documentation about ms_hook_prologue
20251         attribute.
20252
20253 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20254
20255         * config/i386/i386.md (immediate_operand): New mode attribute.
20256
20257         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
20258         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
20259         using P mode iterator.
20260         (pro_epilogue_adjust_stack_di_2): Rename from
20261         pro_epilogue_adjust_stack_rex64_2.
20262
20263         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
20264
20265 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20266
20267         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
20268         through gen_mov_insv_1 function pointer.
20269         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
20270         gen_truncxf<mode>2 through gen_truncxf function pointer.
20271         (remainder<mode>3): Ditto.
20272         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
20273         (allocate_stack): Call gen_allocate_stack_worker_64 or
20274         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
20275         function pointer.
20276         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
20277         function pointer.
20278
20279 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20280
20281         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
20282         operand constraint instead of <r><i>m.
20283
20284 2010-07-06  Richard Guenther  <rguenther@suse.de>
20285
20286         PR middle-end/44828
20287         * convert.c (convert_to_integer): Watch out for overflowing
20288         MULT_EXPR as well.
20289
20290 2010-07-05  Jan Hubicka  <jh@suse.cz>
20291
20292         * lto-streamer.c (write_symbol_vec): Rename to ...
20293         (write_symbol) ... this one; write only symbol given and when
20294         present in cache. Sanity check that what is defined is present
20295         in cgraph/varpool with body/finalized decl.
20296         (write_symbols_of_kind): Remove.
20297         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
20298         pairs to produce symtab.
20299         (produce_asm_for_decls): Update call of produce_symtab; don't do so
20300         when doing WPA streaming.
20301
20302 2010-07-05  Jan Hubicka  <jh@suse.cz>
20303
20304         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
20305         function is still available to fold into.
20306
20307 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20308
20309         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
20310         * function.h (struct_function): Change type of local_decls field
20311         to a VEC.
20312         (add_local_decl): New function.
20313         (FOR_EACH_LOCAL_DECL): New macro.
20314         * cfgexpand.c (init_vars_expansion): Adjust for new type of
20315         cfun->local_decls.
20316         (estimated_stack_frame_size): Likewise.
20317         (expand_used_vars): Likewise.
20318         * cgraphbuild.c (build_cgraph_edges): Likewise.
20319         * function.c (instantiate_decls_1): Likewise.
20320         * ipa-struct-reorg.c (build_data_structure): Likewise.
20321         * ipa-type-escape.c (analyze_function): Likewise.
20322         * lto-streamer-in.c (input_function): Likewise.
20323         * lto-streamer-out.c (output_function): Likewise.
20324         * tree-ssa-live.c (remove_unused_locals): Likewise.
20325         * tree.c (free_lang_data_in_decl): Likewise.
20326         (find_decls_types_in_node): Likewise.
20327         * omp-low.c (remove_exit_barrier): Likewise.
20328         (expand_omp_taskreg): Likewise.
20329         (list2chain): Rename to...
20330         (vec2chain): ...this.  Adjust.
20331         * cgraphunit.c (assemble_thunk): Call add_local_decl.
20332         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
20333         * gimple-low.c (record_vars_into): Likewise.
20334         * tree-inline.c (remap_decls): Likewise.
20335         (declare_return_variable): Likewise.
20336         (declare_inline_vars): Likewise.
20337         (copy_forbidden): Adjust for new type of cfun->local_decls.
20338         (add_local_variables): New function.
20339         (expand_call_inline): Call it.
20340         (tree_function_versioning): Likewise.
20341
20342 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
20343
20344         AVX Programming Reference (June, 2010)
20345         * config/i386/cpuid.h (bit_F16C): New.
20346         (bit_RDRND): Likewise.
20347         (bit_FSGSBASE): Likewise.
20348
20349         * config/i386/i386-builtin-types.def: Add
20350         "DEF_FUNCTION_TYPE (UINT16)", function types for
20351         float16 <-> float conversions and
20352         "DEF_FUNCTION_TYPE (VOID, UINT64)".
20353
20354         * config/i386/i386-c.c (ix86_target_macros_internal): Support
20355         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
20356         OPTION_MASK_ISA_F16C.
20357
20358         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
20359         (OPTION_MASK_ISA_RDRND_SET): Likewise.
20360         (OPTION_MASK_ISA_F16C_SET): Likewise.
20361         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
20362         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
20363         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
20364         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
20365         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
20366         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
20367         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
20368         (override_options): Handle them.
20369         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
20370         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
20371         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
20372         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
20373         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
20374         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
20375         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
20376         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
20377         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
20378         (bdesc_args): Likewise.
20379         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
20380         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
20381         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
20382         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
20383         Handle non-memory store.
20384
20385         * config/i386/i386.h (TARGET_FSGSBASE): New.
20386         (TARGET_RDRND): Likewise.
20387         (TARGET_F12C): Likewise.
20388
20389         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
20390         (UNSPEC_VCVTPS2PH): Likewise.
20391         (UNSPECV_RDFSBASE): Likewise.
20392         (UNSPECV_RDGSBASE): Likewise.
20393         (UNSPECV_WRFSBASE): Likewise.
20394         (UNSPECV_WRGSBASE): Likewise.
20395         (UNSPECV_RDRAND): Likewise.
20396         (rdfsbase<mode>): Likewise.
20397         (rdgsbase<mode>): Likewise.
20398         (wrfsbase<mode>): Likewise.
20399         (wrgsbase<mode>): Likewise.
20400         (rdrand<mode>): Likewise.
20401
20402         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
20403
20404         * config/i386/immintrin.h (_rdrand_u16): New.
20405         (_rdrand_u32): Likewise.
20406         (_readfsbase_u32): Likewise.
20407         (_readfsbase_u64): Likewise.
20408         (_readgsbase_u32): Likewise.
20409         (_readgsbase_u64): Likewise.
20410         (_writefsbase_u32): Likewise.
20411         (_writefsbase_u64): Likewise.
20412         (_writegsbase_u32): Likewise.
20413         (_writegsbase_u64): Likewise.
20414         (_rdrand_u64): Likewise.
20415         (_cvtsh_ss): Likewise.
20416         (_mm_cvtph_ps): Likewise.
20417         (_mm256_cvtph_ps): Likewise.
20418         (_cvtss_sh): Likewise.
20419         (_mm_cvtps_ph): Likewise.
20420         (_mm256_cvtps_ph): Likewise.
20421
20422         * config/i386/sse.md (vcvtph2ps): New.
20423         (*vcvtph2ps_load): Likewise.
20424         (vcvtph2ps256): Likewise.
20425         (vcvtps2ph): Likewise.
20426         (*vcvtps2ph): Likewise.
20427         (*vcvtps2ph_store): Likewise.
20428         (vcvtps2ph256): Likewise.
20429
20430         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
20431
20432         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
20433
20434 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
20435
20436         PR bootstrap/44512
20437         * genenums.c (main): Output include of insn-constants.h
20438         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
20439
20440 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
20441
20442         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
20443         (override_options): Initialize it.
20444         (ix86_expand_prologue): Use it.
20445
20446 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20447
20448         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
20449
20450 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20451
20452         * double-int.h (fit_double_type): Remove declaration.
20453         * double-int.c (fit_double_type): Remove function.
20454         * tree.h (int_fits_type_p): Adjust prototype.
20455         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
20456         instead of fit_double_type.
20457         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
20458         instead of fit_double_type and build_int_cst_wide.
20459         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
20460         instead of fit_double_type and build_int_cst_wide.
20461         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
20462         of fit_double_type.
20463
20464 2010-07-05  Jan Hubicka  <jh@suse.cz>
20465
20466         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
20467         in_other_partition.
20468         * lto-cgraph.c (referenced_from_other_partition_p,
20469         reachable_from_other_partition_p): Use in_other_partition flags.
20470         (output_node, output_varpool_node): COMDAT nodes always have private
20471         copies and thus are never used from other partition.
20472
20473 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20474
20475         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
20476         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
20477         * config/ia64/ia64.c Include reload.h.
20478         (ia64_memory_move_cost): New function.
20479         (TARGET_MEMORY_MOVE_COST): Define.
20480         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
20481         memory_move_cost.
20482
20483 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
20484
20485         PR middle-end/42505
20486         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
20487         comments about cost model.
20488         (try_add_cand_for):  Add second strategy for choosing initial set
20489         based on original IVs, controlled by ORIGINALP argument.
20490         (get_initial_solution): Add ORIGINALP argument.
20491         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
20492         (find_optimal_iv_set): Try two different strategies for choosing
20493         the IV set, and return the one with lower cost.
20494
20495 2010-07-05  Richard Guenther  <rguenther@suse.de>
20496
20497         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
20498
20499 2010-07-05  Richard Guenther  <rguenther@suse.de>
20500
20501         * tree.c (reference_alias_ptr_type): New function.
20502         * tree.h (reference_alias_ptr_type): Declare.
20503         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
20504         allow non-TARGET_MEM_REF new refs.
20505         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
20506         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
20507         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
20508         (create_mem_ref): Get alias pointer type.  Adjust calls to
20509         create_mem_ref_raw.
20510         (maybe_fold_tmr): Likewise.
20511         * tree-flow.h (create_mem_ref): Adjust prototype.
20512
20513 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20514
20515         PR c++/44808
20516         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
20517         *from_p is VAR_DECL.
20518
20519 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20520
20521         * tree.h (build_call_list): Remove.
20522         * tree.c (build_call_list): Remove.
20523
20524 2010-07-05  Richard Guenther  <rguenther@suse.de>
20525
20526         * double-int.h (double_int_sub): Declare.
20527         * double-int.c (double_int_sub): New function.
20528         * dwarf2out.c (field_byte_offset): Use it.
20529         * fixed-value.c (do_fixed_add): Likewise.
20530         (do_fixed_multiply): Likewise.
20531         (do_fixed_divide): Likewise.
20532         * tree-predcom.c (add_ref_to_chain): Likewise.
20533         (determine_roots_comp): Likewise.
20534         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
20535
20536 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20537
20538         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
20539         implementations.
20540
20541 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
20542
20543         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
20544         * arm-modes.def (CC_NOTB): Don't define.
20545         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
20546         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
20547         (LTUGEU): New code_iterator.
20548         (cnb, optab): New corresponding code_attrs.
20549         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
20550         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
20551         using LTUGEU.
20552         (addsi3_carryin_shift_<optab>): Likewise.
20553         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
20554         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
20555         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
20556         (subsi3_compare): Renamed from subsi3_compare0_c.
20557         Change CC_NOTB to CC.
20558         (arm_subsi3_insn): Allow constants for operand 0.
20559         (compare_scc peephole for eq case): New.
20560         (compare_scc splitters): Change CC_NOTB to CC.
20561
20562 2010-07-05  Richard Guenther  <rguenther@suse.de>
20563
20564         * tree-ssa-loop-im.c (for_each_index): Do not handle
20565         ALIGN_INDIRECT_REF.
20566         (gen_lsm_tmp_name): Likewise.
20567         * tree-dump.c (dequeue_and_dump): Likewise.
20568         * tree-pretty-print.c (dump_generic_node): Likewise.
20569         (op_code_prio): Likewise.
20570         (op_symbol_code): Likewise.
20571         * tree.c (staticp): Likewise.
20572         (build1_stat): Likewise.
20573         * tree.h (INDIRECT_REF_P): Likewise.
20574         * fold-const.c (maybe_lvalue_p): Likewise.
20575         (operand_equal_p): Likewise.
20576         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
20577         (ao_ref_init_from_vn_reference): Likewise.
20578         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
20579         (find_interesting_uses_address): Likewise.
20580         * dwarf2out.c (loc_list_from_tree): Likewise.
20581         * gimplify.c (gimplify_expr): Likewise.
20582         * tree-eh.c (tree_could_trap_p): Likewise.
20583         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
20584         * cfgexpand.c (expand_debug_expr): Likewise.
20585         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
20586         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
20587         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
20588         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
20589         * tree-ssa-operands.c (get_expr_operands): Likewise.
20590         * expr.c (safe_from_p): Likewise.
20591         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
20592         * tree-vect-data-refs.c (vect_setup_realignment): Build
20593         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
20594         * tree-vect-stmts.c (vectorizable_load): Likewise.
20595         * tree.def (ALIGN_INDIRECT_REF): Remove.
20596
20597 2010-07-05  Richard Guenther  <rguenther@suse.de>
20598
20599         PR tree-optimization/44784
20600         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
20601         for inserted stmts.
20602         (find_or_generate_expression): Fix SCCVN insertion check.
20603
20604 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
20605
20606         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
20607         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
20608         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
20609         directives.
20610
20611 2010-07-05  Ira Rosen  <irar@il.ibm.com>
20612
20613         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
20614         statements that are not vectorized.
20615         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
20616         in INSIDE_COST.
20617
20618 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
20619
20620         PR bootstrap/44820
20621         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
20622
20623 2010-07-05  Richard Guenther  <rguenther@suse.de>
20624
20625         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
20626         RESULT_DECLs properly.
20627
20628 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
20629
20630         PR rtl-optimization/44695
20631         * config/i386/i386.md (extract_code): Removed.
20632         (<u>divmodqi4): Likewise.
20633         (divmodqi4): New.
20634         (udivmodqi4): Likewise.
20635         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
20636         (udivmodhiqi3): Likewise.
20637
20638 2010-07-04  Jan Hubicka  <jh@suse.cz>
20639
20640         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
20641
20642 2010-07-04  Jan Hubicka  <jh@suse.cz>
20643
20644         * cgraphunit.c (init_cgraph): Only initialize dump file if it
20645         is not already initialized.
20646
20647 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20648
20649         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
20650         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
20651         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
20652         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
20653         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
20654         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
20655         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
20656         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
20657         (sync_new_nand_optab): Redefine as macros.
20658         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
20659         Delete.
20660         (direct_optab_index): New enum.
20661         (direct_optab_d): New structure.
20662         (direct_optab): New typedef.
20663         (direct_optab_table): Declare.
20664         (direct_optab_handler, set_direct_optab_handler): New functions.
20665         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
20666         (sync_lock_release_optab): New macros.
20667         * optabs.c (direct_optab_table): New variable.
20668         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
20669         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
20670         cmpstr_optab and cmpstrn_optab.
20671         (emit_conditional_move): Likewise for movcc_optab.
20672         (can_conditionally_move_p): Likewise for movcc_gen_code.
20673         (init_insn_codes): Clear direct_optab_table.
20674         (init_optabs): Don't initialize the new "direct optabs" here.
20675         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
20676         vcond_gen_code.
20677         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
20678         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
20679         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
20680         (expand_sync_operation): Likewise other sync_*_optabs.
20681         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
20682         to sync_compare_and_swap_optab.
20683         (expand_sync_lock_test_and_set): Use direct_optab_handler for
20684         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
20685         to the names of both.
20686         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
20687         cmpstr_optab and cmpstrn_optab.
20688         (expand_builtin_lock_release): Likewise sync_lock_release.
20689         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
20690         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
20691         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
20692         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
20693         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
20694         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
20695         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
20696         (sync_lock_test_and_set, sync_lock_release): Delete.
20697         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
20698         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
20699         * genopinit.c (optabs): Use set_direct_optab_handler for the new
20700         macro optabs.
20701         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
20702         the "optab" local variable.  Use direct_optab_handler for optab and
20703         sync_compare_and_swap_optab.
20704         * reload1.c (reload_in_optab, reload_out_optab): Delete.
20705         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
20706         reload_in_optab and reload_out_optab.
20707         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
20708         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
20709         * config/pa/pa.c (pa_secondary_reload): Likewise.
20710         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
20711         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
20712         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
20713         (VMSupportsCS8_builtin): Likewise.
20714
20715 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20716
20717         * optabs.h (optab_handlers): Change type of insn_code to int.
20718         (optab_handler, set_optab_handler, convert_optab_handler)
20719         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
20720         CODE_FOR_nothing".
20721         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
20722         (init_insn_codes): Zero both the above arrays.
20723         (init_optabs): Never call init_insn_codes first time around.
20724
20725 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20726
20727         * optabs.h (optab_handler, convert_optab_handler): Turn into
20728         inline functions that return an insn code.
20729         (set_optab_handler, set_convert_optab_handler): New functions.
20730         * builtins.c: Replace optab_handler(X)->insn_code with
20731         optab_handler or set_optab_handler thoughout.  Likewise
20732         convert_optab_handler(X)->insn_code with convert_optab_handler
20733         and set_convert_optab_handler.
20734         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
20735         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
20736         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
20737         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
20738         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
20739         config/spu/spu.c: Likewise.
20740
20741 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
20742
20743         PR target/44531
20744         * config.gcc (sh*-*-*): Use regular expressions instead of
20745         the 'i' modifier for sed substitutions.
20746
20747 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
20748
20749         * gimple.c (gimple_body): Comments added.
20750
20751 2010-07-04  Richard Guenther  <rguenther@suse.de>
20752
20753         PR middle-end/44809
20754         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
20755         of an INDIRECT_REF.
20756
20757 2010-07-04  Richard Guenther  <rguenther@suse.de>
20758
20759         PR tree-optimization/44479
20760         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
20761         extra SSA name copy statements which preserves points-to
20762         information.
20763         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
20764         Copy points-to information for all pointers.  Properly handle
20765         MEM_REFs.
20766         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
20767         copy statements.
20768         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
20769         dependency.
20770
20771 2010-07-04  Richard Guenther  <rguenther@suse.de>
20772
20773         PR middle-end/44785
20774         * tree-inline.c (initialize_inlined_parameters): Do not
20775         re-use pointer-map slot over remap_type call.
20776
20777 2010-07-04  Richard Guenther  <rguenther@suse.de>
20778
20779         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
20780
20781 2010-07-04  Richard Guenther  <rguenther@suse.de>
20782
20783         PR tree-optimization/44656
20784         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
20785         again after value-replacing in the defintions lhs.
20786
20787 2010-07-04  Ira Rosen  <irar@il.ibm.com>
20788             Revital Eres  <eres@il.ibm.com>
20789
20790         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
20791         Document new arguments.
20792         * doc/tm.texi: Regenerate.
20793         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
20794         Handle unaligned store.
20795         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
20796         * target.def (builtin_vectorization_cost): Add new arguments.
20797         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
20798         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
20799         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
20800         (vect_vfa_segment_size): Fix indentation.
20801         * tree-vectorizer.h (struct _vect_peel_info): New.
20802         (struct _vect_peel_extended_info): New.
20803         (struct _loop_vec_info): Add new field for peeling hash table and a
20804         macro for its access.
20805         (VECT_MAX_COST): Define.
20806         (vect_get_load_cost): Declare.
20807         (vect_get_store_cost, vect_get_known_peeling_cost,
20808         vect_get_single_scalar_iteraion_cost): Likewise.
20809         (vect_supportable_dr_alignment): Add new argument.
20810         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
20811         field.
20812         (destroy_loop_vec_info): Free peeling hash table.
20813         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
20814         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
20815         vect_analyze_slp. Fix indentation.
20816         (vect_get_single_scalar_iteraion_cost): New function.
20817         (vect_get_known_peeling_cost): Likewise.
20818         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
20819         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
20820         statement. Move outside cost calculation inside unknown peeling case.
20821         Call vect_get_known_peeling_cost for known amount of peeling.
20822         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
20823         reference to the print message of forced alignment.
20824         (vect_verify_datarefs_alignment): Update call to
20825         vect_supportable_dr_alignment.
20826         (vect_get_data_access_cost): New function.
20827         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
20828         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
20829         vect_peeling_hash_choose_best_peeling): Likewise.
20830         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
20831         to store all the accesses in the loop and find best possible access to
20832         align using peeling for known alignment case. For unknown alignment
20833         check if stores are preferred or if peeling is worthy.
20834         (vect_find_same_alignment_drs): Analyze pairs of loads too.
20835         (vect_supportable_dr_alignment): Add new argument and check aligned
20836         accesses according to it.
20837         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
20838         (cost_for_stmt): Call vect_get_stmt_cost.
20839         (vect_model_simple_cost): Likewise.
20840         (vect_model_store_cost): Call vect_get_stmt_cost. Call
20841         vect_get_store_cost to calculate the cost of the statement.
20842         (vect_get_store_cost): New function.
20843         (vect_model_load_cost): Call vect_get_stmt_cost. Call
20844         vect_get_load_cost to calculate the cost of the statement.
20845         (vect_get_load_cost): New function.
20846         (vectorizable_store): Update call to vect_supportable_dr_alignment.
20847         (vectorizable_load): Likewise.
20848         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
20849         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
20850         arguments. Handle unaligned store.
20851         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
20852         (rs6000_builtin_support_vector_misalignment): Return true for word and
20853         double word alignments for VSX.
20854         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
20855         vect_supportable_dr_alignment and builtin_vectorization_cost.
20856
20857 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20858
20859         PR target/44597
20860         * config/pa/predicates.md (prefetch_cc_operand): Remove.
20861         (prefetch_nocc_operand): Likewise.
20862         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
20863         (prefetch_20): New insn.
20864         (prefetch_cc): Remove.
20865         (prefetch_nocc): Likewise.
20866
20867 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20868
20869         * expr.c (vector_mode_valid_p): Move to c-common.c.
20870         * expr.h (vector_mode_valid_p): Do not declare here.
20871         * system.h: Poison GCC_EXPR_H in front-ends.
20872         * Makefile.in: Update dependencies.
20873
20874 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20875
20876         PR target/44705
20877         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
20878
20879 2010-07-03  Jan Hubicka  <jh@suse.cz>
20880
20881         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
20882         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
20883         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
20884         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
20885         Likewise.
20886
20887         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
20888         Update timevars.V
20889         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
20890         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
20891         TV_IPA_LTO_DECL_OUT): New.
20892         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
20893
20894 2010-07-03  Jan Hubicka  <jh@suse.cz>
20895
20896         * ipa-inline.c (update_edge_key): Break out from ...
20897         update_callers_keys): ... here;
20898         (update_callee_keys): Update only the edges from caller to callee.
20899         (update_all_calle_keys): Do what update_calle_keys did.
20900         (decide_inlining_of_small_functions): Avoid recomputing of all
20901         callees when badness increase.
20902
20903 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20904
20905         * config/arm/arm.c (arm_attr_length_move_neon): New.
20906         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
20907         * config/arm/neon.md (define_mode_attr V_slen): Remove.
20908         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
20909         to compute length attribute.
20910
20911 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20912
20913         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
20914         as predicate for operand 1 and remove its constraint.
20915         * config/arm/predicates.md (vfp_register_operand): New.
20916         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
20917         (*push_fp_multi): Likewise.
20918
20919 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
20920
20921         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
20922
20923 2010-07-03  Jan Hubicka  <jh@suse.cz>
20924
20925         * config/i386/i386.c (override_options): Revert accidental commit.
20926
20927 2010-07-02  Le-Chun Wu  <lcwu@google.com>
20928
20929         PR c++/44128
20930         * doc/invoke.texi: Update documentation of -Wshadow.
20931
20932 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
20933             Julian Brown  <julian@codesourcery.com>
20934             Sandra Loosemore  <sandra@codesourcery.com>
20935
20936         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
20937         comparisons.  Adjust to take both operands.
20938         (arm_select_cc_mode): Handle DImode comparisons.
20939         (arm_gen_compare_reg): Generate a scratch register for DImode
20940         comparisons which require one.  Use xor for Thumb equality checks.
20941         (arm_const_double_by_immediates): New.
20942         (arm_print_operand): Allow 'Q' and 'R' for constants.
20943         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
20944         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
20945         arm_canonicalize_comparison.
20946         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
20947         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
20948         prototype.
20949         (arm_const_double_by_immediates): Declare.
20950         * config/arm/constraints.md (Di): New constraint.
20951         * config/arm/predicates.md (arm_immediate_di_operand)
20952         (arm_di_operand, cmpdi_operand): New.
20953         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
20954         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
20955         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
20956         (cstoredi4): Handle non-Cirrus also.
20957
20958 2010-07-02  Julian Brown  <julian@codesourcery.com>
20959             Sandra Loosemore  <sandra@codesourcery.com>
20960
20961         PR target/43703
20962         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
20963         (smax<mode>3): Disable for NEON float modes when
20964         flag_unsafe_math_optimizations is false.
20965         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
20966         (*mul<mode>3_neon)
20967         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
20968         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
20969         for NEON float modes when flag_unsafe_math_optimizations is false.
20970         (quad_halves_<code>v4sf): Only enable if
20971         flag_unsafe_math_optimizations is true.
20972         * doc/invoke.texi (ARM Options): Add note about floating point
20973         vectorization requiring -funsafe-math-optimizations.
20974
20975 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20976             Julian Brown  <julian@codesourcery.com>
20977
20978         * config/arm/neon.md (UNSPEC_VABA): Delete.
20979         (UNSPEC_VABAL): Delete.
20980         (UNSPEC_VABS): Delete.
20981         (UNSPEC_VMUL_N): Delete.
20982         (adddi3_neon): New.
20983         (subdi3_neon): New.
20984         (mul<mode>3add<mode>_neon): Make the pattern named.
20985         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
20986         (neon_vadd<mode>): Replace with define_expand, and move the remaining
20987         unspec parts...
20988         (neon_vadd<mode>_unspec): ...to this.
20989         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
20990         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
20991         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
20992         (neon_vaba<mode>): Rewrite in terms of vabd.
20993         (neon_vabal<mode>): Rewrite in terms of vabdl.
20994         (neon_vabs<mode>): Rewrite without unspec.
20995         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
20996         (*arm_subdi3): Likewise.
20997         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
20998         No_op attribute to disable assembly output checks.
20999         * config/arm/arm_neon.h: Regenerated.
21000         * doc/arm-neon-intrinsics.texi: Regenerated.
21001
21002 2010-07-02  Jan Hubicka  <jh@suse.cz>
21003
21004         * ipa-split.c (split_function): For aggregate values, set the return
21005         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
21006         *<retval> = fncall.part ().
21007         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
21008
21009 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21010
21011         * config/arm/neon.md (UNSPEC_VAND): Delete.
21012         (UNSPEC_VBIC): Delete.
21013         (UNSPEC_VCLZ): Delete.
21014         (UNSPEC_VCNT): Delete.
21015         (UNSPEC_VEOR): Delete.
21016         (UNSPEC_VORN): Delete.
21017         (UNSPEC_VORR): Delete.
21018         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
21019         core registers too.
21020         (anddi3_neon): Likewise.
21021         (orndi3_neon): Likewise.
21022         (bicdi3_neon): Likewise.
21023         (xordi3_neon): Likewise.
21024         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
21025         rid of unspec and handle unused operand.
21026         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
21027         * config/arm/predicates.md (imm_for_neon_logic_operand):
21028         Require TARGET_NEON.
21029         (imm_for_neon_inv_logic_operand): Likewise.
21030         * config/arm/arm.md (define_split for logical_binary_operator):
21031         Disable for NEON registers.
21032         (anddi3): Add new define_expand, and rename the insn.  Disable
21033         this insn for NEON, where anddi3_neon now applies.
21034         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
21035         (iordi3): As for anddi3.
21036         (xordi3): Likewise.
21037         * config/arm/neon.ml (Vand): Split DImode variants and mark them
21038         as No_op to disable testing for exact instruction match.
21039         (Vorr): Likewise.
21040         (Veor): Likewise.
21041         (Vbic): Likewise.
21042         (Vorn): Likewise.
21043         * config/arm/arm_neon.h: Regenerated.
21044         * doc/arm-neon-intrinsics.texi: Regenerated.
21045
21046 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
21047
21048         * expr.h (emit_stack_probe): Declare.
21049         * explow.c (emit_stack_probe): Make global.
21050         (anti_adjust_stack_and_probe): Fix comments.
21051         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
21052         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21053         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21054         * config/sparc/sparc.c: Include except.h.
21055         (sparc_emit_probe_stack_range): New function.
21056         (output_probe_stack_range): Likewise.
21057         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
21058         built-in stack checking is enabled.
21059         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
21060         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
21061         (probe_stack_range): New insn.
21062
21063 2010-07-02  Richard Guenther  <rguenther@suse.de>
21064
21065         PR target/43958
21066         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
21067         for argument alignment.
21068
21069 2010-07-02  Jan Hubicka  <jh@suse.cz>
21070
21071         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
21072         walk backwards from entry_bb to check only those basic block of header
21073         that might lead to execution of split part.
21074         (consider_split) ... here.
21075         (find_return_bb): Allow assignment in return BB.
21076         (find_retval): New.
21077         (split_function): Fix name of cloned function; take care of updating
21078         return value in return_bb containing move.
21079
21080 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
21081
21082         PR target/44771
21083         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
21084         used variable insn.
21085
21086 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
21087
21088         * implicit-zee.c (combine_reaching_defs): Fix long lines.
21089         (is_set_with_extension_DI): Delete.
21090         (struct zero_extend_info): New structure.
21091         (add_removable_zero_extend): New function.
21092         (find_removable_zero_extends): Use note_stores to find SETs.
21093         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
21094
21095 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21096
21097         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
21098         is_miss_rate_acceptable. Pull total_positions computation
21099         out of the loops.  Early return if miss_positions exceeds
21100         the acceptable threshold.
21101         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
21102         is_miss_rate_acceptable after renaming of compute_miss_rate.
21103
21104 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21105
21106         PR middle-end/44576
21107         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
21108         of 1000) for miss rate if the address diference is greater than or
21109         equal to the cache line size (the two reference will never hit the
21110         same cache line).
21111
21112 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
21113
21114         PR target/42835
21115         * config/arm/arm-modes.def (CC_NOTB): New mode.
21116         * config/arm/arm.c (get_arm_condition_code): Handle it.
21117         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
21118         * config/arm/arm.md (subsi3_compare0_c): New pattern.
21119         (compare_scc): Now a define_and_split.  Add a number of extra
21120         splitters before it.
21121
21122         PR target/42172
21123         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
21124         and ZERO_EXTEND.
21125         (arm_rtx_costs_1): Likewise.
21126         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
21127         * config/arm/arm.md (is_arch6): New attribute.
21128         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
21129         extendqisi2): Tighten the code somewhat, avoiding invalid
21130         RTL to occur in the expander patterns.
21131         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
21132         (thumb1_zero_extendhisi2_v6): Delete.
21133         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
21134         (thumb1_extendhisi2_v6): Delete.
21135         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
21136         (thumb1_extendqisi2_v6): Delete.
21137         (zero_extendhisi2 for register input splitter): New.
21138         (zero_extendqisi2 for register input splitter): New.
21139         (thumb1_extendhisi2 for register input splitter): New.
21140         (extendhisi2 for register input splitter): New.
21141         (extendqisi2 for register input splitter): New.
21142         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
21143         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
21144         and add support for a register alternative requiring a split.
21145         (thumb1_zero_extendqisi2): Likewise.
21146         (arm_zero_extendqisi2): Likewise.
21147         (arm_extendhisi2): Likewise.
21148         (arm_extendqisi2): Likewise.
21149
21150 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21151
21152         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
21153         instead of an unspec.
21154         (neon_expand_vector_init): Likewise.
21155         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
21156         (UNSPEC_VDUP_LANE): Delete.
21157         (UNSPEC VDUP_N): Delete.
21158         (UNSPEC_VGET_HIGH): Delete.
21159         (UNSPEC_VGET_LANE): Delete.
21160         (UNSPEC_VGET_LOW): Delete.
21161         (UNSPEC_VMVN): Delete.
21162         (UNSPEC_VSET_LANE): Delete.
21163         (V_double_vector_mode): New.
21164         (vec_set<mode>_internal): Make code emitted match that for the
21165         corresponding intrinsics.
21166         (vec_setv2di_internal): Likewise.
21167         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
21168         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
21169         (neon_vset_lane<mode>): Combine double and quad patterns and
21170         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
21171         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
21172         (neon_vdup_n<mode>): Rewrite RTL without unspec.
21173         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
21174         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
21175         with neon_vdup_lanev2di, adjusting the pattern from the latter
21176         to be predicable for consistency.
21177         (neon_vdup_lane<mode>_internal): New.
21178         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
21179         to avoid using an unspec.
21180         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
21181         (neon_vdup_lanev2di): Turn into a define_expand.
21182         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
21183         (neon_vget_high<mode>): Replace with....
21184         (neon_vget_highv16qi): New pattern using canonical RTL.
21185         (neon_vget_highv8hi): Likewise.
21186         (neon_vget_highv4si): Likewise.
21187         (neon_vget_highv4sf): Likewise.
21188         (neon_vget_highv2di): Likewise.
21189         (neon_vget_low<mode>): Replace with....
21190         (neon_vget_lowv16qi): New pattern using canonical RTL.
21191         (neon_vget_lowv8hi): Likewise.
21192         (neon_vget_lowv4si): Likewise.
21193         (neon_vget_lowv4sf): Likewise.
21194         (neon_vget_lowv2di): Likewise.
21195
21196         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
21197         test for this emitting vmov.
21198         (Vset_lane): Likewise.
21199         (Vdup_n): Likewise.
21200         (Vmov_n): Likewise.
21201
21202         * doc/arm-neon-intrinsics.texi: Regenerated.
21203
21204 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21205
21206         * config/arm/neon.md (vec_extractv2di): Correct error in register
21207         numbering to reconcile with neon_vget_lanev2di.
21208
21209 2010-07-02  Richard Guenther  <rguenther@suse.de>
21210
21211         * tree-ssa-structalias.c (pt_solution_set_var): New function.
21212         * tree-ssa-alias.h (pt_solution_set_var): Declare.
21213         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
21214         points-to information.
21215
21216 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
21217
21218         * config/s390/s390.c (override_options): Adopt prefetching
21219         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
21220
21221 2010-07-02  Jan Hubicka  <jh@suse.cz>
21222
21223         * df-problems.c (df_kill_notes): Do not collect dead  notes.
21224         (df_set_note): Just call add_reg_note.
21225         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
21226         df_create_unused_note): Do not deal with lists of old notes.
21227         (df_note_bb_compute): Likewise.
21228
21229 2010-07-02  Richard Guenther  <rguenther@suse.de>
21230
21231         * tree-ssa-structalias.c (find_func_aliases): Handle
21232         pointer alignment via BIT_AND_EXPR.
21233         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
21234
21235 2010-07-02  Richard Guenther  <rguenther@suse.de>
21236
21237         * tree-data-ref.c (initialize_data_dependence_relation): Handle
21238         mismatching number of dimensions properly.
21239
21240 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21241
21242         PR target/44707
21243         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
21244         (lo_sum (high ...) ...) patterns generated by earlier passes.
21245
21246 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21247
21248         * doc/install.texi (Prerequisites): Document Perl requirement on
21249         Solaris 2.
21250         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
21251
21252 2010-07-02  Richard Guenther  <rguenther@suse.de>
21253
21254         PR middle-end/44777
21255         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
21256
21257 2010-07-02  Jan Hubicka  <jh@suse.cz>
21258
21259         PR middle-end/44706
21260         * predict.c (predict_paths_for_bb): Handle case when control dependence
21261         BB has only abnormal edges.
21262
21263 2010-07-02  Richard Guenther  <rguenther@suse.de>
21264
21265         PR tree-optimization/44748
21266         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
21267         the embedded conversion in MEM_REFs.
21268
21269 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
21270
21271         * reload.c: Include toplev.h.
21272         * recog.c:  Likewise.
21273         * Makefile.in: Adjust dependencies.
21274
21275 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
21276
21277         PR debug/44694
21278         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
21279         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
21280
21281 2010-07-01  Richard Guenther  <rguenther@suse.de>
21282
21283         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
21284         types for offsets.
21285
21286 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
21287
21288         PR target/44732
21289         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
21290         Fix argument types.
21291
21292 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
21293
21294         PR target/44727
21295         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21296         Make sure operand 0 dies.
21297
21298 2010-07-01  Richard Guenther  <rguenther@suse.de>
21299
21300         PR middle-end/42834
21301         PR middle-end/44468
21302         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
21303         * doc/generic.texi (References to storage): Document MEM_REF.
21304         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
21305         (print_call_name): Likewise.
21306         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
21307         (build_simple_mem_ref_loc): New function.
21308         (mem_ref_offset): Likewise.
21309         * tree.h (build_simple_mem_ref_loc): Declare.
21310         (build_simple_mem_ref): Define.
21311         (mem_ref_offset): Declare.
21312         * fold-const.c: Include tree-flow.h.
21313         (operand_equal_p): Handle MEM_REF.
21314         (build_fold_addr_expr_with_type_loc): Likewise.
21315         (fold_comparison): Likewise.
21316         (fold_unary_loc): Fold
21317         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
21318         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
21319         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
21320         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
21321         (ptr_deref_may_alias_ref_p_1): Likewise.
21322         (ao_ref_base_alias_set): Properly differentiate base object for
21323         offset and TBAA.
21324         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
21325         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
21326         (indirect_refs_may_alias_p): Likewise.
21327         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
21328         chasing code.
21329         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
21330         (call_may_clobber_ref_p_1): Likewise.
21331         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
21332         * expr.c (expand_assignment): Handle MEM_REF.
21333         (store_expr): Handle MEM_REFs from STRING_CSTs.
21334         (store_field): If expanding a MEM_REF of a non-addressable
21335         decl use bitfield operations.
21336         (get_inner_reference): Handle MEM_REF.
21337         (expand_expr_addr_expr_1): Likewise.
21338         (expand_expr_real_1): Likewise.
21339         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
21340         * alias.c (ao_ref_from_mem): Handle MEM_REF.
21341         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
21342         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
21343         (dr_analyze_indices): Likewise.
21344         (dr_analyze_alias): Likewise.
21345         (object_address_invariant_in_loop_p): Likewise.
21346         * gimplify.c (mark_addressable): Handle MEM_REF.
21347         (gimplify_cond_expr): Build MEM_REFs.
21348         (gimplify_modify_expr_to_memcpy): Likewise.
21349         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
21350         (gimple_fold_indirect_ref): Adjust.
21351         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
21352         * tree.def (MEM_REF): New tree code.
21353         * tree-dfa.c: Include toplev.h.
21354         (get_ref_base_and_extent): Handle MEM_REF.
21355         (get_addr_base_and_unit_offset): New function.
21356         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
21357         * gimple-fold.c (may_propagate_address_into_dereference): Handle
21358         MEM_REF.
21359         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
21360         accesses if the array has just one dimension.  Remove always true
21361         parameter.  Do not require type compatibility here.
21362         (maybe_fold_offset_to_component_ref): Remove.
21363         (maybe_fold_stmt_indirect): Remove.
21364         (maybe_fold_reference): Remove INDIRECT_REF handling.
21365         Fold back to non-MEM_REF.
21366         (maybe_fold_offset_to_address): Simplify.  Deal with type
21367         mismatches here.
21368         (maybe_fold_reference): Likewise.
21369         (maybe_fold_stmt_addition): Likewise.  Also handle
21370         &ARRAY + I in addition to &ARRAY[0] + I.
21371         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
21372         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
21373         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
21374         * tree-ssa.c (useless_type_conversion_p): Make most pointer
21375         conversions useless.
21376         (warn_uninitialized_var): Handle MEM_REF.
21377         (maybe_rewrite_mem_ref_base): New function.
21378         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
21379         to SSA form.
21380         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
21381         INDIRECT_REF handling.
21382         (copy_tree_body_r): Handle MEM_REF.
21383         * gimple.c (is_gimple_addressable): Adjust.
21384         (is_gimple_address): Likewise.
21385         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
21386         invariant base are invariant.
21387         (is_gimple_min_lval): Adjust.
21388         (is_gimple_mem_ref_addr): New function.
21389         (get_base_address): Handle MEM_REF.
21390         (count_ptr_derefs): Likewise.
21391         (get_base_loadstore): Likewise.
21392         * gimple.h (is_gimple_mem_ref_addr): Declare.
21393         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
21394         * tree-cfg.c (verify_address): New function, split out from ...
21395         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
21396         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
21397         INDIRECT_REFs.
21398         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
21399         INDIRECT_REF.  Allow conversions.
21400         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
21401         a register does not change its size.
21402         (verify_types_in_gimple_reference): Verify MEM_REF.
21403         (verify_gimple_assign_single): Disallow INDIRECT_REF.
21404         Handle MEM_REF.
21405         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
21406         New.
21407         (mark_address_taken): Handle MEM_REF.
21408         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
21409         (get_asm_expr_operands): Pass opf_not_non_addressable.
21410         (get_expr_operands): Handle opf_[not_]non_addressable.
21411         Handle MEM_REF.  Remove INDIRECT_REF handling.
21412         * tree-vrp.c (check_array_ref): Handle MEM_REF.
21413         (search_for_addr_array): Likewise.
21414         (check_array_bounds): Likewise.
21415         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
21416         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
21417         (ref_always_accessed_p): Likewise.
21418         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
21419         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
21420         Handle MEM_REF.
21421         * cgraphbuild.c (mark_load): Properly check for NULL result
21422         from get_base_address.
21423         (mark_store): Likewise.
21424         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
21425         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
21426         handling for MEM_REF.
21427         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
21428         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
21429         * builtins.c (stabilize_va_list_loc): Use the function ABI
21430         valist type if we couldn't canonicalize the argument type.
21431         Always dereference with the canonical va-list type.
21432         (maybe_emit_free_warning): Handle MEM_REF.
21433         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
21434         memmove to memcpy.
21435         * builtins.c (fold_builtin_memory_op): Use ref-all types
21436         for all memcpy foldings.
21437         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
21438         (build_outer_var_ref): Likewise.
21439         (scan_omp_1_op): Likewise.
21440         (lower_rec_input_clauses): Likewise.
21441         (lower_lastprivate_clauses): Likewise.
21442         (lower_reduction_clauses): Likewise.
21443         (lower_copyprivate_clauses): Likewise.
21444         (expand_omp_atomic_pipeline): Likewise.
21445         (expand_omp_atomic_mutex): Likewise.
21446         (create_task_copyfn): Likewise.
21447         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
21448         Remove old union trick.  Initialize constant offsets.
21449         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
21450         INDIRECT_REF.  Init base_alias_set properly.
21451         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
21452         (vn_reference_fold_indirect): Adjust for MEM_REFs.
21453         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
21454         for ARRAY_REFs.
21455         (may_insert): Remove.
21456         (visit_reference_op_load): Do not test may_insert.
21457         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
21458         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
21459         a field to store the constant offset this op applies.
21460         (run_scc_vn): Adjust prototype.
21461         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
21462         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
21463         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
21464         bother about volatile qualifiers on pointers.
21465         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
21466         * tree-ssa-loop-ivopts.c
21467         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
21468         (strip_offset_1): Likewise.
21469         (find_interesting_uses_address): Replace INDIRECT_REF handling with
21470         MEM_REF handling.
21471         (get_computation_cost_at): Likewise.
21472         * ipa-pure-const.c (check_op): Handle MEM_REF.
21473         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
21474         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
21475         and constants.
21476         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
21477         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
21478         (eliminate_local_variables_1): Likewise.
21479         (create_call_for_reduction_1): Likewise.
21480         (create_loads_for_reductions): Likewise.
21481         (create_loads_and_stores_for_name): Likewise.
21482         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
21483         (ssa_accessed_in_tree): Handle MEM_REF.
21484         (ssa_accessed_in_assign_rhs): Likewise.
21485         (update_type_size): Likewise.
21486         (analyze_accesses_for_call_stmt): Likewise.
21487         (analyze_accesses_for_assign_stmt): Likewise.
21488         (transform_access_sites): Likewise.
21489         (transform_allocation_sites): Likewise.
21490         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
21491         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
21492         not handle INDIRECT_REF.
21493         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
21494         (cond_store_replacement): Likewise.
21495         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
21496         MEM_REF, no not handle INDIRECT_REFs.
21497         (insert_into_preds_of_block): Properly initialize avail.
21498         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
21499         for ARRAY_REFs.  Properly handle reference lookups that
21500         require a bit re-interpretation.
21501         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
21502         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
21503         (build_ref_for_offset_1): Remove.
21504         (build_ref_for_offset): Build MEM_REFs.
21505         (gate_intra_sra): Disable for now.
21506         (sra_ipa_modify_expr): Handle MEM_REF.
21507         (ipa_early_sra_gate): Disable for now.
21508         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
21509         MEM_REF handling.
21510         (disqualify_base_of_expr): Likewise.
21511         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
21512         MEM_REF handling.
21513         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
21514         Use mem_ref_offset.  Remove bogus folding.
21515         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
21516         (make_fancy_name_1): Add support for MEM_REF.
21517         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
21518         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
21519         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
21520         (compute_complex_ancestor_jump_func): Likewise.
21521         (ipa_analyze_virtual_call_uses): Likewise.
21522         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
21523         INDIRECT_REF folding with more generalized MEM_REF folding.
21524         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
21525         (forward_propagate_addr_into_variable_array_index): Also handle
21526         &ARRAY + I in addition to &ARRAY[0] + I.
21527         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
21528         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
21529         creates assignments with overlap.
21530         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
21531         (get_frame_field): Likewise.
21532         (get_nonlocal_debug_decl): Likewise.
21533         (convert_nonlocal_reference_op): Likewise.
21534         (struct nesting_info): Add mem_refs pointer-set.
21535         (create_nesting_tree): Allocate it.
21536         (convert_local_reference_op): Insert to be folded mem-refs.
21537         (fold_mem_refs): New function.
21538         (finalize_nesting_tree_1): Perform defered folding of mem-refs
21539         (free_nesting_tree): Free the pointer-set.
21540         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
21541         (vectorizable_load): Likewise.
21542         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
21543         (propagate_with_phi): Likewise.
21544         * tree-object-size.c (addr_object_size): Handle MEM_REFs
21545         instead of INDIRECT_REFs.
21546         (compute_object_offset): Handle MEM_REF.
21547         (plus_stmt_object_size): Handle MEM_REF.
21548         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
21549         for &MEM_REF.
21550         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
21551         (symbol_marked_for_renaming): Likewise.
21552         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
21553         (fold-const.o): Add $(TREE_FLOW_H).
21554         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
21555         (find_func_clobbers): Likewise.
21556         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
21557         (decompose_access): Likewise.
21558         (replace_field_acc): Likewise.
21559         (replace_field_access_stmt): Likewise.
21560         (insert_new_var_in_stmt): Likewise.
21561         (get_stmt_accesses): Likewise.
21562         (reorg_structs_drive): Disable.
21563         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
21564         (ix86_canonical_va_list_type): Likewise.
21565
21566 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21567
21568         PR other/44566
21569         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
21570         * target.def (struct gcc_target): Replace enum reg_class with
21571         reg_class_t in hook argument / return types.
21572         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
21573         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
21574         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
21575         * targhooks.h (default_branch_target_register_class): Likewise.
21576         (default_ira_cover_classes, default_secondary_reload): Likewise.
21577         (default_memory_move_cost, default_register_move_cost): Likewise.
21578         * targhooks.c (default_branch_target_register_class): Likewise.
21579         (default_ira_cover_classes, default_secondary_reload): Likewise.
21580         (default_memory_move_cost, default_register_move_cost): Likewise.
21581         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
21582         * bt-load.c (branch_target_load_optimize): Likewise.
21583         * ira.c (setup_cover_and_important_classes): Likewise.
21584         * ira-costs.c (copy_cost): Likewise.
21585         * reload1.c (emit_input_reload_insns): Likewise.
21586         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
21587         * config/frv/frv.c (frv_secondary_reload): Likewise.
21588         * config/s390/s390.c (s390_secondary_reload): Likewise.
21589         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
21590         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
21591         (ix86_register_move_cost): Likewise.
21592         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
21593         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
21594         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
21595         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
21596         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
21597         (rs6000_ira_cover_classes): Likewise.
21598         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
21599         * config/picochip/picochip-protos.h (picochip_secondary_reload):
21600         Likewise.
21601         * config/pa/pa.c (pa_secondary_reload): Likewise.
21602         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
21603         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
21604         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
21605         * doc/tm.texi: Regenerate.
21606
21607 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
21608
21609         PR bootstrrap/44726
21610         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
21611         use.
21612         (build_alias_set_optimal_p): Likewise.
21613         (build_base_obj_set_for_drs): Likewise.
21614
21615 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21616
21617         * target.def: Remove comment about licensing problems of function
21618         declarations.
21619
21620         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
21621         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
21622         * doc/tm.texi: Regenerate.
21623
21624         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
21625         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
21626
21627         * target.def (enum_va_list_p): Use DEFHOOK.
21628         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
21629         Rename ptype to ptree.
21630         * doc/tm.texi: Regenerate.
21631
21632         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
21633         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
21634         * doc/tm.texi: Regenerate.
21635
21636         * target.def (memory_move_cost): Use DEFHOOK.
21637         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
21638         Rename regclass AKA class to rclass.
21639         * doc/tm.texi: Regenerate.
21640
21641         * target.def (pragma_parse): Use DEFHOOK.
21642         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
21643         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
21644         * doc/tm.texi: Regenerate.
21645
21646         * target.def (pass_by_reference): Use DEFHOOK.
21647         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
21648         * doc/tm.texi: Regenerate.
21649
21650         * target.def (resolve_overloaded_builtin): Rename params to arglist.
21651         Use DEFHOOK.
21652         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
21653         * doc/tm.texi: Regenerate.
21654
21655         * target.def (return_pops_args): Use DEFHOOK.
21656         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
21657         Rename stack-size to size.
21658         * doc/tm.texi: Regenerate.
21659
21660         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
21661         last-sched_cycle to last_clock, cur_cycle to clock.
21662         * doc/tm.texi.in: Use @hook.
21663         * doc/tm.texi: Regenerate.
21664
21665         * target.def (print_operand, print_operand_address): Update comment.
21666         (print_operand_punct_valid_p): Likewise.
21667
21668 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21669
21670         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
21671         to rtl.h.
21672         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
21673         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
21674         * rtl-error.h: New.
21675         * regrename.c: Do not include toplev.h. Include rtl-error.h.
21676         * rtl-error.c: Likewise.
21677         * reload.c: Likewise.
21678         * recog.c:  Likewise.
21679         * sel-sched.c: Likewise.
21680         * function.c: Likewise.
21681         * reg-stack.c: Likewise.
21682         * cfgrtl.c: Likewise.
21683         * reload1.c: Likewise.
21684         * final.c: Include rtl-error.
21685         * Makefile.in: Adjust dependencies.
21686
21687 2010-06-30  Jan Hubicka  <jh@suse.cz>
21688
21689         PR middle-end/PR44706
21690         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
21691         to return the value.
21692
21693 2010-06-30  Michael Matz  <matz@suse.de>
21694
21695         PR bootstrap/44699
21696         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
21697         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
21698         a gimple reg, attach the original VDEF to the last store in the
21699         sequence.
21700
21701 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
21702
21703         PR other/44034
21704         * config/darwin.c (darwin_override_options): Use renamed
21705         targetm.asm_out.emit_unwind_label.
21706
21707 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21708
21709         PR tree-optimization/39799
21710         * tree-inline.c (remap_ssa_name): Initialize variable only if
21711         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
21712
21713 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
21714
21715         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
21716
21717 2010-06-30  Richard Guenther  <rguenther@suse.de>
21718
21719         PR target/44722
21720         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
21721         against oscillation with reverse peephole2.
21722
21723 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
21724
21725         PR target/44721
21726         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21727         Fix last commit.
21728
21729 2010-06-30  Nick Clifton  <nickc@redhat.com>
21730
21731         * config/rx/rx-modes.def: New file.
21732         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
21733         (CC_REGNUM): Define.
21734         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
21735         register.
21736         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
21737         (SELECT_CC_MODE): Define.
21738         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
21739         (reg:CC CC_REG) instead of (cc0).
21740         (attr "cc"): Delete.
21741         (cbranchsi4): Do not split compare and branch here. Instead move
21742         it to...
21743         (cbranchsi4_<code>): ... here.  New patterns.
21744         (cmpsi): Call rx-compare_redundant to find out if it is necessary
21745         to emit the compare instruction.
21746         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
21747         cc_status flags.
21748         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
21749         FIRST_PSEUDO_REGNUM.
21750         (rx_expand_prologue, rx_expand_epilogue): Likewise.
21751         (rx_notice_update_cc): Delete.
21752         (rx_cc_modes_compatible): New function.
21753         (flags_needed_for_conditional): New function.
21754         (flags_from_mode): New function.
21755         (rx_compare_redundant): New function - scans backwards through
21756         insn list to find out if condition flags are already set correctly.
21757         (TARGET_CC_MODES_COMPATIBLE): Define.
21758         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
21759
21760         * config/rx/rx.h (BRANCH_COST): Define.
21761         (REGISTER_MOVE_COST): Define.
21762         * config/rx/predicates (rx_source_operand): Allow all constant types.
21763         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
21764         (tstsi4): New pattern.
21765         * config/rx/rx.c (rx_memory_move_cost): Define.
21766         (TARGET_MEMORY_MOVE_COST): Define.
21767
21768 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21769
21770         * tree.h (block_may_fallthru): Declare here.
21771         * tree-flow.h (block_may_fallthru): Do not declare here.
21772         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
21773         bitmap.h
21774         * Makefile.in (c-typeck.o): Update dependencies.
21775
21776 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
21777
21778         PR debug/44694
21779         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
21780         * cselib.c (cfa_base_preserved_regno): New static variable.
21781         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
21782         of REGNO (cfa_base_preserved_val->locs->loc).
21783         (cselib_preserve_cfa_base_value): Add regno argument, set
21784         cfa_base_preserved_regno to it.
21785         (cselib_invalidate_regno): Allow removal of registers other than
21786         cfa_base_preserved_regno from cfa_base_preserved_val.
21787         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
21788         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
21789         of MEM addresses, if not on LHS.
21790         (reverse_op): Don't add reverse ops for cfa_base_rtx.
21791         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
21792
21793 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21794
21795         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
21796         static variables.
21797         (peep2_buf_position): New static function.
21798         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
21799         peephole2_optimize): Use it.
21800         (peep2_attempt, peep2_update_life): New static functions, broken out
21801         of peephole2_optimize.
21802         (peep2_fill_buffer): New static function.
21803         (peephole2_optimize): Change the main loop to try to fill the buffer
21804         with the maximum number of insns before matching them against
21805         peepholes.  Use a forward scan.  Remove special case for targets with
21806         conditional execution.
21807         * genrecog.c (change_state): Delete dead code.
21808         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21809         Rewrite so as not to expect the second insn to have had a peephole
21810         applied yet.
21811
21812 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21813
21814         * genhooks.c (emit_findices): Cast field precision to int.
21815         (emit_documentation): Likewise.
21816
21817 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
21818
21819         PR tree-optimization/43801
21820         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
21821         if old_decl was DECL_ONE_ONLY.
21822
21823         PR debug/44668
21824         * dwarf2out.c (add_accessibility_attribute): New function.
21825         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
21826         instead of adding DW_AT_accessibility manually.
21827         (gen_enumeration_type_die, gen_struct_or_union_type_die,
21828         gen_typedef_die): Use it.
21829
21830 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21831
21832         * vmsdbgout.c (full_name): Just output the file name if not native.
21833
21834 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21835
21836         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
21837         (funcnam_table): New static table.
21838         (funcnum_table): New static table.
21839         (write_rtnbeg): Write value saved in funcnum_table.
21840         (write_rtnend): Write value saved in funcnum_table.
21841         (vmsdbgout_begin_function): Save current function info in
21842         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
21843         (vmsdbgout_finish): Iterate over funcnum_table.
21844
21845 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21846
21847         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
21848         (vmsdbgout_type_decl): Declare
21849         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
21850         (FUNC_EPILOGUE_LABEL): New macro
21851         (vmsdbgout_begin_epilogue): New function.
21852         (vmsdbgout_type_decl): New function.
21853
21854 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21855
21856         * vmsdbg.h: Update copyright.
21857
21858 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21859
21860         * vmsdbg.h (DST_K_TBG): New DST constant.
21861         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
21862         (write_modbeg): Cast module_language to avoid warning.
21863         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
21864
21865 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21866
21867         PR other/44034
21868         * target.def, doc/tm.texi.in, genhooks.c: New files.
21869         * target.h: Instead of defining individual hook members,
21870         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
21871         include target.def.
21872         * target-def.h: Instead of defining individual hook initializers,
21873         include target-hooks-def.h.
21874         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
21875         targetm.live_on_entry -> targetm.extra_live_on_entry
21876         targetm.sched.md_finish ->targetm.sched.finish
21877         targetm.sched.md_init -> targetm.sched.init
21878         targetm.sched.md_init_global -> targetm.sched.init_global
21879         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
21880         targetm.asm_out.except_table_label ->
21881           targetm.asm_out.emit_except_table_label
21882         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
21883         targetm.target_help -> targetm.help
21884         targetm.vectorize.builtin_support_vector_misalignment ->
21885           targetm.vectorize.support_vector_misalignment
21886         targetm.file_start_app_off -> targetm.asm_file_start_app_off
21887         targetm.file_start_file_directive ->
21888          targetm.asm_file_start_file_directive
21889         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
21890         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
21891         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
21892         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
21893           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
21894         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
21895           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
21896         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
21897         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
21898         * Makefile.in (TARGET_H): Depend on target.def.
21899         (TARGET_DEF_H): Depend on target-hooks-def.h.
21900         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
21901         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
21902         * doc/tm.texi: Regenerate.
21903
21904         * Makefile.in (s-tm-texi): Remove stray tab / rule.
21905
21906         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
21907         (targetm.sched.init): Likewise.
21908
21909 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21910
21911         PR bootstrap/44713
21912         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
21913         (function_arg_advance_32): Const-ify TYPE parameter.
21914         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
21915         (ix86_function_arg_advance): Change type of NAMED to bool.
21916         (function_arg_32): Const-ify CUM and TYPE parameters.
21917         (function_arg_64): Likewise.  Change type of NAMED to bool.
21918         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
21919         to bool.
21920         (ix86_function_arg): Change type of NAMED to bool.
21921         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
21922         last argument as a bool.
21923
21924 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21925
21926         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
21927         (OVERRIDE_OPTIONS): Add note of obsolescence.
21928         Replace references with references to TARGET_OPTION_OVERRIDE.
21929         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
21930          the macro).
21931         * targhooks.c (default_target_option_override): New function.
21932         * targhooks.h (default_target_option_override): Declare.
21933         * target.h (struct gcc_target): Add override member to
21934         target_option member.
21935         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
21936         targetm.target_option.override call.
21937         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
21938         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
21939
21940 2010-06-29  Jan Hubicka  <jh@suse.cz>
21941
21942         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
21943
21944 2010-06-29  Jan Hubicka  <jh@suse.cz>
21945
21946         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
21947         unreachable.
21948         (rebuild_frequencies): New function.
21949         * predict.h (rebuild_frequencies): Declare.
21950         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
21951         entry block and edge reaching new_entry.
21952         (tree_function_versioning): When doing partial cloning, rebuild
21953         frequencies when done.
21954         * passes.c (execute_function_todo): Use rebild_frequencies.
21955
21956 2010-06-29  Richard Guenther  <rguenther@suse.de>
21957
21958         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
21959         * tree-flow.h (enum noalias_state): Remove.
21960         (struct var_ann_d): Remove noalias_state member.
21961
21962 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
21963
21964         PR target/43902
21965         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
21966         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
21967         (maddhidi4): Likewise.
21968
21969         Revert parts of the change for PR25130.
21970         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
21971         MEM_ALIAS_SET.
21972
21973 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21974
21975         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
21976         targetm.calls.function_incoming_arg, and
21977         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
21978         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
21979         * target.h (struct gcc_target): Add function_arg_advance,
21980         function_arg, and function_incoming_arg fields.
21981         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
21982         (TARGET_FUNCTION_INCOMING_ARG): Define.
21983         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
21984         and TARGET_FUNCTION_INCOMING_ARG.
21985         * targhooks.h (default_function_arg_advance): Declare.
21986         (default_function_arg, default_function_incoming_arg): Declare.
21987         * targhooks.c (default_function_arg_advance): New function.
21988         (default_function_arg, default_function_incoming_arg): New function.
21989         * config/i386/i386.c (function_arg_advance): Rename to...
21990         (ix86_function_arg_advance): ...this.  Make static.
21991         (function_arg): Rename to...
21992         (ix86_function_arg): ...this.  Make static.
21993         (TARGET_FUNCTION_ARG_ADVANCE): Define.
21994         (TARGET_FUNCTION_ARG): Define.
21995         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
21996         (FUNCTION_ARG): Delete.
21997         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
21998         (function_arg): Delete prototype.
21999
22000 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22001
22002         * reginfo.c (init_reg_sets_1): Adjust comments.
22003         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
22004         * calls.c (prepare_call_address): Likewise.
22005         (emit_call_1): Use targetm.calls.return_pops_args.
22006         (expand_call): Likewise.
22007         * function.c (assign_parms): Likewise.
22008         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
22009         * target.h (struct gcc_target) [struct calls]: Add
22010         return_pops_args field.
22011         * targhooks.h (default_return_pops_args): Declare.
22012         * targhooks.c (default_return_pops_args): Define.
22013         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
22014         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
22015         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
22016         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
22017         documentation.
22018         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
22019         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
22020         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
22021         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
22022         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
22023         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
22024         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
22025         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
22026         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
22027         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
22028         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
22029         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
22030         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
22031         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
22032         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
22033         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
22034         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
22035         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
22036         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
22037         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
22038         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
22039         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
22040         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
22041         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
22042         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
22043         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
22044         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
22045         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
22046         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
22047         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
22048         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
22049         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
22050         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
22051         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
22052         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
22053         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
22054         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
22055         * config/i386/i386.c (ix86_return_pops_args): Make static.
22056         Constify arguments.
22057         (TARGET_RETURN_POPS_ARGS): Define.
22058         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
22059         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
22060         (TARGET_RETURN_POPS_ARGS): Define.
22061         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
22062         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
22063         (TARGET_RETURN_POPS_ARGS): Define.
22064
22065 2010-06-29  Richard Guenther  <rguenther@suse.de>
22066
22067         PR middle-end/44667
22068         * tree-inline.c (initialize_inlined_parameters): Make sure
22069         to remap the inlined parameter variable substitutions types.
22070
22071 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
22072
22073         PR rtl-optimization/44659
22074         * combine.c (make_compound_operation) <SUBREG>: Do not return the
22075         result of force_to_mode if it partially re-expanded the compound.
22076
22077 2010-06-28  Jan Hubicka  <jh@suse.cz>
22078
22079         PR middle-end/44671
22080         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
22081         RESULT_DECL.
22082
22083 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
22084
22085         * double-int.h (force_fit_type_double): Remove declaration.
22086         * double-int.c (force_fit_type_double): Move to tree.c.
22087         * tree.h (force_fit_type_double): Declare.
22088         * tree.h (force_fit_type_double): Moved from double-int.c. Use
22089         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
22090         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
22091         * convert.c (convert_to_pointer): Adjust call to
22092         force_fit_type_double.
22093         * tree-vrp.c (extract_range_from_assert,
22094         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
22095         * fold-const.c: Update comment.
22096         (int_const_binop, fold_convert_const_int_from_int,
22097         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
22098         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
22099         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
22100         round_up_loc): Adjust call to force_fit_type_double.
22101
22102 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22103
22104         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
22105
22106 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22107
22108         * tree-sra.c (convert_callers): New parameter, change fndecls of
22109         recursive calls.
22110         (modify_function): Pass the old decl to convert_callers.
22111
22112 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22113
22114         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
22115         ipa_check_create_node_params and ipa_initialize_node_params with
22116         checking asserts they are not necessary.
22117
22118 2010-06-28  Jan Hubicka  <jh@suse.cz>
22119
22120         PR tree-optimization/44687
22121         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
22122
22123 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22124
22125         PR c++/44535
22126         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
22127         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
22128         instead of BINFO_BASE_BINFO.
22129
22130 2010-06-28  Michael Matz  <matz@suse.de>
22131
22132         PR middle-end/44592
22133         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
22134         proper VDEF chain for intermediate stores in the sequence.
22135
22136 2010-06-28  Jan Hubicka  <jh@suse.cz>
22137
22138         PR tree-optimization/44357
22139         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
22140         uninlinable functions.
22141
22142 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22143
22144         * config.gcc (powerpc*-*-*): Handle titan.
22145         * config/rs6000/rs6000.c (titan_cost): New costs.
22146         (rs6000_override_options): Add "titan" to processor_target_table.
22147         Add Titan to branch alignment logic.
22148         Correctly set rs6000_cost for titan.
22149         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
22150         * config/rs6000/titan.md: New file.
22151         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
22152
22153 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22154
22155         * tree-browser.c (TB_history_stack): Convert to a VEC.
22156         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
22157         (TB_history_prev): Likewise.
22158
22159 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22160
22161         * vec.h (vec_heap_free): Add parentheses around free.
22162
22163 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
22164
22165         * system.h: Poison GCC_EXCEPT_H for front-end files.
22166
22167         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
22168         langhook.
22169         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
22170         Define to NULL by default.
22171         * except.h: Define GCC_EXCEPT_H.
22172         (doing_eh): Remove prototype.
22173         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
22174         (lang_protect_cleanup_actions): Remove.
22175         * except.c (lang_protect_cleanup_actions): Remove.
22176         (doing_eh): Remove.
22177         (gen_eh_region): Don't check doing_eh here.
22178         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
22179         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
22180         instead of lang_protect_cleanup_actions.
22181         * omp-low.c (maybe_catch_exception): Likewise.
22182         * Makefile.in: Update dependencies.
22183
22184 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
22185
22186         * cgraph.h (struct varpool_node): new used_from_object_file flag.
22187         (struct cgraph_local_info): new used_from_object_file flag.
22188         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
22189         (cgraph_clone_node): initialize used_from_object_file.
22190         (cgraph_create_virtual_clone): initialize used_from_object_file.
22191         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
22192         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
22193         when compiling with -fwhole-program.
22194         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
22195         internal resolver.
22196         * ipa.c (function_and_variable_visibility): Set externally_visible
22197         flag of varpool_node if used_from_object_file flag is set.
22198         (cgraph_externally_visible_p): check used_from_object_file flag.
22199         * doc/invoke.texi (-fwhole-program option): Change description of
22200         externally_visible attribute accordingly.
22201         * doc/extend.texi (externally_visible): Ditto.
22202
22203 2010-06-27  Jan Hubicka  <jh@suse.cz>
22204
22205         * params.def (max-inline-insns-auto): Default to 40.
22206         * doc/invoke.texi (max-inline-insns-auto): Document the change.
22207
22208 2010-06-27  Jan Hubicka  <jh@suse.cz>
22209
22210         PR middle-end/44671
22211         PR middle-end/44686
22212         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
22213         signature change.
22214         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
22215         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
22216
22217 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
22218
22219         * target.h (struct gcc_target): Add register_move_cost field.
22220         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
22221         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
22222         * targhooks.c (default_register_move_cost): New function.
22223         * targhooks.h (default_register_move_cost): Declare function.
22224         * defaults.h (REGISTER_MOVE_COST): Delete.
22225         * ira-int.h (ira_register_move_cost): Update comment.
22226         * ira.c (ira_register_move_cost): Update comment.
22227         * reload.h (register_move_cost): Declare.
22228         * reginfo.c (register_move_cost): New function.
22229         (move_cost): Update comment.
22230         (init_move_cost, memory_move_secondary_cost): Replace
22231         REGISTER_MOVE_COST with register_move_cost.
22232         * postreload.c (reload_cse_simplify_set): (Ditto.).
22233         * reload.c (find_valid_class, find_reloads): (Ditto.).
22234         * reload1.c (choose_reload_regs): (Ditto.).
22235         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
22236         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
22237         * doc/md.texi (can_create_pseudo_p): Update documentation.
22238
22239         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
22240         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
22241         * config/i386/i386.h (ix86_memory_move_cost): Make static.
22242         (TARGET_MEMORY_MOVE_COST): Define.
22243
22244         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
22245         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
22246         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
22247         (TARGET_MEMORY_MOVE_COST): Define.
22248
22249 2010-06-27  Richard Guenther  <rguenther@suse.de>
22250
22251         PR tree-optimization/44683
22252         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
22253         false edge from the inverted condition.
22254
22255 2010-06-27  Richard Guenther  <rguenther@suse.de>
22256
22257         PR middle-end/44684
22258         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
22259         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
22260         for register LHS.  Or non-store assignments.
22261
22262 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
22263
22264         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
22265         (sparc_emit_set_const64): Likewise.  Remove disabled code.
22266         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
22267         (sparc_emit_set_const64): Likewise.
22268
22269 2010-06-26  Catherine Moore  <clm@codesourcery.com>
22270
22271         * config/mips/mips.md (alu_type): New attribute.
22272         (type): Infer type from alu_type.
22273         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
22274         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
22275         *subsi3_extended, negsi2, negdi2, *low<mode>,
22276         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
22277         xor<mode>3, *nor<mode>3,
22278         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
22279         *zero_extendhi_truncqi):  Set alu_type instead of type.
22280
22281 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
22282
22283         * config/alpha/alpha.c (alpha_need_linkage): Adjust
22284         splay_tree_new_ggc call.
22285         (alpha_use_linkage): Likewise.
22286
22287 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22288
22289         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
22290         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
22291         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
22292         (static_specs): Remove switches_need_spaces.
22293         (process_command, do_self_spec): Hardcode handling "-o" instead of
22294         checking switches_need_spaces.
22295         * system.h (SWITCHES_NEED_SPACES): Poison.
22296
22297 2010-06-26  Richard Guenther  <rguenther@suse.de>
22298
22299         PR tree-optimization/44393
22300         * tree-loop-distribution.c (generate_loops_for_partition): Fix
22301         stmt removal and VOP renaming.
22302         (generate_memset_zero): Remove redundant stmt updating.
22303         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
22304         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
22305
22306 2010-06-26  Jan Hubicka  <jh@suse.cz>
22307
22308         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
22309         edges comming from header are equivalent.
22310         (visit_bb): Handle PHIs correctly.
22311         * tree-inline.c (copy_phis_for_bb): Be able to copy
22312         PHI from entry edge.
22313         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
22314
22315 2010-06-26  Richard Guenther  <rguenther@suse.de>
22316
22317         PR middle-end/44674
22318         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
22319         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
22320
22321 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22322
22323         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
22324         add_infile, alloc_switch): New.
22325         (process_command): Remove variable lang_n_infiles.  Process
22326         options in a single pass.  Use new functions for allocating
22327         infiles and switches arrays.  Properly skip operands of
22328         -Xpreprocessor and -Xassembler.
22329
22330 2010-06-26  Jan Hubicka  <jh@suse.cz>
22331
22332         PR middle-end/44671
22333         * cgraphunit.c (cgraph_function_versioning): Remove wrong
22334         cgraph_make_decl_local call; fix typo copying RTL data.
22335
22336 2010-06-25  DJ Delorie  <dj@redhat.com>
22337
22338         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
22339         (m32c_output_aligned_common): Likewise.
22340         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
22341         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
22342         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
22343         (m32c_register_pragmas): Register it.
22344         * config/m32c/m32c.c (m32c_get_pragma_address): New.
22345         (m32c_insert_attributes): Set #pragma address decls volatile.
22346         (pragma_entry_eq): New.
22347         (pragma_entry_hash): New.
22348         (m32c_note_pragma_address): New.
22349         (m32c_get_pragma_address): New.
22350         (m32c_output_aligned_common): New.
22351         * doc/extend.texi: Document the new pragma.
22352
22353         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
22354         also.
22355         * config/m32c/predicates.md (m32c_any_operand): Check the code
22356         instead of memory_operand so as to allow matching volatile MEMs.
22357         (m32c_nonimmediate_operand): Likewise.
22358         (mra_operand): Allow volatiles.
22359
22360 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
22361
22362         PR debug/44610
22363         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
22364         address if the offset is unknown.
22365
22366 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
22367
22368         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
22369         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
22370         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
22371         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
22372         to ia64_start_function. Invoke it.
22373         * config/ia64/ia64.c (ia64_start_function): Call new function
22374         dwarf2out_vms_debug_main_pointer.
22375
22376 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22377
22378         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
22379         statements computing the true predicate.
22380
22381 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22382
22383         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
22384         to boolean_true_node.
22385         (reset_bb_predicate): New.
22386         (predicate_bbs): Call reset_bb_predicate.
22387
22388 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22389
22390         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
22391         (tree_if_conversion): Returns true when something has been changed.
22392         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
22393         changed something.
22394
22395 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22396
22397         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
22398         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
22399         * tree-if-conv.c: Include dbgcnt.h.
22400         (tree_if_conversion): Use if_conversion_tree to count the number of
22401         if-convertible loops.
22402
22403 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
22404
22405         * common.opt (fprefetch-loop-arrays): Re-define
22406         -fprefetch-loop-arrays as a tri-state option with the initial
22407         value of -1.
22408         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
22409         pass only when flag_prefetch_loop_arrays > 0.
22410         * toplev.c (process_options): Note that, with tri-states,
22411         flag_prefetch_loop_arrays>0 means prefetching is enabled.
22412         * config/i386/i386.c (override_options): Enable prefetching at -O3
22413         for a set of CPUs that sw prefetching is helpful.
22414         (software_prefetching_beneficial_p): New.  Return TRUE if software
22415         prefetching is beneficial for the given CPU.
22416
22417 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
22418
22419         PR rtl-optimization/44326
22420         * implicit-zee.c (find_removable_zero_extends): Replace
22421         INSN_P with NONDEBUG_INSN_P.
22422
22423 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22424
22425         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
22426         (struct ipa_node_params): Removed the modification_analysis_done flag.
22427         (ipa_is_param_modified): Removed.
22428         (ipa_analyze_node): Declare.
22429         (ipa_compute_jump_functions): Remove declaration.
22430         (ipa_count_arguments): Likewise.
22431         (ipa_detect_param_modifications): Likewise.
22432         (ipa_analyze_params_uses): Likewise.
22433         * ipa-prop.c (struct param_analysis_info): New type.
22434         (visit_store_addr_for_mod_analysis): Removed.
22435         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
22436         moved down in the file.
22437         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
22438         (ipa_count_arguments): Made static.
22439         (mark_modified): New function.
22440         (is_parm_modified_before_call): New function.
22441         (compute_pass_through_member_ptrs): New parameter parms_info, call
22442         is_parm_modified_before_call instead of ipa_is_param_modified.
22443         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
22444         it to compute_pass_through_member_ptrs.
22445         (ipa_compute_jump_functions): New parameter parms_info, pass it to
22446         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
22447         on the callee if it is analyzed.  Made static.
22448         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
22449         is_parm_modified_before_call instead of ipa_is_param_modified.
22450         (ipa_analyze_call_uses): New parameter parms_info, pass it to
22451         ipa_analyze_indirect_call_uses.
22452         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
22453         ipa_analyze_call_uses.
22454         (ipa_analyze_params_uses): New parameter parms_info, pass it to
22455         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
22456         (ipa_analyze_node): New function.
22457         (ipa_print_node_params): Do not dump the modified flag.
22458         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
22459         it.  Do not stream the modified parameter flag.
22460         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
22461         it.  Do not stream the modified parameter flag.
22462         * ipa-cp.c (ipcp_analyze_node): Removed.
22463         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
22464         with only a call to ipa_analyze_node.
22465         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
22466         node with only a call to ipa_analyze_node.
22467
22468 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22469
22470         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
22471
22472 2010-06-25  Jan Hubicka  <jh@suse.cz>
22473
22474         * tree-pass.h (pass_split_functions): Declare.
22475         * opts.c (decode_options): Enable function splitting at -O2
22476         * timevar.def (TV_IPA_FNSPLIT): New macro.
22477         * ipa-split.c: New file.
22478         * common.opt (-fpartial-inlining): New flag.
22479         * Makefile.in (ipa-split.o): New object file.
22480         * passes.c (init_optimization_passes): Add ipa-split.
22481         * params.def (partial-inlining-entry-probability): New parameters.
22482         * doc/invoke.texi (-fpartial-inlining): New.
22483
22484 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22485
22486         PR 44665
22487         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
22488         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
22489         (gimplify_expr): Likewise.
22490
22491 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22492
22493         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
22494         statements instead of bailing out on them.
22495         (ipa_analyze_indirect_call_uses): Do not require that loads from the
22496         parameter are in the same BB as the condition.  Update comments.
22497
22498 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
22499
22500         PR middle-end/43866
22501         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
22502         true or always false, return NULL_TREE.
22503         (tree_unswitch_single_loop): Optimize conditions even when reaching
22504         max-unswitch-level parameter.  If num > 0, optimize first all conditions
22505         using entry checks, then do still reachable block discovery and consider
22506         only conditions in still reachable basic blocks in the loop.
22507
22508         PR tree-optimization/44539
22509         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
22510         the call doesn't have LHS, but has VDEF.
22511
22512 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22513
22514         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
22515         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
22516         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
22517         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
22518         * system.h (MODIFY_TARGET_NAME): Poison.
22519
22520 2010-06-25  Alan Modra  <amodra@gmail.com>
22521
22522         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
22523         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
22524         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
22525         CMODEL_LARGE as default.
22526         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
22527         (offsettable_ok_by_alignment): Delete.
22528         (rs6000_emit_move): Remove mcmodel=medium optimization.
22529
22530 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22531
22532         With large parts from Jim Wilson:
22533         PR target/43902
22534         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
22535         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22536         * optabs.c (optab_for_tree_code): Likewise.
22537         (expand_widen_pattern_expr): Likewise.
22538         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
22539         out of execute_optimize_widening_mul.
22540         (convert_plusminus_to_widen): New function.
22541         (execute_optimize_widening_mul): Use the two new functions.
22542         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
22543         Remove code to generate widening multiply-accumulate.  Add support
22544         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22545         * gimple-pretty-print.c (dump_ternary_rhs): New function.
22546         (dump_gimple_assign): Call it when appropriate.
22547         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
22548         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
22549         (expand_gimple_stmt_1): Likewise.
22550         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
22551         WIDEN_MULT_MINUS_EXPR.
22552         * tree-ssa-operands.c (get_expr_operands): Likewise.
22553         * tree-inline.c (estimate_operator_cost): Likewise.
22554         * gimple.c (extract_ops_from_tree_1): Renamed from
22555         extract_ops_from_tree.  Add new arg for a third operand; fill it.
22556         (gimple_build_assign_stat): Support operations with three operands.
22557         (gimple_build_assign_with_ops_stat): Likewise.
22558         (gimple_assign_set_rhs_from_tree): Likewise.
22559         (gimple_assign_set_rhs_with_ops_1): Renamed from
22560         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
22561         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
22562         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
22563         WIDEN_MULT_MINUS_EXPR.
22564         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
22565         (extract_ops_from_tree_1): Adjust declaration.
22566         (gimple_assign_set_rhs_with_ops_1): Likewise.
22567         (gimple_build_assign_with_ops): Pass NULL for last operand.
22568         (gimple_build_assign_with_ops3): New macro.
22569         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
22570         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
22571         functions.
22572         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
22573         (verify_gimple_assign): Call it.
22574         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
22575         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
22576         functions for dealing with three-operand statements.
22577         * tree.c (commutative_ternary_tree_code): New function.
22578         * tree.h (commutative_ternary_tree_code): Declare it.
22579         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
22580         ternary statements.
22581         (gimple_assign_nonzero_warnv_p): Likewise.
22582         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
22583         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
22584         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
22585         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
22586         (struct hashtable_expr): New member ternary in the union.
22587         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
22588         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
22589         (iterative_hash_hashable_expr): Likewise.
22590         (print_expr_hash_elt): Handle EXPR_TERNARY.
22591         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
22592         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
22593         statements.  Handle GIMPLE_TERNARY_RHS.
22594
22595 2010-06-25  Jan Hubicka  <jh@suse.cz>
22596
22597         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
22598
22599 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
22600
22601         PR c/44517
22602         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
22603         parameters are not good.
22604         (c_parser_parameter_declaration): Error unknown type name if the type
22605         name can't start declaration specifiers.
22606
22607 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22608
22609         * gcc.c (translate_options): Don't mention +e in comment.
22610         (process_command): Don't handle +e specially.
22611
22612 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22613
22614         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
22615
22616         * ira-build.c (merge_hard_reg_conflicts): New function.
22617         (create_cap_allocno, copy_info_to_removed_store_destinations,
22618         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
22619         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
22620         (remove_unnecessary_allocnos, remove_low_level_allocnos)
22621         copy_nifo_to_removed_store_destination): Use them.
22622         * ira-lives.c (make_hard_regno_born): New function, split out of
22623         make_regno_born.
22624         (make_allocno_born): Likewise.
22625         (make_hard_regno_dead): New function, split out of make_regno_dead.
22626         (make_allocno_dead): Likewise.
22627         (inc_register_pressure): New function, split out of set_allocno_live.
22628         (dec_register_pressure): New function, split out of clear_allocno_live.
22629         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
22630         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
22631         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
22632         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
22633         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
22634         mark_pseudo_regno_live.
22635         (process_bb_node_lives): Use mark_pseudo_regno_live,
22636         make_hard_regno_born and make_allocno_dead.
22637         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
22638         set_allocno_live, clear_allocno_live): Delete functions.
22639
22640         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
22641         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
22642         functions.
22643         (ira_flattening): Use ira_parent_allocno.
22644         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
22645         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
22646
22647         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
22648         statement.
22649
22650         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
22651         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
22652         minmax_set_iter_cond, minmax_set_iter_next,
22653         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
22654         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
22655         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
22656         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
22657         uses changed.
22658
22659         * ira-int.h (struct live_range, live_range_t): Renamed from struct
22660         ira_allocno_live_range and allocno_live_range_t; all uses changed.
22661         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
22662         All uses changed.
22663
22664 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
22665
22666         * thumb2.md (thumb2_tlobits_cbranch): Delete.
22667         (peephole2 to convert zero_extract/compare of single bit to
22668          lshift/compare): New.
22669
22670 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
22671
22672         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
22673         recursive call and call to 'int_const_binop'.
22674         (build_range_check, fold_cond_expr_with_comparison, unextend,
22675         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
22676         multiple_of_p): Adjust call to const_binop.
22677
22678 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
22679
22680         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
22681         determine size of XFmode operand.
22682         (XFmode extended DFmode push splitter): Ditto.
22683         (XFmode extended SFmode push splitter): Ditto.
22684
22685 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
22686
22687         PR target/44588
22688         * config/i386/i386.md (extract_code): New.
22689         (<u>divmodqi4): Likewise.
22690         (divmodhiqi3): Likewise.
22691         (udivmodhiqi3): Likewise.
22692         (<u>divqi3): Remvoved.
22693
22694 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
22695
22696         PR middle-end/44492
22697         * recog.h (struct recog_data): Add is_asm field.
22698         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
22699         present in constraints of inline-asm operand and memory operand
22700         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
22701         (extract_insn): Initialize recog_data.is_asm.
22702         * doc/md.texi (Constraints): Document operand side-effect rules.
22703
22704 2010-06-24  Andi Kleen  <ak@linux.intel.com>
22705
22706         * c-parser.c (c_parser_conditional_expression): Call
22707         warn_for_omitted_condop.
22708         * doc/invoke.texi: Document omitted condop warning.
22709
22710 2010-06-24  Nick Clifton<nickc@redhat.com>
22711
22712         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
22713         insn in the sequence is a jump insn before setting its label.
22714
22715 2010-06-24  Alan Modra  <amodra@gmail.com>
22716
22717         * collect2.c (main): Match exactly --version and --help.
22718
22719 2010-06-24  DJ Delorie  <dj@redhat.com>
22720
22721         * config/m32c/m32c-pragma.c: Don't include rtl.h.
22722
22723 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
22724
22725         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
22726         using X87MODEF mode iterator.
22727         (pushsf splitter): Macroize splitter using P mode iterator.
22728         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
22729         mode iterator.
22730
22731         (*movxf_internal): Rename from *movxf_integer.
22732         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
22733         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
22734         (*movdf_internal): Rename from *movdf_integer.
22735         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
22736         (*movsf_internal): Rename from *movdf_1.
22737
22738 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
22739
22740         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
22741         (const_gimple_seq_node): Removed typedefs.
22742
22743         * gimple.h (gimple_seq_node_d, gimple_seq_node)
22744         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
22745
22746 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
22747
22748         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
22749         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
22750         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
22751         and CODE_FOR_vec_extract_lo_v4df.
22752
22753         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
22754         Changed to define_insn_and_split.
22755         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
22756         (vec_extract_lo_v16hi): Likewise.
22757         (vec_extract_lo_v32qi): Likewise.
22758         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
22759         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
22760
22761 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
22762
22763         PR target/44640
22764         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
22765         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
22766         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
22767         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
22768         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
22769
22770         PR target/44640
22771         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
22772
22773         PR other/44644
22774         * df-core.c (struct df): Rename to df_d.
22775         * df.h (struct df): Likewise.
22776         * dse.h (struct df): Remove forward declaration.
22777         * recog.h (struct insn_data): Rename to:
22778         (struct_insn_data_d).  Adjusted all users.
22779
22780 2010-06-23  Arnaud Charlet  <charlet@adacore.com
22781
22782         PR ada/22220
22783         * doc/install.texi: Update requirements to build GNAT.
22784
22785 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
22786
22787         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
22788         enum type.
22789         (m68k_sched_attr_opx_type): Remove unreachable return.
22790         (m68k_sched_attr_opy_type): Likewise.
22791         (m68k_sched_attr_size): Likewise.
22792         (sched_get_opxy_mem_type): Likewise.
22793         (m68k_sched_attr_op_mem): Likewise.
22794
22795 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
22796
22797         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
22798         new statement and adjust VDEF only if necessary.  Remove superfluous
22799         call to maybe_clean_or_replace_eh_stmt.
22800         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
22801         copy the flags.
22802         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
22803         * tree-inline.c (copy_bb): ...and not there.
22804
22805 2010-06-22  Cary Coutant  <ccoutant@google.com>
22806
22807         * dwarf2out.c (is_nested_in_subprogram): New function.
22808         (should_move_die_to_comdat): Use it.
22809         (copy_ancestor_tree): Don't mark DIEs here.
22810         (copy_decls_walk): Start walk from root of newly-added tree;
22811         mark DIEs here instead.
22812
22813 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
22814
22815         * config/i386/i386.md (unit): Also check sseishft1.
22816
22817 2010-06-22  Jan Hubicka  <jh@suse.cz>
22818
22819         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
22820         enabled.
22821
22822 2010-06-22  Jan Hubicka  <jh@suse.cz>
22823
22824         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
22825         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
22826         Return true if something changed.
22827         * df.h (df_confluence_function_n): Return bool.
22828         * df-core.c (df_worklist_propagate_forward,
22829         df_worklist_propagate_backward): Track changes and ages.
22830         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
22831         track ages.
22832         * dse.c (dse_confluence_n): Return always true.
22833
22834 2010-06-22  Jan Hubicka  <jh@suse.cz>
22835
22836         * bitmap.c (bitmap_clear_bit): Micro optimize.
22837
22838 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
22839
22840         * config/i386/i386.md (SWI1248x): New mode iterator.
22841         (SWI48x): Ditto.
22842         (SWI12): Ditto.
22843         (SWI24): Ditto.
22844
22845         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
22846         SWI1248x mode iterator.
22847         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
22848         using SWI124 mode iterator.
22849         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
22850         mode iterator.
22851         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
22852         *pushdi2_prologue_rex64 using P mode iterator.
22853         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
22854         using SWI48 mode iterator.
22855         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
22856         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
22857         using SWI1248x mode iterator.
22858         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
22859         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
22860         SWI48 mode iterator.
22861         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
22862         iterator.
22863         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
22864         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
22865         SWI12 mode iterator.
22866         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
22867         SWI12 mode iterator.
22868         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
22869         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
22870         SWI24 mode iterator.
22871         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
22872         SWI48 mode iterator.
22873         (mov<mode>_insn_1): New expander.
22874         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
22875         using SWI48x mode iterator.
22876
22877         (*movoi_internal_avx): Rename from *movoi_internal.
22878         (*movti_internal_rex64): Rename from *movti_rex64.
22879         (*movti_internal_sse): Rename from *movti_sse.
22880         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
22881         (*movdi_internal): Rename from *movdi_2.
22882         (*movsi_internal): Rename from *movsi_1.
22883         (*movhi_internal): Rename from *movhi_1.
22884         (*movqi_internal): Rename from *movqi_1.
22885
22886         (insv): Update the call to gen_movsi_insv_1 for rename.
22887         * config/i386/i386.c (promote_duplicated_reg): Ditto.
22888
22889 2010-06-22  Jan Hubicka  <jh@suse.cz>
22890
22891         * passes.c (execute_function_todo): Move call of statistics_fini_pass
22892         to ...
22893         (execute_todo) ... this one.
22894
22895 2010-06-22  Alan Modra  <amodra@gmail.com>
22896
22897         PR target/44364
22898         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
22899         * caller-save.c (insert_restore, insert_save): Use non-validate
22900         form of adjust_address.
22901
22902 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22903
22904         PR target/39690
22905         * config/pa/pa.c (override_options): Disable
22906         -freorder-blocks-and-partition.
22907
22908 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
22909
22910         PR target/44615
22911         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
22912
22913         * config/i386/i386.md (type): Add sseishft1
22914
22915         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
22916         (ppro_insn_load): Likewise.
22917         (ppro_insn_store): Likewise.
22918         (ppro_insn_both): Likewise.
22919
22920         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
22921         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
22922         for type.
22923         (*vec_extractv2di_1_avx): Likewise.
22924         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
22925         type.  Remove atom_unit.
22926         (*vec_extractv2di_1_sse2): Likewise.
22927
22928 2010-06-21  DJ Delorie  <dj@redhat.com>
22929
22930         * diagnostic.h (diagnostic_classification_change_t): New.
22931         (diagnostic_context): Add history and push/pop list.
22932         (diagnostic_push_diagnostics): Declare.
22933         (diagnostic_pop_diagnostics): Declare.
22934         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
22935         from pragmas in a history chain instead of the global table.
22936         (diagnostic_push_diagnostics): New.
22937         (diagnostic_pop_diagnostics): New.
22938         (diagnostic_report_diagnostic): Scan history chain to find state
22939         of diagnostics as of the diagnostic location.
22940         * opts.c (set_option): Pass UNKNOWN_LOCATION to
22941         diagnostic_classify_diagnostic.
22942         (enable_warning_as_error): Likewise.
22943         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
22944         use in the history chain.
22945         * doc/extend.texi: Document pragma GCC diagnostic changes.
22946
22947 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
22948
22949         * dwarf2out.c (add_linkage_name): New function.  Don't add
22950         anything to DW_TAG_member DIEs.
22951         (add_name_and_src_coords_attributes): Use it.
22952         (gen_variable_die): Call it for C++ static data members if
22953         specification is DW_TAG_member.
22954
22955         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
22956         C++ char16_t and char32_t.
22957
22958         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
22959         * genattrtab.c: Include vecprim.h.
22960         (cached_attrs, cached_attr_count, attrs_seen_once,
22961         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
22962         attrs_cached_after): New variables.
22963         (find_attrs_to_cache): New function.
22964         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
22965         (write_test_expr): Add attrs_cached argument, return it too,
22966         attempt to cache non-const attributes used more than once in
22967         a single case handling.
22968         (write_attr_get): Use find_attrs_to_cache, for caching candidates
22969         emit cached_* variables.  Adjust write_attr_set callers.
22970         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
22971         to find attributes that should be cached in this block.  Adjust
22972         write_test_expr callers.
22973         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
22974         callers.
22975         (make_automaton_attrs): Adjust write_test_expr caller.
22976
22977         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
22978         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
22979         (make_automaton_attrs): If find_tune_attr returns non-NULL,
22980         write separate internal_dfa_insn_code_* and insn_default_latency_*
22981         functions for each attribute's value and emit init_sched_attrs
22982         function and function pointers.
22983         * genattr.c (const_attrs, reservations): New variables.
22984         (gen_attr): Add const attributes to const_attrs vector.
22985         (check_tune_attr, find_tune_attr): New functions.
22986         (main): Add reservations to reservations vector.  If find_tune_attr
22987         returns true, add prototype for init_sched_attrs and make
22988         internal_dfa_insn_code and insn_default_latency function pointers,
22989         otherwise define init_sched_attrs as dummy macro.
22990         * cfgexpand.c: Include insn-attr.h.
22991         (gimple_expand_cfg): Call init_sched_attrs.
22992
22993         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
22994
22995         PR target/44575
22996         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
22997         va_arg from a set of register save slots into a temporary,
22998         if the container is bigger than type size, do the copying
22999         using smaller mode or using memcpy.
23000
23001         PR bootstrap/44426
23002         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
23003         prototype.
23004         (sel_print_to_dot): Remove macro.
23005         (sel_print): Likewise.  New prototype.
23006         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
23007         (sel_print): New function.
23008
23009 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23010
23011         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
23012         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
23013
23014 2010-06-21  Nick Clifton  <nickc@redhat.com>
23015
23016         * config/rx/rx.h (PTRDIFF_TYPE): Define.
23017         (SMALL_REGISTER_CLASS): Define (to zero).
23018         (PRINT_OPERAND): Delete.
23019         (PRINT_OPERAND_ADDRESS): Delete.
23020         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
23021         (rx_print_operand_address): Delete prototype.
23022         * config/rx/rx.c (rx_print_operand): Make static.
23023         Allow %H and %L to handle CONST_DOUBLEs.
23024         (rx_print_operand_address): Make static.
23025         (rx_gen_move_template): Rename local variable 'template' to
23026         out_template.
23027         (rx_function_arg): Do not pass unknown sized objects in registers.
23028         (TARGET_PRINT_OPERAND): Define.
23029         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23030
23031 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
23032
23033         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
23034
23035 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
23036
23037         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
23038         stack-alignment for simple leaf-functions.
23039
23040 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
23041
23042         * doc/install.texi: Document bootstrap-lto.
23043
23044 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
23045
23046         PR debug/44248
23047         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
23048         (input_function): Drop them here, if VTA is disabled.
23049
23050 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
23051
23052         PR target/44546
23053         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
23054         New predicate.
23055         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
23056         ix86_swapped_fp_comparsion_operator instead of
23057         ix86_fp_comparison_operator.
23058
23059         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
23060         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
23061         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
23062         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
23063         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
23064         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
23065
23066 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
23067
23068         PR other/32998
23069         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
23070         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
23071         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
23072         (decode_cmdline_option): Update for this return value.  Set
23073         orig_option_with_args_text field.  Set arg field for unknown
23074         options.  Make static.
23075         (decode_cmdline_options_to_array): New.
23076         (prune_options): Update handling of find_opt return value.
23077         * opts.c (read_cmdline_option): Take decoded option.  Return void.
23078         (read_cmdline_options): Take decoded options.
23079         (decode_options): Add parameters for decoded options.  Use
23080         decode_cmdline_options_to_array.  Use decoded options for -O
23081         scan.  Use integral_argument for -O parameters.  Update call to
23082         read_cmdline_options.
23083         (enable_warning_as_error): Update handling of find_opt return value.
23084         * opts.h: Update comment on unknown options.
23085         (struct cl_decoded_option): Update comments on opt_index and arg.
23086         Add orig_option_with_args_text.
23087         (decode_cmdline_option): Remove.
23088         (decode_cmdline_options_to_array): Declare.
23089         (decode_options): Update prototype.
23090         * toplev.c (save_argv): Remove.
23091         (save_decoded_options, save_decoded_options_count): New.
23092         (read_integral_parameter): Remove.
23093         (print_switch_values): Use decoded options.
23094         (toplev_main): Don't set save_argv.  Update call to decode_options.
23095         * toplev.h (read_integral_parameter): Remove.
23096         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
23097
23098 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
23099
23100         PR target/44072
23101         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
23102         immediate.
23103         * constraints.md (Pw, Px): New constraints.
23104         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
23105
23106 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
23107
23108         * config/i386/sse.md (fma4modesuffixf4): Removed.
23109         (ssemodesuffixf2s): Likewise.
23110         (ssemodesuffixf4): Likewise.
23111         (ssemodesuffixf2c): Likewise.
23112         (ssescalarmodesuffix2s): Likewise.
23113         (avxmodesuffixf2c): Likewise.
23114         (ssemodesuffix): New.
23115         (ssescalarmodesuffix): Likewise.
23116         Update patterns with ssemodesuffix and ssescalarmodesuffix.
23117
23118 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
23119
23120         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
23121
23122 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
23123
23124         * stor-layout.c (debug_rli): Remove unused local variables.
23125
23126 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
23127
23128         PR rtl-optimization/40900
23129         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
23130         original expression for later reuse.
23131         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
23132         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
23133
23134 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
23135
23136         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
23137         double_int_fits_in_uhwi_p): Implement as static inline.
23138         (double_int_xor): New inline function.
23139         (double_int_lrotate, double_int_rrotate, double_int_max,
23140         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23141         double_int_smin): Declare.
23142         (lrotate_double, rrotate_double): Remove declaration.
23143         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
23144         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
23145         (double_int_lrotate, double_int_rrotate, double_int_max,
23146         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23147         double_int_smin): New function.
23148         * fold-const.c (int_const_binop): Clean up, use double_int_*
23149         functions.
23150         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
23151         double_int_* and immed_double_int_const functions.
23152
23153 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23154
23155         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
23156         * function.c (types_used_by_cur_var_decl): Likewise.
23157         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
23158
23159 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23160
23161         * tree.h (record_layout_info): Change type of pending_statics field
23162         to a VEC.
23163         * stor-layout.c (start_record_layout): Store NULL into
23164         pending_statics.
23165         (debug_rli): Call debug_vec_tree instead of debug_tree.
23166         (place_field): Likewise.
23167         (finish_record_layout): Likewise.
23168
23169 2010-06-18  Alan Modra  <amodra@gmail.com>
23170
23171         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
23172
23173 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23174
23175         PR target/43740
23176         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
23177         for SET source operand from SET destination operand.
23178
23179 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
23180
23181         PR rtl-optimization/39871
23182         * reload1.c (init_eliminable_invariants): For flag_pic, disable
23183         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
23184         (function_invariant_p): Rule out a plus of frame or arg pointer with
23185         a SYMBOL_REF.
23186         * ira.c (find_reg_equiv_invariant_const): Likewise.
23187
23188 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
23189
23190         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
23191         print_operand_address and puts to output the operand for CONST.
23192
23193 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
23194
23195         PR debug/44572
23196         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
23197         hook.
23198
23199 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23200
23201         * v850-protos.h (print_operand): Delete.
23202         (print_operand_address): Delete.
23203         * v850.h (PRINT_OPERAND): Delete.
23204         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23205         (PRINT_OPERAND_ADDRESS): Delete.
23206         * v850.c (print_operand_address): Rename to...
23207         (v850_print_operand_address): ...this.  Make static. Call
23208         v850_print_operand.
23209         (print_operand): Rename to...
23210         (v850_print_operand): ...this.  Make static.  Call
23211         v850_print_operand_address.
23212         (v850_print_operand_punct_valid_p): New function.
23213         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23214         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23215
23216 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23217
23218         * config/sh/sh-protos.h (print_operand): Delete.
23219         (print_operand_address): Delete.
23220         * config/sh/sh.h (PRINT_OPERAND): Delete.
23221         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23222         (PRINT_OPERAND_ADDRESS): Delete.
23223         * config/sh/sh.c (sh_print_operand_address): Make static.
23224         (sh_print_operand): Make static.  Call sh_print_operand_address
23225         and sh_print_operand.
23226         (sh_print_operand_punct_valid_p): New function.
23227         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23228         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23229
23230 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23231
23232         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
23233         (mcore_print_operand_address): Delete.
23234         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
23235         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23236         (PRINT_OPERAND_ADDRESS): Delete.
23237         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
23238         (mcore_print_operand): Make static.
23239         (mcore_print_operand_punct_valid_p): New function.
23240         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
23241         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23242
23243 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23244
23245         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
23246         (print_operand_address): Delete.
23247         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
23248         (PRINT_OPERAND_ADDRESS): Delete.
23249         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
23250         static.
23251         (m68hc11_print_operand): Make static.
23252         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23253
23254 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23255
23256         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
23257         (m32r_print_operand_address): Delete.
23258         * config/m32r/m32r.h (m32r_punct_chars): Delete.
23259         (PRINT_OPERAND): Delete.
23260         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23261         (PRINT_OPERAND_ADDRESS): Delete.
23262         * config/m32r/m32r.c (m32r_punct_chars): Make static.
23263         (m32r_print_operand_address): Make static.
23264         (m32r_print_operand): Make static.
23265         (m32r_print_operand_punct_valid_p): New function.
23266         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23267         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23268
23269 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23270
23271         * config/iq2000/iq2000-protos.h (print_operand): Delete.
23272         (print_operand_address): Delete.
23273         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
23274         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23275         (PRINT_OPERAND_ADDRESS): Delete.
23276         (iq2000_print_operand_punct): Delete.
23277         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
23278         (iq2000_print_operand_address): Make static.
23279         (iq2000_print_operand): Make static.
23280         (iq2000_print_operand_punct_valid_p): New function.
23281         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23282         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23283
23284 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23285
23286         * config/frv/frv-protos.h (frv_print_operand): Delete.
23287         (frv_print_operand_address): Delete.
23288         * config/frv/frv.h (PRINT_OPERAND): Delete.
23289         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23290         (PRINT_OPERAND_ADDRESS): Delete.
23291         * config/frv/frv.c (frv_print_operand_address): Make static.
23292         (frv_print_operand): Make static.
23293         (frv_print_operand_punct_valid_p): New function.
23294         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23295         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23296
23297 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23298
23299         * tree.h (vec_member): Declare.
23300         * tree.c (vec_member): Define.
23301
23302 2010-06-17  Richard Guenther  <rguenther@suse.de>
23303
23304         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
23305         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
23306
23307 2010-06-17  Richard Guenther  <rguenther@suse.de>
23308
23309         * tree-inline.c (declare_return_variable): Remove bogus code.
23310
23311 2010-06-17  Richard Guenther  <rguenther@suse.de>
23312
23313         * gimplify.c (gimplify_bind_expr): Always promote complex
23314         and vector variables to registers if possible.
23315
23316 2010-06-17  Richard Guenther  <rguenther@suse.de>
23317
23318         * expr.c (get_inner_reference): Use double_int for bit_offset
23319         calculation.
23320
23321 2010-06-16  DJ Delorie  <dj@redhat.com>
23322
23323         * common.opt (-fstrict-volatile-bitfields): new.
23324         * doc/invoke.texi: Document it.
23325         * fold-const.c (optimize_bit_field_compare): For volatile
23326         bitfields, use the field's type to determine the mode, not the
23327         field's size.
23328         * expr.c (expand_assignment): Likewise.
23329         (get_inner_reference): Likewise.
23330         (expand_expr_real_1): Likewise.
23331         * expmed.c (store_fixed_bit_field): Likewise.
23332         (extract_bit_field_1): Likewise.
23333         (extract_fixed_bit_field): Likewise.
23334
23335 2010-06-16  Richard Guenther  <rguenther@suse.de>
23336
23337         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
23338
23339 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
23340
23341         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
23342         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
23343         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
23344         * debug.c: Likewise.
23345         * sdbout.c: Likewise.
23346         * vmsdbgout.c: Likewise.
23347         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
23348         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
23349         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
23350         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
23351         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
23352         * dwarf2out.c (dw_fde_struct): New fields
23353         dw_fde_vms_{end,begin}_prologue.
23354         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
23355         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
23356         (dwarf2out_vms_end_prologue): New function.
23357         (dwarf2out_vms_begin_epilogue): New function.
23358         (dw_val_struct): New value dw_val_class_vms_delta.
23359         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
23360         begin_epilogue for VMS.
23361         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
23362         new static functions.
23363         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
23364         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
23365         static functions.
23366         (print_die): New case dw_val_class_vms_delta.
23367         (attr_checksum): Likewise.
23368         (same_dw_val_p: Likewise.
23369         (size_of_die): Likewise.
23370         (value_format): Likewise.
23371         (output_die): Likewise.
23372         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
23373         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
23374         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
23375         dwarf2out_cfi_begin_epilogue
23376         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
23377
23378 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23379
23380         * config/cris/cris-protos.h (cris_print_operand): Delete.
23381         (cris_print_operand_address): Delete.
23382         * config/cris/cris.h (PRINT_OPERAND): Delete.
23383         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23384         (PRINT_OPERAND_ADDRESS): Delete.
23385         * config/cris/cris.c (cris_print_operand_address): Make static.
23386         (cris_print_operand): Make static.
23387         (cris_print_operand_punct_valid_p): New function.
23388         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23389         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23390
23391 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23392
23393         * config/arm/arm-protos.h (arm_print_operand): Delete.
23394         (arm_print_operand_address): Delete.
23395         * config/arm/arm.h (PRINT_OPERAND): Delete.
23396         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23397         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
23398         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
23399         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
23400         (arm_print_operand): Make static.
23401         (arm_print_operand_punct_valid_p): New function.
23402         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23403         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23404
23405 2010-06-16  Nick Clifton  <nickc@redhat.com>
23406
23407         * config/rx/constraints.md (NEGint4): New constraint.
23408         * config/rx/rx.md (attr cc): Add set_zsc.
23409         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
23410         initialised.
23411         (cmpsf): Likewise.
23412         (call_internal): Clobber the cc0 register.
23413         (call_value_internal): Likewise.
23414         (cstoresi4): Likewise.
23415         (movsieq): Likewise.
23416         (movsine): Likewise.
23417         (addsi3): Add alternative to handle small negative constants.
23418         (sunsi3): Likewise.
23419         (addsi3): Do not set the O bit in the cc0 register.
23420         (adddi3): Likewise.
23421         (subsi3): Likewise.
23422         (subdi3): Likewise.
23423         (andsi3): Reorder alternatives to prefer shorter forms.
23424         (mulsi3): Likewise.
23425         (iorsi3): Likewise.
23426         (negsi2): Note that the cc0 flags are set.
23427         (rotlsi3): Note that only the Z and S bits are set in cc0.
23428         (lshrsi3): Likewise.
23429         (ashlsi3): Likewise.
23430         (subsf3): Use %Q for the MEM operand.
23431         (fix_truncsfsi2): Likewise.
23432         (floatsisf2): Likewise.
23433         (bitset): Remove early clobber from destination.
23434         (bitset_in_memory): Likewise.
23435         (lrintsf2): Clobber the cc0 register.
23436         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
23437         (rx_print_operand): Handle %N.
23438
23439 2010-06-16  Jan Hubicka  <jh@suse.cz>
23440
23441         * df-core.c (df_compact_blocks): Free problem_temps vector.
23442
23443 2010-06-16  Martin Jambor  <mjambor@suse.cz>
23444
23445         PR tree-optimization/43905
23446         * tree-sra.c: Include tree-inline.h.
23447         (create_abstract_origin): Removed.
23448         (modify_function): Version the call graph node instead of creating
23449         abstract origins and dealing with same_body aliases.
23450         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
23451         function is versionable.
23452         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
23453
23454 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
23455
23456         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
23457         (CHOOSE_DYNAMIC_LINKER): Update.
23458
23459 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
23460
23461         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
23462         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
23463         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
23464         *prefetch_3dnow_rex.
23465
23466 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
23467
23468         * target.h (struct asm_out):Add declare_constant_name field.
23469         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23470         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
23471         * output.h (default_asm_declare_constant_name): Declare.
23472         (assemble_label): Update prototype.
23473         * varasm.c (assemble_constant_contents): Use
23474         targetm.asm_out.declare_constant_name target hook.
23475         (assemble_label): Add 'file' argument.
23476         (default_asm_declare_constant_name): New function.
23477         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
23478         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
23479         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
23480
23481         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
23482         * config/darwin.c (darwin_asm_declare_constant_name): New function.
23483         (machopic_output_indirection): Update assemble_label argument list.
23484         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
23485         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23486
23487 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
23488
23489         PR middle-end/44391
23490         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
23491         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
23492
23493 2010-06-15  Richard Guenther  <rguenther@suse.de>
23494
23495         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
23496
23497 2010-06-15  Paul Brook  <paul@codesourcery.com>
23498
23499         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
23500         hard-float ABI.
23501
23502 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
23503
23504         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
23505         don't get a vector type for output.
23506
23507 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
23508
23509         PR fortran/44536
23510         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
23511         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
23512         (LANG_HOOKS_DECLS): Add it.
23513         * gimplify.c (omp_notice_variable): Call
23514         lang_hooks.decls.omp_report_decl.
23515
23516 2010-06-15  Martin Jambor  <mjambor@suse.cz>
23517
23518         PR lto/44464
23519         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
23520         on the newly dead SSA name.
23521
23522 2010-06-15  Alan Modra  <amodra@gmail.com>
23523
23524         * doc/invoke.texi: Add mcmodel to powerpc options.
23525         * configure.ac: Add HAVE_LD_LARGE_TOC test.
23526         * configure: Regenerate.
23527         * config.in: Regenerate.
23528         * config/rs6000/linux64.opt (mcmodel): New.
23529         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
23530         (TARGET_CMODEL, SET_CMODEL): Define.
23531         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
23532         select CMODEL_MEDIUM default.
23533         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
23534         (TARGET_CMODEL): Define default.
23535         * config/rs6000/rs6000.c (cmodel): New variable.
23536         (rs6000_explicit_options): Add cmodel field.
23537         (rs6000_handle_option): Handle -mcmodel.
23538         (create_TOC_reference): Add largetoc_reg param.  Generate high,
23539         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
23540         (rs6000_delegitimize_address): Recognise new toc reference rtl
23541         and minimal-toc rtl.
23542         (rs6000_legitimize_reload_address): Handle new toc references.
23543         (print_operand_address): Handle legitimate_constant_pool_address_p
23544         match before lo_sum.
23545         (rs6000_eliminate_indexed_memrefs): Tidy.
23546         (rs6000_emit_move): Tweak threshold for inlining constants.
23547         Keep rs6000_emit_allocate_stack large stack frame offsets
23548         loaded into r0 inline.
23549         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
23550         (tocrel_base, tocrel_offset): New variables.
23551         (toc_relative_expr_p): Set them here.
23552         (print_operand_address): Skip over any offset on constant pool address.
23553         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
23554         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
23555         (offsettable_ok_by_alignment): New function.
23556         (rs6000_emit_move): Address suitably aligned local symbol_refs
23557         relative to the toc pointer for -mcmodel=medium.
23558         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
23559         strict param.  Allow lo_sum version of addressing.  Verify reg
23560         used for -mminimal-toc and -mcmodel != small.  Update all callers.
23561         * config/rs6000/constraints.md: Update for above change.
23562         * config/rs6000/predicates.md: Likewise.
23563         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
23564         code.
23565         (tls_gd): Split for -mcmodel=medium/large.
23566         (tls_gd_high, tls_gd_low): New.
23567         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
23568         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
23569         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
23570         (largetoc_high, largetoc_low): New.
23571         (cmptf_internal2): Add clobber.
23572         * config/rs6000/rs6000-protos.h: Update.
23573
23574 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
23575
23576         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
23577         true if no prefetch is going to be generated for a given group.
23578         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
23579         estimate the prefetch_count.
23580         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
23581         prefetch count by considering the unroll_factor and prefetch_mod
23582         for is_loop_prefetching_profitable.
23583
23584 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
23585
23586         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
23587         anything if the argument is not a MEM.
23588
23589 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23590
23591         PR debug/43650
23592         PR debug/44181
23593         PR debug/44247
23594         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
23595         debug stmts.
23596         (canonicalize_loop_ivs): Likewise.
23597
23598 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23599
23600         PR debug/43656
23601         * haifa-sched.c (setup_insn_reg_pressure_info,
23602         update_register_pressure): Reject debug insns.
23603         (ready_sort): Don't setup reg pressure for debug insns.
23604         (schedule_insn): Don't update reg pressure for debug insns.
23605
23606 2010-06-14  Richard Guenther  <rguenther@suse.de>
23607
23608         * lto-streamer.c (cached_bp): Remove.
23609         (bitpack_delete): Likewise.
23610         (bitpack_create): Likewise.
23611         (bp_get_next_word): Likewise.
23612         (bp_pack_value, bp_unpack_value): Move ...
23613         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
23614         Re-implement.
23615         (struct bitpack_d): Likewise.
23616         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
23617         New inline functions.
23618         * lto-streamer-out.c (lto_output_bitpack): Remove.
23619         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23620         (pack_value_fields): Adjust.
23621         (lto_write_tree): Likewise.
23622         (output_gimple_stmt): Likewise.
23623         (output_function): Likewise.
23624         * lto-streamer-in.c (input_gimple_stmt): Adjust.
23625         (input_function): Likewise.
23626         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23627         (lto_input_bitpack): Remove.
23628         (lto_materialize_tree): Adjust.
23629         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
23630         * lto-cgraph.c (lto_output_edge): Adjust.
23631         (lto_output_node): Likewise.
23632         (lto_output_varpool_node): Likewise.
23633         (lto_output_ref): Likewise.
23634         (input_node): Likewise.
23635         (input_varpool_node): Likewise.
23636         (input_ref): Likewise.
23637         (input_edge): Likewise.
23638         (output_node_opt_summary): Likewise.
23639         (input_node_opt_summary): Likewise.
23640         * ipa-pure-const.c (pure_const_write_summary): Likewise.
23641         (pure_const_read_summary): Likewise.
23642         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
23643         (ipa_read_indirect_edge_info): Likewise.
23644         (ipa_write_node_info): Likewise.
23645         (ipa_read_node_info): Likewise.
23646
23647 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
23648
23649         PR target/44534
23650         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
23651         (vec_extract_lo_v16hi): Likewise.
23652         (vec_extract_lo_v32qi): Likewise.
23653
23654 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23655
23656         PR bootstrap/44426
23657         * tree.h (build_call_expr): Don't define as vararg macro, instead
23658         add a prototype.
23659         * builtins.c (build_call_nofold): Remove.
23660         (expand_builtin_int_roundingfn, expand_builtin_pow,
23661         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
23662         expand_builtin_memset_args, expand_builtin_strcmp,
23663         expand_builtin_strncmp, expand_builtin_memory_chk): Use
23664         build_call_nofold_loc instead of build_call_nofold.
23665         (build_call_expr): New function.
23666
23667         PR tree-optimization/44508
23668         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
23669         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
23670         don't eliminate trivially dead stmts.
23671         * tree-vrp.c (vrp_finalize): Pass false as last argument
23672         to substitute_and_fold.
23673         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
23674         to substitute_and_fold.
23675         * tree-ssa-ccp.c (ccp_finalize): Likewise.
23676
23677         PR bootstrap/44509
23678         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
23679
23680 2010-06-14  Ira Rosen  <irar@il.ibm.com>
23681
23682         PR tree-optimization/44507
23683         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
23684         to build initial vector for BIT_AND_EXPR.
23685         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
23686
23687 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23688
23689         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
23690         adjust z10prop set_attr.
23691
23692 2010-06-13  Jan Hubicka  <jh@suse.cz>
23693
23694         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
23695         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
23696         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
23697         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
23698         datastructure checks into checking asserts.
23699         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
23700         * tree-ssa-sccvn.c (VN_INFO): Likewise.
23701         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
23702         df_ref_create_structure): Likewise.
23703         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
23704         pool_free): Use gcc_checking_assert.
23705         * alias.c (get_alias_set): Likewise.
23706         * var-tracking.c (variable_htab_free, shared_hash_copy,
23707         canonicalize_values_mark, variable_merge_over_cur): Likewise.
23708         * lto-streamer.c (bp_unpack_value): Likewise.
23709
23710 2010-06-13  Richard Guenther  <rguenther@suse.de>
23711
23712         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
23713         Do not stream but initialize TYPE_CANONICAL to NULL.
23714         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
23715         * gimple.c (gimple_types_compatible_p): Disregard
23716         TYPE_STRUCTURAL_EQUALITY_P.
23717         (gimple_register_type): Use TYPE_CANONICAL as cache.
23718         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
23719         before registering common types.
23720         * config/i386/i386.c (ix86_function_arg_boundary): Do not
23721         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
23722         * tree.h (TYPE_CANONICAL): Clarify documentation.
23723
23724 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
23725
23726         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
23727         LIBCALL_VALUE): Remove macros.
23728         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
23729         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23730         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23731         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
23732         (ia64_function_value): Make static. Handle receiving the function
23733         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
23734
23735 2010-06-12  Jan Hubicka  <jh@suse.cz>
23736
23737         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
23738         at correct place.
23739
23740 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
23741
23742         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
23743
23744 2010-06-12  Jan Hubicka  <jh@suse.cz>
23745
23746         * df-core.c (df_clear_bb_info): New function.
23747         (df_set_blocks): bb_info is always allocated.
23748         (df_get_bb_info): Use block_info_elt_size.
23749         (df_set_bb_info): Likewise.
23750         (df_compact_blocks): Update for new block_info.
23751         (grow_bb_info): New function.
23752         * df-problems.c (df_grow_bb_info): Move to df-core.c
23753         (df_rd_set_bb_info): Remove.
23754         (df_rd_free_bb_info): Do not free block pool.
23755         (df_rd_alloc): Do not create pool, use check for
23756         obstack presence instead of NULL pointer for new blocks.
23757         (df_rd_free): DO not free alloc pool; clear block_info.
23758         (problem_RD): Add size of block info structure.
23759         (df_lr_set_bb_info): Remove.
23760         (df_lr_free_bb_info): Do not free block pool.
23761         (df_lr_alloc): Do not create pool, use check for
23762         obstack presence instead of NULL pointer for new blocks.
23763         (df_lr_free): DO not free alloc pool; clear block_info.
23764         (problem_LR): Add size of block info structure.
23765         (df_live_set_bb_info): Remove.
23766         (df_live_free_bb_info): Do not free block pool.
23767         (df_live_alloc): Do not create pool, use check for
23768         obstack presence instead of NULL pointer for new blocks.
23769         (df_live_free): DO not free alloc pool; clear block_info.
23770         (problem_LIVE): Add size of block info structure.
23771         (problem_CHAIN): Add size of block info structure.
23772         (df_byte_lr_set_bb_info): Remove.
23773         (df_byte_lr_free_bb_info): Do not free block pool.
23774         (df_byte_lr_alloc): Do not create pool, use check for
23775         obstack presence instead of NULL pointer for new blocks.
23776         (df_byte_lr_free): DO not free alloc pool; clear block_info.
23777         (problem_BYTE_LR): Add size of block info structure.
23778         (problem_NOTE): Add size of block info structure.
23779         (df_byte_MD_set_bb_info): Remove.
23780         (df_byte_MD_free_bb_info): Do not free block pool.
23781         (df_byte_MD_alloc): Do not create pool, use check for
23782         obstack presence instead of NULL pointer for new blocks.
23783         (df_byte_MD_free): DO not free alloc pool; clear block_info.
23784         (problem_BD): Add size of block info structure.
23785         * df-scan.c (df_scan_free_internal): Free block pool.
23786         (df_scan_set_bb_info): Remove.
23787         (df_scan_free_bb_info): Check for artificial_defs instead
23788         of bb_info being non-NULL.
23789         (df_scan_alloc): DO not create df_scan_block pool.
23790         (problem_SCAN): Set size of block info.
23791         (df_bb_refs_record): Do not allocate bb_info.
23792         * df.h (df_problem): Add block_info_elt_size.
23793         (struct dataflow): Change block_info to void *.
23794         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
23795         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
23796         in-line structures.
23797
23798 2010-06-12  Jan Hubicka  <jh@suse.cz>
23799
23800         PR tree-optimize/44485
23801         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
23802         containing use of return value of noreturn function.
23803
23804 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
23805
23806         * targhooks.c (default_function_value): Don't use
23807         FUNCTION_OUTGOING_VALUE.
23808         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
23809         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
23810
23811 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
23812
23813         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
23814         Add crtfastmath.o to extra_parts.
23815         * config/mips/crtfastmath.c: New.
23816         * config/mips/linux.h (ENDFILE_SPEC): New.
23817
23818 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
23819
23820         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
23821         old_type in parameter.
23822         (gcc_type_for_value): Update call to gcc_type_for_interval.
23823         (compute_type_for_level_1): Renamed compute_type_for_level.
23824         Update call to gcc_type_for_interval.
23825
23826 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23827
23828         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
23829         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
23830
23831 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23832
23833         * opts-common.c: Include options.h.
23834         (integral_argument): Move from opts.c.
23835         (decode_cmdline_option): New.  Based on read_cmdline_option.
23836         * opts.c (integral_argument): Move to opts-common.c.
23837         (read_cmdline_option): Move most contents to
23838         decode_cmdline_option.  Use %qs in diagnostics.
23839         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
23840         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
23841         decode_cmdline_option): New.
23842
23843 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23844
23845         PR target/44481
23846         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
23847         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
23848         (partiysi2_cmp): Ditto.
23849         (*partiyhi2_cmp): Ditto.
23850         (*parityqi2_cmp): Remove.
23851
23852 2010-06-11  Jan Hubicka  <jh@suse.cz>
23853
23854         * bitmap.h (bmp_iter_next_bit): New.
23855         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
23856
23857 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
23858             Eric Botcazou  <ebotcazou@adacore.com>
23859
23860         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
23861         computed cost.
23862
23863 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23864
23865         * config/i386/i386.md (unspec): New define_c_enum.
23866         (unspecv): Ditto.
23867
23868 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
23869
23870         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
23871
23872 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
23873
23874         PR middle-end/44483
23875         * tree-if-conv.c (bb_predicate_s): New struct.
23876         (bb_predicate_p): New.
23877         (bb_has_predicate): New.
23878         (bb_predicate): New.
23879         (set_bb_predicate): New.
23880         (bb_predicate_gimplified_stmts): New.
23881         (set_bb_predicate_gimplified_stmts): New.
23882         (add_bb_predicate_gimplified_stmts): New.
23883         (init_bb_predicate): New.
23884         (free_bb_predicate): New.
23885         (is_predicated): Use bb_predicate.
23886         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
23887         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
23888         before processing their successors.
23889         (clean_predicate_lists): Removed.
23890         (find_phi_replacement_condition): Use bb_predicate.
23891         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
23892         computations.
23893         (insert_gimplified_predicates): New.
23894         (combine_blocks): Call insert_gimplified_predicates.
23895         (tree_if_conversion): Call free_bb_predicate instead of
23896         clean_predicate_lists.
23897
23898 2010-10-11  Paul Brook  <paul@codesourcery.com>
23899
23900         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
23901         * config/arm/arm.c (all_architectures): Change v7e-m default to
23902         cortexm4.
23903         * config/arm/arm-cores.def: Add cortex-m4.
23904         * config/arm/arm-tune.md: Regenerate.
23905
23906 2010-06-11  Jan Hubicka  <jh@suse.cz>
23907
23908         * ipa-pure-const.c (special_builtlin_state): New function.
23909         (check_call): Use it instead of special casign BUILT_IN_RETURN.
23910         (propagate_pure_const): Use it.
23911
23912 2010-06-11  Jan Hubicka  <jh@suse.cz>
23913
23914         * df-problems.c (df_live_scratch): Convert to bitmap_head.
23915         (df_live_alloc): Initialize df_live_scratch when initializing
23916         problem_data.
23917         (df_live_transfer_function): Update uses of df_live_scratch.
23918         (df_live_free): Free problem_data; clear df_live_scratch before
23919         releasing the obstack.
23920         (df_md_free): Free problem data.
23921
23922 2010-06-11  Jan Hubicka  <jh@suse.cz>
23923
23924         * doc/invoke.texi (Wsuggest-attribute): Document.
23925         (Wmissing-noreturn): Remove.
23926         * ipa-pure-const.c (warn_function_noreturn): New function.
23927         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
23928         warn_missing_noreturn.
23929         * common.opt (Wsuggest-attribute=noreturn): New.
23930         * tree-flow.h (warn_function_noreturn): Declare.
23931         * tree-cfg.c (execute_warn_function_noreturn): Use
23932         warn_function_noreturn.
23933         (gate_warn_function_noreturn): New.
23934         (pass_warn_function_noreturn): Update.
23935
23936 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23937
23938         * c-typeck.c (handle_warn_cast_qual): Add loc
23939         parameter. Improve warning message.
23940         (build_c_cast): Pass location to handle_warn_cast_qual.
23941
23942 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23943
23944         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
23945         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
23946         insn mnemonic.
23947         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
23948
23949 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
23950
23951         Fix bootstap on mips
23952         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
23953         be naming typedefs.
23954
23955 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
23956
23957         * system.h (helper_const_non_const_cast): New inline for
23958         gcc version <= 4.0.
23959         (CONST_CAST2): For gcc version <= 4.0 use
23960         new helper to do const/non-const casting.
23961
23962 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23963
23964         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
23965         * Makefile.in (OBJS-common): Include insn-enums.o.
23966         (insn-enums.o): New rule.
23967         (simple_generated_c): Add insn-enums.c.
23968         (build/genenums.o): New rule.
23969         (genprogmd): Add "enums".
23970         * genconstants.c (print_enum_type): Declare a C string array
23971         for each enum.
23972         * genenums.c: New file.
23973         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
23974         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
23975         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
23976
23977 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23978
23979         * doc/md.texi (define_enum_attr): Document.
23980         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
23981         * read-md.h (lookup_enum_type): Declare.
23982         * read-md.c (lookup_enum_type): New function.
23983         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
23984         * genattrtab.c (attr_desc): Add an enum_name field.
23985         (evaluate_eq_attr): Take the associated attribute as argument.
23986         Get the enum prefix from the enum_name field, if defined.
23987         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
23988         (simplify_test_exp): Pass attr to evaluate_eq_attr.
23989         (add_attr_value): New function, split out from...
23990         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
23991         (write_test_expr): Pass attr to evaluate_eq_attr.
23992         (write_attr_get): Use the enum_name as the enum tag, if defined.
23993         (write_attr_valueq): Use the enum_name as a prefix, if defined.
23994         (find_attr): Initialize enum_name.
23995         (main): Handle DEFINE_ENUM_ATTR.
23996         * gensupport.c (process_rtx): Likewise.
23997         * config/mips/mips.h (mips_tune_attr): Delete.
23998         * config/mips/mips.md (cpu): Use define_attr_enum.
23999
24000 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24001
24002         * doc/md.texi (define_c_enum, define_enum): Document.
24003         * read-md.h (md_constant): Add a parent_enum field.
24004         (enum_value, enum_type): New structures.
24005         (upcase_string, traverse_enum_types): Declare.
24006         * read-md.c (enum_types): New variable.
24007         (upcase_string, add_constant): New functions.
24008         (handle_constants): Don't create the hash table here.
24009         Use add_constant.
24010         (traverse_md_constants): Don't check for a null md_constants.
24011         (decimal_string, handle_enum, traverse_enum_types): New functions.
24012         (read_md_files): Initialize md_constants and md_enums.
24013         * genconstants.c (print_md_constant): Ignore info argument.
24014         Only print constants that belong to no enum.
24015         (print_enum_type): New function.
24016         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
24017         for each defined enum type.
24018         * config/mips/mips.md (processor): New define_enum.
24019         (unspec): New define_c_enum.
24020         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
24021         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
24022         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
24023         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
24024         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
24025         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
24026         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
24027         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
24028         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
24029         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
24030         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
24031         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
24032         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
24033         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
24034         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
24035         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
24036         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
24037         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
24038         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
24039         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
24040         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
24041         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
24042         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24043         (UNSPEC_RDDSP): Move to mips-dsp.md.
24044         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
24045         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
24046         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
24047         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
24048         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
24049         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
24050         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
24051         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
24052         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
24053         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
24054         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
24055         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
24056         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
24057         Moved to mips-dspr2.md.
24058         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
24059         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
24060         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
24061         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
24062         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
24063         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
24064         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24065         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24066         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24067         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24068         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24069         UNSPEC_LOONGSON_PSADBH)
24070         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24071         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24072         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
24073         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24074         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24075         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24076         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
24077         (cpu): Update comment.
24078         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
24079         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
24080         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
24081         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
24082         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
24083         UNSPEC_LOONGSON_PCMPEQ)
24084         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
24085         UNSPEC_LOONGSON_PINSR_0)
24086         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24087         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24088         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24089         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24090         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24091         UNSPEC_LOONGSON_PSADBH)
24092         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24093         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24094         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
24095         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24096         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24097         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24098         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
24099         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
24100         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
24101         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
24102         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
24103         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
24104         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
24105         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
24106         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
24107         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
24108         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
24109         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
24110         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
24111         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
24112         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
24113         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
24114         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
24115         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
24116         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
24117         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
24118         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24119         (UNSPEC_RDDSP): Moved from mips.md.
24120         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
24121         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
24122         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
24123         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
24124         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
24125         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
24126         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
24127         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
24128         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
24129         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
24130         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
24131         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
24132         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
24133         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
24134         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
24135         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
24136         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
24137         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
24138         (UNSPEC_SCC): Moved from mips.md.
24139         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
24140         "processor_type" to "processor".
24141         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
24142         * config/mips/mips.h (processor_type): Delete.
24143         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
24144         "processor_type" to "processor".
24145
24146 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24147
24148         * configure.ac (tm_include_list): Add insn-constants.h.
24149         * configure: Regenerate.
24150         * Makefile.in (GTM_H): Move insn-constants.h here from...
24151         (TM_H): ...here.
24152         * mkconfig.sh: Remove special handling for insn-constants.h.
24153
24154 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24155
24156         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
24157         (BUILD_MD): ...this new variable.
24158         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
24159         that include the old contents of simple_generated_h and
24160         simple_generated_c.
24161         (simple_generated_h, simple_generated_c): Include them.  Add
24162         insn-constants.h.
24163         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
24164         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
24165         Remove these dependencies from the main rule and include
24166         insn-conditions.md in the command line only if it appears
24167         in the dependency list.
24168         (insn-constants.h, s-constants): Delete.
24169         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
24170         or gensupport.h.
24171         (build/genmddeps.o): Likewise.
24172         (genprogrtl): New variable that contains everything from genprogmd
24173         except mddeps and constants.
24174         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
24175         depend on $(BUILD_MD)
24176         (genprog): New variable.  Make these programs depend on
24177         $(BUILD_ERRORS).
24178         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
24179         (main): Use read_md_files instead of init_rtx_reader_args.
24180         * genconstants.c: As for genmddeps.c.
24181         * read-md.h (read_skip_construct): Declare.
24182         * read-md.c (read_skip_construct): New function.
24183         (handle_file): Allow a null handle_directive, skipping the
24184         construct if so.
24185         (parse_include): Update the comment accordingly.
24186
24187 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24188
24189         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
24190         * genmddeps.c: Include read-md.h.
24191         (main): Call init_rtx_reader_args instead of init_md_reader_args.
24192         * genattr.c (main): Likewise.
24193         * genattrtab.c (main): Likewise.
24194         * genautomata.c (main): Likewise.
24195         * gencodes.c (main): Likewise.
24196         * genconditions.c (main): Likewise.
24197         * genconfig.c (main): Likewise.
24198         * genconstants.c (main): Likewise.
24199         * genemit.c (main): Likewise.
24200         * genextract.c (main): Likewise.
24201         * genflags.c (main): Likewise.
24202         * genopinit.c (main): Likewise.
24203         * genoutput.c (main): Likewise.
24204         * genpeep.c (main): Likewise.
24205         * genrecog.c (main): Likewise.
24206         * genpreds.c (main): Likewise.
24207         * gensupport.h (in_fname): Move to read-md.h.
24208         (init_md_reader_args_cb): Rename to...
24209         (init_rtx_reader_args_cb): ...this and return a bool.
24210         (init_md_reader_args): Rename to...
24211         (init_rtx_reader_args): ...this and return a bool.
24212         (include_callback): Move to read-md.h.
24213         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
24214         (file_name_list, first_dir_md_include): Move to read-md.c
24215         (first_bracket_include): Delete unused variable.
24216         (last_dir_md_include): Move to read-md.c.
24217         (process_include): Delete, moving code to read-md.c:handle_include.
24218         (process_rtx): Don't handle INCLUDE.
24219         (save_string): Delete.
24220         (rtx_handle_directive): New function.
24221         (init_md_reader_args_cb): Rename to...
24222         (init_rtx_reader_args_cb): ...this and return a boolean success value.
24223         Use read_md_args.
24224         (init_md_reader_args): Rename to...
24225         (init_rtx_reader_args): ...this and return a boolean success value.
24226         * rtl.def (INCLUDE): Delete.
24227         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
24228         argument.
24229         * read-rtl.c (read_conditions): Don't gobble ')' here.
24230         (read_mapping): Likewise.
24231         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
24232         Handle top-level non-rtx constructs here rather than in read_rtx_1.
24233         Store the whole queue in *X.  Remove call to init_md_reader.
24234         (read_rtx_1): Rename to...
24235         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
24236         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
24237         here.
24238         (read_nested_rtx): New function.  Handle (nil) here rather than
24239         in read_rtx_code.
24240         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
24241         gobble ')' here.
24242         * read-md.h (directive_handler_t): New type.
24243         (in_fname, include_callback): Moved from read-md.h.
24244         (read_constants, init_md_reader): Delete.
24245         (read_md_files): Declare.
24246         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
24247         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
24248         from gensupport.c.
24249         (read_constants): Rename to...
24250         (handle_constants): ...this.  Don't gobble ')' here.
24251         (handle_include, handle_file, handle_toplevel_file)
24252         (parse_include): New functions, mostly taken from gensupport.c.
24253         (init_md_reader): Subsume into...
24254         (read_md_files): ...this new function.
24255
24256 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24257
24258         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
24259         (unread_char): Decrement read_md_lineno after putting back '\n'.
24260         * read-md.c (fatal_with_file_and_line): Push back any characters
24261         that we decide not to add to the context.
24262         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
24263         fatal_expected_char in cases where '/' ends a line (for example).
24264         (read_name): Don't increment read_md_lineno here.
24265         (read_escape): Likewise.
24266         (read_quoted_string): Likewise.
24267         (read_braced_string): Likewise.
24268
24269 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24270
24271         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
24272         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
24273         * genconstants.c: Include read-md.h.
24274         * read-rtl.c (md_constants): Move to read-md.c.
24275         (md_name): Move to read-md.h.
24276         (initialize_iterators): Use leading_string_hash instead of def_hash
24277         and leading_string_eq_p instead of def_name_eq_p.
24278         (read_name): Move to read-md.c.
24279         (def_hash, def_name_eq_p): Delete.
24280         (read_constants, traverse_md_constants): Move to read-md.c.
24281         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
24282         * read-md.h: Include hashtab.h.
24283         (md_name): Moved from read-rtl.c.
24284         (md_constant): Moved from read-md.h.
24285         (leading_string_hash, leading_string_eq_p, read_name)
24286         (read_constants, traverse_md_constants): Declare.
24287         * read-md.c (md_constants): Moved from read-rtl.c.
24288         (leading_string_hash, leading_string_eq_p): New functions.
24289         (read_name, read_constants, traverse_md_constants): Moved from
24290         read-rtl.c.
24291
24292 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24293
24294         * read-rtl.c (md_name): New structure.
24295         (read_name): Take an md_name instead of a buffer pointer.
24296         Use the "string" field instead of strcpy when expanding constants.
24297         (read_constants): Remove the tmp_char argument.  Update the calls
24298         to read_name, using two local name buffers instead of the tmp_char
24299         argument.  Merge the constant-creation code.
24300         (read_conditions): Remove the tmp_char argument.  Update the calls
24301         to read_name, using a local name buffer instead of the tmp_char
24302         argument.
24303         (read_mapping): Replace tmp_char variable with a local name buffer.
24304         Update the calls to read_name.
24305         (read_rtx_1): Likewise.  Update the calls to read_constants and
24306         read_conditions.
24307
24308 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24309
24310         * Makefile.in (build/read-md.o): Depend on errors.h.
24311         * read-md.h (error_with_line): Declare.
24312         * read-md.c: Include errors.h.
24313         (message_with_line_1): New function, extracted from...
24314         (message_with_line): ...here.
24315         (error_with_line): New function.
24316         * genattrtab.c: If a call to message_with_line is followed by
24317         "have_error = 1;", replace both statements with a call to
24318         error_with_line.
24319         * genoutput.c: Likewise.
24320         * genpreds.c: Likewise.
24321         * genrecog.c: If a call to message_with_line is followed by
24322         "error_count++;", replace both statements with a call to
24323         error_with_line.
24324         (errorcount): Delete.
24325         (main): Don't check it.
24326         * gensupport.c: If a call to message_with_line is followed by
24327         "errors = 1;", replace both statements with a call to error_with_line.
24328         (errors): Delete.
24329         (process_define_cond_exec): Check have_error instead of errors.
24330         (init_md_reader_args_cb): Likewise.  Don't set errors.
24331
24332 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24333
24334         * read-md.h (read_md_file): Declare.
24335         (read_char, unread_char): New functions.
24336         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24337         (read_quoted_string, read_string): Remove FILE * argument.
24338         * read-md.c (read_md_file): New variable.
24339         (read_md_filename, read_md_lineno): Update comments and remove
24340         unnecessary initialization.
24341         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24342         (read_escape, read_quoted_string, read_braced_string, read_string):
24343         Remove FILE * argument.  Update calls accordingly, using read_char
24344         and unread_char instead of getc and ungetc.
24345         * rtl.h (read_rtx): Remove FILE * argument.
24346         * read-rtl.c (iterator_group): Remove FILE * argument from
24347         "find_builtin".
24348         (iterator_traverse_data): Remove "infile" field.
24349         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
24350         (add_mapping, read_name, read_constants, read_conditions)
24351         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
24352         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
24353         Remove file arguments from all calls, using read_char and unread_char
24354         instead of getc and ungetc.
24355         * gensupport.c (process_include): Preserve read_md_file around
24356         the include.  Set read_md_file to the handle of the included file.
24357         Update call to read_rtx.
24358         (init_md_reader_args_cb): Set read_md_file to the handle of the file
24359         and remove local FILE *.  Update calls to read_rtx.
24360
24361 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24362
24363         * read-md.h (read_rtx_lineno): Rename to...
24364         (read_md_lineno): ...this.
24365         (read_rtx_filename): Rename to...
24366         (read_md_filename): ...this.
24367         (copy_rtx_ptr_loc): Rename to...
24368         (copy_md_ptr_loc): ...this.
24369         (print_rtx_ptr_loc): Rename to...
24370         (print_md_ptr_loc): ...this.
24371         * read-md.c: Likewise.  Update references after renaming.
24372         (string_obstack): Replace RTL with MD in comment.
24373         (set_rtx_ptr_loc): Rename to...
24374         (set_md_ptr_loc): ...this.
24375         (get_rtx_ptr_loc): Rename to...
24376         (get_md_ptr_loc): ...this.
24377         * genconditions.c: Update references after renaming.
24378         * genemit.c: Likewise.
24379         * genoutput.c: Likewise.
24380         * genpreds.c: Likewise.
24381         * gensupport.c: Likewise.
24382         * read-rtl.c: Likewise.
24383
24384 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24385
24386         * Makefile.in (READ_MD_H): New variable.
24387         (BUILD_RTL): Add build/read-md.o.
24388         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
24389         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
24390         (build/genattrtab.o, build/genconditions.o build/genemit.o)
24391         (build/genextract.o, build/genflags.o, build/genoutput.o)
24392         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
24393         (build/read-md.o): New rule.
24394         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
24395         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
24396         * coretypes.h: ...here.
24397         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
24398         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
24399         * genattr.c: Include read-md.h.
24400         * genattrtab.c: Likewise.
24401         * genconditions.c: Likewise.
24402         * genemit.c: Likewise.
24403         * genextract.c: Likewise.
24404         * genflags.c: Likewise.
24405         * genoutput.c: Likewise.
24406         * genpreds.c: Likewise.
24407         * genrecog.c: Likewise.
24408         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
24409         (join_c_conditions, print_c_condition, read_rtx_filename)
24410         (read_rtx_lineno): Move to read-md.h.
24411         * read-rtl.c: Include read-md.h.
24412         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
24413         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
24414         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
24415         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
24416         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
24417         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
24418         (read_braced_string, read_string): Move to read-md.c.
24419         (read_rtx): Move some initialization to init_md_reader and call
24420         init_md_reader here.
24421         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
24422         Move to read-md.h.
24423         * gensupport.c: Include read-md.h.
24424         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
24425         * read-md.h, read-md.c: New files.
24426
24427 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
24428
24429         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24430         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24431         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
24432         * config/moxie/moxie.c (moxie_function_value): Make static.
24433         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
24434         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
24435
24436 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24437
24438         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
24439         * dbgcnt.def (tree_sra): New counter.
24440         * tree-sra.c: Include dbgcnt.h.
24441         (gate_intra_sra): Check tree_sra debug counter.
24442
24443 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24444
24445         PR tree-optimization/44258
24446         * tree-sra.c (build_access_subtree): Return false iff there is a
24447         partial overlap.
24448         (build_access_trees): Likewise.
24449         (analyze_all_variable_accesses): Disqualify candidates if
24450         build_access_trees returns true for them.
24451
24452 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
24453
24454         PR debug/41371
24455         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
24456         tail-recurse into canonical node.  Fast-forward over
24457         non-canonical VALUEs.
24458
24459 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
24460
24461         PR boostrap/44470
24462         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
24463         (*addsi_1_zext) <TYPE_LEA>: Likewise.
24464         (add lea splitter): Likewise.
24465         (add_zext lea splitter): Likewise.
24466
24467 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
24468
24469         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
24470
24471 2010-06-10  Jan Hubicka  <jh@suse.cz>
24472
24473         * df-problems.c (df_live_problem_data): Add live_bitmaps.
24474         (df_live_alloc): Initialize problem data and live_osbtacks.
24475         (df_live_finalize): Remove obstack, problem data; do not
24476         clear all bitmaps.
24477         (df_live_top_dump, df_live_bottom_dump): Do not dump old
24478         data when not allocated.
24479         (df_live_verify_solution_start): Do not allocate problem data.
24480         (df_live_verify_solution_end): Check if out is allocated.
24481         (struct df_md_problem_data): New structure.
24482         (df_md_alloc): Allocate problem data.
24483         (df_md_free): Free problem data; do not clear bitmaps.
24484
24485 2010-06-10  Jan Beulich  <jbeulich@novell.com>
24486
24487         PR bootstrap/37304
24488         * configure.ac: Replace $() with ${} when intending to expand
24489         variables rather than invoking commands.
24490         * configure: Re-generate.
24491
24492 2010-06-10  Jan Hubicka  <jh@suse.cz>
24493
24494         PR rtl-optimization/44460
24495         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
24496         TYPE_NEEDS_CONSTRUCTING sanity check.
24497
24498 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
24499
24500         * doc/include/fdl.texi: Move to GFDL version 1.3.
24501
24502         * doc/cpp.texi: Move to GFDL version 1.3.
24503         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
24504         * doc/gccint.texi: Move to GFDL version 1.3.
24505         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
24506         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
24507         * doc/invoke.texi: Move to GFDL version 1.3.
24508
24509 2010-06-09  Jan Hubicka  <jh@suse.cz>
24510
24511         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
24512         Break out from ...
24513         (propagate) ... here; swap the order.
24514
24515 2010-06-09  Jan Hubicka  <jh@suse.cz>
24516
24517         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
24518         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
24519         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
24520         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
24521
24522 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24523
24524         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
24525         Do not the gather memory reference in the outer loop if the step
24526         is not a constant.
24527
24528 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24529
24530         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
24531         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
24532         8 to 4.  Minor change of the related comments.
24533
24534 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24535
24536         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
24537         the scev analysis when the variable is not used outside the loop
24538         in a close phi node: call compute_overall_effect_of_inner_loop.
24539
24540 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24541
24542         * graphite-sese-to-poly.c (single_pred_cond): Renamed
24543         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
24544         (build_sese_conditions_before): Renamed call to single_pred_cond.
24545         (build_sese_conditions_after): Same.
24546
24547 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24548
24549         * graphite-poly.h: Fix comments and indentation.
24550         * graphite-sese-to-poly.c: Same.
24551         (build_sese_conditions_before): Compute stmt and gbb only when needed.
24552         * tree-chrec.c: Fix comments and indentation.
24553         (tree-ssa-loop-niter.c): Same.
24554
24555 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
24556
24557         PR rtl-optimization/42461
24558         * dce.c (deletable_insn_p): Return true for const or pure calls again.
24559         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
24560
24561 2010-06-09  Jan Hubicka  <jh@suse.cz>
24562
24563         * bitmap.c (bitmap_and): Walk array forward.
24564         (bitmap_and_compl_into): Likewise.
24565         (bitmap_xor): Likewise.
24566         (bitmap_xor_into):  Likewise.
24567         (bitmap_equal_p): Likewise.
24568         (bitmap_intersect_p): Likewise.
24569         (bitmap_intersect_compl_p): Likewise.
24570         (bitmap_ior_and_into): Likewise.
24571         (bitmap_elt_copy): Likewise.
24572         (bitmap_and_compl): Likewise.
24573         (bitmap_elt_ior): Likewise.
24574
24575 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
24576
24577         * opts-common.c (prune_options): Ensure replacement argv array
24578         is correctly terminated by a NULL entry.
24579
24580 2010-06-09  Jan Hubicka  <jh@suse.cz>
24581
24582         * cgraph.h (varpool_first_static_initializer,
24583         varpool_next_static_initializer): Make checking only when
24584         checking enabled.
24585         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
24586         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
24587         gcc_assert to gcc_checking_assert.
24588         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
24589         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
24590         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
24591         op_iter_init_phiuse, op_iter_init_phidef,
24592         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
24593         gcc_checking_assert.
24594         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
24595         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
24596         partition_is_global, live_on_entry, live_on_exit,
24597         live_merge_and_clear): Likewise.
24598         * system.h (gcc_checking_assert): New macro.
24599         * gimple.h (set_bb_seq): Use gcc_checking_assert.
24600
24601 2010-06-09  Jason Merrill  <jason@redhat.com>
24602
24603         * Makefile.in (TAGS): Collect tags info from c-family.
24604
24605 2010-06-09  Jan Hubicka  <jh@suse.cz>
24606
24607         * gimple.h (gcc_gimple_checking_assert): New macro.
24608         (gimple_set_def_ops, gimple_set_use_ops,
24609         gimple_set_vuse, gimple_set_vdef,
24610         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
24611         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
24612         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
24613         gimple_asm_output_op, gimple_asm_output_op_ptr,
24614         gimple_asm_set_output_op, gimple_asm_clobber_op,
24615         gimple_asm_set_clobber_op, gimple_asm_label_op,
24616         gimple_asm_set_label_op, gimple_try_set_kind,
24617         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
24618         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
24619         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
24620         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
24621         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
24622         gimple_omp_for_set_initial, gimple_omp_for_final,
24623         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
24624         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
24625         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
24626         conditional with ENABLE_GIMPLE_CHECKING.
24627         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
24628
24629 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
24630
24631         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
24632         (get_computation_cost_at): Use it.
24633         (determine_use_iv_cost_condition): Likewise.
24634         (determine_iv_cost): Likewise.
24635
24636 2010-06-09  Richard Guenther  <rguenther@suse.de>
24637
24638         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
24639         replace constants.
24640
24641 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
24642
24643         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
24644
24645 2010-06-09  Martin Jambor  <mjambor@suse.cz>
24646
24647         PR tree-optimization/44423
24648         * tree-sra.c (dump_access): Dump also grp_assignment_read.
24649         (analyze_access_subtree): Pass negative allow_replacements to children
24650         if the current type is scalar.
24651
24652 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24653
24654         PR testsuite/42843
24655         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
24656         * doc/plugins.texi (Plugin license check): Update information
24657         on type of plugin_is_GPL_compatible.
24658         * Makefile.in (PLUGINCC): Define as $(COMPILER).
24659         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
24660
24661 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
24662
24663         * config/arm/arm.c (thumb2_reorg): New function.
24664         (arm_reorg): Call it.
24665         * config/arm/thumb2.md (define_peephole2 for flag clobbering
24666         arithmetic operations): Delete.
24667
24668 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
24669
24670         PR target/44067
24671         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
24672         e500v2 target.
24673
24674 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24675
24676         PR plugins/44459
24677         * gcc-plugin.h: Encapsulate all declarations in extern "C".
24678
24679 2010-06-08  Jan Hubicka  <jh@suse.cz>
24680
24681         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
24682         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
24683
24684 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
24685
24686         PR tree-optimization/39874
24687         PR middle-end/28685
24688         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
24689         Declare.
24690         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
24691         same_bool_result_p): New.
24692         (and_var_with_comparison, and_var_with_comparison_1,
24693         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
24694         (or_var_with_comparison, or_var_with_comparison_1,
24695         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
24696         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
24697         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
24698         of combine_comparisons.
24699         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
24700
24701 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
24702
24703         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24704         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24705         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
24706         pdp11_function_value_regno_p): New functions.
24707         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24708         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24709
24710 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
24711
24712         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
24713         Thumb-2 in the MINUS case.
24714
24715 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24716
24717         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
24718
24719         * doc/gty.texi (GTY Options): Document typed GC allocation and
24720         variable_size GTY option.
24721
24722         * ggc-internal.h: New.
24723
24724         * ggc.h: Update copyright year.
24725         (digit_string): Move to stringpool.c.
24726         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
24727         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
24728         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
24729         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
24730         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
24731         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
24732         (ggc_force_collect, ggc_get_size, ggc_statistics)
24733         (ggc_print_common_statistics): Move to ggc-internal.h.
24734         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
24735         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
24736         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
24737         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
24738         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
24739         (ggc_alloc_zone_pass_stat): Remove.
24740         (ggc_internal_alloc_stat, ggc_internal_alloc)
24741         (ggc_internal_cleared_alloc_stat): New.
24742         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
24743         (ggc_internal_vec_alloc_stat)
24744         (ggc_internal_cleared_vec_alloc_stat)
24745         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
24746         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
24747         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
24748         (ggc_cleared_alloc_ptr_array_two_args): New.
24749         (htab_create_ggc, splay_tree_new_ggc): Redefine.
24750         (ggc_splay_alloc): Change the type of the first argument to
24751         enum gt_types_enum.
24752         (ggc_alloc_string): Make macro.
24753         (ggc_alloc_string_stat): New.
24754         (ggc_strdup): Redefine.
24755         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
24756         (ggc_alloc_rtvec_sized): New.
24757         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
24758         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
24759         (ggc_internal_cleared_alloc_zone_stat)
24760         (ggc_internal_zone_alloc_stat)
24761         (ggc_internal_zone_cleared_alloc_stat)
24762         (ggc_internal_zone_vec_alloc_stat)
24763         (ggc_alloc_zone_rtx_def_stat)
24764         (ggc_alloc_zone_tree_node_stat)
24765         (ggc_alloc_zone_cleared_tree_node_stat)
24766         (ggc_alloc_cleared_gimple_statement_d_stat): New.
24767
24768         * ggc-common.c: Include ggc-internal.h.
24769         (ggc_internal_cleared_alloc_stat): Rename from
24770         ggc_alloc_cleared_stat.
24771         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
24772         (ggc_calloc): Remove.
24773         (ggc_cleared_alloc_htab_ignore_args): New.
24774         (ggc_cleared_alloc_ptr_array_two_args): New.
24775         (ggc_splay_alloc): Add obj_type parameter.
24776         (init_ggc_heuristics): Formatting fixes.
24777
24778         * ggc-none.c: Update copyright year.
24779         (ggc_alloc_stat): Rename to ggc_alloc_stat.
24780         (ggc_alloc_cleared_stat): Rename to
24781         ggc_internal_cleared_alloc_stat.
24782         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24783
24784         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
24785         Remove references to ggc_alloc in comments.
24786         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
24787         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
24788         (new_ggc_zone, destroy_ggc_zone): Remove.
24789         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24790
24791         * ggc-zone.c: Include ggc-internal.h.  Remove references to
24792         ggc_alloc in comments.
24793         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
24794         (ggc_internal_alloc_zone_pass_stat): New.
24795         (ggc_internal_cleared_alloc_zone_stat): New.
24796         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
24797         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
24798         (new_ggc_zone, destroy_ggc_zone): Remove.
24799
24800         * stringpool.c: Update copyright year.  Include ggc-internal.h
24801         (digit_vector): Make static.
24802         (digit_string): Moved from ggc.h.
24803         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
24804         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
24805
24806         * Makefile.in (GGC_INTERNAL_H): New.
24807         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
24808         $(GGC_INTERNAL_H) to dependencies.
24809
24810         * gengtype.c: Update copyright year.
24811         (walk_type): Accept variable_size GTY option.
24812         (USED_BY_TYPED_GC_P): New macro.
24813         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
24814         whitespace at the end of strings.
24815         (get_type_specifier, variable_size_p): New functions.
24816         (alloc_quantity, alloc_zone): New enums.
24817         (write_typed_alloc_def): New function.
24818         (write_typed_struct_alloc_def): Likewise.
24819         (write_typed_typed_typedef_alloc_def): Likewise.
24820         (write_typed_alloc_defns): Likewise.
24821         (output_typename, write_splay_tree_allocator_def): Likewise.
24822         (write_splay_tree_allocators): Likewise.
24823         (main): Call write_typed_alloc_defns and
24824         write_splay_tree_allocators.
24825
24826         * lto-streamer.h (lto_file_decl_data_ptr): New.
24827
24828         * passes.c (order): Define using cgraph_node_ptr.
24829
24830         * strinpool.c (struct string_pool_data): Declare nested_ptr using
24831         ht_identifier_ptr.
24832
24833         * gimple.h (union gimple_statement_d): Likewise.
24834
24835         * rtl.h (struct rtx_def): Likewise.
24836         (struct rtvec_def): Likewise.
24837
24838         * tree.h (union tree_node): Likewise.
24839
24840         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
24841
24842         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
24843
24844         * tree-scalar-evolution.c (scev_initialize): Likewise.
24845
24846         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
24847
24848         * dwarf2asm.c (dw2_force_const_mem): Likewise.
24849
24850         * omp-low.c (lower_omp_critical): Likewise.
24851
24852         * bitmap.h (struct bitmap_head_def): Update comment to not
24853         reference ggc_alloc.
24854
24855         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
24856
24857         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
24858
24859         * ipa-prop.c (duplicate_ggc_array): Rename to
24860         duplicate_ipa_jump_func_array.  Use typed GC allocation.
24861         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
24862
24863         * gimple.c (gimple_alloc_stat): Use
24864         ggc_alloc_cleared_gimple_statement_d_stat.
24865
24866         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
24867
24868         * tree.c (make_node_stat): Use
24869         ggc_alloc_zone_cleared_tree_node_stat.
24870         (make_tree_vec_stat): Likewise.
24871         (build_vl_exp_stat): Likewise.
24872         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
24873         (make_tree_binfo_stat): Likewise.
24874         (tree_cons_stat): Likewise.
24875
24876         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
24877         (shallow_copy_rtx_stat): Likewise.
24878         (make_node_stat): Likewise.
24879
24880         * lto-symtab.c: Fix comment.
24881
24882         * tree-cfg.c (create_bb): Update comment to not reference
24883         ggc_alloc_cleared.
24884         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
24885
24886         * varpool.c (varpool_node): Use typed GC allocation.
24887         (varpool_extra_name_alias): Likewise.
24888
24889         * varasm.c (emutls_decl): Likewise.
24890         (get_unnamed_section): Likewise.
24891         (get_noswitch_section): Likewise.
24892         (get_section): Likewise.
24893         (get_block_for_section): Likewise.
24894         (build_constant_desc): Likewise.
24895         (create_constant_pool): Likewise.
24896         (force_const_mem): Likewise.
24897
24898         * tree.c (build_vl_exp_stat): Likewise.
24899         (build_real): Likewise.
24900         (build_string): Likewise.
24901         (decl_debug_expr_insert): Likewise.
24902         (decl_value_expr_insert): Likewise.
24903         (type_hash_add): Likewise.
24904         (build_omp_clause): Likewise.
24905
24906         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
24907
24908         * tree-ssa.c (init_tree_ssa): Likewise.
24909
24910         * tree-ssa-structalias.c (heapvar_insert): Likewise.
24911
24912         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
24913
24914         * tree-ssa-loop-niter.c (record_estimate): Likewise.
24915
24916         * tree-ssa-alias.c (get_ptr_info): Likewise.
24917
24918         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
24919
24920         * tree-phinodes.c (allocate_phi_node): Likewise.
24921
24922         * tree-iterator.c (tsi_link_before): Likewise.
24923         (tsi_link_after): Likewise.
24924
24925         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
24926
24927         * tree-dfa.c (create_var_ann): Likewise.
24928
24929         * tree-cfg.c (create_bb): Likewise.
24930
24931         * toplev.c (alloc_for_identifier_to_locale): Likewise.
24932         (general_init): Likewise.
24933
24934         * stringpool.c (stringpool_ggc_alloc): Likewise.
24935         (gt_pch_save_stringpool): Likewise.
24936
24937         * sese.c (if_region_set_false_region): Likewise.
24938
24939         * passes.c (do_per_function_toporder): Likewise.
24940
24941         * optabs.c (set_optab_libfunc): Likewise.
24942         (set_conv_libfunc): Likewise.
24943
24944         * lto-symtab.c (lto_symtab_register_decl): Likewise.
24945
24946         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
24947         (input_eh_region): Likewise.
24948         (input_eh_lp): Likewise.
24949         (make_new_block): Likewise.
24950         (unpack_ts_real_cst_value_fields): Likewise.
24951
24952         * lto-section-in.c (lto_new_in_decl_state): Likewise.
24953
24954         * lto-cgraph.c (input_node_opt_summary): Likewise.
24955
24956         * loop-init.c (loop_optimizer_init): Likewise.
24957
24958         * lambda.h (lambda_vector_new): Likewise.
24959
24960         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
24961
24962         * ira.c (update_equiv_regs): Likewise.
24963
24964         * ipa.c (cgraph_node_set_new): Likewise.
24965         (cgraph_node_set_add): Likewise.
24966         (varpool_node_set_new): Likewise.
24967         (varpool_node_set_add): Likewise.
24968
24969         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
24970         (duplicate_ipa_jump_func_array): Likewise.
24971         (ipa_read_node_info): Likewise.
24972
24973         * ipa-cp.c (ipcp_create_replace_map): Likewise.
24974
24975         * integrate.c (get_hard_reg_initial_val): Likewise.
24976
24977         * gimple.c (gimple_alloc_stat): Likewise.
24978         (gimple_build_omp_for): Likewise.
24979         (gimple_seq_alloc): Likewise.
24980         (gimple_copy): Likewise.
24981
24982         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
24983         (gsi_insert_after_without_update): Likewise.
24984
24985         * function.c (add_frame_space): Likewise.
24986         (insert_temp_slot_address): Likewise.
24987         (assign_stack_temp_for_type): Likewise.
24988         (allocate_struct_function): Likewise.
24989         (types_used_by_var_decl_insert): Likewise.
24990
24991         * except.c (init_eh_for_function): Likewise.
24992         (gen_eh_region): Likewise.
24993         (gen_eh_region_catch): Likewise.
24994         (gen_eh_landing_pad): Likewise.
24995         (add_call_site): Likewise.
24996
24997         * emit-rtl.c (get_mem_attrs): Likewise.
24998         (get_reg_attrs): Likewise.
24999         (start_sequence): Likewise.
25000         (init_emit): Likewise.
25001
25002         * dwarf2out.c (new_cfi): Likewise.
25003         (queue_reg_save): Likewise.
25004         (dwarf2out_frame_init): Likewise.
25005         (new_loc_descr): Likewise.
25006         (find_AT_string): Likewise.
25007         (new_die): Likewise.
25008         (add_var_loc_to_decl): Likewise.
25009         (clone_die): Likewise.
25010         (clone_as_declaration): Likewise.
25011         (break_out_comdat_types): Likewise.
25012         (new_loc_list): Likewise.
25013         (loc_descriptor): Likewise.
25014         (add_loc_descr_to_each): Likewise.
25015         (add_const_value_attribute): Likewise.
25016         (tree_add_const_value_attribute): Likewise.
25017         (add_comp_dir_attribute): Likewise.
25018         (add_name_and_src_coords_attributes): Likewise.
25019         (lookup_filename): Likewise.
25020         (store_vcall_insn): Likewise.
25021         (dwarf2out_init): Likewise.
25022
25023         * dbxout.c (dbxout_init): Likewise.
25024
25025         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
25026
25027         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
25028
25029         * config/score/score7.c (score7_output_external): Likewise.
25030
25031         * config/score/score3.c (score3_output_external): Likewise.
25032
25033         * config/s390/s390.c (s390_init_machine_status): Likewise.
25034
25035         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
25036         (rs6000_init_machine_status): Likewise.
25037         (output_toc): Likewise.
25038
25039         * config/pa/pa.c (pa_init_machine_status): Likewise.
25040         (get_deferred_plabel): Likewise.
25041
25042         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
25043
25044         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
25045
25046         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
25047
25048         * config/mep/mep.c (mep_init_machine_status): Likewise.
25049         (mep_note_pragma_flag): Likewise.
25050
25051         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
25052
25053         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
25054
25055         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
25056
25057         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
25058         (i386_pe_maybe_record_exported_symbol): Likewise.
25059
25060         * config/i386/i386.c (get_dllimport_decl): Likewise.
25061         (ix86_init_machine_status): Likewise.
25062         (assign_386_stack_local): Likewise.
25063
25064         * config/frv/frv.c (frv_init_machine_status): Likewise.
25065
25066         * config/darwin.c (machopic_indirection_name): Likewise.
25067
25068         * config/cris/cris.c (cris_init_machine_status): Likewise.
25069
25070         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
25071
25072         * config/avr/avr.c (avr_init_machine_status): Likewise.
25073
25074         * config/arm/arm.c (arm_init_machine_status): Likewise.
25075
25076         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
25077         (alpha_need_linkage): Likewise.
25078         (alpha_use_linkage): Likewise.
25079
25080         * cgraph.c (cgraph_allocate_node): Likewise.
25081         (cgraph_create_edge_1): Likewise.
25082         (cgraph_create_indirect_edge): Likewise.
25083         (cgraph_add_asm_node): Likewise.
25084
25085         * cfgrtl.c (init_rtl_bb_info): Likewise.
25086
25087         * cfgloop.c (alloc_loop): Likewise.
25088         (rescan_loop_exit): Likewise.
25089
25090         * cfg.c (init_flow): Likewise.
25091         (alloc_block): Likewise.
25092         (unchecked_make_edge): Likewise.
25093
25094         * c-parser.c (c_parse_init): Likewise.
25095         (c_parse_file): Likewise.
25096
25097         * c-decl.c (bind): Likewise.
25098         (record_inline_static): Likewise.
25099         (push_scope): Likewise.
25100         (make_label): Likewise.
25101         (lookup_label_for_goto): Likewise.
25102         (finish_struct): Likewise.
25103         (finish_enum): Likewise.
25104         (c_push_function_context): Likewise.
25105
25106         * bitmap.c (bitmap_element_allocate): Likewise.
25107         (bitmap_gc_alloc_stat): Likewise.
25108
25109         * alias.c (record_alias_subset): Likewise.
25110         (init_alias_analysis): Likewise.
25111
25112 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
25113
25114         * fold-const.c (fold_comparison): Remove redundant parenthesis.
25115         * tree-inline.c (expand_call_inline): Pass translated return value of
25116         cgraph_inline_failed_string to diagnostic function.
25117
25118 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
25119             Shujing Zhao  <pearly.zhao@oracle.com>
25120
25121         PR c/37724
25122         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
25123         implicit bad conversions is initialization.
25124         (error_init): Use gmsgid instead of msgid for argument name and change
25125         the call for error.
25126         (pedwarn_init): Use gmsgid instead of msgid for argument name and
25127         change the call for pedwarn.
25128         (warning_init): Use gmsgid instead of msgid for argument name and
25129         change the call for warning.
25130
25131 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
25132
25133         * config/mips/mips-protos.h (mips_print_operand): Delete.
25134         (mips_print_operand_address): Delete.
25135         * config/mips/mips.h (mips_print_operand_punct): Delete.
25136         (PRINT_OPERAND): Delete.
25137         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25138         (PRINT_OPERAND_ADDRESS): Delete.
25139         * config/mips/mips.c (mips_print_operand_punct): Make static.
25140         (mips_print_operand_address): Make static.
25141         (mips_print_operand): Make static.  Call
25142         mips_print_operand_punct_valid_p.
25143         (mips_print_operand_punct_valid_p): New function.
25144         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25145         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25146
25147 2010-06-07  Jan Hubicka  <jh@suse.cz>
25148
25149         PR middle-end/44454
25150         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
25151         are allocated.
25152
25153 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
25154
25155         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
25156         name of RECORD.
25157
25158 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25159
25160         * doc/sourcebuild.texi (Effective-Target Keywords, Other
25161         attributes): Document gas.
25162
25163 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
25164
25165         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
25166         <TYPE_LEA>: Split instruction.
25167         <default>: Remove alternative 2 handling.
25168         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
25169         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
25170         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
25171
25172         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
25173         (ashift_zext lea splitter): Use DImode for multiplication.
25174
25175         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
25176         to generate addition.
25177
25178 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
25179
25180         * common.opt (fira-verbose): Use Var.
25181         (fpcc-struct-return): Use Init instead of VarExists.
25182         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
25183         toplev.c.
25184         * flags.h (flag_signed_char, flag_short_enums,
25185         flag_pcc_struct_return, flag_ira_verbose,
25186         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
25187         * toplev.c (flag_detailed_statistics, flag_signed_char,
25188         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
25189         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
25190         * toplev.h (flag_crossjumping, flag_if_conversion,
25191         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
25192         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
25193         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
25194         flag_cprop_registers, time_report, flag_ira_loop_pressure,
25195         flag_ira_coalesce, flag_ira_move_spills,
25196         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
25197
25198 2010-06-07  Jan Hubicka  <jh@suse.cz>
25199
25200         * df-core.c (df_analyze_problem): Do verification after allocation.
25201
25202         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
25203         (df_lr_alloc): Initialize problem data; move bitmaps to
25204         lr_bitmaps obstack.
25205         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
25206         (df_lr_verify_solution_start): Do not initialize problem data;
25207         allocate bitmaps in lr_bitmaps.
25208         (df_lr_verify_solution_end): Do not free problem data.
25209
25210 2010-06-07  Jan Hubicka  <jh@suse.cz>
25211
25212         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
25213         if caller is noreturn.
25214         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
25215         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
25216         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
25217         * ipa-pure-const.c (check_decl): Add IPA parameter.
25218         (state_from_flags): New function.
25219         (better_state, worse_state): New functions.
25220         (check_call): When in IPA mode, do not care about callees.
25221         (check_load, check_store): Update.
25222         (check_ipa_load, check_ipa_store): New.
25223         (check_stmt): When in IPA mode, use IPA checkers.
25224         (analyze_function): Use state_from_flags.
25225         (propagate): Check indirect edges and references.
25226
25227 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
25228
25229         PR rtl-optimization/44404
25230         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
25231         of count_occurrences to see if it's safe to modify mem_insn.
25232
25233 2010-06-07  Richard Guenther  <rguenther@suse.de>
25234
25235         * gimplify.c (gimplify_cleanup_point_expr): For empty body
25236         and EH-only cleanup drop the cleanup instead of inserting it
25237         unconditionally.
25238
25239 2010-06-07  Ira Rosen  <irar@il.ibm.com>
25240
25241         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
25242         documentation.
25243         * targhooks.c (default_builtin_vectorization_cost): New function.
25244         * targhooks.h (default_builtin_vectorization_cost): Declare.
25245         * target.h (enum vect_cost_for_stmt): Define.
25246         (builtin_vectorization_cost): Change argument and comment.
25247         * tree-vectorizer.h: Remove cost model macros.
25248         * tree-vect-loop.c: Include target.h.
25249         (vect_get_cost): New function.
25250         (vect_estimate_min_profitable_iters): Replace cost model macros with
25251         calls to vect_get_cost.
25252         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
25253         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
25254         default implementation.
25255         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
25256         calls to target hook builtin_vectorization_cost.
25257         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
25258         Likewise.
25259         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
25260         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
25261         implementation to return costs.
25262         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
25263         * config/spu/spu.h: Remove vectorizer cost model macros.
25264         * config/i386/i386.h: Likewise.
25265         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
25266         a call to target hook builtin_vectorization_cost.
25267
25268 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
25269
25270         PR target/44319
25271         * config/i386/i386.c (override_options): Turn zee pass on for level 2
25272         and above and defer till target is known.
25273         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
25274         turn off otherwise.
25275
25276 2010-05-25  Jan Hubicka  <jh@suse.cz>
25277
25278         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
25279         (df_compact_blocks): Likewise.
25280         * df.h (struct df): Turn hardware_regs_used,
25281         regular_block_artificial_uses, eh_block_artificial_uses,
25282         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
25283         bitmap_head.
25284         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
25285         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
25286         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
25287         df_scan_blocks, df_insn_delete, df_insn_rescan,
25288         df_insn_rescan_debug_internal, df_insn_rescan_all,
25289         df_process_deferred_rescans, df_process_deferred_rescans,
25290         df_notes_rescan, df_get_call_refs, df_get_call_refs,
25291         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
25292         df_record_entry_block_defs, df_record_exit_block_uses,
25293         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
25294         df_scan_verify): Update.
25295
25296 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
25297
25298         PR c++/44188
25299         * c-common.c (is_typedef_decl): Move this definition ...
25300         * tree.c (is_typedef_decl): ... here.
25301         (typdef_variant_p): Move definition here from cp/tree.c.
25302         * c-common.h (is_typedef_decl): Move this declaration ...
25303         * tree.h (is_typedef_decl): ... here.
25304         (typedef_variant_p): Move declaration here from cp/cp-tree.h
25305         * dwarf2out.c (is_naming_typedef_decl): New function.
25306         (gen_tagged_type_die): Split out of ...
25307         (gen_type_die_with_usage): ... this function. When an anonymous
25308         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
25309         is emitted for the typedef.
25310         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
25311         anonymous tagged types.
25312
25313 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25314
25315         PR c/20000
25316         * c-decl.c (grokdeclarator): Delete warning.
25317
25318 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
25319
25320         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
25321         newly built CALL_EXPR.
25322         * tree-profile.c (tree_profiling): Don't profile functions produced
25323         for built-in stuff.
25324
25325 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
25326
25327         PR bootstrap/44427
25328         PR bootstrap/44428
25329         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
25330         endianness-independent.
25331
25332 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
25333
25334         * c-common.c: Move to c-family/.
25335         * c-common.def: Likewise.
25336         * c-common.h: Likewise.
25337         * c-cppbuiltin.c: Likewise.
25338         * c-dump.c: Likewise.
25339         * c-format.c: Likewise.
25340         * c-format.h : Likewise.
25341         * c-gimplify.c: Likewise.
25342         * c-lex.c: Likewise.
25343         * c-omp.c: Likewise.
25344         * c.opt: Likewise.
25345         * c-opts.c: Likewise.
25346         * c-pch.c: Likewise.
25347         * c-ppoutput.c: Likewise.
25348         * c-pragma.c: Likewise.
25349         * c-pragma.h: Likewise.
25350         * c-pretty-print.c: Likewise.
25351         * c-pretty-print.h: Likewise.
25352         * c-semantics.c: Likewise.
25353         * stub-objc.c: Likewise.
25354
25355         * gengtype.c (get_file_langdir): Special-case files in c-family/.
25356         (get_output_file_with_visibility): Fix name for c-common.h.
25357         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
25358
25359         * c-tree.h: Update include path for moved files.
25360         * c-lang.c: Likewise.
25361         * c-lang.h: Likewise.
25362         * c-parser.c: Likewise.
25363         * c-convert.c: Likewise.
25364         * c-decl.c: Likewise.
25365         * c-objc-common.c: Likewise.
25366         * configure.ac: Make sure c-family/ exists in the build directory.
25367         * configure: Regenerate.
25368         * Makefile.in: Update paths for moved files.  Regroup files per
25369         location and update dependencies.  Move generated_files down after
25370         ALL_GTFILES_H.
25371
25372         * config/spu/spu-c.c: Update paths for moved files.
25373         * config/mep/mep-pragma.c: Likewise.
25374         * config/darwin-c.c: Likewise.
25375         * config/i386/msformat-c.c: Likewise.
25376         * config/i386/i386-c.c: Likewise.
25377         * config/avr/avr-c.c: Likewise.
25378         * config/sol2-c.c: Likewise.
25379         * config/ia64/ia64-c.c: Likewise.
25380         * config/rs6000/rs6000-c.c: Likewise.
25381         * config/arm/arm.c: Likewise.
25382         * config/arm/arm-c.c: Likewise.
25383         * config/h8300/h8300.c: Likewise.
25384         * config/v850/v850-c.c: Likewise.
25385
25386         * config/t-darwin: Fix dependencies for moved files.
25387         * config/t-sol2: Fix dependencies for moved files.
25388         * config/mep/t-mep: Fix dependencies for moved files.
25389         * config/ia64/t-ia64: Fix dependencies for moved files.
25390         * config/rs6000/t-rs6000: Fix dependencies for moved files.
25391         * config/v850/t-v850: Fix dependencies for moved files.
25392         * config/v850/t-v850e: Fix dependencies for moved files.
25393
25394         * config/m32c/m32c-pragma.c
25395
25396         * po/exgettext: Look in c-family/ also.
25397
25398 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
25399
25400         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
25401         (mark_control_dependent_edges_necessary): Call it instead of marking
25402         the last statement manually.
25403         (propagate_necessity): Likewise.
25404
25405 2010-06-05  Jan Hubicka  <jh@suse.cz>
25406
25407         * basic-block.h (compute_dominance_frontiers): Updated.
25408         (compute_idf): Likewise.
25409
25410         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
25411         for dominance frontiers.
25412         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
25413         (insert_updated_phi_nodes_for): Likewise.
25414         (update_ssa): Likewise.
25415         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25416         (compute_dominance_frontiers): Likewise.
25417         (compute_idf): Likewise.
25418         * df-problems.c (df_md_local_compute): Likewise.
25419
25420 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
25421
25422         * target.h (struct gcc_target): Add memory_move_cost field.
25423         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
25424         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
25425         * targhooks.c (default_memory_move_cost): New function.
25426         * targhooks.h (default_memory_move_cost): Declare function.
25427         * reload.h (memory_move_cost): Declare.
25428         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25429         * reginfo.c (memory_move_cost): New function.
25430         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25431         * ira.h (ira_memory_move_cost): Update comment.
25432         * ira.c (ira_memory_move_cost): Update comment.
25433         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
25434         with memory_move_cost.
25435         * postreload.c (reload_cse_simplify_set): (Ditto.).
25436         * reload1.c (choose_reload_regs): (Ditto.).
25437         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
25438         (MEMORY_MOVE_COST):  Revise documentation.
25439
25440         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
25441         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
25442         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
25443         type of 'in' argument to bool.
25444         (TARGET_MEMORY_MOVE_COST): Define.
25445
25446 2010-06-05  Jan Hubicka  <jh@suse.cz>
25447
25448         * ipa-pure-const.c (propagate): Fix typo in handling of functions
25449         that cannot return.  Be more careful when merging the results with
25450         previously known ones.
25451
25452 2010-06-05  Matthias Klose  <doko@ubuntu.com>
25453
25454         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
25455         function to add the -iplugindir option.
25456         (find_plugindir_spec_function): Add new declaration and function.
25457         (static_spec_func): Use it for "find-plugindir".
25458
25459 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
25460
25461         PR c++/44361
25462         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
25463         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
25464         statement expression.
25465
25466 2010-06-05  Jan Hubicka  <jh@suse.cz>
25467
25468         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
25469         (df_rd_problem_data): Convert sparse_invalidated_by_call,
25470         dense_invalidated_by_call to bitmap head.
25471         (df_rd_alloc, df_rd_bb_local_compute_process_def,
25472         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
25473         df_rd_start_dump, df_lr_verify_transfer_functions,
25474         df_live_verify_transfer_functions, df_chain_create_bb,
25475         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
25476         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
25477         df_simulate_one_insn_forwards, df_md_alloc,
25478         df_md_bb_local_compute_process_def,
25479         df_md_bb_local_compute_process_def, df_md_local_compute,
25480         df_md_transfer_function df_md_free): Update.
25481
25482 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
25483
25484         PR c/44322
25485         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
25486         target type for ADDR_EXPR; require no changes to qualifiers except
25487         for function types.
25488         * c-tree.h (c_build_type_variant): Remove.
25489
25490 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25491
25492         * genautomata.c (get_excl_set): Do work per element, not per char.
25493         (check_presence_pattern_sets): Similar.
25494         (check_absence_pattern_sets): Similar.
25495
25496 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25497
25498         * genautomata.c (curr_state_pass_num): Delete.
25499         (min_issue_delay_pass_states): Delete.
25500         (min_issue_delay): Delete.
25501         (initiate_min_issue_delay_pass_states): Delete.
25502         (output_min_issue_delay_table): Compute min_issue_delay_vect
25503         using a breadth-first search variant.
25504         (output_tables): Don't call initiate_min_issue_delay_pass_states.
25505
25506 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
25507
25508         PR boostrap/44421
25509         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
25510         (df_byte_lr_bb_local_compute): Likewise.
25511
25512 2010-06-03  Jason Merrill  <jason@redhat.com>
25513
25514         Implement noexcept operator (5.3.7)
25515         * c-common.c (c_common_reswords): Add noexcept.
25516         * c-common.h (enum rid): Add RID_NOEXCEPT.
25517
25518 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
25519
25520         * config/darwin-driver.c (darwin_default_min_version): Use
25521         GCC-specific formats in diagnostics.
25522         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
25523         diagnostics.
25524         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
25525         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
25526         eval_spec_function, handle_braces, process_brace_body, main,
25527         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
25528         getenv_spec_function, compare_version_strings,
25529         version_compare_spec_function): Use GCC-specific formats in
25530         diagnostics.
25531
25532 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25533
25534         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
25535         that operand 0 and operand 1 are equal.
25536         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
25537         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
25538         and operand 1 are equal.
25539         <default>: Ditto.  Remove ??? comment.
25540         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
25541         and operand 1 are equal.
25542         <default>: Ditto.  Remove ??? comment.
25543         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
25544         are equal.
25545         (*add<mode>_4) <default>: Ditto.
25546         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
25547
25548 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
25549
25550         * config/i386/i386-protos.h (ix86_print_operand): Declare.
25551         * config/i386/i386.c (ix86_print_operand): Make non-static.
25552         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
25553         * output.h (output_operand): Declare.
25554         * final.c (output_operand): Make non-static.
25555
25556 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
25557
25558         PR rtl-optimization/44013
25559         * sched-deps.c (add_dependence_list_and_free): Don't free lists
25560         when processing debug insns.
25561
25562         PR debug/41371
25563         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
25564         recursing.  Check that recursion is bounded.  Rename inner var
25565         to avoid hiding incoming argument.
25566
25567 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25568
25569         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
25570         operands[2] == 255.
25571         (*addqi_3): Ditto.
25572         (*addqi_4): Ditto.
25573         (*addqi_5): Ditto.
25574         (*addqi_ext_1_rex64): Ditto.
25575         (*addqi_ext_1): Ditto.
25576
25577         (*addqi_4): Check for incdec_operand in QImode.
25578
25579         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
25580         using SWI mode iterator.
25581         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
25582         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
25583         mode iterator.
25584         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
25585         using SWI mode iterator.
25586
25587 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25588
25589         PR c/25880
25590         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
25591         * c-format.c (gcc_diag_flag_specs): Add hash.
25592         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
25593         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
25594         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
25595         pp_c_cv_qualifiers. Handle qualifiers spelling here.
25596         (pp_c_type_qualifier_list): Call the function above.
25597         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
25598         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
25599         (WARN_FOR_QUALIFIERS): New macro.
25600         (convert_for_assignment): Use it.
25601
25602 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
25603
25604         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
25605
25606 2010-06-04  Jan Hubicka  <jh@suse.cz>
25607
25608         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
25609         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
25610         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
25611         DF_BYTE_LR_OUT): Update for embedded bitmaps.
25612         * fwprop.c (single_def_use_enter_block): Likewise.
25613         * ddg.c (create_ddg_dep_from_intra_loop_link,
25614         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
25615         * loop-iv.c (latch_dominating_def): Likewise.
25616         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
25617         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
25618         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
25619         df_rd_transfer_function, df_rd_top_dump,
25620         df_rd_bottom_dump): Update.
25621         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
25622         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
25623         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
25624         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
25625         df_lr_verify_solution_start, df_lr_verify_solution_end,
25626         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
25627         df_live_free_bb_info, df_live_alloc, df_live_reset,
25628         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
25629         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
25630         df_live_verify_solution_start, df_live_verify_solution_end,
25631         df_live_verify_transfer_functions, df_chain_create_bb,
25632         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
25633         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25634         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25635         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
25636         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
25637         df_byte_lr_transfer_function, df_byte_lr_top_dump,
25638         df_byte_lr_bottom_dump, df_create_unused_note,
25639         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
25640         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
25641         df_md_transfer_function, df_md_init, df_md_confluence_0,
25642         df_md_confluence_n,
25643         df_md_top_dump, df_md_bottom_dump): Update.
25644         (struct df_lr_problem_data): Embedd bitmap headers.
25645
25646 2010-06-04  Jan Hubicka  <jh@suse.cz>
25647
25648         * dce.c (dce_process_block): Do not re-scan already marked
25649         instructions.
25650
25651 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
25652
25653         PR rtl-optimization/39871
25654         PR rtl-optimization/40615
25655         PR rtl-optimization/42500
25656         PR rtl-optimization/42502
25657         * ira.c (init_reg_equiv_memory_loc: New function.
25658         (ira): Call it twice.
25659         * reload.h (calculate_elim_costs_all_insns): Declare.
25660         * ira-costs.c: Include "reload.h".
25661         (regno_equiv_gains): New static variable.
25662         (init_costs): Allocate it.
25663         (finish_costs): Free it.
25664         (ira_costs): Call calculate_elim_costs_all_insns.
25665         (find_costs_and_classes): Take estimated elimination costs
25666         into account.
25667         (ira_adjust_equiv_reg_cost): New function.
25668         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
25669         * reload1.c (init_eliminable_invariants, free_reg_equiv,
25670         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
25671         (elim_bb): New static variable.
25672         (reload): Move code out of here into init_eliminable_invariants and
25673         free_reg_equiv.  Call them.
25674         (calculate_elim_costs_all_insns): New function.
25675         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
25676         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
25677         but call note_reg_elim_costly if we turned a valid memory address
25678         into an invalid one.
25679         * Makefile.in (ira-costs.o): Depend on reload.h.
25680
25681 2010-06-04  Julian Brown  <julian@codesourcery.com>
25682
25683         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
25684         for pool ranges.
25685
25686 2010-06-04  Richard Guenther  <rguenther@suse.de>
25687
25688         PR lto/41584
25689         * cgraph.h (struct varpool_node): Add lto_file_data field.
25690         * lto-cgraph.c (input_varpool_node): Initialize it.
25691
25692 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25693
25694         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
25695         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
25696         predicate in "type" attribute calculation.
25697         (*addsi_1_zext): Ditto.
25698         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
25699         (*addsi_2_zext): Ditto.
25700         (*add<mode>_3): Ditto.
25701         (*addsi_3_zext): Ditto.
25702         (*add<mode>_5): Ditto.
25703
25704 2010-06-03  Jan Hubicka  <jh@suse.cz>
25705
25706         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
25707         of bitmap_bit_p.
25708         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25709
25710 2010-06-03  Jan Hubicka  <jh@suse.cz>
25711
25712         * df-problems.c (df_create_unused_note, df_note_bb_compute):
25713         micro-optimize the checks when to add new note.
25714
25715 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
25716
25717         * final.c (output_asm_insn): Call
25718         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
25719         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
25720         (output_address): Call targetm.asm_out.print_operand_address.
25721         Update comments.
25722         * target.h (struct gcc_target): Add print_operand,
25723         print_operand_address, and print_operand_punct_valid_p fields.
25724         * targhooks.h (default_print_operand): Declare.
25725         (default_print_operand_address): Declare.
25726         (default_print_operand_punct_valid_p): Declare.
25727         * targhooks.c (default_print_operand): Define.
25728         (default_print_operand_address): Define.
25729         (default_print_operand_punct_valid_p): Define.
25730         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
25731         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
25732         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
25733         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
25734         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
25735         * vmsdbgout.c (addr_const_to_string): Update comment.
25736         * config/i386/i386.c (print_operand): Rename to...
25737         (ix86_print_operand): ...this.  Make static.
25738         (print_operand_address): Rename to...
25739         (ix86_print_operand_address): ...this.  Make static.  Call
25740         ix86_print_operand instead of PRINT_OPERAND.
25741         (ix86_print_operand_punct_valid_p): New function.
25742         (TARGET_PRINT_OPERAND): Define.
25743         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25744         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25745         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
25746         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25747         (PRINT_OPERAND): Delete.
25748         (PRINT_OPERAND_ADDRESS): Delete.
25749         * config/i386/i386-protos.h (print_operand): Delete prototype.
25750         (print_operand_address): Delete prototype.
25751
25752 2010-06-03  Richard Guenther  <rguenther@suse.de>
25753
25754         PR tree-optimization/44403
25755         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
25756         Preserve pointer qualifiers.
25757         (vect_create_data_ref_ptr): Likewise.
25758
25759 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
25760
25761         PR c++/44294
25762         * defaults.h (MAX_FIXED_MODE_SIZE): New.
25763
25764         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
25765
25766 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
25767
25768         PR debug/44375
25769         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
25770         return false if merging the bbs would lead to goto_locus
25771         location being lost from the IL.
25772
25773 2010-06-03  Jan Hubicka  <jh@suse.cz>
25774             Jakub Jelinek  <jakub@redhat.com>
25775
25776         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
25777         set->regs[i] is NULL or has just one entry.
25778
25779 2010-06-03  Jan Hubicka  <jh@suse.cz>
25780
25781         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
25782         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
25783
25784 2010-06-03  Paul Brook  <paul@codesourcery.com>
25785
25786         * config/arm/arm.c (FL_TUNE): Define.
25787         (arm_default_cpu, arm_cpu_select): Remove.
25788         (all_cores): Populate core field.
25789         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
25790         (arm_find_cpu): New function.
25791         (arm_handle_option): Lookup cpu/architecture names.
25792         (arm_override_options): Cleanup mcpu/march/mtune handling.
25793         (arm_file_start): Ditto.
25794
25795 2010-06-03  Alan Modra  <amodra@gmail.com>
25796
25797         PR target/44169
25798         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
25799         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
25800         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
25801         (rs6000_emit_load_toc_table): Likewise.
25802
25803 2010-06-02  Jan Hubicka  <jh@suse.cz>
25804
25805         * passes.c (init_optimization_passes): Put ipa reference
25806         after ipa pure-const.
25807
25808 2010-06-02  Jan Hubicka  <jh@suse.cz>
25809
25810         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
25811         calls_read_all and calls_write_all.
25812         (get_reference_optimization_summary): Fix formatting.
25813         (is_proper_for_analysis): Check that decl is not readonly.
25814         (propagate_bits): Check CONST/PURE/noreturn flags.
25815         (ipa_init): Move all_module_statics to optimization_summary_obstack.
25816         (analyze_function): Ignore indirect edges.
25817         (copy_global_bitmap): For all module statics, do nothing.
25818         (generate_summary): Do not print calls_read_all/calls_write_all.
25819         (read_write_all_from_decl): Take node as argument; check
25820         cgraph_node_cannot_return.
25821         (propagate): Reorganize read_all/write_all computation;
25822         check indirect edges; check ecf flags; use all_module_statics
25823         in the results; do not free all_module_statics.
25824         (stream_out_bitmap): Handle all_module_statics.
25825         (ipa_reference_write_optimization_summary): Likewise; use
25826         varpool/cgraph encoders to get boundaries.
25827         (ipa_reference_read_optimization_summary): Read in all_module_statics;
25828         use it when possible.
25829
25830 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25831
25832         PR target/44218
25833         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
25834         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
25835
25836         * doc/extend.texi (powerpc builtins): Document vec_recip,
25837         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
25838
25839         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
25840         (rs6000_emit_swrsqrt): Ditto.
25841         (rs6000_emit_swdivsf): Delete.
25842         (rs6000_emit_swdivdf): Ditto.
25843         (rs6000_emit_swrsqrtsf): Ditto.
25844
25845         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
25846         describe the reciprocal estimate support for each type.
25847         (recip_options): Map -mrecip=<opt> into option bits.
25848         (gen_2arg_fn_t): New typedef for binary rtx gen function.
25849         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
25850         reciprocal estimate instructions.
25851         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
25852         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
25853         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
25854         cost information if -mdebug=cost or -mdebug=reg.
25855         (rs6000_override_options): Set -mrecip-precision for power6, and
25856         power7 machines.  If -mvsx or -mdfp, enable various options that
25857         came in previous instruction set ISAs, unless the option was
25858         explicitly disabled by the command line option.  Parse
25859         -mrecip=<opt> options.
25860         (rs6000_builtin_vectorized_function): Add support for vectorizing
25861         the reciprocal estimate builtins and expansions.
25862         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
25863         (bdesc_2arg): Add reciprocal estimate builtins.
25864         (bdesc_1arg): Add reciprocal square root estimate builtins.
25865         (rs6000_expand_builtin): Rewrite to use a switch statement,
25866         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
25867         (rs6000_init_builtins): Create declarations for reciprocal
25868         estimate builtins.
25869         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
25870         sized, prefer traditional floating point registers, if integer
25871         vector types, prefer altivec registers.  Don't actually look at
25872         the memory address any more.
25873         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
25874         builtins.
25875         (rs6000_load_constant_and_splat): New helper function to load up
25876         the constant for reciprocal estimate instructions.
25877         (rs6000_emit_madd): New helper function for generating
25878         multiply/add type instructions, based on the current switches.
25879         (rs6000_emit_msub): Ditto.
25880         (rs6000_emit_mnsub): Ditto.
25881         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
25882         replace a divide with a reciprocal estimate and fixup, adding
25883         support for machines with high precision and vectors.
25884         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
25885         low precision machines.
25886         (rs6000_emit_swdiv): New common function to be called to replace a
25887         division with reciprocal estimate and fixup.
25888         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
25889         for double and vector types.  Add support for high precision machines.
25890
25891         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
25892         the reciprocal estimate instructions can be generated.
25893         (TARGET_FRE): Ditto.
25894         (TARGET_FRSQRTES): Ditto.
25895         (TARGET_FRSQRTE): Ditto.
25896         (RS6000_RECIP_*): New macros for reciprocal estimate support.
25897
25898         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
25899         square root estimate on vectors.
25900         (re<mode>2): New insn for reciprocal division estimate on vectors.
25901
25902         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
25903         New builtin.
25904         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
25905         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
25906         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
25907         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
25908         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
25909         (RS6000_BUILTIN_RSQRT): Ditto.
25910         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
25911         floating point builtin.
25912
25913         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
25914         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
25915         __RECIP_PRECISION__ based on the command line switches.
25916         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
25917
25918         * config/rs6000/rs6000.opt (-mrecip): Document add support for
25919         replacing division instructions with reciprocal estimate and fixup.
25920         (-mrecip=<opt>): New option.
25921         (-mrecip-precision): Ditto.
25922
25923         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
25924         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
25925         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
25926         precision scalar.
25927
25928         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
25929         (UNSPEC_VREFP): Ditto.
25930         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
25931         conterparts with regard to support of -mno-fused-madd and -ffast-math.
25932         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
25933         reciprocal estimate instructions to be generated.
25934         (altivec_vrefp): Ditto.
25935
25936         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
25937         estimate support.
25938         (rreg): New mode attribute for reciprocal estimate support.
25939         (recip<mode>3): New insn for division using reciprocal estimate
25940         and fixup builtins.
25941         (divide define_split): New define_split to convert floating point
25942         division to use reciprocal estimate if the user used the
25943         appropriate options and the split is run when we can add new
25944         pseudo registers for the fixup.
25945         (rsqrt<mode>2): New insn for reciprocal square root support.
25946         (recipsf3): Move into recip<mode>3.
25947         (recipdf3): Ditto.
25948         (fres): Use TARGET_FRES.
25949         (rsqrtsf2): Move into rsqrt<mode>2.
25950         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
25951         (copysignsf3): Add support for VSX.
25952         (fred): Use TARGET_FRE.
25953         (fred_fpr): Ditto.
25954         (rsqrtdf_internal1): New function for frsqrte instruciton.
25955
25956         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
25957         (vec_rsqrt): Ditto.
25958
25959 2010-06-03  Richard Guenther  <rguenther@suse.de>
25960
25961         PR middle-end/44291
25962         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
25963         (set_user_assembler_libfunc): Likewise.
25964
25965 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25966
25967         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
25968         defaults.h.
25969         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
25970         to defaults.h
25971         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
25972         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
25973         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
25974         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
25975         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
25976         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
25977         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
25978         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
25979         * defaults.h: Updated for above mentioned changes.
25980
25981 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
25982
25983         * c-common.c: Remove header include of tm_p.h.
25984         * Makefile.in (c-common.o): Remove TM_P_H dependency.
25985
25986 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
25987
25988         * tree.h (struct tree_decl_map): New type.
25989         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
25990         (tree_decl_map_hash): New prototype.
25991         (debug_expr_for_decl, value_expr_for_decl): Change into
25992         tree_decl_map hashtab from tree_map.
25993         (init_ttree): Adjust initialization.
25994         (tree_decl_map_hash): New function.
25995         (decl_debug_expr_lookup, decl_debug_expr_insert,
25996         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
25997
25998 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25999
26000         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
26001         linker emulations.
26002         * configure: Regenerate.
26003         * config.in: Regenerate.
26004
26005         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
26006         (X86_64_EMULATION): Define.
26007         (TARGET_LD_EMULATION): Use them.
26008
26009         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
26010         (SPARC64_EMULATION): Define.
26011         (LINK_ARCH_SPEC): Use them.
26012
26013 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26014
26015         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
26016         smallest_mode_for_size for computing the precision types of new
26017         graphite IVs.  Do not call lang_hooks.types.type_for_size.
26018
26019 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26020
26021         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
26022         information.
26023         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
26024
26025 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26026
26027         PR middle-end/44363
26028         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
26029         return false instead.
26030
26031 2010-06-02  Jan Hubicka  <jh@suse.cz>
26032
26033         PR middle-end/44295
26034         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
26035         create new cgraph node to check callee.
26036
26037 2010-06-02  Richard Guenther  <rguenther@suse.de>
26038
26039         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
26040
26041 2010-06-02  Richard Guenther  <rguenther@suse.de>
26042
26043         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
26044         (lto_wrapper_cleanup): ... this.  Do not exit.
26045         (fatal): Adjust.  Exit here.
26046         (fatal_perror): Likewise.
26047         (fatal_signal): New function.
26048         (main): Set up signal handlers to cleanup temporary files.
26049         * Makefile.in (lto-wrapper.o): Adjust dependencies.
26050
26051 2010-06-02  Richard Guenther  <rguenther@suse.de>
26052
26053         PR tree-optimization/44377
26054         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
26055
26056 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26057
26058         * config/s390/2097.md (z10_fhex): Remove insn reservation.
26059         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
26060         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
26061         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
26062         instruction.
26063         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
26064
26065 2010-06-02  Jan Hubicka  <jh@suse.cz>
26066
26067         * bitmap.c (bitmap_descriptor): Add search_iter.
26068         (bitmap_find_bit): Increment it.
26069         (print_statistics): Print it.
26070
26071 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
26072
26073         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
26074         instead of gimple_build_call_vec.  Delete unnecessary local variable.
26075
26076 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26077
26078         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
26079         change from yesterday.
26080
26081 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26082
26083         * c-ada-spec.c: Clean up redundant includes.
26084
26085 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
26086
26087         * gimplify.c: Do not include except.h and optabs.h.
26088         (gimplify_body): Do not initialize RTL profiling.
26089         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
26090         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
26091         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
26092         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
26093         langhooks.h.
26094
26095         * tree-pretty-print.h: Include pretty-print.h.
26096         * gimple-pretty-print.h: Include pretty-print.h.
26097
26098         * tree-pretty-print.c: Do not include diagnostic.h.
26099         * tree-vrp.c: Likewise.
26100         * tree-tailcall.c: Likewise
26101         * tree-scalar-evolution.c: Likewise
26102         * tree-ssa-dse.c: Likewise
26103         * tree-chrec.c: Likewise
26104         * tree-ssa-sccvn.c: Likewise
26105         * tree-ssa-copyrename.c: Likewise
26106         * tree-nomudflap.c: Likewise
26107         * tree-call-cdce.c: Likewise
26108         * tree-stdarg.c: Likewise
26109         * tree-ssa-math-opts.c: Likewise
26110         * tree-nrv.c: Likewise
26111         * tree-ssa-sink.c: Likewise
26112         * tree-browser.c: Likewise
26113         * tree-ssa-loop-ivcanon.c: Likewise
26114         * tree-ssa-loop.c: Likewise
26115         * tree-parloops.c: Likewise
26116         * tree-ssa-address.c: Likewise
26117         * tree-ssa-ifcombine.c: Likewise
26118         * tree-if-conv.c: Likewise
26119         * tree-data-ref.c: Likewise
26120         * tree-affine.c: Likewise
26121         * tree-ssa-phiopt.c: Likewise
26122         * tree-ssa-coalesce.c: Likewise
26123         * tree-ssa-pre.c: Likewise
26124         * tree-ssa-live.c: Likewise
26125         * tree-predcom.c: Likewise
26126         * tree-ssa-forwprop.c: Likewise
26127         * tree-ssa-dce.c: Likewise
26128         * tree-ssa-ter.c: Likewise
26129         * tree-ssa-loop-prefetch.c: Likewise
26130         * tree-optimize.c: Likewise
26131         * tree-ssa-phiprop.c: Likewise
26132         * tree-object-size.c: Likewise
26133         * tree-outof-ssa.c: Likewise
26134         * tree-ssa-structalias.c: Likewise
26135         * tree-switch-conversion.c: Likewise
26136         * tree-ssa-reassoc.c: Likewise
26137         * tree-ssa-operands.c: Likewise
26138         * tree-vectorizer.c: Likewise
26139         * tree-vect-data-refs.c: Likewise
26140         * tree-vect-generic.c: Likewise
26141         * tree-vect-stmts.c: Likewise
26142         * tree-vect-patterns.c: Likewise
26143         * tree-vect-slp.c: Likewise
26144         * tree-vect-loop.c: Likewise
26145         * tree-ssa-loop-ivopts.c: Likewise
26146         * tree-ssa-loop-im.c: Likewise
26147         * tree-ssa-loop-niter.c: Likewise
26148         * tree-ssa-loop-unswitch.c: Likewise
26149         * tree-ssa-loop-manip.c: Likewise
26150         * tree-ssa-loop-ch.c: Likewise
26151         * tree-dump.c: Likewise
26152         * tree-complex.c: Likewise
26153
26154         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
26155         * tree-ssa-uninit.c: Likewise
26156         * tree-ssa-threadupdate.c: Likewise
26157         * tree-ssa-uncprop.c: Likewise
26158         * tree-ssa-ccp.c: Likewise
26159         * tree-ssa-dom.c: Likewise
26160         * tree-ssa-propagate.c: Likewise
26161         * tree-ssa-alias.c: Likewise
26162         * tree-dfa.c: Likewise
26163         * tree-cfgcleanup.c: Likewise
26164         * tree-sra.c: Likewise
26165         * tree-ssa-copy.c: Likewise
26166         * tree-ssa.c: Likewise
26167         * tree-profile.c: Likewise
26168         * tree-cfg.c: Likewise
26169         * tree-ssa-threadedge.c: Likewise
26170         * tree-vect-loop-manip.c: Likewise
26171
26172         * tree-inline.c: Do not include diagnostic.h and expr.h.
26173         Include rtl.h.
26174         (copy_decl_for_dup_finish): Do not use NULL_RTX.
26175
26176         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
26177         * tree-loop-distribution.c: Likewise.
26178
26179 2010-06-01  Jan Hubicka  <jh@suse.cz>
26180
26181         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
26182
26183 2010-06-01  Jan Hubicka  <jh@suse.cz>
26184
26185         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
26186         remove return value.
26187         (split_bbs_on_noreturn_calls) .... here.
26188         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
26189         * tree-flow.h (fixup_noreturn_call): New.
26190
26191 2010-06-01  Jan Hubicka  <jh@suse.cz>
26192
26193         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
26194
26195 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
26196
26197         * tree.h (build_nt_call_list): Delete.
26198         * tree.c (build_nt_call_list): Delete.
26199
26200 2010-06-01  Jan Hubicka  <jh@suse.cz>
26201
26202         * fwprop.c: Make emit-rtl.h include last.
26203         * rtlanal.c: Include emit-rtl.h.
26204         * genautomata.c: Output emit-rtl include into insn-automata.c
26205         * df-scan.c: Include emit-rtl.h.
26206         * haifa-sched.c: Indlude emit-rtl.h.
26207         * mode-switching.c: Indlude emit-rtl.h.
26208         * graph.c: Indlude emit-rtl.h.
26209         * sel-sched.c: Include emit-rtl.h.
26210         * sel-sched-ir.c: Include emit-rtl.h.
26211         * ira-build.c: Include emit-rtl.h.
26212         * emit-rtl.c (first_insn, last_insn): Remove defines.
26213         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
26214         Move to emit-rtl.h.
26215         (set_new_first_and_last_insn, get_last_insn_anywhere,
26216         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
26217         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
26218         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
26219         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
26220         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
26221         Use accessor functions.
26222         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26223          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26224         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26225         mem_expr_equal_p): Move here from rtl.h.
26226         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
26227         Move here from emit-rtl.c; make inline.
26228         * cfglayout.h: Include emit-rtl.h.
26229         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26230          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26231         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26232         mem_expr_equal_p, get_insns, set_first-insn,
26233         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
26234         * reg-stack.c: Include emit-rtl.h.
26235         * dce.c: Likewise.
26236
26237 2010-06-01  Jan Hubicka  <jh@suse.cz>
26238
26239         * cgraph.h (tree_function_versioning): Update prototype.
26240         (cgraph_function_versioning): Update prototype.
26241         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
26242         bitmap.
26243         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
26244         (cgraph_materialize_clone, save_inline_function_body): Update use of
26245         tree_function_versioning.
26246         * tree-inline.c (copy_bb): Look for previous copied block to link
26247         after; fix debug output.
26248         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
26249         (copy_body): Likewise.
26250         (expand_call_inline): Update use of copy_body.
26251         (tree_function_versioning): Update use of copy body; accept
26252         blocks_to_copy and new_entry.
26253
26254 2010-06-01  Jan Hubicka  <jh@suse.cz>
26255
26256         * gegenrtl.c: Remove unnecesary prototypes.
26257         (gendecl): Remove.
26258         (gendef): Produce static inline.
26259         (gencode): Remove.
26260         (main): Do not decode parameters; generate header only.
26261         * Makefile.in (genrtl.c): Remove.
26262
26263 2010-06-01  Jan Hubicka  <jh@suse.cz>
26264
26265         * tree-switch-conversion.c (build_one_array): Make it readonly.
26266
26267 2010-06-01  Richard Guenther  <rguenther@suse.de>
26268
26269         * optabs.c (init_optabs): Guard all accesses to reinit.
26270         * ipa-pure-const.c (propagate): Fix another typo.
26271         * opts.c (common_handle_option): Split assignment to bool.
26272         * c-opts.c (c_common_handle_option): Likewise.
26273
26274 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
26275             Matthew Gingell  <gingell@adacore.com>
26276
26277         * doc/invoke.texi: Mention -fdump-ada-spec.
26278         * tree-dump.c (dump_files): Add ada-spec.
26279         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
26280         * tree-pass.h (tree_dump_index): Add TDI_ada.
26281         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
26282         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
26283         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
26284         * c-decl.c: Include c-ada-spec.h.
26285         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
26286         functions.
26287         (c_write_global_declarations): Add handling of -fdump-ada-spec.
26288         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
26289         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
26290         * c-ada-spec.h, c-ada-spec.c: New files.
26291
26292 2010-06-01  Richard Guenther  <rguenther@suse.de>
26293
26294         PR lto/43853
26295         * ipa-pure-const.c (get_function_state): Hand back varying state
26296         if we do not have one.
26297         (has_function_state): New function.
26298         (duplicate_node_data): Adjust.
26299         (remove_node_data): Likewise.
26300         (pure_const_write_summary): Likewise.
26301         (propagate): Likewise.  Fix typo.
26302
26303 2010-06-01  Jan Hubicka  <jh@suse.cz>
26304
26305         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
26306         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
26307         (execute_all_ipa_transforms): Do not play with the states.
26308
26309 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
26310
26311         * config/arm/t-linux-androideabi: New.
26312         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
26313
26314 2010-06-01  Jan Hubicka  <jh@suse.cz>
26315
26316         * tree-inline.c (estimate_num_insns): For stdarg functions look
26317         into call statement to count cost of argument passing.
26318
26319 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
26320
26321         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
26322         argument for fprintf.
26323         (ix86_output_addr_diff_elt): Likewise.
26324         (x86_function_profiler): Likewise.
26325         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
26326         (LPREFIX): Likewise.
26327         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
26328
26329 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26330
26331         PR target/44338
26332         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
26333         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
26334         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
26335         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
26336         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
26337         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
26338         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
26339         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
26340         TARGET_FUSED_MADD.
26341
26342 2010-05-31  Jan Hubicka  <jh@suse.cz>
26343
26344         * tree.h (tree_range_check_failed): Declare noreturn.
26345
26346 2010-05-31  Jan Hubicka  <jh@suse.cz>
26347
26348         * gimple.c (gimple_call_builtin_p): New function.
26349         * gimple.h (gimple_call_builtin_p): Declare.
26350         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
26351         to exit.
26352         (execute_warn_function_return): BUILT_IN_RETURN is return.
26353         (split_critical_edges): Return edges are not critical.
26354         (is_ctrl_altering_stmt): Builtin_in_return is altering.
26355         (gimple_verify_flow_info): Handle built_in_return.
26356         (execute_warn_function_return): Handle built_in_return.
26357         * ipa-pure-const.c (check_call): Ignore builtin_return.
26358
26359 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26360
26361         PR middle-end/44337
26362         * expr.c (expand_assignment): Don't store anything for out-of-bounds
26363         array accesses with non-MEM.
26364
26365         PR tree-optimization/44182
26366         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
26367         newly needs to end a bb is followed by debug stmts, instead return
26368         true from the function at the end.
26369         (maybe_move_debug_stmts_to_successors): New function.
26370         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
26371
26372 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
26373
26374         PR target/44161
26375         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
26376
26377 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
26378
26379         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
26380         for nested functions in non-optimized compilation.
26381
26382 2010-05-31  Richard Guenther  <rguenther@suse.de>
26383
26384         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
26385
26386 2010-05-30  Jan Hubicka  <jh@suse.cz>
26387
26388         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
26389
26390 2010-05-30  Richard Guenther  <rguenther@suse.de>
26391
26392         PR lto/42975
26393         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
26394         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
26395         no longer needed.
26396
26397 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
26398
26399         * config/darwin.c (output_objc_section_asm_op): Add comment.
26400         (name_needs_quotes): Add '_' to list of valid comment chars.
26401         (machopic_output_function_base_name): Remove unneeded quotes.
26402         (darwin_encode_section_info): Adjust asm whitespace.
26403         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
26404         (ASM_OUTPUT_LOCAL): Ditto.
26405         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
26406         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
26407         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
26408
26409 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
26410
26411         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
26412         RS6000_OUTPUT_BASENAME unconditionally.
26413         (rs6000_output_function_epilogue): Likewise.
26414
26415 2010-05-30  Jan Hubicka  <jh@suse.cz>
26416
26417         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
26418         nodes.
26419
26420 2010-05-30  Richard Guenther  <rguenther@suse.de>
26421
26422         * tree-cfg.c (verify_gimple_assign_single): Implement
26423         verification for COND_EXPR rhs.
26424
26425 2010-05-30  Jan Hubicka  <jh@suse.cz>
26426
26427         * cgraph.h (cgraph_dump_file): Declare.
26428         * cgraphunit.c (cgraph_dump_file): Export.
26429         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
26430
26431 2010-05-30  Jan Hubicka  <jh@suse.cz>
26432
26433         * dwarf2out.c (reference_to_unused,
26434         premark_types_used_by_global_vars_helper): Avoid creation of new
26435         varpool nodes.
26436
26437 2010-05-30  Jan Hubicka  <jh@suse.cz>
26438
26439         * cgraph.h (cgraph_node_cannot_return,
26440         cgraph_edge_cannot_lead_to_return): New functions.
26441         * cgraph.c (cgraph_node_cannot_return,
26442         cgraph_edge_cannot_lead_to_return): Use them.
26443         * ipa-pure-const.c (pure_const_names): New static var.
26444         (check_call): Handle calls not leading to return.
26445         (pure_const_read_summary): Dump info read.
26446         (propagate): Dump info about propagation process; ignore side effects
26447         of functions not leading to exit; fix handling of pure functions.
26448
26449 2010-05-30  Jan Hubicka  <jh@suse.cz>
26450
26451         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
26452         for tail call epilogues.
26453
26454 2010-05-30  Jan Hubicka  <jh@suse.cz>
26455
26456         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
26457         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
26458         dump files.
26459
26460 2010-05-29  Jan Hubicka  <jh@suse.cz>
26461
26462         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
26463         node; remove references in node we no longer keep in cgrpah but need
26464         body of.
26465
26466 2010-05-29  Jan Hubicka  <jh@suse.cz>
26467
26468         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
26469
26470 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26471
26472         PR target/44165
26473         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
26474
26475 2010-05-29  Jan Hubicka  <jh@suse.cz>
26476
26477         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
26478         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
26479         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
26480         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
26481         debug_names_replaced_by, debug_update_ssa): Likewise.
26482         * sbitmap.c (debug_sbitmap): Likewise.
26483         * genrecog.c (debug_decision, debug_decision_list): Likewise.
26484         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
26485         debug_tree_chain): Likewise.
26486         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
26487         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
26488         * optabs.c (debug_optab_libfuncs): Likewise.
26489         (verify_loop_closed_ssa): Likewise.
26490         * value-prof.c (verify_histograms): Likewise.
26491         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
26492         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
26493         * cfghooks.c (verify_flow_info): Likewise.
26494         * fold-const.c (debug_fold_checksum): Likewise.
26495         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
26496         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
26497         Likewise.
26498         * omega.c (debug_omega_problem): Likewise.
26499         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
26500         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
26501         * dominance.c (verify_dominators, debug_dominance_info,
26502         debug_dominance_tree): Likewise.
26503         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
26504         * df_regno_debug, df_ref_debug,
26505         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
26506         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
26507         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
26508         * sel-sched.c (debug_state): Likewise.
26509         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
26510         Likewise.
26511         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
26512         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
26513         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
26514         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
26515         Likewise.
26516         * c-pretty-print.c (debug_c_tree): Likewise.
26517         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
26518         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
26519         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
26520         * ebitmap.c (debug_ebitmap): Likewise.
26521         * function.c (debug_find_var_in_block_tree): Likewise.
26522         * print-rtl.c (debug_rtx): Likewise.
26523         (debug_rtx_count): Likewise.
26524         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
26525         * stor-layout.c (debug_rli): Likewise.
26526         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
26527         * tree-data-ref.c (debug_data_references,
26528         debug_data_dependence_relations, debug_data_reference,
26529         debug_data_dependence_relation, debug_rdg_vertex,
26530         debug_rdg_component, debug_rdg): Likewise.
26531         * tree-affine.c (debug_aff): Likewise.
26532         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
26533         Likewise.
26534         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
26535         * emit-rtl.c (verify_rtl_sharing): Likewise.
26536         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
26537         debug_value_expressions): Likewise.
26538         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
26539         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
26540         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
26541         * cfglayout.c (verify_insn_chain): Likewise.
26542         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
26543         debug_clast_stmt, debug_generated_program): Likewise.
26544         * ggc-page.c (debug_print_page_list): Likewise.
26545         * tree-ssa-ter.c (debug_ter): Likewise.
26546         * graphite-dependences.c (debug_pddr): Likewise.
26547         * sched-deps.c (debug_ds): Likewise.
26548         * tree-ssa.c (verify_ssa): Likewise.
26549         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
26550         debug_scattering_functions, debug_iteration_domains, debug_pdr,
26551         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
26552         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
26553         * tree-inline.c (debug_find_tree): Likewise.
26554         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
26555         debug_ppl_powerset_matrix): Likewise.
26556         * var-tracking.c (debug_dv): Likewise.
26557         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
26558         * cfgloop.c (verify_loop_structure): Likewise.
26559         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
26560         * c-common.c (verify_sequence_points): Likewise.
26561         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
26562         debug_candidates, debug_rgn_dependencies): Likewise.
26563         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
26564         * debug_constraint_graph, debug_solution_for_var,
26565         debug_sa_points_to_info): Likewise.
26566         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
26567         Likewie.
26568         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
26569         debug_loops, debug_loop, debug_loop_num): Likewise.
26570         * passes.c (debug_pass): Likewise.
26571         (dump_properties): Likewise; add cfglayout property.
26572         (debug_properties): Likewise.
26573         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
26574         * varpool.c (debug_varpool): Likewise.
26575         * regcprop.c (debug_value_data): Likewise.
26576         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
26577         debug_immediate_uses_for): Likewise.
26578
26579 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26580
26581         PR bootstrap/44315
26582         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
26583         Filter out insn-flags.h.
26584
26585 2010-05-29  Jan Hubicka  <jh@suse.cz>
26586
26587         * cgraph.h (struct varpool_node_set_def,
26588         struct cgraph_node_set_def): Remove unused AUX pointer.
26589         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
26590         VEC_empty macro.
26591
26592 2010-05-29  Jan Hubicka  <jh@suse.cz>
26593
26594         PR middle-end/44324
26595         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
26596
26597 2010-05-29  Richard Guenther  <rguenther@suse.de>
26598
26599         * lto-streamer.c (cached_bp): New global variable.
26600         (bitpack_create): Return the cached bitpack, if available.
26601         (bitpack_delete): Clear and cache the bitpack, if appropriate.
26602         (bp_pack_value): Remove redundant asserts.
26603
26604 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26605
26606         PR middle-end/44306
26607         * tree-if-conv.c (is_true_predicate): New.
26608         (is_predicated): Use is_true_predicate.
26609         (add_to_predicate_list): Same.  Do not use unshare_expr.
26610         (add_to_dst_predicate_list): Same.
26611
26612 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26613
26614         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
26615         field on edges.
26616         (predicate_bbs): Same.
26617         (clean_predicate_lists): Same.
26618         (find_phi_replacement_condition): Do not AND the predicate from
26619         edge->aux.
26620
26621 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26622
26623         PR bootstrap/44315
26624         * Makefile.in (build/gencondmd.o): Add a missing `\'.
26625
26626 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26627
26628         PR target/44261
26629         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
26630         (negdf2): Adjust expander pattern and use negdf2_slow.
26631         (negsf2): Likewise.
26632
26633 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
26634
26635         * basic-block.h (struct control_flow_graph): Move last_label_uid field
26636         up.
26637         * df.h (struct df_base_ref): Move regno field up.
26638         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
26639         * expr.h (struct separate_ops): Move location field up.
26640         * optabs.h (struct optab_d): Move libcall_basename field down.
26641         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
26642         * config/i386/i386.h (struct machine_function): Convert call_abi field
26643         into a bitfield.  Move cfa field to the end of the structure.
26644
26645 2010-05-29  Jan Hubicka  <jh@suse.cz>
26646
26647         * varpool.c (varpool_get_node): Fix lookup.
26648
26649 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26650
26651         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
26652         RTL specific prototypes with #ifdef RTX_CODE.
26653         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
26654         * config/spu/t-spu-elf: Fix dependencies.
26655
26656         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
26657
26658 2010-05-29  Mike Stump  <mikestump@comcast.net>
26659
26660         PR bootstrap/44315
26661         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
26662         TM_H when building to avoid dependency loops.
26663
26664 2010-05-29  Jan Hubicka  <jh@suse.cz>
26665
26666         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
26667         refs and body; not the whole node for masters of materialized clones.
26668
26669 2010-05-29  Mike Stump  <mikestump@comcast.net>
26670
26671         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
26672
26673 2010-05-29  Jan Hubicka  <jh@suse.cz>
26674
26675         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
26676         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
26677         use of clone_function_name.
26678         * cgraph.h (cgraph_create_virtual_clone,
26679         cgraph_function_versioning): update prototypes.
26680         (clone_function_name): Declare.
26681         * ipa-cp.c (ipcp_insert_stage): Update call of
26682         cgraph_create_virtual_clone.
26683         * omp-low.c (create_omp_child_function_name): Use
26684         cgraph_create_virtual_clone.
26685         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
26686         (cgraph_function_versioning): Take SUFFIX argument; produce new name
26687         and make decl local.
26688
26689 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26690
26691         * vec.h: Include statistics.h
26692         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
26693         with VEC_H.
26694
26695 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26696
26697         * c-lex.c: Do not include c-tree.h.
26698         * c-pretty-print.c: Likewise.
26699         * c-opts.c: Likewise.
26700         * c-gimplify.c: Likewise.
26701         * c-common.c: Likewise.
26702         * c-dump.c: Likewise.  Include c-common.h.
26703
26704 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26705
26706         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
26707         before including diagnostic-core.h.
26708         (c_cpp_error): New prototype moved from c-tree.h.
26709         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
26710         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
26711         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
26712         (c_cpp_error): Prototype moved to c-common.h.
26713         * Makefile.in: Update dependency for C_COMMON_H.
26714
26715 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26716
26717         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
26718         * c-common.c (c_register_addr_space): Remove here.
26719         * c-decl.c (c_register_addr_space): Re-add here.
26720
26721 2010-05-28  Mike Stump  <mikestump@comcast.net>
26722
26723         * config/darwin-c.c: Remove c-tree.h include.
26724
26725 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26726
26727         * gcc.c: Include diagnostic.h.
26728         (error_count): Remove.  All users changed to use errorcount.
26729         (programname): Remove.  All users changed to use progname.
26730         (fancy_abort, internal_error, fatal_error, error, warning, inform,
26731         fnotice): Remove.
26732         (execute): Don't include "Internal error" and bug reporting
26733         information in argument of internal_error call.
26734         (process_command): Don't increment error_count after calling
26735         perror_with_name.
26736         (input_filename): Rename to gcc_input_filename.  All users
26737         changed.
26738         (main): Call diagnostic_initialize.  Register delete_temp_files
26739         with atexit.  Use seen_error to test for errors.
26740         * gcc.h: Include diagnostic-core.h.
26741         (fatal_error, error, warning): Remove.
26742         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
26743         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
26744         (gcc.o): Update dependencies.
26745
26746 2010-05-28  Jeff Law  <law@redhat.com>
26747
26748         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
26749         functions.
26750         * ira.h (ira_bad_reload_regno): Declare
26751         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
26752
26753         * ira-color.c (update_curr_costs): Free updated hard reg costs.
26754         (ira_reassign_conflict_allocnos): Remove bogus asserts.
26755         (allocno_reload_assign): Likewise.
26756
26757 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
26758
26759         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
26760         build1_stat.
26761
26762 2010-05-28  Richard Guenther  <rguenther@suse.de>
26763
26764         PR lto/44312
26765         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
26766         Stream fixed-point constants mode.
26767         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
26768         and TYPE_PRECISION.
26769         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
26770         Stream fixed-point constants mode.
26771         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
26772         and TYPE_PRECISION.
26773
26774 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26775
26776         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
26777         only place it was called from.
26778         (number_of_latch_executions): Do not return chrec_dont_know when the
26779         may_be_zero is a runtime condition: instead, return a COND_EXPR
26780         including the may_be_zero condition.
26781         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
26782         of nb_iterations.
26783         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
26784         COND_EXPRs.
26785
26786 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26787
26788         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
26789         generate COND_EXPRs for degenerate_phi_result.
26790
26791 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26792
26793         PR middle-end/44293
26794         * tree-if-conv.c (if_convertible_loop_p): Check the
26795         if-convertibility of phi nodes in non predicated BBs.
26796
26797 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26798
26799         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
26800
26801 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26802
26803         PR driver/15303
26804         * gcc.c (inform, warning, inform): New functions.
26805         (fatal_ice): Rename to internal_error; change cmsgid parameter to
26806         gmsgid.  All callers changed.
26807         (notice): Rename to fnotice; add parameter fp.  All callers changed.
26808         (fatal_error): Rename to fatal_signal.  All users changed.
26809         (fatal): Rename to fatal_error; change cmsgid parameter to
26810         gmsgid.  All callers changed.
26811         (process_command): Use warning instead of error for warnings.
26812         (end_going_arg): Don't use _() around argument of error.
26813         (do_spec_1): Use inform for message from %n specs.  Use warning
26814         instead of error for warnings.
26815         (main): Use inform for comparison messages.  Use warning for
26816         message about unused linker input.
26817         (error): Increment error_count.  Print "error: ".
26818         * gcc.h (fatal): Change to fatal_error.
26819         (warning): Declare.
26820         * config/darwin-driver.c (darwin_default_min_version): Use warning
26821         instead of fprintf for warnings.
26822         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
26823
26824 2010-05-28  Julian Brown  <julian@codesourcery.com>
26825
26826         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
26827         (*thumb2_addsi3_compare0_scratch): New.
26828         * config/arm/constraints.md (Pv): New.
26829         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
26830         for ARM mode only.
26831         (*addsi3_compare0_scratch): Likewise.
26832
26833 2010-05-28  Jan Hubicka  <jh@suse.cz>
26834
26835         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
26836         check.
26837         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
26838         only on local statics.
26839
26840 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
26841
26842         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
26843
26844 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
26845
26846         PR bootstrap/44314
26847         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
26848         (OPTION_GLIBC): Define.
26849
26850 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26851
26852         PR debug/41048
26853         * dwarf2out.c (double_int_type_size_in_bits): New function.
26854         (round_up_to_align): Change first argument and return value to
26855         double_int.
26856         (field_byte_offset): Work internally on double_ints.
26857
26858         PR target/43636
26859         * builtins.c (expand_movstr): Use a temporary pseudo instead
26860         of target even when target is not NULL and not const0_rtx, but
26861         fails movstr predicate.
26862         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
26863
26864 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26865
26866         * final.c (rest_of_clean_state): Use %m in errors instead of
26867         strerror (errno).
26868         * gengtype.c (read_input_list, close_output_files): Use xstrerror
26869         instead of strerror.
26870         * toplev.c (process_options): Use %m in errors instead of strerror
26871         (errno).
26872         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
26873         (errno).
26874
26875 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
26876
26877         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
26878         (ix86_canonical_va_list_type): Make static.  Add declaration.
26879         (ix86_enum_va_list): Make static.  Reindent.
26880         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
26881         (ix86_canonical_va_list_type): Ditto.
26882         (ix86_enum_va_list): Ditto.
26883
26884 2010-05-28  Richard Guenther  <rguenther@suse.de>
26885
26886         * lto-wrapper.c (run_gcc): With -save-temps generate a
26887         user-visible ltrans filename.  Fixup ltrans unit numbering.
26888
26889 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
26890
26891         * c-common.c (c_common_nodes_and_builtins): Replace use
26892         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
26893         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
26894         to ix86_enum_va_list.
26895         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
26896         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
26897         (TARGET_ENUM_VA_LIST_P): Add hook description.
26898         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
26899         * target.h (gcc_target): Add enum_va_list hook.
26900
26901         PR bootstrap/44299
26902         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
26903         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
26904         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
26905
26906 2010-05-28  Alan Modra  <amodra@gmail.com>
26907
26908         PR target/44266
26909         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
26910         emit_library_call machinery to set up __tls_get_addr calls.
26911
26912 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26913
26914         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
26915
26916 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
26917
26918         Revert fix for PR c++/44188
26919         * c-common.c (is_typedef_decl): Revert the moving of  this
26920         definition ...
26921         * tree.c (is_typedef_decl): ... here.
26922         (typdef_variant_p): Revert the moving of this  definition
26923         here from cp/tree.c.
26924         * c-common.h (is_typedef_decl): Revert the moving of this
26925         declaration ...
26926         * tree.h (is_typedef_decl): ... here.
26927         (typedef_variant_p): Revert the moving of this  declaration here
26928         from cp/cp-tree.h
26929         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
26930         (gen_tagged_type_die): Revert the splitting out of ...
26931         (gen_type_die_with_usage): ... this function. Revert the anonymous
26932         tagged type handling.
26933         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
26934         typedefs naming anonymous tagged types.
26935
26936 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26937
26938         * config/rs6000/rs6000-modes.def (PSImode): Delete.
26939
26940 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26941
26942         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
26943         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
26944         throughout.
26945         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
26946         "xer" to "ca".
26947         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
26948         XER_REGS to CA_REGS throughout.
26949         * config/rs6000/rs6000.h: Same.
26950         (ADDITIONAL_REGISTER_NAMES): Add "xer".
26951         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
26952         that mode_iterator "P" is the size for arithmetic carries as well.
26953         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
26954
26955 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26956
26957         PR bootstrap/44255
26958         * combine.c (struct rtx_subst_pair): Define unconditionally.
26959         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
26960         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
26961         Call make_compound_operation on pair->to.
26962         (propagate_for_debug): Don't call make_compound_operation here.
26963         Always use simplify_replace_fn_rtx.
26964
26965 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
26966
26967         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
26968         * config/xtensa/xtensa.c (override_options): Check
26969           TARGET_FORCE_NO_PIC and set flag_pic.
26970         * config/xtensa/xtensa.opt: Document -mforce-no-pic
26971
26972 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
26973
26974         PR bootstrap/44299
26975         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
26976         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
26977
26978 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
26979
26980         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
26981         toplev.h.
26982         * diagnostic.c: Don't include toplev.h.
26983         (progname): Define.  Moved from toplev.c.
26984         (seen_error): New function.
26985         * diagnostic.h: Include diagnostic-core.h.
26986         (diagnostic_t, emit_diagnostic): Don't declare here.
26987         * toplev.c (progname): Move to toplev.c.
26988         (emit_debug_global_declarations, compile_file, finalize,
26989         do_compile, toplev_main): Use seen_error.
26990         * toplev.h: Include diagnostic-core.h.
26991         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
26992         internal_error, warning, warning_at, error, error_n, error_at,
26993         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
26994         verbatim, fnotice, progname): Move to diagnostic-core.h.
26995         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
26996         (expand_builtin_expect): Use seen_error.
26997         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
26998         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
26999         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
27000         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
27001         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
27002         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
27003         errorcount for errors.
27004         * c-opts.c (c_common_finish): Use seen_error.
27005         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
27006         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
27007         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
27008         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
27009         (get_coverage_counts): Use seen_error.
27010         * dwarf2out.c (dwarf2out_finish): Use seen_error.
27011         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
27012         gimplify_body): Use seen_error.
27013         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
27014         * ipa-pure-const.c (gate_pure_const): Use seen_error.
27015         * ipa-reference.c (gate_reference): Use seen_error.
27016         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
27017         * lambda-code.c: Include diagnostic-core.h instead of
27018         diagnostic.h.
27019         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
27020         * lto-compress.c: Include diagnostic-core.h instead of
27021         diagnostic.h.
27022         * lto-section-in.c: Include diagnostic-core.h instead of
27023         diagnostic.h.
27024         * lto-streamer-out.c: Include diagnostic-core.h instead of
27025         diagnostic.h.
27026         * lto-streamer.c: Include diagnostic-core.h instead of
27027         diagnostic.h.
27028         (gate_lto_out): Use seen_error.
27029         * matrix-reorg.c: Include diagnostic-core.h instead of
27030         diagnostic.h.
27031         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
27032         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
27033         (gate_expand_omp, lower_omp_1): Use seen_error.
27034         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
27035         (rest_of_decl_compilation, rest_of_type_compilation,
27036         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
27037         * tree-cfg.c (label_to_block_fn): Use seen_error.
27038         * tree-inline.c (optimize_inline_calls): Use seen_error.
27039         * tree-mudflap.c (mudflap_finish_file): Use
27040         seen_error.
27041         * tree-optimize.c (gate_all_optimizations,
27042         gate_all_early_local_passes, gate_all_early_optimizations): Use
27043         seen_error.
27044         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
27045         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
27046         (varpool_remove_unreferenced_decls,
27047         varpool_assemble_pending_decls): Use seen_error.
27048         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
27049         (TOPLEV_H, DIAGNOSTIC_H): Update.
27050         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
27051         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
27052         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
27053         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
27054         coverage.o, lambda-code.o): Update dependencies.
27055
27056 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
27057
27058         PR c++/44188
27059         * c-common.c (is_typedef_decl): Move this definition ...
27060         * tree.c (is_typedef_decl): ... here.
27061         (typdef_variant_p): Move definition here from cp/tree.c.
27062         * c-common.h (is_typedef_decl): Move this declaration ...
27063         * tree.h (is_typedef_decl): ... here.
27064         (typedef_variant_p): Move declaration here from cp/cp-tree.h
27065         * dwarf2out.c (is_naming_typedef_decl): New function.
27066         (gen_tagged_type_die): Split out of ...
27067         (gen_type_die_with_usage): ... this function. When an anonymous
27068         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
27069         is emitted for the typedef.
27070         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
27071         anonymous tagged types.
27072
27073 2010-05-27  Jason Merrill  <jason@redhat.com>
27074
27075         * print-tree.c (debug_vec_tree): New fn.
27076         (print_vec_tree): New fn.
27077         * tree.h: Declare them.
27078         * gdbinit.in (pvt): New command.
27079
27080         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
27081
27082         * gdbinit.in (pdd): New command.
27083
27084 2010-05-27  Jan Hubicka  <jh@suse.cz>
27085
27086         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
27087         (update_caller_keys): Return early if there are no callers;
27088         only update fibheap when decresing the key.
27089         (update_callee_keys): Avoid recursion.
27090         (decide_inlining_of_small_functions): When badness does not match;
27091         re-insert into fibheap.
27092
27093 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
27094
27095         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
27096         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
27097         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
27098         (ALL_HOST_OBJS): Now a union of the above two.
27099         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
27100         all files in ALL_HOST_FRONTEND_OBJS.
27101         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
27102
27103         * c-common.c: Pretend to be a backend file by undefining
27104         IN_GCC_FRONTEND (still need rtl.h here).
27105
27106 2010-05-27  Jan Hubicka  <jh@suse.cz>
27107
27108         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
27109         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
27110
27111 2010-05-27  Jan Hubicka  <jh@suse.cz>
27112
27113         * sched-ebb.c: Rename struct deps to struct deps_desc.
27114         * ddg.c: Likewise.
27115         * sel-sched-ir.c: Likewise.
27116         * sched-deps.c: Likewise.
27117         * sched-int.h: Likewise.
27118         * sched-rgn.c: Likewise.
27119
27120 2010-05-27  Jon Beniston  <jon@beniston.com>
27121
27122         PR 43726
27123         * config/lm32/lm32.h: Remove definition of
27124         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
27125
27126 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
27127
27128         PR lto/44230
27129         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
27130
27131 2010-05-27  Richard Guenther  <rguenther@suse.de>
27132
27133         PR tree-optimization/44284
27134         * tree-vect-stmts.c (vectorizable_assignment): Handle
27135         sign-changing conversions as simple copy.
27136
27137 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27138
27139         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
27140         Bionic C library.
27141         (__gthread_active_p): Check for pthread_create if compiling against
27142         Bionic C library.
27143
27144 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27145
27146         Support compilation for Android platform.  Reimplement -mandroid.
27147
27148         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
27149         (*android*): Set ANDROID_DEFAULT.
27150         (arm*-*-linux*): Include linux-android.h.
27151         (arm*-*-eabi*): Don't include previous -mandroid implementation.
27152         * config/arm/eabi.h: Remove, move Android-specific parts ...
27153         * config/linux-android.h: ... here.  New file.
27154         * config/arm/eabi.opt: Rename to ...
27155         * config/linux-android.opt: ... this.
27156         (mandroid): Allow -mno-android option.  Initialize based on
27157         ANDROID_DEFAULT.
27158         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
27159         Move logic to corresponding LINUX_TARGET_* macros.
27160         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
27161         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
27162         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
27163         Android definitions.
27164         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
27165         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
27166         Document.
27167
27168 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27169
27170         Add support for Bionic C library
27171
27172         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
27173         macro.
27174         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
27175         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
27176
27177         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
27178         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
27179         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
27180         to support multiple C libraries.  Handle Bionic.
27181         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
27182         (BIONIC_DYNAMIC_LINKER64): Define.
27183         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
27184         Update.
27185         (TARGET_HAS_SINCOS): Enable for Bionic.
27186
27187         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
27188         the last option specified on command line take effect.
27189         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
27190         (mbionic): New.
27191         (mglibc, muclibc): Update.
27192
27193         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
27194         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
27195         DEFAULT_LIBC.
27196
27197         * doc/invoke.texi (-mglibc, -muclibc): Update.
27198         (-mbionic): Document.
27199
27200 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27201
27202         * c-common.h (c_register_addr_space): Add prototype.
27203         (ADDR_SPACE_KEYWORD): Remove.
27204         * c-common.c (c_register_addr_space): New function.
27205         (c_addr_space_name): Reimplement.
27206         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
27207
27208         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
27209         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
27210
27211         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
27212         Remove TARGET_ADDR_SPACE_KEYWORDS.
27213
27214 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
27215
27216         * input.c: New file.
27217         * input.h (main_input_filename): Move declaration to toplev.h.
27218         * toplev.c (input_location, line_table): Move to input.c
27219         * toplev.h (main_input_filename): Move declaration from input.h.
27220         * tree.c (expand_location): Move to input.c.
27221         * Makefile.in (OBJS-common): Add input.o.
27222         (input.o): Add dependencies.
27223
27224 2010-05-27  Richard Guenther  <rguenther@suse.de>
27225
27226         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
27227         for non-existant files.
27228         (fork_execute): Mark args_name file as deleted.
27229
27230 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
27231
27232         PR bootstrp/44287
27233         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
27234         (narrow_signed_type): Likewise.
27235
27236 2010-05-26  Jan Hubicka  <jh@suse.cz>
27237
27238         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
27239         edge only when checking is enabled; check using former_clone_of;
27240         check inline clones too.
27241         (cgraph_materialize_clone): Record former_clone_of pointer.
27242         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
27243         combining redirections; dump args_to_skip bitmap
27244         (cgraph_materialize_all_clones): Do no redirection here.
27245         * ipa-inline.c (inline_transform): Do redirection here.
27246         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
27247         cheking only).
27248
27249 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27250
27251         * config/avr/avr-c.c: Do not include regs.h.
27252         Include cpplib.h for cpp_define and tree.h for c-common.h.
27253         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
27254         * config/avr/t-avr: Fix dependencies for avr-c.o.
27255
27256 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27257
27258         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
27259         string instead of SYMBOL_REF rtx.
27260         * rtl.h (set_stack_check_libfunc): Move prototype from here...
27261         * libfuncs.h: ...to here.  Adjust for explow.c change.
27262
27263 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27264
27265         * pretty-print.c: Don't include ggc.h.
27266         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
27267         (identifier_to_locale): Use them for allocation.
27268         * pretty-print.h (identifier_to_locale_alloc,
27269         identifier_to_locale_free): Declare.
27270         * toplev.c (alloc_for_identifier_to_locale): New.
27271         (general_init): Set identifier_to_locale_alloc and
27272         identifier_to_locale_free.
27273         * Makefile.in (pretty-print.o): Update dependencies.
27274
27275 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27276
27277         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
27278         pointer types if they have different alignment or mode.
27279
27280 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
27281
27282         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
27283         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27284         * config/sparc/sparc-protos.h (function_value): Remove declaration.
27285         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
27286         sparc_function_value_regno_p): New functions.
27287         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27288         TARGET_FUNCTION_VALUE_REGNO_P): Define.
27289         (function_value): Rename to...
27290         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
27291         argument to 'outgoing'.
27292         (function_arg_record_value, function_arg_union_value,
27293         function_arg_vector_value): Update comment.
27294
27295 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27296
27297         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
27298         (fde_needed_for_eh_p): New predicate.
27299         (output_call_frame_info): Use it throughout to decide whether FDEs
27300         are needed for EH purpose.
27301         (dwarf2out_begin_prologue): Reorder assignments.
27302
27303 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27304
27305         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
27306         special case loop->header.
27307         (is_predicated): New.
27308         (if_convertible_loop_p): Call it.
27309
27310 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27311
27312         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
27313         iterator in parameter.  Do not generate code during the analysis.
27314         (tree_if_convert_cond_stmt): Removed.
27315         (tree_if_convert_stmt): Removed.
27316         (predicate_bbs): New.
27317         (if_convertible_loop_p): Call predicate_bbs.
27318         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
27319         now contains all the analysis part.
27320
27321 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27322
27323         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
27324         statements in the analysis part.
27325         (tree_if_convert_stmt): Update comment.
27326         (remove_conditions_and_labels): New.
27327         (combine_blocks): Call remove_conditions_and_labels.
27328         (tree_if_conversion): Update comment.
27329
27330 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27331
27332         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
27333         than 2 predecessors or more than 2 successors.
27334
27335 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27336
27337         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
27338         of loops in which the data dependence analysis fails.
27339
27340 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27341
27342         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
27343         CDI_POST_DOMINATORS.
27344         (tree_if_conversion): Same.
27345
27346 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27347
27348         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
27349
27350 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27351
27352         * tree-if-conv.c: Update copyright years.  Fix comments.
27353         Fix indentation.
27354
27355 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
27356
27357         * builtin-types.def (BT_INT128): New primitive type.
27358         (BT_UINT128): Likewise.
27359         * c-common.c (c_common_r): Add __int128 keyword.
27360         (c_common_type_for_size): Handle __int128.
27361         (c_common_type_for_mode): Likewise.
27362         (c_common_signed_or_unsigned_type): Likewise.
27363         (c_common_nodes_and_builtins): Add builtin type
27364         if target supports 128-bit integer scalar.
27365         * c-common.h (enum rid): Add RID_INT128.
27366         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
27367         if target supports 128-bit integer scalar.
27368         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
27369         (finish_declspecs): Likewise.
27370         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
27371         (c_token_starts_declspecs): Likewise.
27372         (c_parser_declspecs): Likewise.
27373         (c_parser_attributes): Likewise.
27374         (c_parser_objc_selector): Likewise.
27375         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
27376         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
27377         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
27378         * tree.c (make_or_reuse_type): Likewise.
27379         (make_unsigned_type): Likewise.
27380         (build_common_tree_nodes_2): Likewise.
27381         * tree.h (enum integer_type_kind): Add itk_int128 and
27382         itk_unsigned_int128.
27383         (int128_integer_type_node): New define.
27384         (int128_unsigned_type_node): New define.
27385         * doc/extend.texi: Add documentation about __int128 type.
27386
27387 2010-05-26  Richard Guenther  <rguenther@suse.de>
27388
27389         * tree-ssa-sccvn.c (copy_nary): Adjust.
27390         (copy_phis): Rename to ...
27391         (copy_phi): ... this.  Adjust.
27392         (copy_references): Rename to ...
27393         (copy_reference): ... this.  Adjust.
27394         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
27395         result into the valid table.
27396
27397 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27398
27399         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
27400         insn-config.h, insn-codes.h, recog.h, and optabs.h.
27401
27402 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27403
27404         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
27405
27406 2010-05-26  Richard Guenther  <rguenther@suse.de>
27407
27408         * opts.c (common_handle_option): Handle OPT_Ofast.
27409
27410 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27411
27412         * diagnostic.c: Don't include opts.h.
27413         (permissive_error_option): Define.
27414         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
27415         for classify_diagnostic.  Don't use memset for
27416         classify_diagnostic.  Initialize new and recently added fields.
27417         (diagnostic_classify_diagnostic): Use context->n_opts instead of
27418         N_OPTS.
27419         (diagnostic_report_diagnostic): Pass context parameter to
27420         diagnostic_report_warnings_p.  Use option_enabled and option_name
27421         hooks from context.
27422         (emit_diagnostic): Use permissive_error_option.
27423         (permerror): Likewise.
27424         * diagnostic.h: Don't include options.h.
27425         (struct diagnostic_context): Add n_opts, opt_permissive,
27426         inhibit_warnings, warn_system_headers, option_enabled and
27427         option_name fields.  Change classify_diagnostic to a pointer.
27428         * opts-diagnostic.h: New file.
27429         * opts.c: Include opts-diagnostic.h.
27430         (common_handle_option): Set global_dc fields for -Wfatal-errors,
27431         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
27432         (option_name): New function.
27433         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
27434         (c_common_handle_option): Set global_dc->permissive for
27435         -fpermissive.
27436         * c-common.c (c_cpp_error): Save and restore
27437         global_dc->warn_system_headers, not variable warn_system_headers.
27438         * toplev.c: Include opts-diagnostic.h.
27439         (general_init): Update call to diagnostic_initialize.  Set
27440         global_dc->show_column, global_dc->option_enabled and
27441         global_dc->option_name.
27442         (process_options): Don't set global_dc fields here.
27443         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
27444         (diagnostic.o, opts.o, toplev.o): Update dependencies.
27445
27446 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
27447
27448         * config/picochip/picochip.md (movsi): Split a movsi from a
27449         const after reload.
27450
27451 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27452
27453         * ggc-zone.c: Update copyright year.
27454         (poison_region): Mark memory for Valgrind as undefined before
27455         memset () call and inaccessible afterwards.
27456         (ggc_pch_total_size): Change type of i to int.
27457
27458 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27459
27460         * ggc-common.c (ggc_free_overhead): Allow empty slot.
27461
27462 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27463
27464         * ggc-common.c: Update copyright year.
27465         (ggc_rlimit_bound): Remove prototype.  Compile only if
27466         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
27467         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
27468         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
27469         (ggc_min_heapsize_heuristic): Likewise.
27470
27471 2010-05-26  Richard Guenther  <rguenther@suse.de>
27472
27473         PR rtl-optimization/44164
27474         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
27475         no-common access-path disambiguation.
27476         (indirect_ref_may_alias_decl_p): Adjust.
27477         (indirect_refs_may_alias_p): Likewise.
27478         (refs_may_alias_p_1): Likewise.
27479
27480 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27481
27482         * c-typeck.c: Do not include expr.h.
27483
27484 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27485
27486         * rtl.h (decl_default_tls_model): Move prototype from here...
27487         * output.h: ...to here.
27488         * c-decl.c: Do not include rtl.h.
27489         * c-pragma.c: Likewise.
27490         * c-parser.c: Likewise.
27491         * c-gimplify.c: Likewise.  And also not hard-reg-set.
27492         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
27493         FIXME note for it.  Add a FIXME note for expr.h.
27494         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
27495         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
27496         defined.
27497
27498 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
27499
27500         PR target/44199
27501         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
27502         or total_size is larger than red zone size for non-V4 ABI, emit a
27503         stack_tie resp. frame_tie insn before stack pointer restore.
27504         * config/rs6000/rs6000.md (frame_tie): New insn.
27505
27506 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
27507
27508         * function.h (struct function): Add can_throw_non_call_exceptions bit.
27509         * lto-streamer-in.c (input_function): Stream it in.
27510         * lto-streamer-out.c (output_function): Stream it out.
27511         * function.c (allocate_struct_function): Set it.
27512         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
27513         for flag_non_call_exceptions.
27514         * cfgbuild.c (control_flow_insn_p): Likewise.
27515         (make_edges): Likewise.
27516         * cfgexpand.c (expand_stack_alignment): Likewise.
27517         * combine.c (distribute_notes): Likewise.
27518         * cse.c (cse_extended_basic_block): Likewise.
27519         * except.c (insn_could_throw_p): Likewise.
27520         * gcse.c (simple_mem): Likewise.
27521         * ipa-pure-const.c (check_call): Likewise.
27522         (check_stmt ): Likewise.
27523         * lower-subreg.c (lower-subreg.c): Likewise.
27524         * optabs.c (emit_libcall_block): Likewise.
27525         (prepare_cmp_insn): Likewise.
27526         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
27527         * postreload.c (rest_of_handle_postreload): Likewise.
27528         * reload1.c (reload_as_needed): Likewise.
27529         (emit_input_reload_insns): Likewise.
27530         (emit_output_reload_insns): Likewise.
27531         (fixup_abnormal_edges): Likewise.
27532         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
27533         * store-motion.c (find_moveable_store): Likewise.
27534         * tree-eh.c (stmt_could_throw_p): Likewise.
27535         (tree_could_throw_p): Likewise.
27536         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
27537         * config/arm/arm.c (arm_expand_prologue): Likewise.
27538         (thumb1_expand_prologue): Likewise.
27539         * config/rx/rx.md (cbranchsf4): Likewise.
27540         (cmpsf): Likewise.
27541         * config/s390/s390.c (s390_emit_prologue): Likewise.
27542         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
27543         (inline_forbidden_into_p): New predicate.
27544         (expand_call_inline): Use it to forbid inlining.
27545         (tree_can_inline_p): Likewise.
27546
27547 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27548
27549         * config/i386/i386-c.c: Do not include rtl.h.
27550         * config/i386/t-i386: Update dependencies.
27551
27552 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27553
27554         * attribs.c: Do not include rtl.h.
27555         * Makefile.in: Update dependencies.
27556
27557 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
27558
27559         * double-int.h (double_int_and): New.
27560         * combine.c (try_combine): Clean up, use double_int_* and
27561         immed_double_int_const functions.
27562
27563 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27564
27565         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
27566         stderr to /dev/null instead of grep -q.
27567         * configure: Regenerate.
27568
27569 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27570
27571         * Makefile.in (EXCEPT_H): Fix typo.
27572
27573 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
27574
27575         * ira-build.c (update_conflict_hard_reg_costs): New.
27576         (ira_build): Call update_conflict_hard_reg_costs.
27577
27578 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27579
27580         PR debug/41371
27581         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
27582         ENABLE_CHECKING.
27583         (intersect_loc_chains): Walk the s2var's loc_chain together
27584         with s1node chain as long as the locations are equal, don't
27585         call find_loc_in_1pdv in that case.
27586
27587         PR debug/42801
27588         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
27589         (copy_bind_expr): ... instead of here.
27590         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
27591         if the block hasn't been remapped.
27592         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
27593         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
27594
27595 2010-05-25  Richard Guenther  <rguenther@suse.de>
27596
27597         PR middle-end/44069
27598         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
27599         out-of-bounds array accesses.
27600
27601 2010-05-25  Richard Guenther  <rguenther@suse.de>
27602
27603         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
27604         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
27605         (run_gcc): Re-organize to make cleanup easier.
27606
27607 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27608
27609         * config/s390/s390.c (optimization_options): Fix and move the
27610         flag_prefetch_loop_arrays override ...
27611         (override_options): ... here.
27612
27613 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
27614
27615         * diagnostic.c: Don't include plugin.h.
27616         (diagnostic_report_diagnostic): Don't handle plugins specially
27617         here.  Pass context to internal_error callback.
27618         * diagnostic.h (struct diagnostic_context): Add context parameter
27619         to internal_error callback.
27620         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
27621         * plugin.h (struct diagnostic_context): Declare.
27622         (warn_if_plugins, plugins_internal_error_function): Declare.
27623         * toplev.c (general_init): Set global_dc->internal_error.
27624         * Makefile.in (diagnostic.o): Update dependencies.
27625
27626 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
27627
27628         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
27629         * config/rs6000/t-darwin64: New.
27630         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
27631         build crt2.
27632
27633 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
27634
27635         PR 44203
27636         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
27637         match the original (and intended) behaviour before r159557.  This
27638         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
27639         in two ways.
27640
27641 2010-05-25  Richard Guenther  <rguenther@suse.de>
27642
27643         * doc/invoke.texi: Document -Ofast.
27644         * target.h (struct gcc_target): Add handle_ofast.
27645         * target-def.h (TARGET_HANDLE_OFAST): Add.
27646         (TARGET_INITIALIZER): Adjust.
27647         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
27648         * common.opt (Ofast): Add.
27649
27650 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27651
27652         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
27653         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
27654
27655 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27656
27657         PR target/43610
27658         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
27659         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
27660         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
27661         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
27662
27663 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27664
27665         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
27666         DW_OP_minus with negated offset instead of DW_OP_plus.
27667         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
27668
27669 2010-05-25  Wei Guozhi  <carrot@google.com>
27670
27671         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
27672         tst instruction and a new alternative.
27673         * config/arm/constraints.md (Pu): New constraint.
27674
27675 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
27676
27677         * function.c (assign_stack_local_1): Initialize variable
27678         to avoid warning when bootstrapping at -O3.
27679
27680 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
27681
27682         * configure.ac (all_lang_makefiles): Remove everything related to it.
27683         * configure: Regenerate.
27684         * Makefile.in: Fix reference to ada Make-lang.in.
27685         Remove support for LANG_MAKEFILES.
27686
27687 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
27688             Sandra Loosemore  <sandra@codesourcery.com>
27689
27690         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
27691         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
27692         description.  Add arm_neon_fp16_ok.
27693         (Add Options): Add arm_neon and arm_neon_fp16.
27694
27695 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
27696
27697         * diagnostic.c: Don't include flags.h.
27698         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
27699         context parameters.  Check flags in the context passed as a parameter.
27700         (diagnostic_build_prefix): Add context parameter.  Check
27701         show_column flag in context.
27702         (diagnostic_action_after_output): Check fatal_errors flag in context.
27703         (diagnostic_report_current_module): Check show_column flag in context.
27704         (default_diagnostic_starter): Update call to
27705         diagnostic_build_prefix.
27706         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
27707         (emit_diagnostic): Pass context to permissive_error_kind.
27708         (permerror): Pass context to permissive_error_kind.
27709         * diagnostic.h (struct diagnostic_context): Add show_column,
27710         pedantic_errors, permissive and fatal_errors fields.
27711         (diagnostic_build_prefix): Update prototype.
27712         * langhooks.c
27713         * toplev.c (process_options): Set flags in global_dc from
27714         flag_show_column, flag_pedantic_errors, flag_permissive,
27715         flag_fatal_errors.
27716         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
27717         to diagnostic_build_prefix.
27718         * Makefile.in (diagnostic.o): Update dependencies.
27719
27720 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
27721
27722         * config/i386/ia32intrin.h (__crc32q): Define only if
27723         __SSE4_2__ is defined.
27724
27725 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
27726
27727         PR target/44132
27728         PR middle-end/43602
27729         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
27730         DECL_VISIBILITY_SPECIFIED.
27731         (emutls_decl): Set DECL_PRESERVE_P and copy
27732         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
27733         (emutls_finalize_control_var): New callback.
27734         (emutls_finish): Finalize emutls control variables.
27735         * toplev.c (compile_file): Move the call to emutls_finish ()
27736         before varpool_assemble_pending_decls ().
27737
27738 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
27739
27740         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
27741         added to the preprocessor condition.
27742
27743 2010-05-24  Paul Brook  <paul@codesourcery.com>
27744
27745         * gengtype-lex.l: Add HARD_REG_SET.
27746         * expr.c (expand_expr_real_1): Record writes to hard registers.
27747         * function.c (rtl_data): Add asm_clobbers.
27748         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
27749         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
27750         Use crtl->asm_clobbers.
27751
27752 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27753
27754         * doc/makefile.texi (Makefile): Mention stages 'profile'
27755         and 'feedback' for profiledbootstrap.
27756
27757 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
27758
27759         PR target/44245
27760         * config/i386/i386.c (def_builtin): Properly check
27761         OPTION_MASK_ISA_64BIT.
27762
27763 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
27764
27765         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
27766         typedefs with different but compatible types.  Allow duplicate
27767         typedefs with the same type except for pedantic non-C1X, but give
27768         warning for variably modified types.
27769         * c-typeck.c (tagged_types_tu_compatible_p,
27770         function_types_compatible_p, type_lists_compatible_p,
27771         comptypes_internal): Add parameter different_types_p; set
27772         *different_types_p for different but compatible types.  All
27773         callers changed.
27774         (comptypes_check_different_types): New.
27775         * c-tree.h (comptypes_check_different_types): Declare.
27776
27777 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27778
27779         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
27780         * jump.c: Include basic-block.h.
27781         * profile.c: Likewise.
27782         * tree-profile.c: Likewise.
27783         * coverage.c: Likewise.
27784         * basic-block.h (optimize_function_for_size_p): Move to function.h.
27785         (optimize_function_for_speed_p): Likewise.
27786         * function.h (optimize_function_for_size_p,
27787         optimize_function_for_speed_p): Moved here from basic-block.h.
27788         * Makefile.in: Update dependencies.
27789
27790 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27791
27792         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
27793         before calling make; allow override through $MAKE.
27794         * doc/invoke.texi (Optimize Options): Document override.
27795
27796 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
27797
27798         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
27799         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27800         (rs6000_mode_dependent_address_ptr): Make static.
27801         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27802         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
27803         Remove.
27804
27805 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
27806
27807         PR target/43869
27808         * config/i386/i386.c: Make sure that the correct regparm is passed.
27809
27810 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27811
27812         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
27813         * sbitmap.c: ...to here to internalize sbitmap element access.
27814         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
27815         Explain why basic-block.h is included.
27816         * function.h: Include tm.h for CUMULATIVE_ARGS.
27817         * Makefile.in: Update dependencies.
27818
27819 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27820
27821         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
27822         New core types.
27823         * sbitmap.h (struct sbitmap_def): Do not typedef here.
27824         * sbitmap.c: Include sbitmap.h.
27825         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
27826         hard-reg-set.h.  Split everything related to regsets out from here...
27827         * regset.h: ...to here.  New file.
27828         * df.h: Include regset.h and sbitmap.h.
27829         * tree-flow.h: Likewise.
27830         * cfgloop.h: Likewise.
27831         * except.h: Do not include sbitmap.h.  Include hashtab.h.
27832         * cgraph.h: Include vec.h and function.h.
27833         * reload.h (struct insn_chain): Change types of live_throughout
27834         and dead_or_set from regset_head to bitmap_head.
27835         (compute_use_by_pseudos): Be defined also if regset.h is not included.
27836         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
27837         spilled_regs from regset_head to bitmap_head to avoid dependency
27838         in regset.h.
27839         * sel-sched-ir.h: Include regset.h.
27840         * reload.c: Include df.h before reload.h.
27841         * caller-save.c: Likewise.
27842         * reload1.c: Likewise.
27843         * ira.c: Likewise.
27844         (mark_elimination): Update type of r to bitmap, consistent with
27845         DF_LR_IN.
27846         * dominance.c: Include bitmap.h.
27847         * modulo-sched.c: Include df.h.
27848         * cfganal.c: Include bitmap.h and sbitmap.h.
27849         * cfgbuild.c: Include sbitmap.h.
27850         * lcm.c: Include sbitmap.h.
27851         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
27852         * domwalk.c: Include sbitmap.h, exclude ggc.h.
27853         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
27854         * cselib.c: Include bitmap.h.
27855         * tree-optimize.c: Include regset.h.
27856         * stmt.c: Include bitmap.h.
27857         * Makefile.in: Update dependencies.
27858
27859 2010-05-22  Jan Hubicka  <jh@suse.cz>
27860
27861         * cgraph.h (struct varpool_node): Add same_comdat_group.
27862         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
27863         pointer.
27864         (output_varpool): Update call of lto_output_varpool_node.
27865         (input_varpool): Read same_comdat_group pointer.
27866         (input_varpool_1): Fixup same_comdat_group pointer.
27867         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
27868         group is needed, all are.
27869         * varpool.c (varpool_remove_node): Remove node from same comdat group
27870         linklist too.
27871         (varpool_analyze_pending_decls): Walk same comdat groups.
27872
27873 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27874
27875         * rtl.h (union rtunion_def): Remove rt_bit member.
27876         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
27877         * print-rtl (print_rtx): Do not print the member.
27878         * gengtype.c (adjust_field_rtx_def): Do not handle it.
27879         * gengenrtl.c (type_from_format): Likewise.
27880         (accessor_from_format): Likewise.
27881
27882 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
27883
27884         * dbgcnt.c: Include toplev.h instead of errors.h.
27885         * ira-emit.c: Don't include errors.h.
27886         * ira.c: Include toplev.h instead of errors.h.
27887         * lto-compress.c: Include toplev.h instead of errors.h.
27888         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
27889         ira.o, dbgcnt.o): Update dependencies.
27890
27891 2010-05-22  Richard Guenther  <rguenther@suse.de>
27892
27893         * gimple.c (gimple_types_compatible_p): Check type qualifications
27894         before merging pointer to complete and pointer to incomplete type.
27895         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
27896         we use our own resolution algorithm.  The gold linker plugin
27897         doesn't do the job we want it to do here.
27898
27899 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
27900
27901         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27902         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27903         (sparc_mode_dependent_address_p): New function.
27904
27905 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27906
27907         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
27908
27909         * timevar.c: Do not include any core headers.
27910         (timevar_print): De-i18n-ize.
27911         (print_time): Likewise.
27912         * timevar.h (timevar_push, timevar_pop): Make inline functions.
27913
27914 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
27915
27916         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
27917         langhooks-def.h.
27918         (diagnostic_initialize): Initialize x_data not last_function.
27919         (diagnostic_report_current_function): Move to tree-diagnostic.c.
27920         (default_diagnostic_starter): Call
27921         diagnostic_report_current_module not
27922         diagnostic_report_current_function.
27923         (diagnostic_report_diagnostic): Initialize x_data not
27924         abstract_origin.
27925         (verbatim): Likewise.
27926         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
27927         x_data.
27928         (struct diagnostic_context): Change last_function to x_data.
27929         (diagnostic_auxiliary_data): Replace with
27930         diagnostic_context_auxiliary_data and
27931         diagnostic_info_auxiliary_data.
27932         (diagnostic_last_function_changed, diagnostic_set_last_function,
27933         diagnostic_report_current_function): Move to tree-diagnostic.h.
27934         (print_declaration, dump_generic_node, print_generic_stmt,
27935         print_generic_stmt_indented, print_generic_expr,
27936         print_generic_decl, debug_c_tree, dump_omp_clauses,
27937         print_call_name, debug_generic_expr, debug_generic_stmt,
27938         debug_tree_chain, default_tree_printer): Move to
27939         tree-pretty-print.h.
27940         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
27941         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
27942         gimple-pretty-print.h.
27943         * pretty-print.c: Don't include tree.h
27944         (pp_base_format): Don't handle %K here.
27945         (pp_base_tree_identifier): Move to tree-pretty-print.c.
27946         * pretty-print.h (text_info): Change abstract_origin to x_data.
27947         (pp_tree_identifier, pp_unsupported_tree,
27948         pp_base_tree_identifier): Move to tree-pretty-print.h.
27949         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
27950         tree-pretty-print.h: New files.
27951         * tree-pretty-print.c: Include tree-pretty-print.h.
27952         (percent_K_format): New.  Moved from pretty-print.c.
27953         (pp_base_tree_identifier): Move from pretty-print.c.
27954         * c-objc-common.c: Include tree-pretty-print.h.
27955         (c_tree_printer): Handle %K here.
27956         * langhooks.c: Include tree-diagnostic.h.
27957         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
27958         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
27959         (default_tree_printer): Handle %K using percent_K_format.
27960         (general_init): Use default_tree_diagnostic_starter.
27961         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
27962         (free_lang_data): Use default_tree_diagnostic_starter.
27963         * c-pretty-print.c: Include tree-pretty-print.h.
27964         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27965         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27966         * dwarf2out.c: Include tree-pretty-print.h.
27967         * except.c: Include tree-pretty-print.h.
27968         * gimple-pretty-print.c: Include tree-pretty-print.h and
27969         gimple-pretty-print.h.
27970         * gimplify.c: Include tree-pretty-print.h.
27971         * graphite-poly.c: Include tree-pretty-print.h and
27972         gimple-pretty-print.h.
27973         * ipa-cp.c: Include tree-pretty-print.h.
27974         * ipa-inline.c: Include gimple-pretty-print.h.
27975         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27976         * ipa-pure-const.c: Include gimple-pretty-print.h.
27977         * ipa-struct-reorg.c: Include tree-pretty-print.h and
27978         gimple-pretty-print.h.
27979         * ipa-type-escape.c: Include tree-pretty-print.h.
27980         * print-rtl.c: Include tree-pretty-print.h.
27981         * print-tree.c: Include gimple-pretty-print.h.
27982         * sese.c: Include tree-pretty-print.h.
27983         * tree-affine.c: Include tree-pretty-print.h.
27984         * tree-browser.c: Include tree-pretty-print.h.
27985         * tree-call-cdce.c: Include gimple-pretty-print.h.
27986         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27987         * tree-chrec.c: Include tree-pretty-print.h.
27988         * tree-data-ref.c: Include tree-pretty-print.h and
27989         gimple-pretty-print.h.
27990         * tree-dfa.c: Include tree-pretty-print.h.
27991         * tree-if-conv.c: Include tree-pretty-print.h and
27992         gimple-pretty-print.h.
27993         * tree-inline.c: Include tree-pretty-print.h.
27994         * tree-into-ssa.c: Include tree-pretty-print.h and
27995         gimple-pretty-print.h.
27996         * tree-nrv.c: Include tree-pretty-print.h.
27997         * tree-object-size.c: Include tree-pretty-print.h and
27998         gimple-pretty-print.h.
27999         * tree-outof-ssa.c: Include tree-pretty-print.h and
28000         gimple-pretty-print.h.
28001         * tree-parloops.c: Include tree-pretty-print.h and
28002         gimple-pretty-print.h.
28003         * tree-predcom.c: Include tree-pretty-print.h and
28004         gimple-pretty-print.h.
28005         * tree-scalar-evolution.c: Include tree-pretty-print.h and
28006         gimple-pretty-print.h.
28007         * tree-sra.c: Include tree-pretty-print.h.
28008         * tree-ssa-address.c: Include tree-pretty-print.h.
28009         * tree-ssa-alias.c: Include tree-pretty-print.h.
28010         * tree-ssa-ccp.c: Include tree-pretty-print.h and
28011         gimple-pretty-print.h.
28012         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
28013         * tree-ssa-copy.c: Include tree-pretty-print.h and
28014         gimple-pretty-print.h.
28015         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
28016         * tree-ssa-dce.c: Include tree-pretty-print.h and
28017         gimple-pretty-print.h.
28018         * tree-ssa-dom.c: Include tree-pretty-print.h and
28019         gimple-pretty-print.h.
28020         * tree-ssa-dse.c: Include gimple-pretty-print.h.
28021         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
28022         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
28023         * tree-ssa-live.c: Include tree-pretty-print.h and
28024         gimple-pretty-print.h.
28025         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
28026         gimple-pretty-print.h.
28027         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
28028         gimple-pretty-print.h.
28029         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
28030         gimple-pretty-print.h.
28031         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
28032         gimple-pretty-print.h.
28033         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
28034         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
28035         * tree-ssa-operands.c: Include tree-pretty-print.h and
28036         gimple-pretty-print.h.
28037         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
28038         gimple-pretty-print.h.
28039         * tree-ssa-pre.c: Include tree-pretty-print.h and
28040         gimple-pretty-print.h.
28041         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
28042         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
28043         gimple-pretty-print.h.
28044         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
28045         gimple-pretty-print.h.
28046         * tree-ssa-sink.c: Include gimple-pretty-print.h.
28047         * tree-ssa-ter.c: Include tree-pretty-print.h and
28048         gimple-pretty-print.h.
28049         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
28050         * tree-ssa.c: Include tree-pretty-print.h and
28051         gimple-pretty-print.h.
28052         * tree-stdarg.c: Include gimple-pretty-print.h.
28053         * tree-switch-conversion.c: Include gimple-pretty-print.h.
28054         * tree-tailcall.c: Include tree-pretty-print.h and
28055         gimple-pretty-print.h.
28056         * tree-vect-data-refs.c: Include tree-pretty-print.h and
28057         gimple-pretty-print.h.
28058         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
28059         gimple-pretty-print.h.
28060         * tree-vect-loop.c: Include tree-pretty-print.h and
28061         gimple-pretty-print.h.
28062         * tree-vect-patterns.c: Include gimple-pretty-print.h.
28063         * tree-vect-slp.c: Include tree-pretty-print.h and
28064         gimple-pretty-print.h.
28065         * tree-vect-stmts.c: Include tree-pretty-print.h and
28066         gimple-pretty-print.h.
28067         * tree-vectorizer.c: Include tree-pretty-print.h.
28068         * tree-vrp.c: Include tree-pretty-print.h and
28069         gimple-pretty-print.h.
28070         * value-prof.c: Include tree-pretty-print.h and
28071         gimple-pretty-print.h.
28072         * var-tracking.c: Include tree-pretty-print.h.
28073         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
28074         (tree-diagnostic.o): New dependencies.
28075         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
28076         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
28077         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
28078         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
28079         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
28080         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
28081         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
28082         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
28083         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
28084         tree-ssa-address.o, tree-ssa-loop-niter.o,
28085         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
28086         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
28087         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
28088         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
28089         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
28090         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
28091         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
28092         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
28093         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
28094         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
28095         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
28096         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
28097         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
28098         tree-switch-conversion.o, var-tracking.o, value-prof.o,
28099         cfgexpand.o, pretty-print.o): Update dependencies.
28100
28101 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
28102
28103         * tree-ssa-structalias.c: Remove tm_p.h from include.
28104
28105 2010-05-21  Jeff Law  <law@redhat.com>
28106
28107         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
28108
28109 2010-05-21  Jason Merrill  <jason@redhat.com>
28110
28111         * tree-eh.c (cleanup_is_dead_in): New.
28112         (lower_try_finally): Don't generate a dead cleanup region.
28113         (lower_cleanup): Likewise.
28114
28115 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28116
28117         PR debug/44223
28118         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
28119         unchain each use from the cyclic next_regno_use chain first.
28120
28121 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28122
28123         * real: Do not include gmp.h, mpfr.h, and mpc.h.
28124         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
28125         (real_value_negate, real_value_abs): New prototypes.
28126         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
28127         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
28128         new include file for interface between MPFR and REAL_VALUE_TYPE.
28129         * real.c: Include realmpfr.h.
28130         (real_arithmetic2): Remove legacy function.
28131         (real_value_negate): New.
28132         (real_value_abs): New.
28133         (mfpr_from_real, real_from_mpfr): Move from here...
28134         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
28135         * builtins.c: Include realmpfr.h.
28136         * fold-const.c: Include realmpfr.h.
28137         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
28138         (fold_negate_const): Likewise.
28139         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
28140         * toplev.c: Include realmpfr.h.
28141         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
28142         and real_value_negate.
28143         * fixed-value.c (check_real_for_fixed_mode): Likewise.
28144         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
28145         (vfp3_const_double_index): Likewise.
28146         (arm_print_operand): Likewise.
28147         * Makefile.in: Update dependencies.
28148
28149 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28150
28151         * config/s390/s390.c (override_options): Increase the default
28152         of max-completely-peel-times.
28153
28154 2010-05-21  Julian Brown  <julian@codesourcery.com>
28155             Mark Mitchell  <mark@codesourcery.com>
28156
28157         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
28158         sibling calls for Thumb-1.
28159         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
28160         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
28161         Thumb-2.
28162         (*call_insn, *call_value_insn): Don't use for Thumb-2.
28163         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
28164         for Thumb-2.
28165         (return): New expander.
28166         (*arm_return): New name for ARM return insn.
28167         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
28168
28169 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
28170
28171         * config.gcc (sparc64-*-rtems*): New target.
28172
28173 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28174
28175         * tree.c (build_function_decl_skip_args): Fix grammar.
28176         (build_function_type_list_1): Fix typos, adjust formatting.
28177
28178 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28179
28180         * tree.h: Include real.h and fixed-value.h as basic datatypes.
28181         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
28182         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
28183         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
28184         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
28185         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
28186         tree-pretty-print.c, tree-loop-distribution.c,
28187         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
28188         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
28189         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
28190         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
28191         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
28192         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
28193         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
28194         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
28195         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
28196         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
28197         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
28198         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
28199         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
28200         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
28201         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
28202         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
28203         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
28204         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
28205         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
28206         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
28207         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
28208         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
28209         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
28210         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
28211         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
28212         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
28213         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
28214         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
28215         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
28216         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
28217         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
28218         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
28219         config/score/score7.c, config/score/score.c, config/arm/arm.c,
28220         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
28221         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
28222         config/bfin/bfin.c: Clean up redundant includes.
28223         * Makefile.in: Update accordingly.
28224
28225 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28226
28227         PR middle-end/44204
28228         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
28229         statement has no arguments.
28230
28231 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
28232
28233         PR/44139
28234         * varasm.c (emutls_decl): Merge attributes to new decl.
28235
28236 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
28237
28238         PR middle-end/44101
28239         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
28240         around the uniquized constructor if its type requires a conversion.
28241
28242 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28243
28244         PR debug/44205
28245         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
28246         at -O0 goto_locus of any of the incoming edges differs from
28247         goto_locus of outgoing edge, or gimple_location of any of the
28248         labels differs.
28249
28250 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
28251
28252         * ira.c (ira_non_ordered_class_hard_regs): Define.
28253         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
28254         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
28255         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
28256         cost of unaligned hard regs when allocating multi-reg pseudos.
28257
28258 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
28259
28260         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
28261         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
28262         for TARGET_NO_FLOAT.
28263         * config/mips/mips.c (mips_file_start): Expand conditional expression
28264         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
28265         (mips_override_options): Move -mno-float override -msoft-float and
28266         -mhard-float.
28267         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
28268         Condition(TARGET_SUPPORTS_NO_FLOAT).
28269         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
28270         __mips_no_float here.
28271         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
28272         (TARGET_SUPPORTS_NO_FLOAT): Define.
28273         * config/mips/sdemtk.opt: Delete.
28274
28275 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
28276
28277         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
28278
28279 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
28280
28281         PR target/43733
28282         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
28283         * configure: Regenerate.
28284         * config.in: Regenerate.
28285         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
28286         instead of sahf only for 64bit targets.
28287
28288 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28289
28290         PR debug/44178
28291         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
28292         setup_ref_regs for DEBUG_INSNs.
28293
28294 2010-05-20  Jan Hubicka  <jh@suse.cz>
28295
28296         PR middle-end/44197
28297         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
28298
28299 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
28300
28301         PR bootstrap/43870
28302         * df-scan.c (df_ref_compare): Stabilize sort.
28303
28304 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28305
28306         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
28307         argument.  Don't use DW_OP_piece if offset is non-zero,
28308         put offset into second DW_OP_bit_piece argument.
28309         (dw_sra_loc_expr): Adjust callers.  For memory expressions
28310         compute offset.
28311
28312 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
28313
28314         PR target/44202
28315         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
28316         settings for 16-bit-constant "addo" alternative.
28317
28318 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
28319
28320         * config/mips/mips-dsp.md (add<DSPV:mode>3,
28321         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
28322
28323         PR target/43764
28324         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
28325         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
28326         Use it.
28327
28328 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
28329
28330         * diagnostic.c (FLOAT, FFS): Don't undefine.
28331         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
28332         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
28333         include ordering.
28334
28335 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
28336
28337         * combine.c (propagate_for_debug): Call make_compound_operation
28338         on the source value.
28339         (try_combine): When implementing a split chosen by find_split_point,
28340         either copy i2src or set it to null.  Assert that i2src is not null
28341         before substituting into CALL_INSN_FUNCTION_USAGE.
28342
28343 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
28344
28345         * double-int.h (double_int_ior): New function.
28346         * tree.h (build_int_cst_wide_type): Remove.
28347         * tree.c (build_int_cst_wide_type): Remove.
28348         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
28349         of build_int_cst_wide_type.
28350         * stor-layout.c (set_sizetype): (Ditto.).
28351         * dojump.c (do_jump): Use build_int_cstu instead of
28352         build_int_cst_wide_type.
28353
28354 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
28355
28356         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
28357         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
28358         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
28359         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
28360         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
28361         propagate the 'data' argument to copy_tree_r.
28362         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
28363         Propagate 'data' argument to walk_tree.
28364         (copy_if_shared): New function.
28365         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
28366         (unmark_visited): New function.
28367         (unshare_body): Call copy_if_shared instead of doing it manually.
28368         (unvisit_body): Call unmark_visited instead of doing it manually.
28369
28370 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
28371
28372         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
28373         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
28374         * hooks.c: Likewise.
28375         * target-def.h (TARGET_FOLD_BUILTIN): Define to
28376         hook_tree_tree_int_treep_bool_null.
28377         * target.h (struct gcc_target): Update signature of fold_builtin
28378         field.
28379         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
28380         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
28381         instead of the call expression.
28382         (fold_builtin_call_array): Pass n and argarray directly.
28383         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
28384         consing a list.
28385         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
28386         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
28387         `i' and use it in place of `arity'.
28388         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
28389         Dereference `args' directly.
28390         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
28391
28392 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28393
28394         * doc/sourcebuild.texi (Effective-Target Keywords): Document
28395         3dnow, sse3, sse2.
28396         (Directives): Document optional dg-require-effective-target
28397         selector.
28398
28399 2010-05-19  Richard Guenther  <rguenther@suse.de>
28400
28401         PR lto/44196
28402         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
28403
28404 2010-05-19  Richard Guenther  <rguenther@suse.de>
28405
28406         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
28407         * common.opt (fwhopr=): New.
28408         * opts.c (common_handle_option): Handle OPT_fwhopr.
28409         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
28410         * collect2.c (main): Match -fwhopr*.
28411         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
28412         Execute ltrans stage in parallel when jobs is bigger than 1.
28413
28414 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28415
28416         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
28417         pentiumpro on Solaris 8/x86 with Sun as.
28418         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
28419         hidden alias bug.
28420         (gcc_cv_as_ix86_quad): Check for .quad directive.
28421         * configure: Regenerate.
28422         * config.in: Regenerate.
28423         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
28424
28425 2010-05-19  Martin Jambor  <mjambor@suse.cz>
28426
28427         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
28428         also for indirect edges.  Actual printing moved...
28429         (ipa_print_node_jump_functions_for_edge): ...here.
28430         (ipa_compute_jump_functions): Renamed to
28431         ipa_compute_jump_functions_for_edge and made static.
28432         (ipa_compute_jump_functions): New function.
28433         (make_edge_direct_to_target): Check if the number of arguments on
28434         the newly direct edge is the same as the number of parametrs of
28435         the callee.
28436         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
28437         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
28438         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
28439         analysis functions unconditionally, call the new
28440         ipa_analyze_params_uses on the node instead of every edge.
28441
28442 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
28443
28444         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
28445         to tree.
28446         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
28447         also checks for a constant int vs.  non-constant but
28448         loop-invariant steps.
28449         (find_or_create_group): Change the sort algorithm to only consider
28450         steps that are constant ints.
28451         (idx_analyze_ref): Adopt code to handle a tree instead of a
28452         HOST_WIDE_INT for step.
28453         (gather_memory_references_ref): Handle tree instead of int and be
28454         prepared to see a NULL_TREE.
28455         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
28456         prefetches if the step cannot be calculated at compile time.
28457         (issue_prefetch_ref): Issue prefetches for non-constant but
28458         loop-invariant steps.
28459
28460 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28461
28462         Revert:
28463         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28464
28465         * tree.h (build_call_list): Remove.
28466         * tree.c (build_call_list): Remove.
28467
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  Jan Hubicka  <jh@suse.cz>
28474
28475         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
28476
28477 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
28478
28479         PR rtl-optimization/43332
28480         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
28481
28482 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
28483
28484         * tree.h (build_int_cstu): Implement as static inline.
28485         * tree.c (build_int_cstu): Remove function.
28486         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
28487         sign extended.
28488
28489 2010-05-18  Richard Guenther  <rguenther@suse.de>
28490
28491         PR lto/44143
28492         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
28493         (debug): Initialize from -save-temps.
28494         (collect_execute): Print command-line when verbose.
28495         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
28496         for ltrans invocation.  Produce -dumpbase flag again.
28497         (process_args): Remove.
28498         (main): Simplify.
28499         * collect2.c (maybe_run_lto_and_relink): Only pass object
28500         files to lto-wrapper.
28501         * gcc.c (LINK_COMMAND_SPEC): Likewise.
28502
28503 2010-05-18  Jan Hubicka  <jh@suse.cz>
28504
28505         * opts.c (decode_options): Do not disable whopr at ipa_cp.
28506         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
28507
28508 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28509
28510         PR lto/44184
28511         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
28512         in a GIMPLE_ASM.
28513         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
28514         in a GIMPLE_ASM.
28515
28516 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
28517
28518         PR debug/41371
28519         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
28520         rtx_equal_p inline.
28521
28522 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28523
28524         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
28525         lto-macho as lto_binary_reader.
28526
28527         * darwin.c (darwin_asm_named_section): Do not add assembler comment
28528         after .section directive; just print it before the directive instead.
28529
28530 2010-05-17  Jan Hubicka  <jh@suse.cz>
28531
28532         * cgraph.c (cgraph_create_virtual_clone): Only check
28533         versionable_function_p when not in wpa and checking is enabled.
28534         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
28535         there are no more functions to materialize.
28536
28537 2010-05-17  Jan Hubicka  <jh@suse.cz>
28538
28539         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
28540         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
28541         New functions.
28542         (output_cgraph): Call output_cgraph_opt_summary.
28543         (input_cgrpah): Call input_cgraph_opt_summary.
28544         (output_cgraph_opt_summary_p, output_node_opt_summary,
28545         input_node_opt_summary, input_cgraph_opt_section): New functions.
28546         * lto-section-in.c (lto_section_name): Add cgraphopt.
28547         * tree-inline.c (tree_function_versioning): Handle parm_num.
28548         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
28549         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
28550
28551 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28552
28553         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
28554         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
28555         the insn to prefetch ratio heuristic to loops with known trip count.
28556
28557 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28558
28559         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
28560         (schedule_prefetches): Do not generate a prefetch if the unroll factor
28561         is far from what is required by the prefetch.
28562
28563 2010-05-17  Jan Hubicka  <jh@suse.cz>
28564
28565         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
28566         (ipcp_estimate_growth): Likewise.
28567         (ipcp_const_param_count): Likewise.
28568         (ipcp_insert_stage): Likewise.
28569         * ipa-prop.c (visit_load_for_mod_analysis): New function.
28570         (visit_store_addr_for_mod_analysis): Set used flag.
28571         (ipa_detect_param_modifications): Set used flag for SSE params;
28572         update use of walk_stmt_load_store_addr_ops.
28573         (ipa_print_node_params): Print used flag.
28574         (ipa_write_node_info): Stream used flag.
28575         (ipa_read_node_info): Likewise.
28576         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
28577         (ipa_is_param_used): New function.
28578         (lto_ipa_fixup_call_notes): Remove unused declaration.
28579
28580 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28581
28582         PR target/44074
28583         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
28584         * configure: Regenerate.
28585         * config.in: Regenerate.
28586         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
28587         !HAVE_AS_IX86_REP_LOCK_PREFIX.
28588         Don't emit whitespace.
28589         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
28590         (*rep_movsi): Likewise.
28591         (*rep_movsi_rex64): Likewise.
28592         (*rep_movqi): Likewise.
28593         (*rep_movqi_rex64): Likewise.
28594         (*rep_stosdi_rex64): Likewise.
28595         (*rep_stossi): Likewise.
28596         (*rep_stossi_rex64): Likewise.
28597         (*rep_stosqi): Likewise.
28598         (*rep_stosqi_rex64): Likewise.
28599         (*cmpstrnqi_nz_1): Use {%;} after repz.
28600         (*cmpstrnqi_nz_rex_1): Likewise.
28601         (*cmpstrnqi_1): Likewise.
28602         (*cmpstrnqi_rex_1): Likewise.
28603         (*strlenqi_1): Use {%;} after repnz.
28604         (*strlenqi_rex_1): Likewise.
28605         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
28606         (*sync_compare_and_swap<mode>): Likewise.
28607         (sync_double_compare_and_swap<mode>): Likewise.
28608         (*sync_double_compare_and_swapdi_pic): Likewise.
28609         (sync_old_add<mode>): Likewise.
28610         (sync_add<mode>): Likewise.
28611         (sync_sub<mode>): Likewise.
28612         (sync_<code><mode>): Likewise.
28613
28614 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28615
28616         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
28617         otr_token and polymorphic.
28618         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
28619         (cgraph_clone_edge): Copy the above fields.
28620         * tree.c (get_binfo_at_offset): New function.
28621         * tree.h (get_binfo_at_offset): Declare.
28622         * ipa-prop.h (enum jump_func_type): Added known_type jump function
28623         type, reordered items, updated comments.
28624         (union jump_func_value): Added base_type field, reordered fields.
28625         (enum ipa_lattice_type): Moved down in the file.
28626         (struct ipa_param_descriptor): New field polymorphic.
28627         (ipa_is_param_polymorphic): New function.
28628         * ipa-prop.c: Include gimple.h and gimple-fold.h.
28629         (ipa_print_node_jump_functions): Print known type jump functions.
28630         (compute_complex_pass_through): Renamed to...
28631         (compute_complex_assign_jump_func): this.
28632         (compute_complex_ancestor_jump_func): New function.
28633         (compute_known_type_jump_func): Likewise.
28634         (compute_scalar_jump_functions): Create known type and complex ancestor
28635         jump functions.
28636         (ipa_note_param_call): New parameter polymorphic, set the corresponding
28637         flag in the call note accordingly.
28638         (ipa_analyze_call_uses): Renamed to...
28639         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
28640         variable var only in the block where it is used.
28641         (ipa_analyze_virtual_call_uses): New function.
28642         (ipa_analyze_call_uses): Likewise.
28643         (combine_known_type_and_ancestor_jfs): Likewise.
28644         (update_jump_functions_after_inlining): Implemented handling of a
28645         number of new jump function types combination.
28646         (print_edge_addition_message): Removed.
28647         (make_edge_direct_to_target): New function.
28648         (try_make_edge_direct_simple_call): Likewise.
28649         (try_make_edge_direct_virtual_call): Likewise.
28650         (update_call_notes_after_inlining): Renamed to...
28651         (update_indirect_edges_after_inlining): this.  Moved edge creation for
28652         indirect calls to try_make_edge_direct_simple_call, also calls
28653         try_make_edge_direct_virtual_call for virtual calls.
28654         (ipa_print_node_params): Changed the header message.
28655         (ipa_write_jump_function): Stream also known type jump functions.
28656         (ipa_read_jump_function): Likewise.
28657         (ipa_write_indirect_edge_info): Stream new fields in
28658         cgraph_indirect_call_info.
28659         (ipa_read_indirect_edge_info): Likewise.
28660         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
28661         GIMPLE_FOLD_H.
28662
28663 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28664
28665         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
28666
28667 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28668
28669         * tree.h (CALL_EXPR_ARGS): Delete.
28670         (call_expr_arglist): Delete.
28671         * tree.c (call_expr_arglist): Delete.
28672         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
28673         targetm.fold_builtin.
28674         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
28675         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
28676         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
28677         arglist parameter.  Use CALL_EXPR_ARG.
28678         (picochip_expand_builtin_3op): Likewise.
28679         (picochip_expand_builtin_2opvoid): Likewise.
28680         (picochip_expand_array_get): Likewise.
28681         (picochip_expand_array_put): Likewise.
28682         (picochip_expand_array_testport): Likewise.
28683         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
28684         rather than arglist.
28685         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
28686         CALL_EXPR_ARGS.
28687         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
28688         than TREE_VALUE and TREE_CHAIN.
28689         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
28690         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
28691         the arglist.
28692
28693 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28694
28695         PR bootstrap/42347
28696         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
28697         to have no fallthru edge.
28698
28699         PR middle-end/44102
28700         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
28701         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
28702         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
28703         add BARRIER after previous bb if needed.
28704
28705 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28706
28707         * tree.c (build_function_type_list_1): Remove bogus assert condition.
28708
28709 2010-05-17  Alan Modra  <amodra@gmail.com>
28710
28711         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
28712         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
28713         with copy_reg rtx param.
28714         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
28715         Correct cases where code for ABI_V4 did not initialise the reg
28716         used to access frame.  Also leave frame_reg_rtx as sp for large
28717         frames that save no regs.
28718
28719 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28720
28721         PR middle-end/44133
28722         * tree-sra.c (create_access_replacement): New parameter rename, mark
28723         the replaement for renaming only when it is true.
28724         (get_access_replacement): Pass true in the rename parameter of
28725         create_access_replacement.
28726         (get_unrenamed_access_replacement): New function.
28727         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
28728         replacement declaration from it.
28729
28730 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
28731
28732         * function.c (try_fit_stack_local, add_frame_space): New static
28733         functions.
28734         (assign_stack_local_1): Use them.  Look for opportunities to use
28735         space previously wasted on alignment.
28736         * function.h (struct frame_space): New.
28737         (struct rtl_data): Add FRAME_SPACE_LIST member.
28738         * reload1.c (something_was_spilled): New static variable.
28739         (alter_reg): Set it.
28740         (reload): Test it in addition to testing if the frame size changed.
28741
28742 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
28743
28744         * config/s390/s390.c: Define sane prefetch settings and activate
28745         flag_prefetch_loop_arrays on -O3.
28746         * config/s390/s390.h: Declare that read can use write prefetch.
28747
28748 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28749
28750         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
28751         build.
28752
28753 2010-05-16  Jan Hubicka  <jh@suse.cz>
28754
28755         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
28756         function body; do not check stdarg field of struct function.
28757
28758 2010-05-16  Jan Hubicka  <jh@suse.cz>
28759
28760         * cgraph.c (dump_cgraph_node): Dump versionable flag.
28761         * cgraph.h (cgraph_local_info): Add versionable flag.
28762         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
28763         (ipcp_versionable_function_p): Use it.
28764         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
28765         versionable flag.
28766
28767 2010-05-16  Jan Hubicka  <jh@suse.cz>
28768
28769         * cgraph.c (cgraph_clone_node): Take decl argument and insert
28770         clone into hash when it is different from orig.
28771         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
28772         * cgraph.h (cgraph_clone_node): Update prototype.
28773         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
28774         (lto_cgraph_encoder_delete): Delete body map.
28775         (lto_cgraph_encoder_size): Move to header.
28776         (lto_cgraph_encoder_encode_body_p,
28777         lto_set_cgraph_encoder_encode_body): New.
28778         (lto_output_node): Do not take written_decls argument; output clone_of
28779         pointer.
28780         (add_node_to): Add include_body_argument; call
28781         lto_set_cgraph_encoder_encode_body on master of the clone.
28782         (add_references): Update use of add_node_to.
28783         (compute_ltrans_boundary): Likewise.
28784         (output_cgraph): Do not create written_decls bitmap.
28785         (input_node): Take nodes argument; stream in clone_of correctly.
28786         (input_cgraph_1): Update use of input_node.
28787         * lto-streamer-out.c (lto_output): Use encoder info to decide
28788         what bodies to output.
28789         * ipa-inline.c (cgraph_clone_inlined_nodes,
28790         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
28791         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
28792         (lto_cgraph_encoder_size): Define here.
28793         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
28794         Declare.
28795
28796 2010-05-16  Richard Guenther  <rguenther@suse.de>
28797
28798         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
28799         -fipa-type-escape.
28800         * ipa-type-escape.c (gate_type_escape_vars): Run when
28801         -fipa-struct-reorg runs.
28802         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
28803         * common.opt (fipa-type-escape): Remove.
28804
28805 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28806
28807         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
28808         (decode_options): Likewise.
28809         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
28810
28811 2010-05-16  Jan Hubicka  <jh@suse.cz>
28812
28813         * ipa.c (function_and_variable_visibility): Also bring local all
28814         aliases.
28815
28816 2010-05-16  Richard Guenther  <rguenther@suse.de>
28817
28818         * alias.c (nonoverlapping_memrefs_p): Remove use of
28819         IPA type-escape information.
28820
28821 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
28822
28823         * c-common.c (c_common_reswords): Add _Static_assert for C.
28824         * c-parser.c (c_token_starts_declaration,
28825         c_parser_next_token_starts_declaration,
28826         c_parser_static_assert_declaration_no_semi,
28827         c_parser_static_assert_declaration): New.
28828         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
28829         Handle static assertions if static_assert_ok.
28830         (c_parser_external_declaration, c_parser_declaration_or_fndef,
28831         c_parser_compound_statement_nostart, c_parser_label,
28832         c_parser_for_statement, c_parser_objc_methodprotolist,
28833         c_parser_omp_for_loop): All callers of
28834         c_parser_declaration_or_fndef changed.
28835         (c_parser_struct_declaration): Handle static assertions.
28836         (c_parser_compound_statement_nostart): Use
28837         c_parser_next_token_starts_declaration and
28838         c_token_starts_declaration to detect start of declarations.
28839         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
28840         Likewise.
28841
28842 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
28843
28844         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
28845         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
28846         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
28847         TARGET_FUNCTION_VALUE_REGNO_P): Define.
28848         (mmix_function_outgoing_value): Rename to...
28849         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
28850         (mmix_function_value_regno_p): Make static.
28851         (mmix_libcall_value): New function.
28852         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
28853         mmix_function_value_regno_p): Remove declaration.
28854
28855 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28856
28857         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
28858         BUILT_IN_ALLOCA if stack checking is enabled.
28859
28860 2010-05-16  Richard Guenther  <rguenther@suse.de>
28861
28862         * var-tracking.c (vars_copy_1): Inline ...
28863         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28864         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
28865         (variable_merge_over_cur): Adjust.  Merge asserts.
28866         (variable_merge_over_src): Likewise.
28867         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
28868         (variable_post_merge_new_vals): Merge asserts.
28869         (variable_post_merge_perm_vals): Likewise.
28870         (find_mem_expr_in_1pdv): Likewise.
28871         (dataflow_set_different_value): Remove.
28872         (onepart_variable_different_p): Merge asserts.
28873         (variable_different_p): Likewise.
28874         (dataflow_set_different_1): Inline ...
28875         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28876         (emit_notes_for_differences_1): Merge asserts.
28877
28878 2010-05-16  Richard Guenther  <rguenther@suse.de>
28879
28880         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
28881         * optabs.c (libfunc_decl_hash): Likewise.
28882         * varasm.c (emutls_decl): Likewise.
28883
28884 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
28885
28886         * c-decl.c: Don't include gimple.h.
28887         (merge_decls): Do not copy gimple_body.
28888
28889 2010-05-15  Jason Merrill  <jason@redhat.com>
28890
28891         * c.opt: Add -fnothrow-opt.
28892
28893 2010-05-15  Jan Hubicka  <jh@suse.cz>
28894
28895         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
28896         analyzed.
28897         * passes.c (ipa_write_summaries): Write all analyzed nodes.
28898
28899 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
28900
28901         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
28902         * Makefile.in: Add it.
28903         Fix all other Makefile dependencies for changes below.
28904         * tree.h: Include it instead of defining VEC primitives here.
28905         * gimple.h: Likewise.
28906         * rtl.h: Likewise.
28907         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
28908         * except.h: Include vecir.h, break dependence on tree.h.
28909
28910         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
28911         Move from here...
28912         * tree-iterator.c: ...to here.
28913         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
28914
28915         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
28916         tm_p.h.
28917         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
28918         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
28919         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
28920         tree-mudflap.h, and target.h.
28921         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
28922         predict.h, tree-inline.h, gimple.h, and langhooks.h.
28923         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
28924         Add FIXME for why gimple.h is still included (should be unnecessary
28925         since GCC 4.5 gimplification unit-at-a-time).
28926         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
28927         * c-pragma.c: Add FIXME for why function.h needs to be included just
28928         for cfun, at front-end level.
28929         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
28930         Do not include ggc.h, but include vecprim.h for VEC(char).
28931         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
28932         Explain why target.h is included.
28933         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
28934         Explain why gimple.h is included.
28935         * c-ppoutput.c: Do not include tm.h.
28936         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
28937         * c-parses.c: Explain why rtl.h is included, and that this (and only
28938         this) is also why tm.h must be included.
28939         Do not include except.h.
28940         * c-lang.c: Do not include ggc.h.
28941
28942 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
28943
28944         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
28945
28946 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
28947
28948         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
28949         unions by default if those structs and unions have no tags.  Do
28950         not condition anonymous struct and unions handling on flag_iso.
28951         Allow anonymous structs and unions for C1X.
28952         (finish_struct): Do not diagnose lack of named fields when
28953         anonymous structs and unions present for C1X.  Accept flexible
28954         array members in structure with anonymous structs or unions but no
28955         directly named fields.
28956         * doc/extend.texi (Unnamed Fields): Update.
28957
28958 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
28959
28960         * gimple.h (compare_field_offset): Rename into...
28961         (gimple_compare_field_offset): ...this.
28962         * gimple.c (compare_field_offset): Rename into...
28963         (gimple_compare_field_offset): ...this.  Compare the full access if
28964         the offset is self-referential.
28965         (gimple_types_compatible_p): Adjust for above renaming.
28966         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
28967         DECL_NONADDRESSABLE_P flag of fields before merging them.
28968
28969 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
28970
28971         * tree.h (ctor_to_list): Delete.
28972         * tree.c (ctor_to_list): Delete.
28973
28974 2010-05-15  Jan Hubicka  <jh@suse.cz>
28975
28976         * ipa-reference.c: Include toplev.h
28977         (is_proper_for_analysis): Only add to all_module_statics
28978         if it is allocated.
28979         (write_node_summary_p, stream_out_bitmap,
28980         ipa_reference_write_optimization_summary,
28981         ipa_reference_read_optimization_summary): New.
28982         (struct ipa_opt_pass_d pass_ipa_reference): Add
28983         optimization summary streaming.
28984         * lto-cgraph.c (referenced_from_this_partition_p,
28985         reachable_from_this_partition_p): New functions.
28986         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
28987         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
28988         * opts.c (decode_options): Enable ipa_reference.
28989         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
28990         * lto-streamer.h (referenced_from_this_partition_p,
28991         reachable_from_this_partition_p): Declare.
28992
28993 2010-05-15  Richard Guenther  <rguenther@suse.de>
28994
28995         PR tree-optimization/44038
28996         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
28997         taking the address of a V_C_E of a constant.
28998
28999 2010-05-14  Jan Hubicka  <jh@suse.cz>
29000
29001         * tree.h (memory_identifier_string): Remove.
29002         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
29003         (ipa_reference_global_vars_info_d): Remove statics_not_read and
29004         statics_not_written.
29005         (ipa_reference_optimization_summary_d): New structure.
29006         (ipa_reference_optimization_summary_t): New type and vector.
29007         (ipa_reference_vars_info_d): Embedd structures instead of using
29008         pointers.
29009         (reference_vars_to_consider): Remove out of GGC space.
29010         (module_statics_escape): Remove.
29011         (global_info_obstack): Rename to ...
29012         (optimization_summary_obstack): ... this one.
29013         (initialization_status_t): Remove.
29014         (memory_identifier_string): Remove.
29015         (get_reference_vars_info): Fix indenting.
29016         (set_reference_vars_info): Likewise.
29017         (get_reference_optimization_summary): New.
29018         (set_reference_optimization_summary): New.
29019         (get_global_reference_vars_info): Remove.
29020         (ipa_reference_get_read_global): Remove.
29021         (ipa_reference_get_written_global): Remove.
29022         (ipa_reference_get_not_read_global): Update.
29023         (ipa_reference_get_not_written_global): Update.
29024         (is_proper_for_analysis): Outlaw addressable.
29025         (propagate_bits): Update for new datastructures.
29026         (analyze_variable): Remove.
29027         (init_function_info): Update for new datastructures.
29028         (clean_function_local_data): Remove.
29029         (clean_function): Remove.
29030         (copy_global_bitmap): Use optimizations_summary_obstack.
29031         (duplicate_node_data): Duplicate optimization summary only.
29032         (remove_node_data): Remove optimization summary only.
29033         (generate_summary): Do not analyze variables; do not compute
29034         module_statics_escape; do not prune solutions by it.
29035         (read_write_all_from_decl): Fix typos in comments.
29036         (propagate): Doscover readonly and nonaddressable first;
29037         update for new datastructures; share global bitmaps.
29038         * ipa-reference.h (ipa_reference_get_read_global,
29039         ipa_reference_get_written_global): Remove.
29040         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
29041         * Makefile.in: Remove ipa-refereference from GT files.
29042
29043 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29044
29045         PR debug/44112
29046         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
29047         for all SYMBOL_REF_DECLs.
29048
29049 2010-05-14  Jan Hubicka  <jh@suse.cz>
29050
29051         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
29052         (varpool_all_refs_explicit_p): New inline function.
29053         * ipa-reference.c: Update comment.
29054         (module_statics_written): Remove.
29055         (get_static_decl): Remove.
29056         (ipa_init): Do not initialize module_statics_written.
29057         (analyze_function): Likewise.
29058         (generate_summary): Likewise; do not compute module_statics_readonly
29059         and do not update variable flags.
29060         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
29061         * ipa.c: Inlucde flags.h
29062         (cgraph_local_node_p): New.
29063         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
29064         promote functions to local.
29065         (ipa_discover_readonly_nonaddressable_vars): New function.
29066         (function_and_variable_visibility): Use cgraph_local_node_p.
29067         * varpool.c (varpool_finalize_decl): Set force_output for
29068         DECL_PRESERVE_P vars.
29069
29070 2010-05-14  Jan Hubicka  <jh@suse.cz>
29071
29072         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
29073
29074 2010-05-14  Richard Guenther  <rguenther@suse.de>
29075
29076         PR tree-optimization/44119
29077         * tree-ssa-pre.c (eliminate): Properly mark replacement of
29078         a PHI node necessary.
29079
29080 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
29081
29082         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
29083
29084 2010-05-14  Jason Merrill  <jason@redhat.com>
29085
29086         PR c++/44127
29087         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
29088         (gimple_call_set_nothrow): New.
29089         * gimple.c (gimple_build_call_from_tree): Call it.
29090         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
29091
29092         PR c++/44127
29093         * gimplify.c (gimplify_seq_add_stmt): No longer static.
29094         * gimple.h: Declare it.
29095         * gimple.c (gimple_build_eh_filter): No ops.
29096
29097 2010-05-14  Jan Hubicka  <jh@suse.cz>
29098
29099         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
29100         nodes already in queue.
29101         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
29102         re-enqueueing node.
29103
29104 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29105
29106         PR debug/44136
29107         * cfgexpand.c (expand_debug_expr): If non-memory op0
29108         has BLKmode, return NULL.
29109
29110 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
29111
29112         * config.gcc: Add support for --with-cpu option for bdver1.
29113         * config/i386/i386.h (TARGET_BDVER1): New macro.
29114         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
29115         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29116         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
29117         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29118         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
29119         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
29120         (processor_type): Add PROCESSOR_BDVER1.
29121         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
29122         processor_type in config/i386/i386.h.
29123         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
29124         movaps <reg, reg> instead of movapd <reg, reg> when replacing
29125         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
29126         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
29127         to emit packed xor instead of packed double/packed integer
29128         xor for SSE and AVX when moving a zero value.
29129         * config/i386/sse.md: Add check for
29130         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
29131         movapd/movdqa for SSE and AVX.
29132         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
29133         single logical operations i.e and, or and xor instead of packed double
29134         logical operations for SSE and AVX.
29135         * config/i386/i386-c.c (ix86_target_macros_internal):
29136         Add PROCESSOR_BDVER1.
29137         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
29138         (has_fma4, has_xop): New.
29139         * config/i386/i386.c (bdver1_cost): New variable.
29140         (m_BDVER1): New macro.
29141         (m_AMD_MULTIPLE): Add m_BDVER1.
29142         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
29143         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
29144         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
29145         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
29146         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
29147         x86_tune_sse_partial_reg_dependency,
29148         x86_tune_sse_unaligned_load_optimal,
29149         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
29150         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
29151         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
29152         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
29153         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
29154         Enable/disable for bdver1.
29155         (processor_target_table): Add bdver1_cost.
29156         (cpu_names): Add bdver1.
29157         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
29158          processor_alias_table.
29159         (ix86_expand_vector_move_misalign): Change.
29160         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
29161         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
29162         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
29163         of movupd/movdqu for SSE and AVX.
29164         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
29165         (ix86_tune_adjust_cost): Add code for bdver1.
29166         (standard_sse_constant_opcode): Add check for
29167         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
29168         of packed double xor for SSE and AVX.
29169
29170 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
29171
29172         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
29173         result to unsigned.
29174
29175 2010-05-14  Tristan Gingold  <gingold@adacore.com>
29176
29177         * toplev.c (default_debug_hooks): Remove this variable.
29178         (process_options): Remove assignments to default_debug_hooks.
29179
29180 2010-05-14  Martin Jambor  <mjambor@suse.cz>
29181
29182         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
29183         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
29184         * langhooks.h (struct lang_hooks_for_decls): Removed field
29185         fold_obj_type_ref.
29186         * tree.c (free_lang_data): Remove assignment to
29187         lang_hooks.fold_obj_type_ref.
29188         * tree.def (OBJ_TYPE_REF): Update comment.
29189
29190 2010-05-14  Richard Guenther  <rguenther@suse.de>
29191
29192         PR tree-optimization/44124
29193         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
29194
29195 2010-05-14  Alan Modra  <amodra@gmail.com>
29196
29197         PR target/44075
29198         * config/rs6000/rs6000.c (struct machine_function): Reorder
29199         fields for better packing.  Add lr_save_state.
29200         (rs6000_ra_ever_killed): Return lr_save_state if set.
29201         (rs6000_emit_eh_reg_restore): Set lr_save_state.
29202
29203 2010-05-13  Jan Hubicka  <jh@suse.cz>
29204
29205         * varpool.c (decide_is_variable_needed): Drop code checking
29206         TREE_SYMBOL_REFERENCED.
29207
29208 2010-05-13  Jan Hubicka  <jh@suse.cz>
29209
29210         * final.c (output_addr_const): Do not call mark_decl_referenced.
29211         * cgraphunit.c (process_function_and_variable_attributes): Use
29212         mark_needed_node dirrectly.
29213         (assemble_thunk): Do not call mark_decl_referenced.
29214
29215 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
29216
29217         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
29218
29219 2010-05-13  Jeff Law  <law@redhat.com>
29220
29221         * ira-conflicts.c (print_allocno_conflicts): New function broken out
29222         from...
29223         (print_conflicts): Call print_allocno_conflicts.
29224
29225 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29226
29227         PR debug/44104
29228         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
29229         if it is NULL.
29230
29231 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
29232
29233         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
29234         t-mingw-w64 or t-mingw-w32 for multilib configuration.
29235         * config/i386/t-mingw-w32: New.
29236         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
29237
29238 2010-05-13  Martin Jambor  <mjambor@suse.cz>
29239
29240         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
29241         gimple-fold.c).
29242         * gimple-fold.c (get_base_binfo_for_type): New function.
29243         (gimple_get_relevant_ref_binfo): Likewise.
29244         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29245         (gimple_fold_obj_type_ref): Likewise.
29246         (fold_gimple_call): Simplify condition for folding virtual calls
29247         and call gimple_fold_obj_type_ref.
29248         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
29249         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29250
29251 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
29252
29253         * config/rs6000/rs6000-protos.h
29254         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
29255         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
29256         (rs6000_debug_mode_dependent_address)
29257         (rs6000_mode_dependent_address_ptr): Likewise.
29258
29259 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29260
29261         PR debug/43983
29262         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
29263         by SRA.
29264         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
29265         * tree-sra.c (create_access_replacement): Call unshare_expr before
29266         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
29267         * dwarf2out.c: Include tree-flow.h.
29268         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
29269         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
29270         Handle DW_OP_bit_piece.
29271         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
29272         construct_piece_list, adjust_piece_list): New functions.
29273         (add_var_loc_to_decl): Handle SRA optimized variables.
29274         Adjust for var_loc_note to loc field renaming.
29275         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
29276         in VAR_LOCATION note.
29277         (new_loc_descr_op_bit_piece): New function.
29278         (dw_sra_loc_expr): New function.
29279         (dw_loc_list): Use it.  Don't handle the last range after the
29280         loop, handle it inside of the loop.  Adjust for var_loc_note
29281         to loc field renaming.
29282         (add_location_or_const_value_attribute): Only special case
29283         single entry loc lists if loc is NOTE_P.  Adjust for
29284         var_loc_note to loc field renaming.
29285         (dwarf2out_var_location): Don't set newloc->var_loc_note
29286         and newloc->next here.
29287
29288 2010-05-12  Jan Hubicka  <jh@suse.cz>
29289
29290         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
29291         flag.
29292         * cgraph.h (cgraph_only_called_directly_p,
29293         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
29294         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
29295         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
29296         (assemble
29297         * ipa.c (cgraph_remove_unreachable_nodes): Use
29298         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
29299         flags.
29300         * tree-inline.c (copy_bb): Check address_taken flag.
29301         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
29302         externally_visible flag.
29303
29304 2010-05-12  Jason Merrill  <jason@redhat.com>
29305
29306         PR bootstrap/44048
29307         PR target/44099
29308         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
29309         * sdbout.c (plain_type_1): Likewise.
29310         * dwarf2out.c (is_base_type): Likewise.
29311         (gen_type_die_with_usage): Likewise.  Generate
29312         DW_TAG_unspecified_type for any LANG_TYPE.
29313
29314 2010-05-12  Jan Hubicka  <jh@suse.cz>
29315
29316         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
29317         indrect edges too.
29318         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
29319         (cgraph_clone_edge): Update.
29320         (cgraph_node_remove_callees): Remove indirect calls too.
29321         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
29322         (cgraph_create_indirect_edge): Update prototype.
29323         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
29324         is_proper_for_analysis.
29325         (add_new_function, visited_nodes, function_insertion_hook_holder,
29326         get_local_reference_vars_info, mark_address_taken, mark_address,
29327         mark_load, mark_store, check_asm_memory_clobber, check_call,
29328         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
29329         (ipa_init): Do not initialize visited_nodes;
29330         function_insertion_hook_holder.
29331         (analyze_variable): Rewrite.
29332         (analyze_function): Rewrite.
29333         (copy_local_bitmap): Remove.
29334         (duplicate_node_dat): Do not duplicate local info.
29335         (generate_summary): Simplify to only walk cgraph.
29336         (write_node_summary_p, ipa_reference_write_summary,
29337         ipa_reference_read_summary): Remove.
29338         (propagate): Do not remove function insertion;
29339         generate summary.
29340         (pass_ipa_reference): NULLify summary handling fields.
29341         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
29342         (input_edge): Input ecf_flags.
29343         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
29344         (update_indirect_edges_after_inlining): Ignore edges with unknown
29345         param.
29346
29347 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
29348
29349         * implicit-zee.c: New file.
29350         * tree-pass.h (pass_implicit_zee): Declare.
29351         * passes.c (init_optimization_passes): Add zee pass.
29352         * common.opt (fzee): New flag.
29353         * timevar.def (TV_ZEE): Define.
29354         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
29355         and beyond.
29356         * Makefile.in (implicit-zee.o): Add new build file.
29357
29358 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29359             Nathan Froyd  <froydnj@codesourcery.com>
29360
29361         * c-common.c (sync_resolve_params): Remove write-only variable.
29362
29363 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
29364
29365         * target.h (struct gcc_target): Add mode_dependent_address_p field.
29366         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29367         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
29368         * targhooks.c (default_mode_dependent_address_p): New function.
29369         * targhooks.h (default_mode_dependent_address_p): Declare function.
29370         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29371         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
29372         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
29373         target hook. Change return type to bool.
29374         * recog.h (mode_dependent_address_p): Change return type to bool.
29375
29376 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29377             Nathan Froyd  <froydnj@codesourcery.com>
29378
29379         * tree-mudflap.c (build_function_type_0, build_function_type_1,
29380         build_function_type_2, build_function_type_3): Remove.
29381         (mudflap_init): Use build_function_type_list.
29382
29383 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29384             Nathan Froyd  <froydnj@codesourcery.com>
29385
29386         * coverage.c (build_fn_info_value): Call build_constructor instead of
29387         build_constructor_from_list.
29388         (build_ctr_info_value): Likewise.
29389         (build_gcov_info): Likewise.
29390
29391 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
29392
29393         * tree.c (build_constructor): Compute TREE_CONSTANT for the
29394         resultant constructor.
29395         (build_constructor_single): Don't set TREE_CONSTANT.
29396         (build_constructor_from_list): Don't compute TREE_CONSTANT.
29397
29398 2010-05-12  Jan Hubicka  <jh@suse.cz>
29399
29400         * cgraph.h (struct varpool_node): Add aux.
29401         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
29402         * varpool.c (varpool_remove_node): Do not remove initializer.
29403         (varpool_reset_queue): Export.
29404         (varpool_finalize_decl): Volatile vars are forced to be output.
29405         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
29406         replaced decl.
29407         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
29408         process_references, varpool_can_remove_if_no_refs): New functions.
29409         (cgraph_remove_unreachable_nodes): Handle variables too.
29410
29411 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
29412
29413         PR target/44088
29414         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
29415
29416 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
29417
29418         PR middle-end/44085
29419         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
29420         change value of ORT_TASK.
29421         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
29422         (omp_notice_threadprivate_variable): New function.
29423         (omp_notice_variable): Call it for threadprivate variables.
29424         If enclosing ctx is a task, print enclosing task rather than
29425         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
29426         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
29427         if task has untied clause.
29428
29429         PR debug/42278
29430         * dwarf2out.c (base_type_die): Don't add name attribute here.
29431         (modified_type_die): Instead of sizetype use
29432         its underlying original type.  If a DW_TAG_base_type doesn't
29433         have name added, add __unknown__.
29434         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
29435         always call force_type_die instead.
29436
29437 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
29438
29439         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
29440         for __stack_chk_guard.
29441
29442 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29443
29444         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
29445         don't call start_source_file debug hook here...
29446         (finish_options): ... but here, after outputting predefined and
29447         command line defines and undefs.
29448
29449         PR middle-end/44071
29450         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
29451         no fallthru edge.
29452         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
29453         optimizing away empty bb with no successors, move over its
29454         footer chain to fallthru predecessor.
29455         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
29456         (rtl_split_edge): For asm goto call patch_jump_insn even if
29457         splitting fallthru edge.
29458
29459         PR c++/44059
29460         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
29461         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
29462         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
29463         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
29464         on DW.ref.* decls.
29465
29466         PR c++/44062
29467         * c-parser.c (c_parser_expression): Mark LHS of a comma
29468         expression as read if it is a decl, handled component or
29469         COMPOUND_EXPR with that on the RHS.
29470         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
29471         if it is a decl or handled component.
29472
29473 2010-05-11  Jan Hubicka  <jh@suse.cz>
29474
29475         * lto-symtab.c (lto_symtab_free): New function.
29476         * lto-streamer.h (lto_symtab_free): Declare.
29477
29478 2010-05-11  Jan Hubicka  <jh@suse.cz>
29479
29480         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
29481         that if function is needed it is reachable.
29482         (lto_output_node): See if it the function is reachable or referenced.
29483         (output_cgraph): Update call of lto_output_node.
29484         * lto-streamer.h (reachable_from_other_partition_p): Declare.
29485
29486 2010-05-11  Jan Hubicka  <jh@suse.cz>
29487
29488         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
29489         Mark as used.
29490
29491 2010-05-11  Jan Hubicka  <jh@suse.cz>
29492
29493         PR tree-optimize/44063
29494         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
29495         queue.
29496         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
29497         limits.
29498         (estimate_function_body_sizes): Compute sizes even when disregarding.
29499
29500 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
29501
29502         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
29503
29504 2010-05-11  Jan Hubicka  <jh@suse.cz>
29505
29506         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
29507         into every boundary.
29508
29509 2010-05-11  Jan Hubicka  <jh@suse.cz>
29510
29511         * matrix-reorg.c (matrix_reorg): Rebuild edges.
29512
29513 2010-05-11  Jan Hubicka  <jh@suse.cz>
29514
29515         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
29516         lto_streamer_cache_delete): Put nodes into heap.
29517         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
29518         heap.
29519
29520 2010-05-11  Jan Hubicka  <jh@suse.cz>
29521
29522         * cgraphbuild.c (cgraph_rebuild_references): New.
29523         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
29524         out extern inlines.
29525         * cgraph.h (cgraph_rebuild_references): Declare.
29526         * tree-inline.c (tree_function_versioning): Use it.
29527         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
29528
29529 2010-05-11  Jan Hubicka  <jh@suse.cz>
29530
29531         * cgraph.c: Include ipa-utils.h
29532         (cgraph_create_virtual_clone): Update references.
29533         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
29534
29535 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29536
29537         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
29538         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
29539         cache size.
29540
29541 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29542
29543         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
29544
29545 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29546
29547         * gcc.c (execute): For -### don't quote arguments that
29548         contain just alphanumerics and _/-. characters.
29549         * doc/invoke.texi: Document that change for -###.
29550
29551         PR debug/44023
29552         * df-problems.c (struct dead_debug): Add to_rescan field.
29553         (dead_debug_init): Clear to_rescan field.
29554         (dead_debug_finish): Rescan all debug insns in to_rescan
29555         bitmap and free the bitmap.
29556         (dead_debug_insert_before): Instead of rescanning debug insns
29557         immediately queue their rescanning until dead_debug_finish.
29558         (df_note_bb_compute): After dead_debug_add do continue instead
29559         of break.
29560
29561 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
29562
29563         PR debug/44028
29564         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
29565         clear also INSN_REG_USE_LIST.
29566
29567 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29568
29569         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
29570
29571 2010-05-10  Jan Hubicka  <jh@suse.cz>
29572
29573         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
29574         commited change.
29575
29576 2010-05-10  Jan Hubicka  <jh@suse.cz>
29577
29578         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
29579         Allocate encoders.
29580         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
29581         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
29582         (lto_streamer_cache_create): Init alloc pool.
29583         (lto_streamer_cache_delete): Free alloc pool.
29584         * lto-streamer.h: Include alloc pool.
29585         (lto_streamer_cache_d): Use alloc pool.
29586         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
29587
29588 2010-05-10  Jan Hubicka  <jh@suse.cz>
29589
29590         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
29591         * cgraphbuild.c: Include except.h
29592         (record_type_list, record_eh_tables): New function.
29593         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
29594
29595 2010-05-10  Jan Hubicka  <jh@suse.cz>
29596
29597         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
29598         __frame_dummy_init_array_entry, force_to_data): Attribute as used
29599         rather than unused.
29600
29601 2010-05-10  Michael Matz  <matz@suse.de>
29602
29603         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
29604         (can_reassociate_p): Use FLOAT_TYPE_P.
29605         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
29606         (vect_force_simple_reduction): ... this.
29607         * tree-parloops.c (gather_scalar_reductions): Use
29608         vect_force_simple_reduction.
29609         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
29610         vect_is_simple_reduction, add modify argument, if true rewrite
29611         "a-b" into "a+(-b)".
29612         (vect_is_simple_reduction, vect_force_simple_reduction): New
29613         functions.
29614         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
29615
29616 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
29617             Vladimir Makarov  <vmakarov@redhat.com>
29618
29619         PR rtl-optimization/44012
29620         * ira-build.c (remove_unnecessary_allocnos): Nullify
29621         regno_allocno_map of the removed allocno.
29622
29623 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29624
29625         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
29626         to /dev/null.
29627         * configure: Regenerate.
29628
29629 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29630
29631         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
29632         unused.
29633         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
29634         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
29635         support in Sun ld.
29636         * configure: Regenerate.
29637
29638 2010-05-10  Richard Guenther  <rguenther@suse.de>
29639
29640         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
29641         marked if the entry identifier is marked.
29642
29643 2010-05-10  Richard Guenther  <rguenther@suse.de>
29644
29645         * c-common.c (struct c_common_attributes): Add fnspec attribute.
29646         (handle_fnspec_attribute): New function.
29647         * gimple.h (gimple_call_return_flags): Declare.
29648         (gimple_call_arg_flags): Likewise.
29649         * gimple.c (gimple_call_arg_flags): New function.
29650         (gimple_call_return_flags): Likewise.
29651         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
29652         New argument flags.
29653         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
29654         return value flags.
29655         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
29656         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
29657         main work to ...
29658         (make_heapvar_for): ... this new function.
29659         (handle_rhs_call): Handle fnspec attribute argument specifiers.
29660         (handle_lhs_call): Likewise.
29661         (find_func_aliases): Adjust.
29662
29663 2010-05-10  Richard Guenther  <rguenther@suse.de>
29664
29665         PR tree-optimization/44050
29666         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
29667
29668 2010-05-10  Wei Guozhi  <carrot@google.com>
29669
29670         PR target/42879
29671         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
29672
29673 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29674
29675         PR c/10676
29676         * c-typeck.c (lookup_field): Take a type directly.  Update
29677         recursive calls.
29678         (build_component_ref): Update call to lookup_field.
29679         (set_init_label): Use lookup_field to find initialized field.
29680         Handle returned list of fields like a sequence of designators.
29681
29682 2010-05-09  Richard Guenther  <rguenther@suse.de>
29683
29684         PR middle-end/44024
29685         * fold-const.c (tree_single_nonzero_warnv_p): Properly
29686         handle &FUNCTION_DECL.
29687
29688 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29689
29690         PR c/4784
29691         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
29692         structures and unions recursively.
29693         (detect_field_duplicates): Move duplicate detection with a hash to
29694         detect_field_duplicates_hash.  Always use a hash if anonymous
29695         structures or unions are present.
29696         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
29697         give errors.
29698
29699 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
29700
29701         PR target/44046
29702         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
29703         detect Atom, Core 2 and Core i7.
29704
29705 2010-05-09  Richard Guenther  <rguenther@suse.de>
29706
29707         * gcc.c (store_arg): Handle temporary file deletion for
29708         joined arguments.
29709
29710 2010-05-09  Richard Guenther  <rguenther@suse.de>
29711
29712         PR middle-end/44043
29713         * ipa-inline.c (estimate_function_body_sizes): Return after
29714         disregarding inline limits.
29715
29716 2010-05-09  Richard Guenther  <rguenther@suse.de>
29717
29718         * gcc.c (store_arg): Revert last change.
29719
29720 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
29721
29722         PR middle-end/28685
29723         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
29724         (optimize_ops_list): Call it.
29725
29726 2010-05-08  Richard Guenther  <rguenther@suse.de>
29727
29728         PR tree-optimization/44030
29729         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
29730         NECESSARY flag if we propagate from a inserted expression.
29731
29732 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
29733
29734         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
29735         domain types as equal if they are both PLACEHOLDER_EXPRs.
29736
29737 2010-05-08  Richard Guenther  <rguenther@suse.de>
29738
29739         * lto-wrapper.c (run_gcc): Remove linker output from
29740         command line for LTRANS invocation.
29741
29742 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29743
29744         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
29745         lto-macho as lto_binary_reader.
29746         * target.h (struct gcc_target): New hooks lto_start and lto_end.
29747         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
29748         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
29749         in lto_start and lto_end calls.
29750         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
29751         magic numbers.
29752         (scan_prog_file): Update is_elf_or_coff call.
29753         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
29754
29755         * collect2.c (main): Fix enum comparison.
29756
29757         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
29758         Add prototypes.
29759         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
29760         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
29761         and TARGET_ASM_LTO_END.
29762         * darwin.c: Include obstack.h and lto-streamer.h.
29763         (lto_section_names_offset, lto_section_names_obstack,
29764         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
29765         global variables.
29766         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
29767         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
29768         to a temporary file.
29769         (darwin_asm_lto_end): New function.  Restore asm_out_file.
29770         (darwin_asm_named_section): For LTO sections, replace the name with
29771         the offset of the section name in a string table, and build this
29772         table.
29773         (darwin_file_start): Initialize global vars for LTO support.
29774         (darwin_file_end): If output to asm_out_file was redirected, append it
29775         to the proper asm_out_file here.  Add the section names section.
29776
29777 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29778
29779         * c-pragma.c (pending_weak_d, pending_weak): New.
29780         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
29781         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
29782         handle_pragma_weak): Update the uses of pending_weaks.
29783
29784 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29785
29786         PR documentation/44016
29787         * doc/standards.texi (Standards): Link to unversioned
29788         cxx0x_status.html page.
29789
29790 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
29791
29792         PR target/43708
29793         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
29794         in addition to TREE_USED, to avoid "set but unused" warnings.
29795
29796 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29797
29798         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
29799         (is_loop_prefetching_profitable): Do not insert prefetches
29800         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
29801         times the prefetch ahead distance.
29802
29803 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29804
29805         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
29806         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
29807         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
29808         the unroll_factor.
29809
29810 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29811
29812         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
29813         a diagnostic info when the insn-to-mem ratio is too small.
29814
29815 2010-05-07  Richard Guenther  <rguenther@suse.de>
29816
29817         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
29818         the linker plugin.
29819         (store_arg): Queue temp_filename for deletion instead of
29820         the whole argument.
29821
29822 2010-05-07  Richard Guenther  <rguenther@suse.de>
29823
29824         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
29825         (run_gcc): Handle LTRANS phase invocation.
29826         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
29827
29828 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
29829
29830         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
29831         this is also meaningful on PARM_DECLs and RESULT_DECLs.
29832
29833 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29834
29835         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
29836
29837 2010-05-07  Richard Guenther  <rguenther@suse.de>
29838
29839         PR tree-optimization/44020
29840         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
29841         code when PRE is not yet initialized.
29842
29843 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29844
29845         * config/mips/dbxmdebug.h: Remove.
29846         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
29847
29848 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
29849
29850         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
29851         with null pointer and also warn about ordered comparison of zero with
29852         pointer if -Wextra.
29853
29854 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29855
29856         * graphite-blocking.c
29857         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
29858         * graphite-clast-to-gimple.c
29859         (clast_to_gcc_expression): Same.
29860         (precision_for_value): Same.
29861         (precision_for_interval): Same.
29862         (gcc_type_for_interval): Same.
29863         (graphite_create_new_guard): Same.
29864         (compute_bounds_for_level): Same.
29865         (graphite_create_new_loop_guard): Same.
29866         * graphite-interchange.c
29867         (build_linearized_memory_access): Same.
29868         (pdr_stride_in_loop): Same.
29869         (memory_strides_in_loop_1): Same.
29870         (memory_strides_in_loop): Same.
29871         (extend_scattering): Same.
29872         (psct_scattering_dim_for_loop_depth): Same.
29873         (pbb_number_of_iterations): Same.
29874         * graphite-poly.h
29875         (debug_iteration_domains): Same.
29876         * graphite-ppl.c
29877         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
29878         (ppl_set_inhomogeneous_gmp): Same.
29879         (ppl_strip_loop): Same.
29880         (ppl_lexico_compare_linear_expressions): Same.
29881         (ppl_read_polyhedron_matrix): Same.
29882         (ppl_max_for_le_pointset): Same.
29883         * graphite-ppl.h
29884         (ppl_read_polyhedron_matrix): Same.
29885         (tree_int_to_gmp): Same.
29886         (gmp_cst_to_tree): Same.
29887         (ppl_set_inhomogeneous): Same.
29888         (ppl_set_inhomogeneous_tree): Same.
29889         (ppl_set_coef): Same.
29890         (ppl_set_coef_tree): Same.
29891         * graphite-sese-to-poly.c
29892         (build_pbb_scattering_polyhedrons): Same.
29893         (build_scop_scattering): Same.
29894         (scan_tree_for_params_right_scev): Same.
29895         (scan_tree_for_params): Same.
29896         (find_params_in_bb): Same.
29897         (find_scop_parameters): Same.
29898         (add_upper_bounds_from_estimated_nit): Same.
29899         (build_loop_iteration_domains): Same.
29900         (add_condition_to_domain): Same.
29901         (pdr_add_memory_accesses): Same.
29902
29903 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29904
29905         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
29906         CLooG's value_* macros to their respective mpz_* counterparts.
29907         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
29908         (graphite_create_new_loop_guard): Same.
29909         * graphite-interchange.c (build_linearized_memory_access): Same.
29910         (pdr_stride_in_loop): Same.
29911         (memory_strides_in_loop_1): Same.
29912         (1st_interchange_profitable_p): Same.
29913         * graphite-poly.c (extend_scattering): Same.
29914         (psct_scattering_dim_for_loop_depth): Same.
29915         (pbb_number_of_iterations): Same.
29916         (pbb_number_of_iterations_at_time): Same.
29917         * graphite-poly.h (new_1st_loop): Same.
29918         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
29919         (oppose_constraint): Same.
29920         (insert_constraint_into_matrix): Same.
29921         (ppl_set_inhomogeneous_gmp): Same.
29922         (ppl_set_coef_gmp): Same.
29923         (ppl_strip_loop): Same.
29924         (ppl_lexico_compare_linear_expressions): Same.
29925         (ppl_max_for_le_pointset): Same.
29926         (ppl_min_for_le_pointset): Same.
29927         (ppl_build_realtion): Same.
29928         * graphite-ppl.h (gmp_cst_to_tree): Same.
29929         (ppl_set_inhomogeneous): Same.
29930         (ppl_set_inhomogeneous_tree): Same.
29931         (ppl_set_coef): Same.
29932         (ppl_set_coef_tree): Same.
29933         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
29934         (build_scop_scattering): Same.
29935         (add_value_to_dim): Same.
29936         (scan_tree_for_params_right_scev): Same.
29937         (scan_tree_for_params_int): Same.
29938         (scan_tree_for_params): Same.
29939         (find_params_in_bb): Same.
29940         (find_scop_parameters): Same.
29941         (add_upper_bounds_from_estimated_nit): Same.
29942         (build_loop_iteration_domains): Same.
29943         (create_linear_expr_from_tree): Same.
29944         (add_condition_to_domain): Same.
29945         (pdr_add_memory_accesses): Same.
29946
29947 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
29948             Jason Merrill  <jason@redhat.com>
29949
29950         * c-common.c (c_common_reswords): Add nullptr.
29951         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
29952         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
29953         (gen_type_die_with_usage): Likewise.
29954         * dbxout.c (dbxout_type): Likewise.
29955         * sdbout.c (plain_type_1): Likewise.
29956
29957 2010-05-06  Jason Merrill  <jason@redhat.com>
29958
29959         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
29960         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
29961         ret appropriately.
29962         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
29963
29964         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
29965         stripping WITH_SIZE_EXPR.
29966         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
29967         change.
29968
29969 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29970
29971         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
29972         list of obsolete configurations.
29973         Disabled check for obsolete configurations.
29974         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
29975         Removed support for previous versions.
29976         * config/mips/iris.h: Removed.
29977         * config/mips/iris5.h: Removed.
29978         * config/mips/iris6.h: Merged old iris.h contents.
29979         (TARGET_IRIX): Removed.
29980         (DRIVER_SELF_SPECS): Removed mabi=32.
29981         (IDENT_ASM_OP): Removed undef.
29982         (STARTFILE_SPEC): Removed mabi=32.
29983         (ENDFILE_SPEC): Likewise.
29984         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
29985         (MACHINE_TYPE): Update for IRIX 6.5.
29986         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
29987         TARGET_IRIX by TARGET_IRIX6.
29988         (mips_file_start): Likewise.
29989         (mips_output_external): Remove IRIX 5/6 O32 support.
29990         (mips_output_function_prologue): Likewise.
29991         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
29992         TARGET_IRIX6.
29993         (TARGET_CPU_CPP_BUILTINS): Likewise.
29994         (TARGET_IRIX): Removed.
29995         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
29996         (MULTILIB_DIRNAMES): Removed 32.
29997         (MULTILIB_OSDIRNAMES): Removed ../lib.
29998         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
29999         (Specific, mips-sgi-irix5): Document removal.
30000         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
30001         Remove references to older IRIX 6 releases and the O32 ABI.
30002
30003 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
30004
30005         PR bootstrap/43994
30006         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
30007         instead of DF_REF_REAL_REG.
30008
30009 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
30010
30011         PR target/43888
30012         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
30013         handling to still return true for x64 targets.
30014
30015 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
30016
30017         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
30018
30019 2010-05-06  Jan Hubicka  <jh@suse.cz>
30020
30021         PR tree-optimization/43791
30022         * ipa-inline.c (update_caller_keys): Remove bogus
30023         disregard_inline_limits check.
30024
30025 2010-05-06  Michael Matz  <matz@suse.de>
30026
30027         PR tree-optimization/43984
30028         * tree-ssa-pre.c (inserted_phi_names): Remove.
30029         (inserted_exprs): Change to bitmap.
30030         (create_expression_by_pieces): Set bits, don't append to vector.
30031         (insert_into_preds_of_block): Don't handle inserted_phi_names.
30032         (eliminate): Don't look at inserted_phi_names, remove deleted
30033         insns from inserted_exprs.
30034         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
30035         (init_pre, fini_pre): Allocate and free bitmaps.
30036         (execute_pre): Insert insns on edges before elimination.
30037
30038 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
30039
30040         * tree.c (initializer_zerop): Handle STRING_CST.
30041
30042 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30043
30044         PR 40989
30045         * doc/invoke.texi (Wimplicit): Document as C only.
30046         * opts.c (common_handle_option): Add argument kind.
30047         (handle_option): Rename as read_cmdline_option. Factor out code to...
30048         (handle_option): ... here. New.
30049         (handle_options): Rename as read_cmdline_options.
30050         (decode_options): Update call.
30051         (set_option): Use option index instead of option pointer. Classify
30052         diagnostics correctly.
30053         (enable_warning_as_error): Call handle_option.
30054         * opts.h (set_option): Update declaration.
30055         (handle_option): Declare.
30056         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
30057         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
30058         * c-opts.c (set_Wimplicit): Delete.
30059         (c_family_lang_mask): New static constant.
30060         (c_common_handle_option): Add argument kind. Use handle_option
30061         instead of set_Wimplicit.
30062         (c_common_post_options): warn_implicit and warn_implicit_int
30063         are disabled by default.
30064         * c-common.c (warn_implicit): Do not define here.
30065         * c-common.h (warn_implicit): Do not declare here.
30066         (c_common_handle_option): Update declaration.
30067         * lto-opts.c (lto_reissue_options): Update call to set_option.
30068
30069 2010-05-06  Richard Guenther  <rguenther@suse.de>
30070
30071         PR tree-optimization/43571
30072         * domwalk.c (walk_dominator_tree): Walk the dominator
30073         sons in more optimal order.
30074
30075 2010-05-06  Richard Guenther  <rguenther@suse.de>
30076
30077         PR tree-optimization/43934
30078         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
30079         (stmt_cost): Likewise.
30080         (extract_true_false_args_from_phi): New helper.
30081         (determine_max_movement): For PHI nodes verify we can hoist them
30082         and compute their cost.
30083         (determine_invariantness_stmt): Handle PHI nodes.
30084         (move_computations_stmt): Likewise.  Hoist PHI nodes in
30085         if-converted form using COND_EXPRs.
30086         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
30087         (tree_ssa_lim): Likewise.
30088         * tree-flow.h (tree_ssa_lim): Adjust prototype.
30089         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
30090
30091 2010-05-06  Richard Guenther  <rguenther@suse.de>
30092
30093         PR tree-optimization/43987
30094         * tree-ssa-structalias.c (could_have_pointers): For possibly
30095         address-taken variables force pointers to be recorded.
30096         (create_variable_info_for_1): Likewise.
30097         (push_fields_onto_fieldstack): Pass in wheter all fields
30098         must have pointers.
30099         (find_func_aliases): Query types instead of vars whether
30100         they contain pointers where appropriate.
30101
30102 2010-05-06  Jan Hubicka  <jh@suse.cz>
30103
30104         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
30105         (record_reference, mark_address, mark_load, mark_store): Record
30106         references.
30107         (record_references_in_initializer): Update call of record_references.
30108         (rebuild_cgraph_edges): Remove all references before rebuiding.
30109         * cgraph.c (cgraph_create_node): Clear ref list.
30110         (cgraph_remove_node): Remove references.
30111         (dump_cgraph_node): Dump references.
30112         (cgraph_clone_node): Clone references.
30113         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
30114         (struct cgraph_node, varpool_node): Add ref_lst.
30115         * ipa-ref.c: New file.
30116         * ipa-ref.h: New file.
30117         * ipa-ref-inline.h: New file.
30118         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
30119         (referenced_from_other_partition_p): New function.
30120         (lto_output_varpool_node): Take set arugment; call
30121         referenced_from_other_partition.
30122         (lto_output_ref): New.
30123         (add_references): New.
30124         (output_refs): New.
30125         (output_cgraph): Compute boundary based on references; output refs.
30126         (output_varpool): Accept cgraph_node_set argument.
30127         (input_ref): New.
30128         (input_refs): New.
30129         (input_cgraph): Call input_refs.
30130         * lto-section-in.c (lto_section_name): Add refs.
30131         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
30132         (ipa-ref.o): New file.
30133         * varpool.c (varpool_node): Clear ipa ref list.
30134         (varpool_remove_node): Remove references.
30135         (dump_varpool_node): Dump references.
30136         (varpool_assemble_decl): Only compile finalized ones.
30137         (varpool_extra_name_alias): Initialize ref list.
30138         * lto-streamer.c (lto-get_section_name): Add .refs section.
30139         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
30140         (referenced_from_other_partition_p): Declared.
30141
30142 2010-05-06  Ira Rosen  <irar@il.ibm.com>
30143
30144         PR tree-optimization/43901
30145         * tree-vect-stmts.c (vectorizable_call): Assert that vector
30146         type is not NULL if it's transformation phase, and return
30147         FALSE if it's analysis.
30148         (vectorizable_conversion, vectorizable_operation,
30149         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
30150
30151 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
30152
30153         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30154         Delete.
30155         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30156         New define.
30157         * config/mips/mips-protos.h
30158         (mips_small_register_classes_for_mode_p): Delete prototype.
30159
30160 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
30161
30162         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
30163         * config/arm/arm.c (multiple_operation_profitable_p,
30164         compute_offset_order): New static functions.
30165         (load_multiple_sequence, store_multiple_sequence): Use them.
30166         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
30167         memory offsets, not register numbers.
30168         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
30169
30170 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
30171
30172         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
30173         (get_pending_sizes, put_pending_size, put_pending_sizes):
30174         Update the uses of pending_sizes.
30175         * c-decl.c (store_parm_decls): Likewise.
30176         * c-tree.h (struct c_arg_info): Likewise.
30177         * tree.h: Update the prototype for get_pending_sizes and
30178         put_pending_sizes.
30179
30180 2010-05-05  Jason Merrill  <jason@redhat.com>
30181
30182         PR debug/43370
30183         * c-common.c (handle_aligned_attribute): Respect
30184         ATTR_FLAG_TYPE_IN_PLACE.
30185
30186         PR testsuite/43758
30187         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
30188         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30189         (TARGET_INITIALIZER): Use it.
30190         * c-common.c (attribute_takes_identifier_p): Call it.
30191         * c-common.h: Update prototype.
30192         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
30193         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30194
30195 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30196
30197         PR debug/43950
30198         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
30199         DW_ID_down_case for Fortran compilation units.
30200
30201 2010-05-05  Jan Hubicka  <jh@suse.cz>
30202
30203         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
30204         handle aliases.
30205
30206 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
30207
30208         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
30209         a variable-sized RESULT_DECL.
30210
30211 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
30212
30213         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
30214
30215 2010-05-05  Jason Merrill  <jason@redhat.com>
30216
30217         PR c++/43787
30218         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
30219         returns GS_OK.
30220         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
30221
30222 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
30223             Jakub Jelinek  <jakub@redhat.com>
30224
30225         PR debug/43478
30226         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
30227         (dead_debug_init, dead_debug_finish): New functions.
30228         (dead_debug_add, dead_debug_insert_before): Likewise.
30229         (df_note_bb_compute): Initialize a dead_debug object, add dead
30230         debug uses to it, insert debug bind insns before death insns,
30231         reset debug insns that refer to pending uses at the end.
30232         * rtl.h (make_debug_expr_from_rtl): New prototype.
30233         * varasm.c (make_debug_expr_from_rtl): New function.
30234
30235 2010-05-05  Jan Hubicka  <jh@suse.cz>
30236
30237         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
30238         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
30239         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
30240         lto_varpool_encoder_deref, lto_varpool_encoder_size,
30241         lto_varpool_encoder_encode_initializer_p,
30242         lto_set_varpool_encoder_encode_initializer): New functions.
30243         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
30244         call output_varpool.
30245         (input_varpool_node): Do not always set analyzed.
30246         (input_cgraph_1): Return vector of cgraph nodes.
30247         (input_varpool_1): Return vector of varpools.
30248         (input_cgraph): Free the vectors.
30249         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
30250         output only initializers needed.
30251         (lto_output): Only call output_cgraph.
30252         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
30253         * lto-section-out.c (lto_new_out_decl_state): Initialize
30254         state->varpool_node_encoder.
30255         * lto-streamer.h (lto_varpool_encoder_d): New.
30256         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
30257         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
30258         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
30259         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
30260         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
30261         Declare.
30262         (output_varpool, input_varpool): Remove declarations.
30263
30264 2010-05-05  Jan Hubicka  <jh@suse.cz>
30265
30266         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
30267         with body can prevail.
30268
30269 2010-05-05  Jan Hubicka  <jh@suse.cz>
30270
30271         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
30272         size.
30273
30274 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30275
30276         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
30277
30278         * gengtype.h (erro_at_line): Constify pos argument.
30279
30280         * gengtype.c: Include hashtab.h.
30281         (enum gc_used): Document GC_MAYBE_POINTED_TO.
30282         (error_at_line): Constify pos argument.
30283         (do_typedef): Initialize p->opt field.
30284         (get_file_gtfilename): Fix comment typo.
30285         (struct walk_type_data): Constify line field.
30286         (get_output_file_for_structure): New function.
30287         (write_local_func_for_structure): Constify orig_s argument.
30288         Use get_output_file_for_structure.
30289         (write_func_for_structure): Use get_output_file_for_structure.
30290         (INDENT): New define.
30291         (dump_pair, dump_type, dump_type_list, dump_typekind)
30292         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
30293         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
30294         functions.
30295         (seen_types): New variable.
30296         (main): New variable do_dump.  Process "-d" command line option.
30297         Call dump_everything if dump requested.
30298
30299 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30300
30301         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
30302         in a temporary instead of invoking the macro multiple times.
30303         (track_expr_p): Likewise.
30304
30305 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
30306
30307         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
30308         per new semantics.
30309         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
30310         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
30311         conditions for printing notes.
30312         * common.opt (-Wcoverage-mismatch): Allow negative, default to
30313         true, update documentation.
30314         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
30315
30316 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
30317
30318         PR c/43981
30319         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
30320         on dimen.
30321
30322 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30323
30324         PR target/43799
30325         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
30326         (*sse_prologue_save_insn1): Likewise.
30327         (SSE prologue save splitter): Likewise.
30328
30329 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
30330
30331         * tree.c (free_lang_data_in_one_sizepos): New inline function.
30332         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
30333         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
30334         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
30335         all decls.  Call it on DECL_FIELD_OFFSET of fields.
30336         (find_decls_types_r): Follow DECL_VALUE_EXPR.
30337         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
30338
30339 2010-05-04  Martin Jambor  <mjambor@suse.cz>
30340
30341         * tree-sra.c (build_access_from_expr_1): The first parameter type
30342         changed to simple tree.
30343         (build_access_from_expr): Likewise, gsi parameter was eliminated.
30344         (scan_assign_result): Renamed to assignment_mod_result, enum elements
30345         renamed as well.
30346         (build_accesses_from_assign): Removed all parameters except for a
30347         simple gimple statement.  Now returns a simple bool.
30348         (scan_function): All non-analysis parts moved to separate functions
30349         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
30350         parameters and updated both callers.
30351         (sra_modify_expr): Removed parameter data.
30352         (sra_modify_function_body): New function.
30353         (perform_intra_sra): Call sra_modify_function_body to modify the
30354         function body.
30355         (replace_removed_params_ssa_names): Parameter data changed into
30356         adjustments vector.
30357         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
30358         changed the parameter dont_convert to convert with the opposite
30359         meaning.
30360         (sra_ipa_modify_assign): Parameter data changed into adjustments
30361         vector, return value changed to bool.
30362         (ipa_sra_modify_function_body): New function.
30363         (sra_ipa_reset_debug_stmts): Updated a comment.
30364         (modify_function): Use ipa_sra_modify_function_body to modify function
30365         body.
30366
30367 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30368
30369         PR middle-end/43671
30370         * alias.c (true_dependence): Handle the same VALUE in x and mem.
30371         (canon_true_dependence): Likewise.
30372         (write_dependence_p): Likewise.
30373
30374 2010-05-04  Jan Hubicka  <jh@suse.cz>
30375
30376         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
30377         * cgraphbuild.c: Include ipa-utils.h
30378         (record_reference_ctx): New struct.
30379         (record_reference): Simplify to work on initializers; not statements.
30380         (mark_address, mark_load, mark_store): New.
30381         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30382         walk PHI nodes too.
30383         (record_references_in_initializer): Update use of record_reference.
30384         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30385         walk PHI nodes too.
30386
30387 2010-05-04  Jan Hubicka  <jh@suse.cz>
30388
30389         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
30390         node will be removed anyway.
30391         (lto_varpool_replace_node): Allow also unanalyzed nodes;
30392         relink aliases of node into prevailing node.
30393         * varpool.c (varpool_remove_node): Remove aliases properly;
30394         when removing node, remove all its aliases too; remove DECL_INITIAL
30395         of removed node; ggc_free the varpool node.
30396
30397 2010-05-04  Richard Guenther  <rguenther@suse.de>
30398
30399         PR tree-optimization/43879
30400         * tree-ssa-structalias.c (alias_get_name): Use
30401         DECL_ASSEMBLER_NAME if available.
30402         (create_function_info_for): Return the varinfo node.
30403         (ipa_pta_execute): Associate same-body aliases and extra names
30404         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
30405
30406 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
30407
30408         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
30409
30410 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
30411
30412         PR bootstrap/43964
30413         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
30414         only if HONOR_REG_ALLOC_ORDER is not defined.
30415
30416 2010-05-04  Richard Guenther  <rguenther@suse.de>
30417
30418         PR tree-optimization/43949
30419         * tree-vrp.c (extract_range_from_binary_expr): Only handle
30420         TRUNC_MOD_EXPR.
30421
30422 2010-04-26  Jason Merrill  <jason@redhat.com>
30423
30424         * c.opt (-fstrict-enums): New.
30425         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
30426
30427 2010-05-03  David Ung  <davidu@mips.com>
30428             James E. Wilson  <wilson@codesourcery.com>
30429
30430         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
30431         emit the trap instruction before the divide for TUNE_74K.
30432
30433 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
30434
30435         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
30436         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
30437         based on the above, for new target hook.
30438
30439         * hooks.c (hook_bool_mode_true): New generic hook.
30440         * hooks.h (hook_bool_mode_true): Add prototype.
30441
30442         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
30443         target hook.
30444         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
30445         target hook, set to hook_bool_mode_false.
30446         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
30447         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
30448         with targetm.small_register_classes_for_mode_p.
30449         (find_reusable_reload): Likewise.
30450         (combine_reloads): Likewise.
30451         * reload1.c (reload_as_needed): Likewise.
30452         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
30453         * ifcvt.c (noce_process_if_block, check_cond_move_block,
30454         dead_or_predicable): Likewise.
30455         * regmove.c (optimize_reg_copy_1): Likewise.
30456         * calls.c (prepare_call_address): Likewise.
30457         (precompute_register_parameters): Likewise.
30458
30459         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
30460         hook definition.
30461         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
30462         implementation of the hook that considers all register classes
30463         small except for SH64.
30464         (sh_override_options): Use the new hook.
30465         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
30466         Add prototype.
30467
30468         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
30469         hook definition.
30470         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
30471         implementation of the hook that considers all register classes
30472         small for THUMB1.
30473         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
30474         Add prototype.
30475
30476         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
30477         hook definition.
30478         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
30479         implementation of the hook that considers all register classes
30480         small for MIPS16.
30481         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
30482         Add prototype.
30483
30484         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
30485         hook definition.
30486         * config/m32c/m32c.h: Likewise.
30487         * config/pdp11/pdp11.h: Likewise.
30488         * config/avr/avr.h: Likewise.
30489         * config/xtensa/xtensa.h: Likewise.
30490         * config/m68hc11/m68hc11.h: Likewise.
30491         * config/mn10300/mn10300.h: Likewise.
30492         * config/mcore/mcore.h: Likewise.
30493         * config/h8300/h8300.h: Likewise.
30494         * config/bfin/bfin.h: Likewise.
30495
30496         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
30497         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
30498
30499 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
30500
30501         * double-int.h (tree_to_double_int): Remove macro.
30502         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
30503         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30504         (tree_to_double_int): New function.
30505         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
30506         Move ...
30507         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30508
30509 2010-05-03  Richard Guenther  <rguenther@suse.de>
30510
30511         PR tree-optimization/43971
30512         * tree-ssa-structalias.c (get_constraint_for_1): Fix
30513         constraints in the !flag_delete_null_pointer_checks case.
30514
30515 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
30516
30517         PR debug/43972
30518         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
30519         result mode matches original rtl mode.
30520
30521 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
30522
30523         PR target/43888
30524         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
30525
30526 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30527
30528         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
30529         when processing flag options.
30530
30531 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30532
30533         * gcov-iov.c (main): Change format string placeholder
30534         from %#08x to 0x%08x.
30535         * genchecksum.c (dosum): Change format string placeholder
30536         from %#02x to 0x%02x.
30537
30538 2010-05-02  Richard Guenther  <rguenther@suse.de>
30539
30540         PR tree-optimization/43879
30541         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
30542
30543 2010-05-02  Bruno Haible  <bruno@clisp.org>
30544
30545         * doc/extend.texi (Function Attributes): Fix a typo.
30546
30547 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30548
30549         Revert:
30550         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
30551         placeholder from 0x%x to %#x.
30552         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30553         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
30554         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
30555         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
30556         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
30557         * config/i386/i386.c (ix86_target_string): Ditto.
30558         * config/i386/i386.c (output_pic_addr_const): Ditto.
30559         (print_operand): Ditto.
30560
30561 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30562
30563         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
30564         placeholder from 0x%x to %#x.
30565         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
30566         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
30567         (ASM_OUTPUT_DEBUG_DATA): Ditto.
30568         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
30569         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
30570         * optc-gen.awk: Ditto.
30571         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
30572         (HOST_WIDE_INT_PRINT_HEX): Ditto.
30573         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
30574         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30575
30576 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30577
30578         * target.h (struct calls): Add function_value_regno_p field.
30579         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
30580         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
30581         * targhooks.c (default_function_value_regno_p): New function.
30582         * targhooks.h (default_function_value_regno_p): Declare function.
30583         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
30584         * builtins.c. (apply_result_size): (Ditto.).
30585         * combine.c. (likely_spilled_retval_p): (Ditto.).
30586         * mode-switching.c. Include 'target.h'.
30587         (create_pre_exit): Use function_value_regno_p hook.
30588         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
30589         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
30590         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
30591
30592         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
30593         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
30594         (ix86_function_value_regno_p): Declare as static, change argument
30595         type to const unsigned int.
30596         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
30597
30598 2010-05-01  Richard Guenther  <rguenther@suse.de>
30599
30600         PR tree-optimization/43949
30601         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
30602         types.
30603         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
30604
30605 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30606
30607         * rtl.h (CONST_DOUBLE_P): Define.
30608         (rtx_to_double_int): Declare.
30609         * emit-rtl.c (rtx_to_double_int): New function.
30610         * dwarf2out.c (insert_double): New function.
30611         (loc_descriptor, add_const_value_attribute): Clean up, use
30612         rtx_to_double_int and insert_double functions.
30613
30614 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
30615
30616         * doc/extend.texi (Inline): Add missing return keyword to examples.
30617         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
30618         "command-line".
30619
30620 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
30621
30622         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
30623         the variable part of the offset as well.  Use highest_pow2_factor for
30624         all alignment checks.
30625
30626 2010-04-30  Richard Guenther  <rguenther@suse.de>
30627
30628         PR tree-optimization/43879
30629         * tree-ssa-structalias.c (type_could_have_pointers): Functions
30630         can have pointers.
30631
30632 2010-04-30  Jan Hubicka  <jh@suse.cz>
30633
30634         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
30635         varpool.
30636         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
30637
30638 2010-04-30  Jan Hubicka  <jh@suse.cz>
30639
30640         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
30641         New.
30642         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
30643         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
30644         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
30645         cgraph_node_set_needs_ltrans_p): Remove.
30646
30647 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30648
30649         * sdbout.c: Include vec.h, do not include varray.h.
30650         (deferred_global_decls, sdbout_global_decl,
30651         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
30652         * toplev.c: Do not include varray.h.
30653         (dump_memory_report): Do not dump VARRAY statistics.
30654         * gengtype.c (open_base_file): Ignore varray.h.
30655         * Makefile.in: Update for abovementioned changes.
30656         Remove all traces of varray.c and varray.h.
30657         * varray.c: Remove file.
30658         * varray.h: Remove file.
30659
30660 2010-04-30  Jan Hubicka  <jh@suse.cz>
30661
30662         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
30663         references.
30664
30665 2010-04-30  Jan Hubicka  <jh@suse.cz>
30666
30667         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
30668         needed.
30669
30670 2010-04-30  Richard Guenther  <rguenther@suse.de>
30671
30672         * tree-ssa-structalias.c (get_constraint_for_1): Generate
30673         constraints for CONSTRUCTOR.
30674
30675 2010-04-30  Richard Guenther  <rguenther@suse.de>
30676
30677         PR lto/43946
30678         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
30679         first after all lowering passes.
30680
30681 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30682
30683         * toplev.c: Include varray.h for statistics dumping.
30684         * tree.h: Do not declare varray_head_tag.
30685         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
30686         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
30687         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
30688         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
30689         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
30690         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
30691         c-common.c, c-common.h, reg-stack.c, basic-block.h,
30692         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
30693         include varray.h.
30694         * Makefile.in: Update for abovementioned changes.
30695
30696 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
30697
30698         PR debug/43942
30699         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
30700
30701 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
30702
30703         * config/picochip/picochip.c (picochip_legitimize_address): Define.
30704         Use this function to do machine-specific conversion.
30705         (picochip_legitimize_reload_address): Likewise.
30706         (picochip_legitimate_address_p): Check valid base register only if
30707         strict.
30708         (picochip_check_conditional_copy): Check for modw only if opnd is
30709         register.
30710         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
30711         to call the function in c.
30712         * config/picochip/picochip-protos.h
30713         (picochip_legitimize_reload_address): Define.
30714         * config/picochip/picochip.md (supported_compare1): Define.
30715
30716 2010-04-30  Jan Hubicka  <jh@suse.cz>
30717
30718         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
30719         (cgraph_global_info): Remove inlined.
30720         (LTO_cgraph_tag_names): Remove.
30721         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
30722         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
30723         simplify cgraph tags and document.
30724         (lto_output_node): Use only LTO_cgraph_unavail_node and
30725         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
30726         for_functions_valid, global info, process and output flags.
30727         (input_overwrite_node): Initialize estimated stack size and
30728         estimated growth.  Do not read flags we no longer store.
30729         (input_node): Likewise do not read info no longer stored.
30730         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
30731         flag.
30732
30733 2010-04-30  Richard Guenther  <rguenther@suse.de>
30734
30735         PR tree-optimization/43879
30736         * tree-ssa-structalias.c (get_constraint_for_1): Properly
30737         handle non-zero initializers.
30738
30739 2010-04-30  Richard Guenther  <rguenther@suse.de>
30740
30741         * builtins.c (fold_builtin_1): Delete free (0).
30742
30743 2010-04-29  Jan Hubicka  <jh@suse.cz>
30744
30745         * gengtype.c (open_base_files): Add lto-streamer.h
30746         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
30747         (pass_ipa_cp): GGC collect.
30748         * toplev. (compile_file): Do not output symbols.
30749         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
30750         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
30751         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
30752         * lto-section-in.c: Include ggc.h
30753         (lto_new_in_decl_state): Alloc in GGC.
30754         (lto_delete_in_decl_state): Likewise.
30755         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
30756         Collect.
30757
30758 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30759
30760         PR target/42895
30761         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
30762         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
30763         (HONOR_REG_ALLOC_ORDER): Describe new macro.
30764         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
30765         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
30766         account only if HONOR_REG_ALLOC_ORDER is not defined.
30767         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
30768         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
30769
30770 2010-04-29  Jon Grant  <04@jguk.org>
30771
30772         * collect2.c (vflag): Change type from int to bool.
30773         (debug): Likewise.
30774         (helpflag): New global bool.
30775         (main): Set vflag and debug with boolean, not integer truth values.
30776         Accept new "--help" option and output usage text if found.
30777         * collect2.h (vflag): Update prototype.
30778         (debug): Likewise.
30779
30780 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30781
30782         PR bootstrap/43936
30783         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
30784
30785 2010-04-29  Richard Guenther  <rguenther@suse.de>
30786
30787         PR bootstrap/43935
30788         * plugin.h (invoke_plugin_callbacks): Annotate arguments
30789         with ATTRIBUTE_UNUSED.
30790
30791 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30792
30793         PR target/43921
30794         * config/i386/i386.c (get_some_local_dynamic_name): Replace
30795         INSN_P with NONDEBUG_INSN_P.
30796         (distance_non_agu_define): Likewise.
30797         (distance_agu_use): Likewise.
30798
30799 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30800
30801         From Dominique d'Humieres  <dominiq@lps.ens.fr>
30802         PR bootstrap/43858
30803         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
30804         test_set.
30805
30806 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
30807
30808         * plugin.h (invoke_plugin_callbacks): New inline function.
30809         * plugin.c (flag_plugin_added): New global flag.
30810         (add_new_plugin): Initialize above flag.
30811         (invoke_plugin_callbacks): Rename to ...
30812         (invoke_plugin_callbacks_full): ... this.
30813
30814 2010-04-28  Jan Hubicka  <jh@suse.cz>
30815
30816         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
30817         (lto_varpool_replace_node): New.
30818         (lto_symtab_resolve_symbols): Resolve varpool nodes.
30819         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
30820         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
30821         * cgraph.h (varpool_node_ptr): New type.
30822         (varpool_node_ptr): New vector.
30823         (varpool_node_set_def): New structure.
30824         (varpool_node_set): New type.
30825         (varpool_node_set): New vector.
30826         (varpool_node_set_element_def): New structure.
30827         (varpool_node_set_element, const_varpool_node_set_element): New types.
30828         (varpool_node_set_iterator): New type.
30829         (varpool_node): Add prev pointers, add used_from_other_partition,
30830         in_other_partition.
30831         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
30832         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
30833         varpool_get_node, varpool_remove_node): Declare.
30834         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
30835         varpool_node_set_size): New inlines.
30836         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
30837         * tree-pass.h (varpool_node_set_def): Forward declare.
30838         (ipa_opt_pass_d): Summary writting takes vnode sets too.
30839         (ipa_write_optimization_summaries): Update prototype.
30840         * ipa-cp.c (ipcp_write_summary): Update.
30841         * ipa-reference.c (ipa_reference_write_summary): Update.
30842         * lto-cgraph.c (lto_output_varpool_node): New static function.
30843         (output_varpool): New function.
30844         (input_varpool_node): New static function.
30845         (input_varpool_1): New function.
30846         (input_cgraph): Input varpool.
30847         * ipa-pure-const.c (pure_const_write_summary): Update.
30848         * lto-streamer-out.c (lto_output): Update, output varpool too.
30849         (write_global_stream): Kill WPA hack.
30850         (produce_asm_for_decls): Update.
30851         (output_alias_pair_p): Handle variables.
30852         (output_unreferenced_globals): Output only needed partition of varpool.
30853         * ipa-inline.c (inline_write_summary): Update.
30854         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
30855         cgraph.
30856         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
30857         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
30858         varpool_node_set_new, varpool_node_set_add,
30859         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
30860         debug_varpool_node_set): New functions.
30861         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
30862         (execute_one_pass): Process new decls too.
30863         (ipa_write_summaries_2): Pass around vsets.
30864         (ipa_write_summaries_1): Likewise.
30865         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
30866         to add.
30867         (ipa_write_optimization_summaries_1): Pass around vsets.
30868         (ipa_write_optimization_summaries): Likewise.
30869         * varpool.c (varpool_get_node): New.
30870         (varpool_node): Update doubly linked lists.
30871         (varpool_remove_node): New.
30872         (dump_varpool_node): More dumping.
30873         (varpool_enqueue_needed_node): Update doubly linked lists.
30874         (decide_is_variable_needed): Kill ltrans hack.
30875         (varpool_finalize_decl): Kill lto hack.
30876         (varpool_assemble_decl): Skip decls in other partitions.
30877         (varpool_assemble_pending_decls): Update doubly linkes lists.
30878         (varpool_empty_needed_queue): Likewise.
30879         (varpool_extra_name_alias): Likewise.
30880         * lto-streamer.c (lto_get_section_name): Add vars section.
30881         * lto-streamer.h (lto_section_type): Update.
30882         (output_varpool, input_varpool): Declare.
30883
30884 2010-04-28  Mike Stump  <mikestump@comcast.net>
30885
30886         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
30887
30888 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30889
30890         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
30891         record or union type with RECORD_OR_UNION_TYPE_P predicate.
30892         (lto_input_ts_type_tree_pointers): Likewise.
30893         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
30894         (lto_output_ts_type_tree_pointers): Likewise.
30895
30896 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30897
30898         Uniquization of constants at the Tree level
30899         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
30900         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
30901         bit to the end.
30902         (tree_output_constant_def): Declare.
30903         * gimplify.c (gimplify_init_constructor): When using block copy, first
30904         uniquize the constant constructor on the RHS.
30905         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
30906         DECL_IN_CONSTANT_POOL flag.
30907         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
30908         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
30909         constant pool.
30910         (assemble_variable): Deal with symbols belonging to the tree constant
30911         pool.
30912         (get_constant_section): Add ALIGN parameter and simplify.
30913         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
30914         (assemble_constant_contents): Use the expression of the VAR_DECL.
30915         (output_constant_def_contents): Use the alignment of the VAR_DECL.
30916         (tree_output_constant_def): New global function.
30917         (mark_constant): Use the expression of the VAR_DECL.
30918         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
30919         its expression.
30920         (output_object_block): Likewise and assemble the expression.
30921
30922 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30923
30924         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
30925         hash_tree, eq_tree): New tree hash table.
30926         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
30927         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
30928         lto_orig_address_remove): Reimplement.
30929
30930 2010-04-28  Xinliang David Li  <davidxl@google.com>
30931
30932         PR c/42643
30933         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
30934         (compute_uninit_opnds_pos): New function.
30935         (is_non_loop_exit_postdominating): New function.
30936         (compute_control_dep_chain): New function.
30937         (find_pdom): New function.
30938         (convert_control_dep_chain_into_preds): New function.
30939         (find_predicates): New function.
30940         (find_control_equiv_block): New function.
30941         (collect_phi_def_edges): New function.
30942         (find_def_preds): New function.
30943         (find_dom): New function.
30944         (dump_predicates): New function.
30945         (get_cmp_code): New function.
30946         (is_value_included_in): New function.
30947         (find_matching_predicate_in_rest_chains): New function.
30948         (use_pred_not_overlap_with_undef_path_pred): New function.
30949         (is_use_properly_guarded): New function.
30950         (normalize_cond_1): New function.
30951         (is_and_or_or): New function.
30952         (normalize_cond): New function.
30953         (is_gcond_subset_of): New function.
30954         (is_subset_of_any): New function.
30955         (is_or_set_subset_of): New function.
30956         (is_and_set_subset_of): New function.
30957         (is_norm_cond_subset_of): New function.
30958         (is_pred_expr_subset_of): New function.
30959         (is_pred_chain_subset_of): New function.
30960         (is_included_in): New function.
30961         (is_superset_of): New function.
30962         (find_uninit_use): New function.
30963         (warn_uninitialized_phi): New function.
30964         (compute_possibly_undefined_names): New function.
30965         (ssa_undefined_value_p): New function.
30966         (execute_late_warn_uninitialized): New function.
30967         * tree-ssa.c (ssa_undefined_value_p): Removed.
30968         (warn_uninit): Changed to extern.
30969         (warn_uninitialized_phi): Removed.
30970         (warn_uninitialized_vars): Changed to extern.
30971         (execute_late_warn_uninitialized): Removed
30972         * tree-flow.h: Add new prototypes.
30973         * timevar.def: Add new time variable.
30974         * Makefile.in: Add new build file.
30975
30976 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
30977
30978         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
30979         type if available.
30980
30981 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30982
30983         PR target/22224
30984         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
30985
30986 2010-04-28  Martin Jambor  <mjambor@suse.cz>
30987
30988         * cgraph.h (struct cgraph_node): New field indirect_calls.
30989         (struct cgraph_indirect_call_info): New type.
30990         (struct cgraph_edge): Removed field indirect_call. New fields
30991         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
30992         (cgraph_create_indirect_edge): Declare.
30993         (cgraph_make_edge_direct): Likewise.
30994         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
30995         * ipa-prop.h (struct ipa_param_call_note): Removed.
30996         (struct ipa_node_params): Removed field param_calls.
30997         (ipa_create_all_structures_for_iinln): Declare.
30998         * cgraph.c: Described indirect edges and uids in initial comment.
30999         (cgraph_add_edge_to_call_site_hash): New function.
31000         (cgraph_edge): Search also among the indirect edges, use
31001         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
31002         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
31003         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
31004         site hash.
31005         (initialize_inline_failed): Assign a reason to indirect edges.
31006         (cgraph_create_edge_1): New function.
31007         (cgraph_create_edge): Moved some functionality to
31008         cgraph_create_edge_1.
31009         (cgraph_create_indirect_edge): New function.
31010         (cgraph_edge_remove_callee): Add an assert checking for
31011         non-indirectness.
31012         (cgraph_edge_remove_caller): Special-case indirect edges.
31013         (cgraph_remove_edge): Likewise.
31014         (cgraph_set_edge_callee): New function.
31015         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
31016         (cgraph_make_edge_direct): New function.
31017         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
31018         the declaration of the call statement matches.
31019         (cgraph_node_remove_callees): Special-case indirect edges.
31020         (cgraph_clone_edge): Likewise.
31021         (cgraph_clone_node): Clone also the indirect edges.
31022         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
31023         indirect_call, dump count of indirect_calls edges.
31024         * ipa-prop.c (iinlining_processed_edges): New variable.
31025         (ipa_note_param_call): Create indirect edges instead of
31026         creating notes.  New parameter node.
31027         (ipa_analyze_call_uses): New parameter node, pass it on to
31028         ipa_note_param_call.
31029         (ipa_analyze_stmt_uses): Likewise.
31030         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
31031         (print_edge_addition_message): Work on edges rather than on notes.
31032         (update_call_notes_after_inlining): Likewise, renamed to
31033         update_indirect_edges_after_inlining.
31034         (ipa_create_all_structures_for_iinln): New function.
31035         (ipa_free_node_params_substructures): Do not free notes.
31036         (ipa_edge_duplication_hook): Propagate bits within
31037         iinlining_processed_edges bitmap.
31038         (ipa_node_duplication_hook): Do not duplicate notes.
31039         (free_all_ipa_structures_after_ipa_cp): Renamed to
31040         ipa_free_all_structures_after_ipa_cp.
31041         (free_all_ipa_structures_after_iinln): Renamed to
31042         ipa_free_all_structures_after_iinln.
31043         (ipa_write_param_call_note): Removed.
31044         (ipa_read_param_call_note): Removed.
31045         (ipa_write_indirect_edge_info): New function.
31046         (ipa_read_indirect_edge_info): Likewise.
31047         (ipa_write_node_info): Do not stream notes, do stream information
31048         in indirect edges.
31049         (ipa_read_node_info): Likewise.
31050         (lto_ipa_fixup_call_notes): Removed.
31051         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
31052         * ipa-inline.c (pass_ipa_inline): Likewise.
31053         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
31054         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
31055         * tree-inline.c (copy_bb): Removed an unnecessary double check for
31056         is_gimple_call.
31057         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
31058         edges.
31059         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
31060         (output_cgraph): Stream also indirect edges.
31061         (lto_output_edge): Added capability to stream indirect edges.
31062         (input_edge): Likewise.
31063         (input_cgraph_1): Likewise.
31064         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
31065         of indirect edges.
31066
31067 2010-04-28  Richard Guenther  <rguenther@suse.de>
31068
31069         PR tree-optimization/43879
31070         PR tree-optimization/43909
31071         * tree-ssa-structalias.c (struct variable_info): Add
31072         only_restrict_pointers flag.
31073         (new_var_info): Initialize it.  Increment stats.total_vars here.
31074         (create_function_info_for): Do not increment stats.total_vars here.
31075         (get_function_part_constraint): Fix build with C++.
31076         (insert_into_field_list): Remove.
31077         (push_fields_onto_fieldstack): Properly merge fields.
31078         (create_variable_info_for): Split and simplify.
31079         (create_variable_info_for_1): New piece.
31080         (intra_create_variable_infos): Properly make restrict constraints
31081         from parameters.
31082
31083 2010-04-28  Richard Guenther  <rguenther@suse.de>
31084
31085         PR c++/43880
31086         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
31087
31088 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31089             Jan Hubicka  <hubicka@ucw.cz>
31090
31091         * doc/invoke.texi (-Wsuggest-attribute=const,
31092         -Wsuggest-attribute=pure): Document.
31093         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
31094         (function_always_visible_to_compiler_p,
31095         suggest_attribute, warn_function_pure, warn_function_const):
31096         New functions.
31097         (check_call): Improve debug info.
31098         (analyze_function): Do not check availability.
31099         (add_new_function): Check availability.
31100         (propagate): Output warnings.
31101         (skip_function_for_local_pure_const): New function.
31102         (local_pure_const): Use it; output warnings.
31103         * common.opt (Wsuggest-attribute=const,
31104         Wsuggest-attribute=pure): New.
31105
31106 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31107
31108         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
31109         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
31110         or DW_CFA_def_cfa_offset{,_sf}.
31111
31112 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31113
31114         * tree.h: Fix truncated long macros.
31115
31116 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
31117
31118         * collect2.c (TARGET_64BIT): Redefine to target's default.
31119         * tlink.c: Likewise.
31120         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
31121         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
31122         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
31123         for underscoring __USER_LABEL_PREFIX__.
31124         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
31125         (SUB_LINK_ENTRY32): New.
31126         (SUB_LINK_ENTRY64): New.
31127         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
31128         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
31129         (SUB_LINK_ENTRY64): New.
31130         (SUB_LINK_ENTRY): New.
31131         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
31132         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
31133         x64 target is choosen.
31134         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
31135         * configure: Regenerated.
31136         * configure.ac (leading-mingw64-underscores): Option added.
31137
31138 2010-04-27  Jan Hubicka  <jh@suse.cz>
31139
31140         * doc/invoke.texi (-fipa-profile): Document.
31141         * opts.c (decode_options): Enable ipa-profile at -O1.
31142         * timevar.def (TV_IPA_PROFILE): Define.
31143         * common.opt (fipa-profile): Add.
31144         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
31145         flag for clones.
31146         (cgraph_propagate_frequency): Handle only local ones.
31147         * tree-pass.h (pass_ipa_profile): Declare.
31148         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
31149         (pass_ipa_profile): Use TV_IPA_PROFILE.
31150         * ipa.c (ipa_profile): New function.
31151         (gate_ipa_profile): Likewise.
31152         (pass_ipa_profile): New global variable.
31153         * passes.c (pass_ipa_profile): New.
31154
31155 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
31156
31157         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
31158
31159 2010-04-27  Martin Jambor  <mjambor@suse.cz>
31160
31161         PR middle-end/43812
31162         * ipa.c (dissolve_same_comdat_group_list): New function.
31163         (function_and_variable_visibility): Call
31164         dissolve_same_comdat_group_list when comdat group contains external or
31165         newly local nodes.
31166         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
31167         lists are circular and that they contain only DECL_ONE_ONLY nodes.
31168
31169 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31170
31171         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
31172         (const_hash_1) <VECTOR_CST>: New case.
31173         (compare_constant) <VECTOR_CST>: Likewise.
31174         <ADDR_EXPR>: Deal with LABEL_REFs.
31175         (copy_constant) <VECTOR_CST>: New case.
31176
31177 2010-04-27  Jan Hubicka  <jh@suse.cz>
31178
31179         * cgraph.c (cgraph_propagate_frequency): New function.
31180         * cgraph.h (cgraph_propagate_frequency): Declare.
31181         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
31182         cgraph_propagate_frequency.
31183
31184 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31185
31186         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
31187
31188 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
31189
31190         PR target/40657
31191         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
31192         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
31193         here to determine which regs to push and how much stack to reserve.
31194
31195 2010-04-27  Jie Zhang  <jie@codesourcery.com>
31196
31197         * doc/gimple.texi (gimple_statement_with_ops): Remove
31198         addresses_taken field.
31199         (gimple_statement_with_memory_ops): Likewise.
31200
31201 2010-04-27  Jan Hubicka  <jh@suse.cz>
31202
31203         * tree-inline.c (eni_inlining_weights): Remove.
31204         (estimate_num_insns): Special case more builtins.
31205
31206 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
31207
31208         PR c/32207
31209         * c-typeck.c (build_binary_op): Move forward check for comparison
31210         pointer with null pointer constant and adjust the diagnostic message.
31211
31212 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
31213
31214         PR lto/42776
31215         * configure.ac (gcc_cv_as_section_has_align): Set if installed
31216         binutils supports extended .section directive needed by LTO, or
31217         warn if older binutils found.
31218         (LTO_BINARY_READER): New AC_SUBST'd variable.
31219         (LTO_USE_LIBELF): Likewise.
31220         * config.gcc (lto_binary_reader): New target-specific configure
31221         variable.
31222         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
31223         (LTO_USE_LIBELF): Likewise.
31224         * configure: Regenerate.
31225
31226         * collect2.c (is_elf): Rename from this ...
31227         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
31228          object files in addition to ELF-formatted ones.
31229         (scan_prog_file): Caller updated.  Also allow for LTO info marker
31230         symbol to be prefixed or not by an extra underscore.
31231
31232         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
31233         * config/i386/winnt.c: Also #include lto-streamer.h
31234         (i386_pe_asm_named_section): Specify 1-byte section alignment for
31235         LTO named sections.
31236         (i386_pe_asm_output_aligned_decl_common): Add comment.
31237         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
31238
31239 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
31240
31241         PR target/43889
31242         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
31243         Add missing earlyclobber for second alternative.
31244
31245 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
31246
31247         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
31248         bits for artificial defs at the top of the block.
31249         * fwprop.c (single_def_use_enter_block): Don't call it.
31250
31251 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
31252
31253         PR 43715
31254         * configure.ac: Use "$gcc_cv_nm -g" on darwin
31255         instead of "$gcc_cv_objdump -T".
31256         Use "-undefined dynamic_lookup" on darwin.
31257         * configure: Regenerate.
31258
31259 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
31260
31261         PR c/43893
31262         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
31263
31264 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31265
31266         * c-parser.c (struct c_token): Move location field up.
31267         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
31268         (struct c_declspecs): Convert typespec_word, storage_class, and
31269         default_int_p into bitfields.
31270         (struct c_declarator): Move loc field up.
31271
31272 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31273
31274         * cfgloop.h (struct loop): Move can_be_parallel field up.
31275         * ipa-prop.h (struct ip_node_params): Move bitfields up.
31276         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
31277         down.
31278         (struct iv_cand): Convert pos field into a bitfield.
31279         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
31280         field up.
31281         (struct _stmt_vec_info): Shuffle fields for better packing.
31282
31283 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31284
31285         * varasm.c (IN_NAMED_SECTION): Remove guard.
31286         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
31287         (IN_NAMED_SECTION_P): ...this.
31288         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
31289         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
31290
31291 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31292
31293         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
31294         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
31295         of shadowing it.  Fix comments.
31296
31297 2010-04-26  Jan Hubicka  <jh@suse.cz>
31298
31299         * cgraph.c (cgraph_create_node): Set node frequency to normal.
31300         (cgraph_clone_node): Copy function frequency.
31301         * cgraph.h (node_frequency): New enum
31302         (struct cgraph_node): Add.
31303         * final.c (rest_of_clean_state): Update.
31304         * lto-cgraph.c (lto_output_node): Output node frequency.
31305         (input_overwrite_node): Input node frequency.
31306         * tre-ssa-loop-ivopts (computation_cost): Update.
31307         * lto-streamer-out.c (output_function): Do not output function
31308         frequency.
31309         * predict.c (maybe_hot_frequency_p): Update and handle functions
31310         executed once.
31311         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
31312         attribute lookup.
31313         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
31314         (compute_function_frequency): Set noreturn functions to be executed
31315         once.
31316         (choose_function_section): Update.
31317         * lto-streamer-in.c (input_function): Do not input function frequency.
31318         * function.c (allocate_struct_function): Do not initialize function
31319         frequency.
31320         * function.h (function_frequency): Remove.
31321         (struct function): Remove function frequency.
31322         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
31323         (try_update): Update.
31324         * tree-inline.c (initialize_cfun): Do not update function frequency.
31325         * passes.c (pass_init_dump_file): Update.
31326         * i386.c (ix86_compute_frame_layout): Update.
31327         (ix86_pad_returns): Update.
31328
31329 2010-04-26  Jie Zhang  <jie@codesourcery.com>
31330
31331         PR tree-optimization/43833
31332         * tree-vrp.c (range_int_cst_p): New.
31333         (range_int_cst_singleton_p): New.
31334         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
31335         when both operands are constants.  Use range_int_cst_p in
31336         BIT_IOR_EXPR case.
31337
31338 2010-04-26  Jan Hubicka  <jh@suse.cz>
31339
31340         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
31341
31342 2010-04-26  Richard Guenther  <rguenther@suse.de>
31343
31344         PR lto/43080
31345         * gimple.c (gimple_decl_printable_name): Deal gracefully
31346         with a NULL DECL_NAME.
31347
31348 2010-04-26  Richard Guenther  <rguenther@suse.de>
31349
31350         PR lto/42425
31351         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
31352         if emitting debug information and it is either a function
31353         or a namespace decl.
31354
31355 2010-04-26  Ira Rosen  <irar@il.ibm.com>
31356
31357         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
31358         determine if the statement is vectorizable, and a macro to access it.
31359         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31360         Skip statements that can't be vectorized. If the analysis fails,
31361         mark the statement as unvectorizable if vectorizing basic block.
31362         (vect_compute_data_refs_alignment): Likewise.
31363         (vect_verify_datarefs_alignment): Skip statements marked as
31364         unvectorizable. Add print.
31365         (vect_analyze_group_access): Skip statements that can't be
31366         vectorized. If the analysis fails, mark the statement as
31367         unvectorizable if vectorizing basic block.
31368         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
31369         * tree-vect-stmts.c (vectorizable_store): Fix the number of
31370         generated stmts for SLP.
31371         (new_stmt_vec_info): Initialize the new field.
31372         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
31373         statements marked as unvectorizable.
31374
31375 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
31376
31377         * c-common.c (flag_isoc1x): New.
31378         (flag_isoc99): Update comment.
31379         * c-common.h (flag_isoc1x): New.
31380         (flag_isoc99): Update comment.
31381         * c-cppbuiltin.c (builtin_define_float_constants): Also define
31382         __<type>_DECIMAL_DIG__.
31383         * c-opts.c (set_std_c1x): New.
31384         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
31385         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
31386         * c.opt (-std=c1x, -std=gnu1x): New options.
31387         * doc/cpp.texi: Mention -std=c1x.
31388         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
31389         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
31390         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
31391         * doc/standards.texi: Mention C1X.
31392         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
31393         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
31394         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
31395         Define for C1X.
31396
31397 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
31398
31399         * config/i386/gmon-sol2.c (_mcleanup): Change format string
31400         placeholder from 0x%x to %#x.
31401         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
31402         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
31403         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
31404         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
31405         * config/i386/i386.c (ix86_target_string): Ditto.
31406         (output_pic_addr_const): Ditto.
31407         (print_operand): Ditto.
31408
31409 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
31410
31411         * combine.c (find_split_point): Add third argument.  Use it
31412         to find nested multiply-accumulate instructions.  Adjust calls.
31413         (try_combine): Adjust call to find_split_point.
31414
31415 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
31416
31417         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
31418
31419 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
31420
31421         PR tree-optimization/41442
31422         * fold-const.c (merge_truthop_with_opposite_arm): New function.
31423         (fold_binary_loc): Call it.
31424
31425 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31426
31427         * toplev.c (general_init): Set default for fdiagnostics-show-option.
31428         * opts.c (common_handle_option): Allow disabling it.
31429         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
31430
31431 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
31432
31433         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
31434         between modes if both types are integral.
31435
31436 2010-04-23  Richard Guenther  <rguenther@suse.de>
31437
31438         PR tree-optimization/43572
31439         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
31440
31441 2010-04-23  Richard Guenther  <rguenther@suse.de>
31442
31443         PR lto/43455
31444         * tree-inline.c (tree_can_inline_p): Also check compatibility
31445         of return types.
31446
31447 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31448
31449         PR tree-optimization/43846
31450         * tree-sra.c (struct access): New flag grp_assignment_read.
31451         (build_accesses_from_assign): Set grp_assignment_read.
31452         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
31453         (enum mark_read_status): New type.
31454         (analyze_access_subtree): Propagate grp_assignment_read, create
31455         accesses also if both direct_read and root->grp_assignment_read.
31456
31457 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31458
31459         PR middle-end/43835
31460         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
31461         function does not have type attributes.
31462
31463 2010-04-23  Richard Guenther  <rguenther@suse.de>
31464
31465         PR lto/42653
31466         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
31467         of FUNCTION_DECLs.
31468
31469 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31470
31471         * sese.h (create_if_region_on_edge): Remove.
31472
31473         * sese.c (create_if_region_on_edge): Make static.
31474
31475         * tree-inline.c: Do not include ggc.h.
31476
31477         * expr.c: Do not include ggc.h.
31478
31479         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
31480         dependencies.
31481
31482 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
31483
31484         PR target/43744
31485         * config/sh/sh.c (find_barrier): Don't emit a constant pool
31486         in the middle of insns for casesi_worker_2.
31487
31488 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
31489
31490         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
31491
31492 2010-04-22  Ira Rosen  <irar@il.ibm.com>
31493
31494         PR tree-optimization/43842
31495         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
31496         loop unrolling in update of exit phis. Fix comment.
31497         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
31498         least two reduction statements in the loop before starting SLP
31499         analysis.
31500
31501 2010-04-22  Nick Clifton  <nickc@redhat.com>
31502
31503         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
31504
31505 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
31506
31507         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
31508         to simplify a + ~a.
31509
31510 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31511
31512         * tree-parloops.c (loop_parallel_p): New argument
31513         parloop_obstack.  Pass it down.
31514         (parallelize_loops): New variable parloop_obstack.  Initialize it,
31515         pass it down, free it.
31516
31517         * tree-loop-linear.c (linear_transform_loops): Pass down
31518         lambda_obstack.
31519
31520         * tree-data-ref.h (lambda_compute_access_matrices): New argument
31521         of type struct obstack *.
31522
31523         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
31524         scratch_obstack.  Initialize it, pass down, free it.
31525
31526         * lambda.h (lambda_loop_new): Remove.
31527         (lambda_matrix_new, lambda_matrix_inverse)
31528         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
31529         argument of type struct obstack *.
31530
31531         * lambda-trans.c (lambda_trans_matrix_new): New argument
31532         lambda_obstack.  Pass it down, use obstack allocation for ret.
31533         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
31534         it down.
31535
31536         * lambda-mat.c (lambda_matrix_get_column)
31537         (lambda_matrix_project_to_null): Remove.
31538         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
31539         allocation for mat.
31540         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
31541         lambda_obstack.
31542
31543         * lambda-code.c (lambda_loop_new): New function.
31544         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
31545         (lambda_compute_auxillary_space, lambda_compute_target_space)
31546         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
31547         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
31548         (build_access_matrix): New argument lambda_obstack.  Use obstack
31549         allocation for am.
31550         (lambda_compute_step_signs, lambda_compute_access_matrices): New
31551         argument lambda_obstack.  Pass it down.
31552
31553 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31554
31555         * optabs.h (expand_widening_mult): Declare.
31556
31557 2010-04-22  Richard Guenther  <rguenther@suse.de>
31558
31559         PR tree-optimization/43845
31560         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
31561         lookup the CALL_EXPR function and arguments.
31562
31563 2010-04-22  Nick Clifton  <nickc@redhat.com>
31564
31565         * config/stormy16/stormy16.c
31566         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
31567         * config/stormy16/stormy16.h: Tidy up formatting.
31568         (DONT_USE_BUILTIN_SETJMP): Remove definition.
31569         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
31570         (ineqbranchsi): Delete pattern.
31571         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
31572         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
31573         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
31574         stormy16-lib2-ucmpsi2.c.
31575
31576 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31577
31578         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
31579         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
31580         extra set merge_set_noclobber, and use it to relax the final test
31581         slightly.
31582         * df.h (df_simulate_find_noclobber_defs): Declare.
31583         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
31584         conditional defs.
31585         (df_simulate_find_noclobber_defs): New function.
31586
31587 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
31588
31589         * config/i386/i386.md: Use {} around multi-line preparation statements.
31590
31591 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31592
31593         * c-tree.h (push_init_level, pop_init_level, set_init_index)
31594         (process_init_element): New argument of type struct obstack *.
31595
31596         * c-typeck.c (push_init_level, pop_init_level, set_designator)
31597         (set_init_index, set_init_label, set_nonincremental_init)
31598         (set_nonincremental_init_from_string, find_init_member)
31599         (output_init_element, output_pending_init_elements)
31600         (process_init_element): New argument braced_init_obstack.  Pass it
31601         down.
31602         (push_range_stack, add_pending_init): New argument
31603         braced_init_obstack.  Use obstack allocation.
31604
31605         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
31606         braced_init_obstack.  Pass it down.
31607         (c_parser_braced_init): New variables ret, braced_init_obstack.
31608         Initialize obstack, pass it down and finally free it.
31609
31610 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31611
31612         PR middle-end/29274
31613         * tree-pass.h (pass_optimize_widening_mul): Declare.
31614         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
31615         gate_optimize_widening_mul): New static functions.
31616         (pass_optimize_widening_mul): New.
31617         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
31618         <case MULT_EXPR>: Remove support for widening multiplies.
31619         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
31620         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
31621         simplify_gen_unary rather than directly building extensions.
31622         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
31623         WIDEN_MULT_EXPR.
31624         * expmed.c (expand_widening_mult): New function.
31625         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
31626
31627 2010-04-21  Jan Hubicka  <jh@suse.cz>
31628
31629         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
31630         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
31631         * lto-wpa-fixup.c: Remove.
31632         * Makefile.in (lto-wpa-fixup.o): Remove.
31633         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
31634         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
31635         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
31636
31637 2010-04-21  Jan Hubicka  <jh@suse.cz>
31638
31639         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
31640         add write_optimization_summary, read_optimization_summary.
31641         (ipa_write_summaries_of_cgraph_node_set): Remove.
31642         (ipa_write_optimization_summaries): Declare.
31643         (ipa_read_optimization_summaries): Declare.
31644         * ipa-cp.c (pass_ipa_cp): Update.
31645         * ipa-reference.c (pass_ipa_reference): Update.
31646         * ipa-pure-const.c (pass_ipa_pure_const): Update.
31647         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
31648         Update.
31649         * ipa-inline.c (pass_ipa_inline): Update.
31650         * ipa.c (pass_ipa_whole_program): Update.
31651         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
31652         * passes.c (ipa_write_summaries_1): Do not test wpa.
31653         (ipa_write_optimization_summaries_1): New.
31654         (ipa_write_optimization_summaries): New.
31655         (ipa_read_summaries): Do not test ltrans.
31656         (ipa_read_optimization_summaries_1): New.
31657         (ipa_read_optimization_summaries): New.
31658
31659 2010-04-21  Jan Hubicka  <jh@suse.cz>
31660
31661         * lto-cgraph.c (lto_output_node): Do not output comdat groups
31662         for boundary nodes.
31663         (output_cgraph): Do not arrange comdat groups for boundary nodes.
31664
31665 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31666
31667         PR debug/40040
31668         * dwarf2out.c (add_name_and_src_coords_attributes): Add
31669         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
31670
31671 2010-04-21  Jan Hubicka  <jh@suse.cz>
31672
31673         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
31674
31675 2010-04-21  Jan Hubicka  <jh@suse.cz>
31676
31677         * varpool.c (decide_is_variable_needed): Variable is always needed
31678         during ltrans.
31679
31680 2010-04-21  Jan Hubicka  <jh@suse.cz>
31681
31682         * opts.c (decode_options): Enable pure-const pass for whopr.
31683
31684 2010-04-21  Jan Hubicka  <jh@suse.cz>
31685
31686         * cgraph.c (dump_cgraph_node): Dump also assembler name.
31687         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
31688         at WPA dumping.
31689         (cgraph_decide_inlining): Do not expect callee to be removed in all
31690         cases.
31691
31692 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
31693
31694         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
31695
31696 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31697
31698         * config/i386/i386.md (x86_shrd): Add athlon_decode and
31699         amdfam10_decode attributes.
31700
31701 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31702
31703         PR middle-end/43570
31704         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
31705         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
31706         (lower_copyprivate_clauses): Use private var in outer
31707         context instead of original var.  Make sure the types
31708         are correct for VLAs.
31709
31710 2010-04-21  Richard Guenther  <rguenther@suse.de>
31711
31712         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
31713         to non-pointer objects.
31714
31715 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31716
31717         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
31718         last chain entry if it starts with the still current label.
31719         (add_location_or_const_value_attribute): Check that
31720         loc_list->first->next is NULL instead of comparing ->first with ->last.
31721         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
31722         to add_var_loc_to_decl.
31723
31724         * dwarf2out.c (output_call_frame_info): For dw_cie_version
31725         >= 4 add also address size and segment size fields into CIE header.
31726
31727         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
31728         long as address size is the same as sizeof (void *) and
31729         segment size is 0.
31730         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
31731         address size or segment size is unexpected, return DW_EH_PE_omit.
31732         (classify_object_over_fdes): If get_cie_encoding returned
31733         DW_EH_PE_omit, return -1.
31734         (init_object): If classify_object_over_fdes returned -1,
31735         pretend there were no FDEs at all.
31736
31737 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31738
31739         * config/i386/i386.md (bswap<mode>2): Macroize expander from
31740         bswap{si,di}2 using SWI48 mode iterator.
31741         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
31742         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
31743         set modrm attribute of bswap insn to 0 and remove length attribute.
31744         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
31745         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
31746         set mode attribute to <MODE> and remove length attribute.
31747
31748 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
31749
31750         PR rtl-optimization/43520
31751         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
31752         zero available registers.
31753
31754 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31755
31756         * builtins.c (fold_builtin_cproj): Fold more cases.
31757
31758 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31759
31760         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
31761         (fold_builtin_1): Fold builtin cproj.
31762         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
31763         Use ATTR_CONST_NOTHROW_LIST.
31764
31765 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
31766
31767         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
31768         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
31769         ffsi2_no_cmove for !TARGET_CMOVE.
31770         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
31771         (ffssi2): Remove expander.
31772         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
31773         mode iterator.
31774         (ctz<mode>2): Ditto from ctz{si,di}2.
31775         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
31776         mode iterator.
31777         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
31778         mode iterator.
31779
31780 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31781
31782         * dwarf2out.c (AT_linkage_name): Define.
31783         (clone_as_declaration): Handle DW_AT_linkage_name.
31784         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
31785         of DW_AT_MIPS_linkage_name.
31786         (move_linkage_attr): Likewise.
31787         (dwarf2out_finish): Likewise.
31788
31789 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
31790
31791         PR middle-end/41952
31792         * fold-const.c (fold_comparison): New folding rule.
31793
31794 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
31795
31796         * double-int.h (double_int_setbit): Declare.
31797         * double-int.c (double_int_setbit): New function.
31798         * rtl.h (immed_double_int_const): Declare.
31799         * emit-rtl.c (immed_double_int_const): New function.
31800         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
31801         and immed_double_int_const functions.
31802         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
31803         expand_copysign_bit): (Ditto.).
31804         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
31805         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
31806         * dojump.c (prefer_and_bit_test): (Ditto.).
31807         * expr.c (convert_modes, reduce_to_bit_field_precision,
31808         const_vector_from_tree): (Ditto.).
31809         * expmed.c (mask_rtx, lshift_value): (Ditto.).
31810
31811 2010-04-20  Jan Hubicka  <jh@suse.cz>
31812
31813         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
31814         (dump_cgraph_node): Dump new flags.
31815         * cgraph.h (struct cgraph_node): Add flags
31816         reachable_from_other_partition and in_other_partition.
31817         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
31818         other partition can not be removed.
31819         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
31820         the other partition must be output; silence sanity checking on
31821         leaking functions bodies from other paritition.
31822         * lto-cgraph.c (reachable_from_other_partition_p): New function.
31823         (lto_output_node): Output new flags; do not sanity check that inline
31824         clones are output; drop lto_forced_extern_inline_p code; do not mock
31825         visibility flags at partition boundaries.
31826         (add_node_to): New function.
31827         (output_cgraph): Use it to sort functions so masters appear before
31828         clones.
31829         (input_overwrite_node): Input new flags.
31830         * passes.c (ipa_write_summaries): Do not call
31831         lto_new_extern_inline_states.
31832         * lto-section-out.c (forced_extern_inline,
31833         lto_new_extern_inline_states lto_delete_extern_inline_states,
31834         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
31835         * lto-streamer.h (lto_new_extern_inline_states,
31836         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
31837         lto_forced_extern_inline_p): Kill.
31838
31839 2010-04-20  Richard Guenther  <rguenther@suse.de>
31840
31841         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
31842         from vars that can have pointers.
31843         (process_constraint): Dump useless constraints.
31844
31845 2010-04-20  Richard Guenther  <rguenther@suse.de>
31846
31847         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
31848         (dump_sa_points_to_info): Remove asserts.
31849         (init_base_vars): nothing_id isn't an escape point nor does it
31850         have pointers.
31851
31852 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31853
31854         * tree.h (TYPE_REF_IS_RVALUE): Define.
31855         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
31856         should_move_die_to_comdat, prune_unused_types_walk): Handle
31857         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
31858         (modified_type_die, gen_reference_type_die): Emit
31859         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
31860         if TYPE_REF_IS_RVALUE and -gdwarf-4.
31861
31862 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31863
31864         PR target/43635
31865         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
31866         calls for -fpic -m31 if they have been sibcall optimized.
31867
31868 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
31869
31870         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
31871         ar.lc fixed and call-used.
31872
31873         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
31874
31875 2010-04-19  Jan Hubicka  <jh@suse.cz>
31876
31877         * opts.c (decode_options): Disable whpr incompatible passes.
31878         * lto/lto.c (lto_1_to_1_map): Skip clones.
31879         (read_cgraph_and_symbols): Do not mark everything as needed.
31880         (do_whole_program_analysis): Do map only after optimizing;
31881         set proper cgraph_state; use passmanager.
31882
31883 2010-04-19  DJ Delorie  <dj@redhat.com>
31884
31885         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
31886         POINTER_PLUS_EXPR and fix them.
31887
31888 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
31889
31890         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
31891         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
31892         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
31893         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
31894         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
31895         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
31896         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
31897         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
31898         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
31899         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
31900         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
31901
31902 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
31903
31904         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
31905         (check_cond_move_block): Likewise.
31906         (cond_move_process_if_block): Likewise.
31907         (noce_find_if_block): Improve formatting.
31908         (find_if_header): Pass 0 to memset and tweak conditions.
31909         (cond_exec_find_if_block): Fix long lines and tweak conditions.
31910
31911 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31912
31913         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
31914         for -gdwarf-4.
31915
31916         PR middle-end/43337
31917         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
31918         with non-local decl doesn't need chain.
31919
31920 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
31921
31922         * ira-color.c (allocno_reload_assign): Avoid accumulating
31923         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
31924
31925 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31926
31927         * gimple.h (create_tmp_reg): Declare.
31928         * gimplify.c (create_tmp_reg): New function.
31929         (gimplify_return_expr): Use create_tmp_reg.
31930         (gimplify_omp_atomic): Likewise.
31931         (gimple_regimplify_operands): Likewise.
31932         * tree-dfa.c (make_rename_temp): Likewise.
31933         * tree-predcom.c (predcom_tmp_var): Likewise.
31934         (reassociate_to_the_same_stmt): Likewise.
31935         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
31936         (get_replaced_param_substitute): Likewise.
31937         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
31938         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
31939         * tree-ssa-pre.c (get_representative_for): Likewise.
31940         (create_expression_by_pieces): Likewise.
31941         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
31942         (create_tailcall_accumulator): Likewise.
31943
31944 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31945
31946         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
31947         new_stmt.
31948         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
31949
31950 2010-04-19  Richard Guenther  <rguenther@suse.de>
31951
31952         PR tree-optimization/43796
31953         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
31954         from SCEV in the lattice.
31955         (vrp_visit_phi_node): Dump change.
31956
31957 2010-04-19  Richard Guenther  <rguenther@suse.de>
31958
31959         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
31960         * configure: Re-generated.
31961
31962 2010-04-19  Richard Guenther  <rguenther@suse.de>
31963
31964         PR tree-optimization/43783
31965         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
31966         constant ARRAY_REF operands two and three if possible.
31967
31968 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
31969
31970         PR target/43766
31971         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
31972
31973 2010-04-19  Jie Zhang  <jie@codesourcery.com>
31974
31975         PR target/43662
31976         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
31977
31978 2010-04-19  Ira Rosen  <irar@il.ibm.com>
31979
31980         PR tree-optimization/37027
31981         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
31982         and macro to access it.
31983         (vectorizable_reduction): Add argument.
31984         (vect_get_slp_defs): Likewise.
31985         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
31986         statements for possible use in SLP.
31987         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
31988         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
31989         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
31990         add new argument.
31991         (vectorizable_reduction): Likewise.
31992         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
31993         vect_get_slp_defs.
31994         (vectorizable_type_demotion, vectorizable_type_promotion,
31995         vectorizable_store): Likewise.
31996         (vect_analyze_stmt): Update call to vectorizable_reduction.
31997         (vect_transform_stmt): Likewise.
31998         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
31999         (vect_build_slp_tree): Fix indentation. Check that there are no loads
32000         from different interleaving chains in same node.
32001         (vect_slp_rearrange_stmts): New function.
32002         (vect_supported_load_permutation_p): Allow load permutations for
32003         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
32004         inside SLP nodes if necessary.
32005         (vect_analyze_slp_instance): Handle reductions.
32006         (vect_analyze_slp): Try to build SLP instances originating from groups
32007         of reductions.
32008         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
32009         (vect_get_constant_vectors): Create initial vectors for reductions
32010         according to reduction code. Add new argument.
32011         (vect_get_slp_defs): Add new argument, pass it to
32012         vect_get_constant_vectors.
32013         (vect_schedule_slp_instance): Remove SLP tree root statements.
32014
32015 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
32016
32017         * tree.h (ENUM_IS_SCOPED): Define.
32018         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
32019         for ENUM_IS_SCOPED enums.
32020
32021 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
32022
32023         * fold-const.c (fold_comparison): Use ssizetype.
32024         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
32025         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
32026         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
32027         * tree-object-size.c (compute_object_sizes): Use size_type_node.
32028
32029         * tree.h (initialize_sizetypes): Remove parameter.
32030         (build_common_tree_nodes): Remove second parameter.
32031         * stor-layout.c (initialize_sizetypes): Remove parameter.
32032         Always create an unsigned type.
32033         (set_sizetype): Assert that the passed type is unsigned and simplify.
32034         * tree.c (build_common_tree_nodes): Remove second parameter.
32035         Adjust call to initialize_sizetypes.
32036         * c-decl.c (c_init_decl_processing): Remove second argument in call to
32037         build_common_tree_nodes.
32038
32039 2010-04-18  Matthias Klose  <doko@ubuntu.com>
32040
32041         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
32042
32043 2010-04-18  Ira Rosen  <irar@il.ibm.com>
32044
32045         PR tree-optimization/43771
32046         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
32047         load permutation doesn't have gaps.
32048
32049 2010-04-18  Jan Hubicka  <jh@suse.cz>
32050
32051         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
32052         (sse_prologue_save_insn expander): Use new pattern.
32053         (sse_prologue_save_insn1): New pattern and splitter.
32054         (sse_prologue_save_insn): Update to deal also with 64bit aligned
32055         blocks.
32056         * i386.c (setup_incoming_varargs_64): Do not compute jump
32057         destination here.
32058         (ix86_gimplify_va_arg): Update alignment needed.
32059         (ix86_local_alignment): Do not align all local arrays to 128bit.
32060
32061 2010-04-17  Jan Hubicka  <jh@suse.cz>
32062
32063         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
32064
32065 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32066
32067         * arm.md (negdi2): Remove redundant code to force values into a
32068         register.
32069
32070 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32071
32072         * arm/bpabi.S: Add EABI alignment attributes to objects.
32073         * arm/bpabi-v6m.S: Likewise.
32074         * arm/crti.asm: Likewise.
32075         * arm/crtn.asm: Likewise.
32076         * arm/lib1funcs.asm: Likewise.
32077         * arm/libunwind.S: Likewise.
32078
32079 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32080
32081         * arm-protos.h (tune_params): New structure.
32082         * arm.c (current_tune): New variable.
32083         (arm_constant_limit): Delete.
32084         (struct processors): Add pointer to the tune parameters.
32085         (arm_slowmul_tune): New tuning option.
32086         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
32087         (all_cores): Adjust to pick up the tuning model.
32088         (arm_constant_limit): New function.
32089         (arm_override_options): Select the appropriate tuning model.  Delete
32090         initialization of arm_const_limit.
32091         (arm_split_constant): Use the new constant-limit model.
32092         (arm_rtx_costs): Pick up the current tuning model.
32093         * arm.md (is_strongarm, is_xscale): Delete.
32094         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
32095         for Xscale variant architectures.
32096         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
32097
32098 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32099
32100         * config/arm/arm.c (arm_gen_constant): Remove unused variable
32101         can_shift.
32102         (arm_rtx_costs_1): Remove unused variable extra_cost.
32103         (arm_unwind_emit_set): Use variable offset.
32104         (thumb1_output_casesi): Remove unused variable flags.
32105
32106 2010-04-16  Jeff Law  <law@redhat.com>
32107
32108         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
32109         needing assignment rather than doing a two-phase assignment.  Remove
32110         unused variable 'm'.
32111
32112 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32113
32114         PR bootstrap/43767
32115         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
32116
32117 2010-04-16  Doug Kwan  <dougkwan@google.com>
32118
32119         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
32120         (next_operand_entry_id): New static variable.
32121         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
32122         (add_to_ops_vec): Assigned unique ID to operand entry.
32123         (struct oecount_s): New field ID.
32124         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
32125         (undistribute_ops_list): Assign unique IDs to oecounts.
32126         (init_reassoc): reset next_operand_entry_id.
32127
32128 2010-04-16  Doug Kwan  <dougkwan@google.com>
32129
32130         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
32131         missing left parenthesis.
32132
32133 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
32134
32135         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
32136         *btdi_rex64 using SWI48 mode iterator.
32137         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
32138         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
32139         *jcc_btdi_mask_rex64.
32140
32141 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
32142
32143         * double-int.h (tree_to_double_int): Convert to macro.
32144         * double-int.c (tree_to_double_int): Remove.
32145
32146 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32147
32148         PR debug/43762
32149         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
32150         with want_address 2 and in case a single element list might be
32151         possible, call it again with want_address 0.
32152
32153 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32154
32155         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
32156         case 'W' print operands for HI mode.
32157         * config/h8300/h8300.h (Y0, Y2) : New constraints.
32158         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
32159         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
32160         * config/h8300/predicate.md (bit_register_indirect_operand): New.
32161
32162         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
32163
32164         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
32165         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
32166         #xx:3 and #xx:4 mode.
32167
32168         * config/h8300/h8300.md (inverted load with HImode dest): Add
32169         support for H8300SX.
32170
32171         * config/h8300/predicate.md (bit_operand): Allow immediate values that
32172         satisfy 'U' constraint.
32173
32174 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32175
32176         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
32177         * configure: Regenerate.
32178         * config.in: Regenerate.
32179         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
32180         works.
32181
32182 2010-04-16  Richard Guenther  <rguenther@suse.de>
32183
32184         * tree.h (struct tree_decl_minimal): Move pt_uid ...
32185         (struct tree_decl_common): ... here.
32186         (DECL_PT_UID): Adjust.
32187         (SET_DECL_PT_UID): Likewise.
32188         (DECL_PT_UID_SET_P): Likewise.
32189
32190 2010-04-16  Richard Guenther  <rguenther@suse.de>
32191
32192         PR tree-optimization/43572
32193         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
32194         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
32195         * tree-flow.h (is_call_clobbered): Remove.
32196         * tree-flow-inline.h (is_call_clobbered): Likewise.
32197         * tree-dfa.c (dump_variable): Do not dump call clobber state.
32198         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
32199         (execute_return_slot_opt): Adjust.
32200         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
32201         check for call clobbered vars here.
32202         (find_tail_calls): Move tailcall verification to the
32203         proper place.
32204
32205 2010-04-16  Diego Novillo  <dnovillo@google.com>
32206
32207         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
32208
32209 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32210
32211         PR target/40603
32212         * config/arm/arm.md (cbranchqi4): New pattern.
32213         * config/arm/predicates.md (const0_operand,
32214         cbranchqi4_comparison_operator): New predicates.
32215
32216 2010-04-16  Richard Guenther  <rguenther@suse.de>
32217
32218         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
32219         (dump_gimple_stmt): Likewise.
32220
32221 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32222
32223         * recog.h (struct recog_data): New field is_operator.
32224         (struct insn_operand_data): New field is_operator.
32225         * recog.c (extract_insn): Set recog_data.is_operator.
32226         * genoutput.c (output_operand_data): Emit code to set the
32227         is_operator field.
32228         * reload.c (find_reloads): Use it rather than testing for an
32229         empty constraint string.
32230
32231         PR target/41514
32232         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
32233         If the previous insn is a cbranchsi4_insn with the same arguments,
32234         omit the compare instruction.
32235
32236         * config/arm/arm.md (addsi3_cbranch): If destination is a high
32237         register, inputs must be low registers and we need a low register
32238         scratch.  Handle alternative 2 like alternative 3.
32239
32240 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32241
32242         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
32243         don't call get_addr on both.  If one expression is a VALUE and
32244         the other a REG, check VALUE's locs if the REG isn't among them.
32245
32246 2010-04-16  Christian Bruel  <christian.bruel@st.com>
32247
32248         * config/sh/sh.h (sh_frame_pointer_required): New function.
32249         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
32250         (flag_omit_frame_pointer) Set.
32251         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
32252         (rounded_frame_size): Adjust size with outgoing_args_size.
32253         (sh_set_return_address): Must return from stack pointer.
32254         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
32255         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
32256         (ACCUMULATE_OUTGOING_ARGS): Define.
32257         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
32258         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
32259
32260 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32261
32262         PR target/43471
32263         * config/sh/sh.c (sh_legitimize_reload_address): Use
32264         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
32265         Remove a unneeded check for offset_base.
32266
32267 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
32268
32269         * configure: Regenerated.
32270
32271 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32272
32273         * config/s390/s390.c (s390_call_save_register_used): Switch back
32274         to HARD_REGNO_NREGS.
32275
32276 2010-04-15  Richard Guenther  <rguenther@suse.de>
32277
32278         * alias.c (alias_set_subset_of): Handle alias-set zero
32279         child properly.
32280
32281 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
32282             Julian Brown  <julian@codesourcery.com>
32283
32284         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
32285         alternatives according to use of high and low regs.
32286         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
32287         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
32288         optimizing for size on Thumb-2.
32289
32290 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
32291
32292         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
32293
32294 2010-04-15  Richard Guenther  <rguenther@suse.de>
32295
32296         * tree-ssa-structalias.c (struct variable_info): Add
32297         is_fn_info flag.
32298         (new_var_info): Initialize it.
32299         (dump_constraints): Support printing last added constraints.
32300         (debug_constraints): Adjust.
32301         (dump_constraint_graph): Likewise.
32302         (make_heapvar_for): Check for NULL cfun.
32303         (get_function_part_constraint): New function.
32304         (get_fi_for_callee): Likewise.
32305         (find_func_aliases): Properly implement IPA PTA constraints.
32306         (process_ipa_clobber): New function.
32307         (find_func_clobbers): Likewise.
32308         (insert_into_field_list_sorted): Remove.
32309         (create_function_info_for): Properly allocate vars for IPA mode.
32310         Do not use insert_into_field_list_sorted.
32311         (create_variable_info_for): Properly generate constraints for
32312         global vars in IPA mode.
32313         (dump_solution_for_var): Always dump the solution.
32314         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
32315         (find_what_var_points_to): Adjust.
32316         (pt_solution_set): Change.
32317         (pt_solution_ior_into): New function.
32318         (pt_solution_empty_p): Export.
32319         (pt_solution_includes_global): Adjust.
32320         (pt_solution_includes_1): Likewise.
32321         (pt_solutions_intersect_1): Likewise.
32322         (dump_sa_points_to_info): Check some invariants.
32323         (solve_constraints): Move constraint dumping ...
32324         (compute_points_to_sets): ... here.
32325         (ipa_pta_execute): ... and here.
32326         (compute_may_aliases): Do not re-compute points-to info
32327         locally if IPA info is available.
32328         (ipa_escaped_pt): New global var.
32329         (ipa_pta_execute): Properly implement IPA PTA.
32330         * tree-into-ssa.c (dump_decl_set): Support dumping
32331         decls not in referenced-vars.
32332         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
32333         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
32334         (dump_points_to_solution): Likewise.
32335         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
32336         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
32337         (remap_gimple_stmt): Reset call clobber/use information if necessary.
32338         (copy_decl_to_var): Copy DECL_PT_UID.
32339         (copy_result_decl_to_var): Likewise.
32340         * tree.c (make_node_stat): Initialize DECL_PT_UID.
32341         (copy_node_stat): Copy it.
32342         * tree.h (DECL_PT_UID): New macro.
32343         (SET_DECL_PT_UID): Likewise.
32344         (DECL_PT_UID_SET_P): Likewise.
32345         (struct tree_decl_minimal): Add pt_uid member.
32346         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
32347         (pt_solution_empty_p): Declare.
32348         (pt_solution_set): Adjust.
32349         (ipa_escaped_pt): Declare.
32350         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
32351         * gimple-pretty-print.c (pp_points_to_solution): New function.
32352         (dump_gimple_call): Dump call clobber/use information.
32353         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
32354         * tree-pass.h (TDF_ALIAS): New dump option.
32355         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
32356         * doc/invoke.texi (-fipa-pta): Update documentation.
32357
32358 2010-04-15  Richard Guenther  <rguenther@suse.de>
32359
32360         * Makefile.in (OBJS-common): Add gimple-fold.o.
32361         (gimple-fold.o): New rule.
32362         * tree.h (maybe_fold_offset_to_reference,
32363         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
32364         prototypes ...
32365         * gimple.h: ... here.
32366         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
32367         may_propagate_address_into_dereference): Move prototypes ...
32368         * gimple.h: ... here.
32369         * tree-ssa-ccp.c (get_symbol_constant_value,
32370         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
32371         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
32372         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
32373         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
32374         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
32375         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
32376         gimplify_and_update_call_from_tree): Move ...
32377         * gimple-fold.c: ... here.  New file.
32378         (ccp_fold_builtin): Rename to ...
32379         (gimple_fold_builtin): ... this.
32380         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
32381
32382 2010-04-15  Richard Guenther  <rguenther@suse.de>
32383
32384         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
32385         fit_double_type, force_fit_type_double, add_double_with_sign,
32386         neg_double, mul_double_with_sign, lshift_double, rshift_double,
32387         lrotate_double, rrotate_double, div_and_round_double): Move ...
32388         * double-int.c: ... here.
32389         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
32390         add_double, neg_double, mul_double_with_sign, mul_double,
32391         lshift_double, rshift_double, lrotate_double, rrotate_double,
32392         div_and_round_double): Move prototypes ...
32393         * double-int.h: ... here.
32394
32395 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
32396
32397         PR target/43742
32398         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
32399         matching constraints to ensure inputs match the output.
32400
32401 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32402
32403         PR target/43742
32404         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
32405         in an input-only operand.
32406
32407 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
32408
32409         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
32410         (double_int_not, double_int_lshift, double_int_rshift): Declare.
32411         (double_int_negative_p): Convert to static inline function.
32412         * double-int.c (double_int_lshift, double_int_lshift): New functions.
32413         (double_int_negative_p): Remove.
32414         * tree.h (lshift_double, rshift_double):
32415         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
32416         * fold-const.c (fold_convert_const_int_from_real,
32417         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
32418         (lshift_double): Change type of arith argument to bool.
32419         (rshift_double): Change type of arith argument to bool. Correct
32420         comment.
32421         * expmed.c (mask_rtx, lshift_value): (Ditto.).
32422
32423 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
32424
32425         PR target/21803
32426         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
32427         at the start and end of the then/else blocks, and omit them from the
32428         conversion.
32429         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
32430         argument; all callers changed.  Pass zero to old_insns_match_p instead.
32431         (flow_find_head_matching_sequence): New function.
32432         (old_insns_match_p): Check REG_EH_REGION notes for calls.
32433         * basic-block.h (flow_find_cross_jump,
32434         flow_find_head_matching_sequence): Declare functions.
32435
32436 2010-04-14  Jason Merrill  <jason@redhat.com>
32437
32438         PR c++/36625
32439         * c-common.c (attribute_takes_identifier_p): New fn.
32440         * c-common.h: Declare it.
32441
32442 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32443
32444         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
32445         splitter condition.
32446         (*udivmod<mode>4): Ditto.
32447
32448 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32449
32450         * config/i386/i386.md (maxmin_int): Rename code attribute from
32451         maxminiprefix and update all users.
32452         (maxmin_float): Ditto from maxminfprefix.
32453         (logic): Ditto from logicprefix.
32454         (absneg_mnemonic): Ditto from absnegprefix.
32455         * config/i386/mmx.md: Update all users of maxminiprefix,
32456         maxminfprefix and logicprefix for rename.
32457         * config/i386/sse.md: Ditto.
32458         * config/i386/sync.md (sync_<code><mode>): Update for
32459         logicprefix rename.
32460
32461 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32462
32463         PR 42966
32464         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
32465         warnings converted to errors.
32466
32467 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32468
32469         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
32470         used insn_type variable.
32471         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
32472         to avoid set-but-not-used warning.
32473
32474 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32475
32476         * df-core.c (df_ref_debug): Change format string placeholder
32477         from 0x%x to %#x.
32478         * dwarf2asm.c (dw2_asm_output_data_raw,
32479         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
32480         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
32481         * dwarf2out.c (output_cfi, output_cfi_directive,
32482         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
32483         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
32484         Ditto.
32485         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
32486         * print-rtl.c (print_rtx): Ditto.
32487
32488 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
32489
32490         PR middle-end/42694
32491         * builtins.c (expand_builtin_pow_root): New function to expand pow
32492         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
32493         series of sqrt and cbrt calls under -ffast-math.
32494         (expand_builtin_pow): Call it.
32495
32496 2010-04-14  Michael Matz  <matz@suse.de>
32497
32498         PR tree-optimization/42963
32499         * tree-cfg.c (touched_switch_bbs): New static variable.
32500         (group_case_labels_stmt): New function broken out from ...
32501         (group_case_labels): ... here, use the above.
32502         (start_recording_case_labels): Allocate touched_switch_bbs.
32503         (end_recording_case_labels): Deallocate it, call
32504         group_case_labels_stmt.
32505         (gimple_redirect_edge_and_branch): Remember index of affected BB.
32506
32507 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32508
32509         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
32510         from insn template.
32511
32512 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32513
32514         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
32515
32516 2010-04-13  Jan Hubicka  <jh@suse.cz>
32517
32518         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
32519         of optimized out static functions.
32520         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
32521         cost computation.  Also sanity check for overflows.
32522         (update_caller_keys): Update cgraph_edge_badness call; properly
32523         update fibheap and sanity check that it is up to date.
32524         (add_new_edges_to_heap): Update cgraph_edge_badness.
32525         (cgraph_decide_inlining_of_small_function): Likewise;
32526         add sanity checking that badness in heap is up to date;
32527         improve dumping of reason; Update badness of calls to the
32528         offline copy of function currently inlined; dump badness
32529         of functions not inlined because of unit growth limits.
32530
32531 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32532
32533         PR middle-end/32628
32534         * c-common.c (pointer_int_sum): Disregard overflow that occured only
32535         because of sign-extension change when converting to sizetype here...
32536         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
32537
32538         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
32539         the folding to constants.  Remove redundant final conversion.
32540         (fold_binary) <associate>: Do not associate if the re-association of
32541         constants alone overflows.
32542         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
32543         to the end of the list.
32544         (multiple_of_p) <COND_EXPR>: New case.
32545
32546 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32547
32548         * opt-functions.awk (opt_sanitized_name): New.
32549         (opt_enum): New.
32550         * optc-gen.awk: Use it
32551         * opth-gen.awk: Use it.
32552
32553 2010-04-13  Martin Jambor  <mjambor@suse.cz>
32554
32555         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
32556         (sra_modify_assign): Delete stmts loading dead data even if racc has no
32557         children.  Call replace_uses_with_default_def_ssa_name to handle
32558         SSA_NAES on lhs.
32559
32560 2010-04-13  Michael Matz  <matz@suse.de>
32561
32562         PR middle-end/43730
32563         * builtins.c (expand_builtin_interclass_mathfn): Also create
32564         a register if the predicate doesn't match.
32565
32566 2010-04-13  Diego Novillo  <dnovillo@google.com>
32567
32568         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
32569         * c-pch.c: Include timevar.h.
32570         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
32571         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
32572         * ggc-common.c: Include timevar.h.
32573         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
32574         * timevar.def (TV_PCH_SAVE): Define.
32575         (TV_PCH_CPP_SAVE): Define.
32576         (TV_PCH_PTR_REALLOC): Define.
32577         (TV_PCH_PTR_SORT): Define.
32578         (TV_PCH_RESTORE): Define.
32579         (TV_PCH_CPP_RESTORE): Define.
32580
32581 2010-04-13  Michael Matz  <matz@suse.de>
32582
32583         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
32584         into MINUS_EXPRs.
32585         (can_reassociate_p): New function.
32586         (break_up_subtract_bb, reassociate_bb): Use it.
32587
32588 2010-04-13  Richard Guenther  <rguenther@suse.de>
32589
32590         PR bootstrap/43737
32591         * builtins.c (c_readstr): Fix assert.
32592
32593 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
32594
32595         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
32596         when generating cltd insn.
32597
32598         (*ashl<mode>3_1): Remove special handling for register operand 2.
32599         (*ashlsi3_1_zext): Ditto.
32600         (*ashlhi3_1): Ditto.
32601         (*ashlhi3_1_lea): Ditto.
32602         (*ashlqi3_1): Ditto.
32603         (*ashlqi3_1_lea): Ditto.
32604         (*<shiftrt_insn><mode>3_1): Ditto.
32605         (*<shiftrt_insn>si3_1_zext): Ditto.
32606         (*<shiftrt_insn>qi3_1_slp): Ditto.
32607         (*<rotate_insn><mode>3_1): Ditto.
32608         (*<rotate_insn>si3_1_zext): Ditto.
32609         (*<rotate_insn>qi3_1_slp): Ditto.
32610
32611 2010-04-13  Richard Guenther  <rguenther@suse.de>
32612
32613         * tree-ssa-structalias.c (callused_id): Remove.
32614         (call_stmt_vars): New.
32615         (get_call_vi): Likewise.
32616         (lookup_call_use_vi): Likewise.
32617         (lookup_call_clobber_vi): Likewise.
32618         (get_call_use_vi): Likewise.
32619         (get_call_clobber_vi): Likewise.
32620         (make_transitive_closure_constraints): Likewise.
32621         (handle_const_call): Adjust to do per-call call-used handling.
32622         (handle_pure_call): Likewise.
32623         (find_what_var_points_to): Remove general callused handling.
32624         (init_base_vars): Likewise.
32625         (init_alias_vars): Initialize call_stmt_vars.
32626         (compute_points_to_sets): Process call-used and call-clobbered
32627         vars for call statements.
32628         (delete_points_to_sets): Free call_stmt_vars.
32629
32630 2010-04-13  Richard Guenther  <rguenther@suse.de>
32631
32632         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
32633         Only add RW dependence for dependence distance zero.
32634         Adjust maximal vectorization factor according to dependences.
32635         Move alignment handling ...
32636         (vect_find_same_alignment_drs): ... here.  New function.
32637         (vect_analyze_data_ref_dependences): Adjust.
32638         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
32639         (vect_analyze_data_refs): Adjust minimal vectorization factor
32640         according to data references.
32641         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
32642         dependences before determining the vectorization factor.
32643         Analyze alignment after determining the vectorization factor.
32644         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
32645         dependences before alignment.
32646         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
32647         Adjust prototype.
32648         (vect_analyze_data_refs): Likewise.
32649         (MAX_VECTORIZATION_FACTOR): New define.
32650
32651 2010-04-13  Duncan Sands  <baldrick@free.fr>
32652
32653         * except.h (lang_eh_type_covers): Remove.
32654         * except.c (lang_eh_type_covers): Likewise.
32655
32656 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32657             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32658
32659         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
32660         * config/s390/s390.c: Replace UNTIS_PER_WORD with
32661         UNITS_PER_LONG where it is ABI relevant.
32662         (s390_return_addr_rtx): Likewise.
32663         (s390_back_chain_rtx): Likewise.
32664         (s390_frame_area): Likewise.
32665         (s390_frame_info): Likewise.
32666         (s390_initial_elimination_offset): Likewise.
32667         (save_gprs): Likewise.
32668         (s390_emit_prologue): Likewise.
32669         (s390_emit_epilogue): Likewise.
32670         (s390_function_arg_advance): Likewise.
32671         (s390_function_arg): Likewise.
32672         (s390_va_start): Likewise.
32673         (s390_gimplify_va_arg): Likewise.
32674         (s390_function_profiler): Likewise.
32675         (s390_optimize_prologue): Likewise.
32676         (s390_rtx_costs): Likewise.
32677         (s390_secondary_reload): Likewise.
32678         (s390_promote_function_mode): Likewise.
32679         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
32680         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
32681         registers available.
32682         (s390_unwind_word_mode): New function.
32683         (s390_function_value): Split 64 bit values into register pair if
32684         used as return value.
32685         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
32686         function call parameters.  Handle parallels.
32687         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
32688         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
32689         (DWARF_CIE_DATA_ALIGNMENT): New macro.
32690         (s390_expand_setmem): Remove unused variable src_addr.
32691         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
32692         deal with 64 bit registers.
32693         * config/s390/s390.h: Define __zarch__ predefined macro.
32694         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
32695         (UNITS_PER_LONG): New macro.
32696         * libjava/include/s390-signal.h: Define extended ucontext
32697         structure containing the upper halfs of the 64 bit registers.
32698
32699 2010-04-13  Simon Baldwin  <simonb@google.com>
32700
32701         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
32702
32703 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32704
32705         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
32706         rvalue on the RHS if the LHS is of a non-renamable type.
32707         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
32708
32709 2010-04-13  Matthias Klose  <doko@ubuntu.com>
32710
32711         * gcc.c (cc1_options): Handle -iplugindir before processing
32712         the cc1 spec. Only add -iplugindir once.
32713         (cpp_unique_options): Add -iplugindir option if -fplugin* options
32714         found.
32715         * common.opt (iplugindir): Remove `Separate' property, initialize.
32716         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
32717         option.
32718         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
32719         (distclean): Remove plugin dir.
32720         * doc/invoke.texi: Document -iplugindir.
32721
32722 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
32723
32724         * doc/plugins.texi (Loading Plugins): Document short
32725         -fplugin=foo option.
32726         (Plugin API): Mention default_plugin_dir_name function.
32727
32728         * gcc.c (find_file_spec_function): Add new declaration.
32729         (static_spec_func): Use it for "find-file".
32730         (find_file_spec_function): Add new function.
32731         (cc1_options): Add -iplugindir option if -fplugin* options found.
32732
32733         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
32734
32735         * plugin.c (add_new_plugin): Updated comment, and handle short
32736         plugin name.
32737         (default_plugin_dir_name): Added new function.
32738
32739         * common.opt (iplugindir): New option to set the plugin directory.
32740
32741 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
32742
32743         * config/i386/i386.md (any_rotate): New code iterator.
32744         (rotate_insn): New code attribute.
32745         (rotate): Ditto.
32746         (SWIM124): New mode iterator.
32747         (<rotate_insn>ti3): New expander.
32748         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
32749         any_rotate code iterator.
32750         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
32751         using any_rotate code iterator and SWIM124 mode iterator.
32752         (ix86_rotlti3): New insn_and_split pattern.
32753         (ix86_rotrti3): Ditto.
32754         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
32755         ix86_rotl{di,ti}3 patterns.
32756         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
32757         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
32758         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
32759         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
32760         code iterator and SWI mode iterator.
32761         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
32762         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
32763         code iterator.
32764         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
32765         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
32766         (bswap rotatert splitter): Add splitter.
32767         (bswap splitter): Macroize splitter using any_rotate code iterator.
32768         Add insn predicate to split only for TARGET_USE_XCHGB or when
32769         optimizing function for size.
32770
32771 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32772
32773         * config/pa/pa.c (emit_move_sequence): Remove use of
32774         deleted variable flag_argument_noalias.
32775
32776 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32777
32778         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
32779         configurations.
32780         Add to unsupported targets list.
32781         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
32782         sparc*-sun-solaris2.[567]* from target lists.
32783         * configure: Regenerate.
32784         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
32785         removal.
32786         Remove Solaris 7 patch references.
32787         (Specific, sparc-sun-solaris2.7): Removed.
32788         (sparc-sun-solaris2*): Update Solaris 7 example.
32789         (sparc64-*-solaris2*): Likewise.
32790
32791 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32792
32793         * config.build (alpha*-dec-osf4*): Remove.
32794         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
32795         of obsolete configurations.
32796         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
32797         support.
32798         * config/alpha/t-osf4: Renamed to ...
32799         * config/alpha/t-osf5: ... this.
32800         * config/alpha/osf.h: Renamed to ...
32801         * config/alpha/osf5.h: ... this.
32802         Merged old osf5.h contents.
32803         Update comments.
32804         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
32805         (EXTRA_SPECS): Removed.
32806         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
32807         reflect removal of Tru64 UNIX V4.0/V5.0 support.
32808         Document that.
32809
32810 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32811
32812         * doc/contrib.texi (Contributors, Rainer Orth): Update.
32813
32814 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
32815
32816         PR/43702
32817         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
32818         __thiscall convention.
32819
32820 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32821
32822         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
32823         orig_base.
32824         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
32825
32826 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32827
32828         * function.c (assign_parms_initialize_all): Add unused attribute
32829         to fntype.
32830
32831 2010-04-12  Richard Guenther  <rguenther@suse.de>
32832
32833         * gsstruct.def (GSS_CALL): New.
32834         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
32835         * gimple.h: Include tree-ssa-alias.h.
32836         (struct gimple_statement_call): New.
32837         (union gimple_statement_struct_d): Add gimple_call member.
32838         (gimple_call_reset_alias_info): Declare.
32839         (gimple_call_use_set): New function.
32840         (gimple_call_clobber_set): Likewise.
32841         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
32842         * gimple.c (gimple_call_reset_alias_info): New function.
32843         (gimple_build_call_1): Call it.
32844         * lto-streamer-in.c (input_gimple_stmt): Likewise.
32845         * tree-inline.c (remap_gimple_stmt): Likewise.
32846         (expand_call_inline): Remove callused handling.
32847         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
32848         * tree-dfa.c (dump_variable): Likewise.
32849         * tree-parloops.c (parallelize_loops): Likewise.
32850         * tree-ssa.c (init_tree_ssa): Likewise.
32851         (delete_tree_ssa): Likewise.
32852         * tree-flow-inline.h (is_call_used): Remove.
32853         * tree-flow.h (struct gimple_df): Remove callused member.
32854         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
32855         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
32856         (ref_maybe_used_by_call_p_1): Simplify.
32857         (call_may_clobber_ref_p_1): Likewise.
32858         * tree-ssa-structalias.c (compute_points_to_sets): Set
32859         the call stmt used and clobbered sets.
32860         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
32861         (find_tail_calls): Verify the tail call.
32862
32863 2010-04-12  Richard Guenther  <rguenther@suse.de>
32864
32865         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
32866         single-iteration always-inline inlining.
32867         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
32868         (cgraph_decide_inlining): Do not handle always-inline specially.
32869         (try_inline): Remove always-inline cycle detection special case.
32870         Do not recurse on always-inlines.
32871         (cgraph_early_inlining): Do not iterate if not optimizing.
32872         (cgraph_gate_early_inlining): remove.
32873         (pass_early_inline): Run unconditionally.
32874         (gate_cgraph_decide_inlining): New function.
32875         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
32876         not inlining or optimizing.
32877         (cgraph_decide_inlining_of_small_functions): Also consider
32878         always-inline functions.
32879         (cgraph_default_inline_p): Return true for nodes which should
32880         disregard inline limits.
32881         (estimate_function_body_sizes): Assume zero size and time for
32882         nodes which are marked as disregarding inline limits.
32883         (cgraph_decide_recursive_inlining): Do not perform recursive
32884         inlining on always-inline nodes.
32885
32886 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
32887
32888         PR bootstrap/43699
32889         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
32890         for exprs satisfying handled_component_p.
32891
32892 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
32893
32894         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
32895         non-constant aggregate elements.
32896
32897         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
32898         is a real initialization.
32899
32900 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
32901
32902         PR c/36774
32903         * c-decl.c (start_function): Move forward check for nested function.
32904
32905 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
32906
32907         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
32908         * config/sh/sh.c: Include reload.h.
32909         (sh_legitimize_reload_address): New.
32910         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
32911         sh_legitimize_reload_address.
32912
32913 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32914
32915         * config/sh/sh.md (*movqi_pop): New insn pattern.
32916         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
32917
32918 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32919
32920         * config/i386/i386.md (any_shiftrt): New code iterator.
32921         (shiftrt_insn): New code attribute.
32922         (shiftrt): Ditto.
32923         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
32924         using any_shiftrt code iterator.
32925         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
32926         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
32927         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
32928         pattern from corresponding peephole2 patterns.
32929         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
32930         using any_shiftrt code iterator.
32931         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
32932         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
32933         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
32934         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
32935         *{ashr,lshr}<mode>3_cmp_zext.
32936         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
32937
32938 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32939
32940         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
32941         scratch register.
32942         (*lshr<mode>3_cconly): Ditto.
32943
32944 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32945
32946         * config/i386/i386.md (lshr<mode>3): Macroize expander from
32947         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32948         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32949         pattern from *lshr{di,ti}3_1 and corresponding splitters using
32950         DWI mode iterator.
32951         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32952         from corresponding peephole2 patterns.
32953         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
32954         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
32955         and *lshrdi3_1_rex64 using SWI mode iterator.
32956         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
32957         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
32958         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
32959         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
32960         and *lshrdi3_cmp_rex64 using SWI mode iterator.
32961         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
32962         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
32963         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
32964         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
32965         SWI mode iterator.
32966
32967 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
32968
32969         * config/i386/i386.md (ashr<mode>3): Macroize expander from
32970         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32971         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32972         pattern from *ashr{di,ti}3_1 and corresponding splitters using
32973         DWI mode iterator.
32974         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32975         from corresponding peephole2 patterns.
32976         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
32977         (ashrsi3_cvt): Rename from ashrsi3_31.
32978         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
32979         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
32980         and x86_64_shift_adj_3 using SWI48 mode iterator.
32981         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
32982         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
32983         and *ashrdi3_1_rex64 using SWI mode iterator.
32984         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
32985         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
32986         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
32987         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
32988         and *ashrdi3_cmp_rex64 using SWI mode iterator.
32989         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
32990         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
32991         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
32992         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
32993         SWI mode iterator.
32994         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
32995         * config/i386/i386.c (ix86_split_ashr): Update for renamed
32996         x86_shift<mode>_adj_3 expanders.
32997
32998 2010-04-10  Wei Guozhi  <carrot@google.com>
32999
33000         PR target/42601
33001         * config/arm/arm.c (arm_pic_static_addr): New function.
33002         (legitimize_pic_address): Call arm_pic_static_addr when it detects
33003         a static symbol.
33004         (arm_output_addr_const_extra): Output expression for new pattern.
33005         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
33006
33007 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
33008
33009         * ira-costs.c (record_reg_classes): Ignore alternatives that are
33010         not enabled.
33011
33012         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
33013         * web.c: Include "insn-config.h" and "recog.h".
33014         (union_match_dups): New function.
33015         (web_main): Call it.
33016         (union_defs): Don't try to recognize match_dups.
33017
33018         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
33019         if doing so would replace the entire pattern.
33020
33021 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33022
33023         PR target/43707
33024         PR target/43709
33025         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
33026         and splitter pattern.  Change splitter operand 1 predicate to
33027         nonmemory_operand.
33028
33029 2010-04-09  Martin Jambor  <mjambor@suse.cz>
33030
33031         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
33032         lattices are addresses of CONST_DECLs with the same initial value.
33033         (ipcp_print_all_lattices): Print values of CONST_DECLs.
33034         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
33035
33036 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
33037             Bernd Schmidt  <bernds@codesourcery.com>
33038
33039         * loop-invariant.c (replace_uses): New static function.
33040         (move_invariant_reg): Use it to ensure we can replace the uses.
33041
33042 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
33043
33044         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
33045         function template.
33046         (picochip_override_options): Enable section anchors only above -O1.
33047         (picochip_reorg): Fixed a couple of build warnings.
33048
33049 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33050
33051         * configure.ac (plugin -rdynamic test): Log result.
33052         * configure: Regenerate.
33053         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
33054         (RDYNAMIC_SPEC): Define.
33055         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
33056
33057 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33058
33059         * configure.ac: Determine Sun ld version numbers.
33060         (comdat_group): Restrict GNU ld version checks to gld.
33061         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
33062         (enable_comdat): Support --enable-comdat.
33063         * configure: Regenerate.
33064         * doc/install.texi (Configuration): Document --enable-comdat.
33065
33066 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33067
33068         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
33069         * config/sol2-gld.h: ... here.
33070         * config.gcc (sparc*-*-solaris2*): Reflect this.
33071         (i[34567]86-*-solaris2*): Use it.
33072
33073 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
33074
33075         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
33076         setup_clocks_p.
33077         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
33078
33079 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33080
33081         PR 42965
33082         * diagnostic.c (diagnostic_initialize): Initialize
33083         some_warnings_are_errors.
33084         (diagnostic_finish): New.
33085         (diagnostic_action_after_output): Call it before exiting.
33086         (diagnostic_report_diagnostic): Do not print message here. Set
33087         some_warnings_are_errors.
33088         * diagnostic.h (diagnostic_context): Delete
33089         issue_warnings_are_errors_message. Add some_warnings_are_errors.
33090         (diagnostic_finish): Declare.
33091         * toplev.c (toplev_main): Call it before exit.
33092
33093 2010-04-09  Jason Merrill  <jason@redhat.com>
33094
33095         PR c++/42623
33096         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
33097         for incomplete type.
33098
33099         PR c++/41788
33100         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
33101         based on a warning flag.
33102
33103 2010-04-09  Richard Guenther  <rguenther@suse.de>
33104
33105         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
33106
33107 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
33108
33109         PR bootstrap/43684
33110         * varasm.c (default_assemble_visibility): Wrap vars that are
33111         set, but unused, by targets without GAS.
33112         * config/rs6000/rs6000.c (paired_emit_vector_compare):
33113         Remove set, but unused, vars.
33114         (rs6000_legitimize_tls_address): Likewise.
33115         (altivec_expand_dst_builtin): Likewise.
33116         * config/darwin.c (machopic_classify_symbol): Likewise.
33117         (machopic_indirection_name): Likewise.
33118
33119 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33120
33121         * config/i386/i386.md (DWI): New mode iterator.
33122         (S): New mode attribute.
33123         (shift_operand): Ditto.
33124         (shift_immediate_operand): Ditto.
33125         (ashl_input_operand): Ditto.
33126         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
33127         using SDWIM mode iterator.
33128         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33129         pattern from *ashl{di,ti}3_1 and corresponding splitters using
33130         DWI mode iterator.
33131         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
33132         from corresponding peephole2 patterns.
33133         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
33134         and x86_64_shift_adj_1 using SWI48 mode iterator.
33135         (x86_shift<mode>_adj_2): Ditto.
33136         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
33137         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
33138         using SWI48 mode iterator.
33139         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
33140         *ashldi3_cmp_rex64 using SWI mode iterator.
33141         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
33142         *ashldi3_cconly_rex64 using SWI mode iterator.
33143         * config/i386/i386.c (ix86_split_ashl): Update for renamed
33144         x86_shift<mode>_adj_{1,2}.
33145         (ix86_split_ashr): Ditto.
33146         (ix86_split_lshr): Ditto.
33147
33148 2010-04-09  Richard Guenther  <rguenther@suse.de>
33149
33150         * target.h (builtin_conversion): Pass in input and output types.
33151         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
33152         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
33153         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
33154         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
33155
33156         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
33157         Handle AVX modes.
33158         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
33159
33160 2010-04-09  Richard Guenther  <rguenther@suse.de>
33161
33162         PR target/43152
33163         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
33164
33165 2010-04-09  Richard Guenther  <rguenther@suse.de>
33166
33167         * tree-vectorizer.h (struct _stmt_vec_info): Document
33168         that vectype is the type of the LHS.
33169         (supportable_widening_operation, supportable_narrowing_operation):
33170         Get both input and output vector types as arguments.
33171         (vect_is_simple_use_1): Declare.
33172         (get_same_sized_vectype): Likewise.
33173         * tree-vect-loop.c (vect_determine_vectorization_factor):
33174         Set STMT_VINFO_VECTYPE to the vector type of the def.
33175         (vectorizable_reduction): Adjust.
33176         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
33177         Adjust.  Specify the output vector type.
33178         (vect_pattern_recog_1): Adjust.
33179         * tree-vect-stmts.c (get_same_sized_vectype): New function.
33180         (vectorizable_call): Adjust.
33181         (vectorizable_conversion): Likewise.
33182         (vectorizable_operation): Likewise.
33183         (vectorizable_type_demotion): Likewise.
33184         (vectorizable_type_promotion): Likewise.
33185         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
33186         the def.
33187         (vect_is_simple_use_1): New function.
33188         (supportable_widening_operation): Get both input and output
33189         vector types.
33190         (supportable_narrowing_operation): Likewise.
33191         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
33192
33193 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
33194
33195         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
33196         __thiscall and _thiscall as predefined macros.
33197         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
33198         thiscall attribute handling.
33199         (ix86_comp_type_attributes): Likewise.
33200         (ix86_function_regparm): Likewise.
33201         (ix86_return_pops_args): Likewise.
33202         (init_cumulative_args): Likewise.
33203         (find_drap_reg): Likewise.
33204         (ix86_static_chain): Likewise.
33205         (x86_this_parameter): Likewise.
33206         (x86_output_mi_thunk): Likewise.
33207         (ix86_attribute_table): Add description for thiscall attribute.
33208         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
33209         * doc/extend.texi: Add documentation for thiscall.
33210
33211 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33212
33213         PR c++/28584
33214         * c.opt (Wint-to-pointer-cast): Available in C++.
33215         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
33216
33217 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
33218
33219         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
33220         * calls.c (expand_call): Pass the function type to aggregate_value_p.
33221         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
33222         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
33223         function type instead.  Reorder and simplify checks.
33224
33225         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
33226
33227 2010-04-08  Jing Yu  <jingyu@google.com>
33228             Zdenek Dvorak  <ook@ucw.cz>
33229
33230         PR tree-optimization/42720
33231         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
33232         loop unswitch conditions here from ...
33233         (tree_unswitch_single_loop): ... here.
33234
33235 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33236
33237         * tree-if-conv.c: Fix comments and simplify logic.
33238
33239 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33240
33241         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
33242         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
33243         (main_tree_if_conversion): Update call to tree_if_conversion.
33244
33245 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33246
33247         PR 42485
33248         * doc/invoke.texi (-b,-V): Delete.
33249         * doc/tm.texi: Do not mention -b.
33250         * gcc.c (display_help): Delete -b and -V.
33251         (process_command): Delete -b and -V.
33252         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
33253
33254 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
33255             Wolfgang Gellerich  <gellerich@de.ibm.com>
33256
33257         Implement target hook for loop unrolling
33258         * target.h (loop_unroll_adjust): Add a new target hook function.
33259         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
33260         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
33261         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
33262         (s390_loop_unroll_adjust): Implement the new target hook for s390.
33263         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
33264         target hook.
33265         (decide_unroll_stupid): Likewise.
33266
33267 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33268
33269         PR target/43643
33270         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
33271
33272 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33273
33274         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
33275         (Specific, *-*-solaris2*): Likewise.
33276         Don't prefer Sun as over GNU as.
33277
33278 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
33279
33280         * config/s390/s390.c (override_options): Adjust the z10 defaults
33281         for max-unroll-times, max-completely-peeled-insns
33282         and max-completely-peel-times.
33283
33284 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33285
33286         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
33287         instructions for z10.
33288         (s390_expand_setmem): Likewise.
33289         (s390_expand_cmpmem): Likewise.
33290
33291 2010-04-08  Richard Guenther  <rguenther@suse.de>
33292
33293         PR tree-optimization/43679
33294         * tree-ssa-pre.c (eliminate): Only propagate copies.
33295
33296 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33297
33298         PR bootstrap/43681
33299         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
33300         set but not used variable warning.
33301
33302 2010-04-08  Wei Guozhi  <carrot@google.com>
33303
33304         PR target/41653
33305         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
33306         (arm_size_rtx_costs): Call the new function when optimized for size.
33307
33308 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33309
33310         PR debug/43670
33311         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
33312         op0 is not a MEM, just return NULL instead of assertion
33313         failure.
33314         (discover_nonconstant_array_refs): Don't walk debug stmts.
33315
33316 2010-04-08  Doug Kwan  <dougkwan@google.com>
33317
33318         * configure.ac: Recognize gold and do not use its version number
33319         to test ld features.
33320         * configure: Regenerate.
33321
33322 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
33323
33324         PR middle-end/40815
33325         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
33326         (negate_value): Move code to push elements to broken_up_substracts ...
33327         (eliminate_plus_minus_pair): ... here.  Push operands that have no
33328         negative pair to plus_negates.
33329         (repropagate_negates, init_reassoc, fini_reassoc): Update.
33330
33331 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33332
33333         * doc/install.texi (Configuration): Move description of
33334         --enable-lto, --with-libelf*, --enable-gold from Java section to
33335         general section.
33336
33337         * doc/generic.texi (Working with declarations)
33338         (Function Properties, C and C++ Trees): Fix typos.
33339         * doc/sourcebuild.texi (Top Level): Likewise.
33340
33341 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33342
33343         PR c/18624
33344         * tree.h (DECL_READ_P): Define.
33345         (struct tree_decl_common): Add decl_read_flag.
33346         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
33347         a set but not used warning.
33348         (merge_decls): Merge DECL_READ_P flag.
33349         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
33350         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
33351         * c-common.c (handle_used_attribute, handle_unused_attribute):
33352         Likewise.
33353         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
33354         New prototypes.
33355         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
33356         New functions.
33357         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
33358         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
33359         c_parser_binary_expression, c_parser_cast_expression,
33360         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
33361         Call default_function_array_read_conversion instead of
33362         default_function_array_conversion where needed.
33363         (c_parser_unary_expression, c_parser_conditional_expression,
33364         c_parser_postfix_expression_after_primary, c_parser_initelt):
33365         Likewise.  Call mark_exp_read where needed.
33366         (c_parser_statement_after_labels, c_parser_asm_operands,
33367         c_parser_typeof_specifier, c_parser_sizeof_expression,
33368         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
33369         where needed.
33370         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
33371         New.
33372         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
33373         (warn_unused_but_set_parameter): Default to warn_unused
33374         && extra_warnings.
33375         * doc/invoke.texi: Document -Wunused-but-set-variable and
33376         -Wunused-but-set-parameter.
33377
33378         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
33379         used count variable.
33380         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
33381         when operandN variables aren't used in the body of the expander
33382         or splitter.
33383         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
33384         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
33385         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
33386         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
33387         FOR_EACH_IMM_USE_ON_STMT): Likewise.
33388         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
33389         * tree.c (PROCESS_ARG): Likewise.
33390
33391 2010-04-07  Simon Baldwin  <simonb@google.com>
33392
33393         * diagnostic.h (diagnostic_override_option_index): New macro to
33394         set a diagnostic's option_index.
33395         * c-tree.h (c_cpp_error): Add warning reason argument.
33396         * opts.c (_warning_as_error_callback): New.
33397         (register_warning_as_error_callback): Store callback for
33398         warnings enabled via enable_warning_as_error.
33399         (enable_warning_as_error): Call callback, minor code tidy.
33400         * opts.h (register_warning_as_error_callback): Declare.
33401         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
33402         response to -Werror=.
33403         (c_common_init_options): Register warning_as_error_callback in opts.c.
33404         * common.opt: Add -Wno-cpp option.
33405         * c-common.c (struct reason_option_codes_t): Map cpp warning
33406         reason codes to gcc option indexes.
33407         * (c_option_controlling_cpp_error): New function, lookup the gcc
33408         option index for a cpp warning reason code.
33409         * (c_cpp_error): Add warning reason argument, call
33410         c_option_controlling_cpp_error for diagnostic_override_option_index.
33411         * doc/invoke.texi: Document -Wno-cpp.
33412
33413 2010-04-07  Richard Guenther  <rguenther@suse.de>
33414
33415         * ipa-reference.c (mark_load): Use get_base_address.
33416         (mark_store): Likewise.
33417
33418         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
33419         inserting GIMPLE_NOPs into the IL.
33420         * tree-ssa-structalias.c (get_constraint_for_component_ref):
33421         Explicitly strip handled components and indirect references.
33422
33423         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
33424         folding address expressions.
33425         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
33426         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
33427         operand_equal_p to compare decls.
33428         (ptr_deref_may_alias_decl_p): Likewise.
33429         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
33430         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
33431         Handle reversed comparison ops.
33432         * tree-sra.c (asm_visit_addr): Use get_base_address.
33433         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
33434         * ipa-reference.c (mark_address): Use get_base_address.
33435
33436 2010-04-07  Richard Guenther  <rguenther@suse.de>
33437
33438         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
33439         Propagate constants everywhere.
33440
33441 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33442
33443         PR debug/43516
33444         * tree.c (MAX_INT_CACHED_PREC): Define.
33445         (nonstandard_integer_type_cache): New array.
33446         (build_nonstandard_integer_type): Cache results for precision
33447         <= MAX_INT_CACHED_PREC.
33448
33449 2010-04-07  Richard Guenther  <rguenther@suse.de>
33450
33451         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
33452         -fargument-noalias-global, -fargument-noalias-anything): Remove.
33453         * common.opt: Likewise.
33454         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
33455         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
33456         (nonoverlapping_memrefs_p): Likewise.
33457         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
33458         * opts.c (common_handle_option): Handle OPT_fargument_alias,
33459         OPT_fargument_noalias, OPT_fargument_noalias_anything and
33460         OPT_fargument_noalias_global for backward compatibility.
33461
33462 2010-04-07  Richard Guenther  <rguenther@suse.de>
33463
33464         PR tree-optimization/43270
33465         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
33466         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
33467         * tree-ssa-pre.c (phi_translate_1): Adjust.
33468         (fully_constant_expression): Split out vn_reference handling to ...
33469         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
33470         Fold reads from constant strings.
33471         (vn_reference_lookup): Handle fully constant references.
33472         (vn_reference_lookup_pieces): Likewise.
33473         * Makefile.in (expmed.o-warn): Add -Wno-error.
33474
33475 2010-04-07  Martin Jambor  <mjambor@suse.cz>
33476
33477         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
33478
33479 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
33480
33481         PR driver/41594
33482         * gcc.c: Add -static-libstdc++ to list of recognized options.
33483
33484 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33485
33486         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
33487
33488 2010-04-07  Richard Guenther  <rguenther@suse.de>
33489
33490         PR middle-end/42617
33491         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
33492         bases build simple mem attributes to retain points-to information.
33493
33494 2010-04-07  Richard Guenther  <rguenther@suse.de>
33495
33496         PR middle-end/42617
33497         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
33498         preserve points-to related information.
33499
33500 2010-04-07  Richard Guenther  <rguenther@suse.de>
33501
33502         PR middle-end/42617
33503         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
33504         discard plain indirect references.
33505         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
33506         * tree.c (tree_nop_conversion): Likewise.
33507
33508 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
33509
33510         PR debug/43628
33511         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
33512
33513 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
33514
33515         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
33516         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
33517
33518 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33519
33520         * tree-if-conv.c: Fix indentation and comments.
33521
33522 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33523
33524         * tree-if-conv.c: Sort static functions in topological order.
33525
33526 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33527
33528         * tree-if-conv.c: Fix indentation and comments.
33529
33530 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33531
33532         PR middle-end/43519
33533         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
33534         lang_hooks.types.type_for_size instead of
33535         build_nonstandard_integer_type.
33536         When converting an unsigned type to signed, double its precision.
33537         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
33538         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
33539         (graphite_create_new_loop_guard): When ub + 1 wraps around,
33540         use lb <= ub.
33541
33542 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33543
33544         PR middle-end/43519
33545         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
33546         POINTER_PLUS_EXPR for pointer types.
33547
33548 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33549
33550         PR middle-end/43519
33551         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
33552         * graphite-clast-to-gimple.c: Include langhooks.h.
33553         (max_signed_precision_type): New.
33554         (max_precision_type): Takes two types as arguments.
33555         (precision_for_value): New.
33556         (precision_for_interval): New.
33557         (gcc_type_for_interval): New.
33558         (gcc_type_for_value): New.
33559         (gcc_type_for_clast_term): New.
33560         (gcc_type_for_clast_red): New.
33561         (gcc_type_for_clast_bin): New.
33562         (gcc_type_for_clast_expr): Split up into several functions.
33563         (gcc_type_for_clast_eq): Rewritten.
33564         (compute_bounds_for_level): New.
33565         (compute_type_for_level_1): New.
33566         (compute_type_for_level): New.
33567         (gcc_type_for_cloog_iv): Removed.
33568         (gcc_type_for_iv_of_clast_loop): Rewritten.
33569         (graphite_create_new_loop): Compute the lower and upper bound types
33570         with gcc_type_for_clast_expr.
33571         (graphite_create_new_loop_guard): Same.
33572         (find_cloog_iv_in_expr): Removed.
33573         (compute_cloog_iv_types_1): Removed.
33574         (compute_cloog_iv_types): Removed.
33575         (gloog): Do not call compute_cloog_iv_types.
33576         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
33577         GBB_CLOOG_IV_TYPES.
33578         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
33579         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
33580         (GBB_CLOOG_IV_TYPES): Removed.
33581
33582 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33583
33584         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
33585         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
33586         (detect_commutative_reduction): Same.
33587
33588 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33589
33590         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
33591         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
33592         argument.
33593         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
33594         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
33595         (rewrite_commutative_reductions_out_of_ssa): Same.
33596         * passes.c (execute_function_todo): Call verify_ssa for every pass
33597         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
33598         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
33599         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
33600         with an extra argument.
33601         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
33602         verify_ssa only when the extra argument is true.
33603         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
33604         with an extra argument.
33605         (tree_transform_and_unroll_loop): Same.
33606
33607 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33608
33609         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
33610         for all the passes of the LNO having LOOP_CLOSED_SSA.
33611         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
33612         * tree-loop-distribution.c (pass_loop_distribution): Same.
33613         * tree-pass.h (TODO_verify_loops): Removed.
33614         * tree-ssa-loop.c (pass_tree_loop_init): Same.
33615         (pass_lim): Same.
33616         (pass_tree_unswitch): Same.
33617         (pass_predcom): Same.
33618         (pass_vectorize): Same.
33619         (pass_linear_transform): Same.
33620         (pass_graphite_transforms): Same.
33621         (pass_iv_canon): Same.
33622         (pass_complete_unroll): Same.
33623         (pass_complete_unrolli): Same.
33624         (pass_parallelize_loops): Same.
33625         (pass_loop_prefetch): Same.
33626         (pass_iv_optimize): Same.
33627
33628 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
33629
33630         PR middle-end/32824
33631         * passes.c (init_optimization_passes): Move pass_lim before
33632         pass_copy_prop and pass_dce_loop.
33633
33634 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33635
33636         PR target/43667
33637         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
33638         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
33639         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
33640         MULTI_* defines for 4 argument vpermil2p* builtins.
33641
33642 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33643
33644         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
33645         * config/i386/i386.c (x86_maybe_negate_const_int): New.
33646         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
33647         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
33648         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
33649         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
33650         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
33651         Use x86_maybe_negate_const_int to output insn mnemonic.
33652         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
33653         check from instruction predicate.  Update comments.
33654         * config/i386/sync.md (sync_add<mode>): Use
33655         x86_maybe_negate_const_int to output insn mnemonic.
33656
33657 2010-04-06  Jan Hubicka  <jh@suse.cz>
33658
33659         PR tree-optimization/42906
33660         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
33661         IGNORE_SELF argument.  Set visited_control_parents for fully
33662         processed BBs.
33663         (find_obviously_necessary_stmts): Update call of
33664         mark_control_dependent_edges_necessary.
33665         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
33666
33667 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33668
33669         * config/i386/i386.md: Remove comment about 'e' and 'E'
33670         operand modifier.
33671
33672 2010-04-06  Richard Guenther  <rguenther@suse.de>
33673
33674         PR tree-optimization/43627
33675         * tree-vrp.c (extract_range_from_unary_expr): Widenings
33676         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
33677         not varying.
33678
33679 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33680
33681         * BASE-VER: Change to 4.6.0.
33682
33683         PR target/43638
33684         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
33685         handling.
33686
33687 2010-04-06  Richard Guenther  <rguenther@suse.de>
33688
33689         PR middle-end/43661
33690         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
33691
33692 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33693
33694         * doc/invoke.texi (Optimize Options): Document that LTO
33695         won't remove object access purely due to incompatible
33696         declarations.
33697
33698 2010-04-04  Matthias Klose  <doko@ubuntu.com>
33699
33700         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
33701         Initialize variable.
33702
33703 2010-04-03  Richard Guenther  <rguenther@suse.de>
33704
33705         PR middle-end/42509
33706         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
33707         require a non-NULL MEM_OFFSET.
33708
33709 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
33710
33711         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
33712         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
33713         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
33714         config/alpha/predicates.md, config/arm/arm.md,
33715         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
33716         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
33717         config/darwin9.h, config/darwin.c, config/darwin.h,
33718         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
33719         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
33720         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
33721         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
33722         config/mips/mips.md, config/mn10300/mn10300.c,
33723         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
33724         config/rs6000/aix.h, config/rs6000/dfp.md,
33725         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
33726         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
33727         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
33728         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
33729         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
33730         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
33731         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
33732         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
33733         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
33734         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
33735         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
33736         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
33737         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
33738         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
33739         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
33740         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
33741         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
33742         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
33743         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
33744         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
33745         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
33746         opt-functions.awk, opth-gen.awk, params.def, passes.c,
33747         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
33748         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
33749         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
33750         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
33751         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
33752         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
33753         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
33754         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
33755         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
33756         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
33757         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
33758         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
33759         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
33760         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
33761
33762 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33763
33764         PR other/43620
33765         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
33766         * aclocal.m4: Regenerate.
33767
33768 2010-04-02  Richard Guenther  <rguenther@suse.de>
33769
33770         PR tree-optimization/43629
33771         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
33772         if we have seen a constant value.
33773
33774 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
33775
33776         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
33777
33778 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
33779
33780         PR target/43469
33781         * arm.c (legitimize_tls_address): Adjust call to
33782         gen_tls_load_dot_plus_four.
33783         (arm_note_pic_base): New function.
33784         (arm_cannot_copy_insn_p): Use it.
33785         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
33786         constraint.
33787
33788 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33789
33790         PR bootstrap/43531
33791
33792         Revert:
33793         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33794
33795         * Makefile.in ($(out_object_file)): Depend on
33796         gt-$(basename $(notdir $(out_file))).h.
33797
33798 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
33799
33800         * config.gcc (lm32-*-rtems*): Add t-lm32.
33801
33802 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
33803
33804         * config.gcc: Add lm32-*-rtems*.
33805         * config/lm32/rtems.h: New file.
33806
33807 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
33808
33809         PR target/42609
33810         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
33811
33812 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
33813
33814         * dwarf2out.c (output_compilation_unit_header): For
33815         -gdwarf-4 use version 4 instead of version 3.
33816         (output_line_info): For version 4 and above emit additional
33817         maximum ops per insn header field.
33818         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
33819
33820         * dwarf2out.c (is_c_family, is_java): Remove.
33821         (lower_bound_default): New function.
33822         (add_bound_info, gen_descr_array_type_die): Use it.
33823
33824 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
33825
33826         PR debug/43325
33827         * dwarf2out.c (gen_variable_die): Allow debug info for variable
33828         re-declaration when it happens in a function.
33829
33830 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
33831
33832         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
33833         (cgraph_remove_function_insertion_hook): Same.
33834         (cgraph_call_function_insertion_hooks): Same.
33835
33836 2010-04-01  Richard Guenther  <rguenther@suse.de>
33837
33838         PR middle-end/43614
33839         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
33840         and TREE_THIS_VOLATILE.
33841         (copy_ref_info): Likewise.
33842         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
33843         * tree.c (build6_stat): Ignore side-effects of all but arg5
33844         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
33845         TARGET_MEM_REF.
33846
33847 2010-04-01  Richard Guenther  <rguenther@suse.de>
33848
33849         PR tree-optimization/43607
33850         * ipa-type-escape.c (check_call): Do not access non-existing
33851         arguments.
33852
33853 2010-04-01  Richard Guenther  <rguenther@suse.de>
33854
33855         PR middle-end/43602
33856         Revert
33857         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
33858                     Jack Howarth  <howarth@bromo.med.uc.edu>
33859
33860         * tree-profile.c (tree_init_ic_make_global_vars): Make static
33861         variables TLS.
33862
33863 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33864
33865         * doc/install.texi (Prerequisites): Document libelf usability on
33866         IRIX 5/6 and Solaris 2.
33867         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
33868         Update GNU as, GNU ld requirements.
33869         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
33870         Document Sun Studio compiler download.
33871         Update and simplify as, ld recommendations.
33872         (Specific, *-*-solaris2.7): Note obsoletion, removal.
33873
33874 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33875
33876         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
33877         with_tune_32 to pentium4.
33878
33879 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
33880
33881         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
33882
33883 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33884
33885         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
33886         obsoletion, removal.
33887         Update IDO URL.
33888         Document GNU as requirement.
33889         Update configure requirements.
33890         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
33891         Recomment IRIX 6.5.18+.
33892         Document IDF/IDL requirement.
33893         Document GNU as requirement.
33894         Document GNU ld bootstrap failure.
33895         Remove freeware.sgi.com reference.
33896
33897 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33898
33899         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
33900         UNIX V4.0, V5.0 obsoletion, removal.
33901         Remove --with-gc=simple reference.
33902         Update VM requirements during bootstrap.
33903         Remove -oldas bootstrap description.
33904         Update binutils reference.
33905         Remove comparison failure note.
33906
33907 2010-03-31  Richard Guenther  <rguenther@suse.de>
33908             Zdenek Dvorak  <ook@ucw.cz>
33909             Sebastian Pop  <sebastian.pop@amd.com>
33910
33911         PR middle-end/43464
33912         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
33913         with multiple arguments.
33914         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
33915
33916 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33917
33918         * graphite-dependences.c (print_pddr): Call print_pdr with an
33919         extra argument.
33920         * graphite-poly.c (debug_pdr): Add an extra argument for the
33921         verbosity level.
33922         (print_pdr): Same.
33923         (print_pbb_domain): Same.
33924         (print_pbb): Same.
33925         (print_scop_context): Same.
33926         (print_scop): Same.
33927         (print_cloog): Same.
33928         (debug_pbb_domain): Same.
33929         (debug_pbb): Same.
33930         (print_pdrs): Same.
33931         (debug_pdrs): Same.
33932         (debug_scop_context): Same.
33933         (debug_scop): Same.
33934         (debug_cloog): Same.
33935         (print_scop_params): Same.
33936         (debug_scop_params): Same.
33937         (print_iteration_domain): Same.
33938         (print_iteration_domains): Same.
33939         (debug_iteration_domain): Same.
33940         (debug_iteration_domains): Same.
33941         (print_scattering_function): Same.
33942         (print_scattering_functions): Same.
33943         (debug_scattering_function): Same.
33944         (debug_scattering_functions): Same.
33945         * graphite-poly.h (debug_pdr): Update declaration.
33946         (print_pdr): Same.
33947         (print_pbb_domain): Same.
33948         (print_pbb): Same.
33949         (print_scop_context): Same.
33950         (print_scop): Same.
33951         (print_cloog): Same.
33952         (debug_pbb_domain): Same.
33953         (debug_pbb): Same.
33954         (print_pdrs): Same.
33955         (debug_pdrs): Same.
33956         (debug_scop_context): Same.
33957         (debug_scop): Same.
33958         (debug_cloog): Same.
33959         (print_scop_params): Same.
33960         (debug_scop_params): Same.
33961         (print_iteration_domain): Same.
33962         (print_iteration_domains): Same.
33963         (debug_iteration_domain): Same.
33964         (debug_iteration_domains): Same.
33965         (print_scattering_function): Same.
33966         (print_scattering_functions): Same.
33967         (debug_scattering_function): Same.
33968         (debug_scattering_functions): Same.
33969
33970 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33971
33972         * graphite-poly.c (print_scattering_function_1): New.
33973         (print_scattering_function): Call it.
33974         (print_scop_params): Remove spaces at the end of lines.
33975         (print_cloog): New.
33976         (debug_cloog): New.
33977         * graphite-poly.h (print_cloog): Declared.
33978         (debug_cloog): Declared.
33979
33980 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33981
33982         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
33983         in loop->header.
33984         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
33985         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
33986         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
33987         to switch between adding the IV bump in loop->latch or in loop->header.
33988
33989 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33990
33991         * graphite-poly.c (print_scattering_function): Pretty print following
33992         the scoplib format.
33993         (print_pdr): Same.
33994         (print_pbb_domain): Same.
33995         (dump_gbb_cases): Same.
33996         (dump_gbb_conditions): Same.
33997         (print_pdrs): Same.
33998         (print_pbb): Same.
33999         (print_scop_params): Same.
34000         (print_scop_context): Same.
34001         (print_scop): Same.
34002         (print_pbb_body): New.
34003         (lst_indent_to): New.
34004         (print_lst): Start new lines with a #.
34005         * graphite-poly.h (pbb_bb): New.
34006         (pbb_index): Use pbb_bb.
34007         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
34008         disjuncts.
34009         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
34010
34011 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
34012
34013         * dwarf2out.c (size_of_die): For -gdwarf-4 use
34014         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
34015         and 0 instead of 1 for dw_val_class_flag.
34016         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
34017         dw_val_class_range_list, dw_val_class_loc_list,
34018         dw_val_class_lineptr and dw_val_class_macptr, use
34019         DW_FORM_flag_present for dw_val_class_flag and
34020         DW_FORM_exprloc for dw_val_class_loc.
34021         (output_die): For -gdwarf-4 print dw_val_class_loc
34022         size as uleb128 instead of 1 or 2 bytes and don't print
34023         anything for dw_val_class_flag.
34024
34025         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
34026         instead of cselib_lookup following by tweaking locs->setting_insn.
34027
34028         PR bootstrap/43596
34029         * cselib.c (cselib_process_insn): Clear cselib_current_insn
34030         even before returning from label, setjmp call or volatile asm
34031         handling.
34032
34033 2010-03-31  Richard Guenther  <rguenther@suse.de>
34034
34035         PR middle-end/43600
34036         * cgraphunit.c (cgraph_output_in_order): Do not allocate
34037         temporary data on stack.
34038
34039 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34040
34041         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
34042         (PUSHSECTION_ASM_OP): Remove.
34043         (POPSECTION_ASM_OP): Remove.
34044         (PUSHSECTION_FORMAT): Remove.
34045         * config/sol2.h (PUSHSECTION_FORMAT): Define.
34046         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
34047         * config/sol2.c (solaris_output_init_fini): Use it.
34048
34049 2010-03-31  Jie Zhang  <jie@codesourcery.com>
34050
34051         PR 43574
34052         * opt-functions.awk (var_type_struct): Use signed char type
34053         for simple variables.
34054
34055 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34056
34057         * config/sol2.c: Include output.h.
34058         (solaris_assemble_visibility): New function.
34059         * config/t-sol2 (sol2.o): Add output.h dependency.
34060         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
34061         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
34062         Redefine.
34063
34064 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
34065
34066         PR target/43580
34067         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
34068         V2SImode or XFmode on PRE_DEC.
34069
34070         PR debug/43557
34071         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
34072         BLKmode.
34073
34074 2010-03-31  Jie Zhang  <jie@codesourcery.com>
34075
34076         PR 43562
34077         * reload.h (caller_save_initialized_p): Declare.
34078         * toplev.c (backend_init_target): Don't call
34079         init_caller_save but set caller_save_initialized_p to false.
34080         * caller-save.c (caller_save_initialized_p): Define.
34081         (init_caller_save): Check caller_save_initialized_p.
34082         * ira.c (ira): Call init_caller_save if flag_caller_saves.
34083
34084 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34085
34086         PR target/39048
34087         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
34088         and soft-fp/t-softfp to tmake_file.
34089         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
34090         (LIBGCC2_TF_CEXT): Define.
34091         (TF_SIZE): Define.
34092
34093 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
34094
34095         PR debug/42977
34096         * cselib.c (n_useless_values): Document handling of debug locs.
34097         (n_useless_debug_values, n_debug_values): New variables.
34098         (new_elt_loc_list): Don't add to debug values, keep count.
34099         (promote_debug_loc): New.
34100         (cselib_reset_table): Zero new variables.
34101         (entry_and_rtx_equal_p): Promote debug locs.
34102         (discard_useless_locs): Increment n_useless_debug_values for
34103         debug values.
34104         (remove_useless_values): Adjust n_useless_values and n_debug_values
34105         with n_useless_debug_values.
34106         (add_mem_for_addr): Promote debug locs.
34107         (cselib_lookup_mem): Likewise.
34108         (cselib_lookup_addr): Renamed to...
34109         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
34110         (cselib_log_lookup): ... this.  Turn into...
34111         (cselib_lookup_addr): ... new wrapper.
34112         (cselib_lookup_from_insn): New.
34113         (cselib_invalidate_regno): Increment n_useless_debug_values for
34114         debug values.
34115         (cselib_invalidate_mem): Likewise.
34116         (cselib_process_insn): Take n_deleted and n_debug_values into
34117         account to guard remove_useless_value call.
34118         (cselib_finish): Zero n_useless_debug_values.
34119         * cselib.h (cselib_lookup_from_insn): Declare.
34120         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
34121         (sched_analyze_2): Likewise.
34122
34123 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
34124
34125         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
34126         functions.
34127         (adjust_mems): Replace narrowing SUBREG of expression containing
34128         just PLUS, MINUS, MULT and ASHIFT of registers and constants
34129         with operations in the narrower mode.
34130
34131         PR debug/43593
34132         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
34133         regs_invalidated_by_call instead all call_used_reg_set registers.
34134
34135 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
34136
34137         PR middle-end/43430
34138         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
34139         pointer comparisons with types_compatible_p.
34140         * tree-vect-stmts.c (vectorizable_call): Same.
34141         (vectorizable_condition): Same.
34142
34143 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34144
34145         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
34146         stack check if the mask would be zero.
34147
34148 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34149             Jack Howarth  <howarth@bromo.med.uc.edu>
34150
34151         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34152         variables TLS.
34153
34154 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
34155
34156         PR other/25232
34157         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
34158         and __unordtf2.
34159         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
34160         Include ___unordxf2 and ___unordtf2.
34161         * config/i386/libgcc-glibc.ver: Do not define inheritance from
34162         GCC_4.4.0 here.
34163
34164 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
34165
34166         * config/lm32/t-lm32: New file.
34167         * config.gcc: Use the above file when targetting lm32.
34168
34169 2010-03-28  Duncan Sands  <baldrick@free.fr>
34170
34171         * Makefile.in (PLUGIN_HEADERS): Add except.h.
34172
34173 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34174
34175         PR middle-end/43431
34176         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
34177         Improve vectorization cost model diagnostic.
34178
34179 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34180
34181         PR middle-end/43436
34182         * tree-vect-data-refs.c (vect_analyze_data_refs): When
34183         compute_data_dependences_for_loop returns false, early exit
34184         and output an extra diagnostic for the failed data reference
34185         analysis.
34186
34187 2010-03-29  Richard Guenther  <rguenther@suse.de>
34188
34189         PR tree-optimization/43560
34190         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
34191         (can_sm_ref_p): Treat stores to readonly locations as trapping.
34192
34193 2010-03-29  Jie Zhang  <jie@codesourcery.com>
34194
34195         PR 43564
34196         * toplev.c (process_options): Set optimization_default_node
34197         and optimization_current_node.
34198         * opts.c (decode_options): Don't set optimization_default_node
34199         and optimization_current_node.
34200
34201 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
34202
34203         * config/rtems.h: Abandon -qrtems_debug.
34204
34205 2010-03-28  Jan Hubicka  <jh@suse.cz>
34206
34207         PR tree-optimization/43505
34208         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
34209         map should not be copied.
34210
34211 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34212
34213         PR middle-end/41674
34214         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
34215         cdtors, set DECL_PRESERVE_P.
34216         * ipa.c (cgraph_externally_visible_p): Return true if declaration
34217         should be preseved.
34218
34219 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
34220
34221         PR tree-optimization/43528
34222         * stor-layout.c (place_field): Check that constant fits into
34223         unsigned HWI when skipping calculation of MS bitfield layout.
34224
34225 2010-03-27  Jan Hubicka  <jh@suse.cz>
34226
34227         PR middle-end/43391
34228         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
34229         notice_global_symbol work.
34230
34231 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
34232
34233         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
34234         instead of dwarf2out_decl.
34235         (struct var_loc_node): Remove section_label field.
34236         (dwarf2out_function_decl): New function.
34237         (dwarf2out_var_location): Don't set section_label field.
34238         (dwarf2out_begin_function): Don't empty decl_loc_table here.
34239
34240 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
34241
34242         PR tree-optimization/43544
34243         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
34244         First argument for builtin vectorized function hook is now a
34245         tree to be able to distinguish between machine specific and
34246         standard builtins.
34247         * targhooks.c (default_builtin_vectorized_function): Ditto.
34248         * targhooks.h (default_builtin_vectorized_function): Ditto.
34249         * target.h (struct gcc_target): Ditto.
34250         * tree-vect-stmts.c (vectorizable_function): Ditto.
34251         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
34252         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
34253         Ditto.
34254
34255 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
34256
34257         PR c/43381
34258         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
34259         nested binding iff it is a FUNCTION_DECL.
34260         (store_parm_decls_newstyle): Pass nested=true to bind for
34261         FUNCTION_DECLs amongst parameters.
34262
34263 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34264
34265         * var-tracking.c (vt_expand_loc_callback): Don't run
34266         cselib_expand_value_rtx_cb in dummy mode if
34267         cselib_dummy_expand_value_rtx_cb returned false.
34268
34269         * var-tracking.c (emit_note_insn_var_location): For one part
34270         notes with offset 0, don't add EXPR_LIST around the location.
34271         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
34272         add_location_or_const_value_attribute): Adjust for that change.
34273
34274         PR debug/43540
34275         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
34276         into first operand and location into second.
34277         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
34278         dw_cfi_oprnd_loc for DW_CFA_expression.
34279         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
34280         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
34281         assume first argument is regnum and second argument is location.
34282
34283 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34284
34285         PR target/42113
34286         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
34287         of scratch register to DImode.  Split to DImode comparison operator.
34288         Use SImode subreg of scratch register in the multiplication.
34289         (*cmp_sadd_sidi): Ditto.
34290         (*cmp_ssub_si): Ditto.
34291         (*cmp_ssub_sidi): Ditto.
34292
34293 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34294
34295         PR target/43524
34296         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
34297         Remove invalid assert and wrong comment.
34298
34299 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34300
34301         PR debug/43516
34302         * flags.h (final_insns_dump_p): New extern.
34303         * final.c (final_insns_dump_p): New variable.
34304         (rest_of_clean_state): Set it before -fdump-final-insns=
34305         dumping, clear afterwards.
34306         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
34307         MEM_ALIAS_SET on MEMs.
34308
34309 2010-03-26  David S. Miller  <davem@davemloft.net>
34310
34311         * configure.ac: Fix sparc GOTDATA_OP bug check.
34312         * configure: Rebuild.
34313
34314 2010-03-26  Alan Modra  <amodra@gmail.com>
34315
34316         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
34317
34318 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34319
34320         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
34321         TLS_SECTION_ASM_FLAG.
34322
34323 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
34324
34325         PR bootstrap/43511
34326         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
34327         Clear first_function_block_is_cold.
34328
34329         PR c/43385
34330         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
34331         argument if the argument is truth_value_p.
34332
34333 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
34334
34335         * config/rs6000/constraints.md: Update copyright year for my changes.
34336
34337         PR target/43484
34338         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
34339         used in reg+reg addressing, swap registers.
34340
34341 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34342
34343         PR debug/43293
34344         * target.h (struct gcc_target): Add code_end hook.
34345         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
34346         if not yet defined.
34347         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
34348         * toplev.c (compile_file): Call targetm.asm_out.code_end
34349         hook before unwind info/debug info output.
34350         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
34351         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
34352         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34353         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
34354         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34355         * config/i386/i386.c (ix86_file_end): Renamed to...
34356         (ix86_code_end): ... this.  Make static.  Don't call
34357         file_end_indicate_exec_stack.  Emit unwind info using
34358         final_start_function/final_end_function.
34359         (darwin_x86_file_end): Remove.
34360         (TARGET_ASM_CODE_END): Define.
34361         * config/i386/i386.h (TARGET_ASM_FILE_END,
34362         NEED_INDICATE_EXEC_STACK): Don't define.
34363         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
34364         (TARGET_ASM_FILE_END): Define to darwin_file_end.
34365         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
34366         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
34367
34368         PR target/43498
34369         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
34370         at the beginning and final_end_function at the end.
34371         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
34372
34373 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34374
34375         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
34376         and Sun as TLS syntax.
34377         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
34378         * configure: Regenerate.
34379         * config.in: Regenerate.
34380         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
34381         (default_elf_asm_named_section): Use it.
34382         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
34383         (i386_output_dwarf_dtprel): Likewise.
34384         (output_addr_const_extra): Likewise.
34385         (output_pic_addr_const): Lowercase @GOTTPOFF.
34386         (output_addr_const_extra): Likewise.
34387         (output_pic_addr_const): Lowercase @GOTNTPOFF.
34388         (output_addr_const_extra): Likewise.
34389         (output_pic_addr_const): Lowercase @INDNTPOFF.
34390         (output_addr_const_extra): Likewise.
34391         (output_pic_addr_const): Lowercase @NTPOFF.
34392         (output_addr_const_extra): Likewise.
34393         (output_pic_addr_const): Lowercase @TPOFF.
34394         (output_addr_const_extra): Likewise.
34395         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
34396         (*tls_global_dynamic_64): Likewise.
34397         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
34398         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
34399
34400         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
34401         (ASM_OUTPUT_TLS_COMMON): Use it.
34402         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
34403
34404         PR target/38118
34405         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
34406         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
34407         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
34408         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
34409         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34410         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
34411
34412 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34413
34414         * config/i386/i386.c (override_options): Don't accept
34415         -mtls-dialect=sun any longer.
34416         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
34417         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
34418         (*tls_local_dynamic_base_32_sun): Likewise.
34419         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34420
34421 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34422
34423         PR debug/43508
34424         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
34425         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
34426
34427         PR debug/43479
34428         * ira.c (adjust_cleared_regs): New function.
34429         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
34430
34431         PR debug/19192
34432         PR debug/43479
34433         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
34434         from gimple_block.
34435         * expr.c (expand_expr_real): Restore previous
34436         curr_insn_source_location and curr_insn_block after
34437         expand_expr_real_1 call.
34438         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
34439         instead of expand_expr_real_1.
34440
34441 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
34442
34443         PR rtl-optimization/43413
34444         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
34445         hard regs too.
34446
34447 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
34448
34449         PR target/43348
34450         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
34451         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
34452
34453 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
34454
34455         * config/i386/i386.c (ix86_target_string): Add -mfma.
34456         Fix a typo in comment.
34457
34458 2010-03-22  Mike Stump  <mikestump@comcast.net>
34459
34460         PR target/23071
34461         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
34462         Don't overly align based upon packed packed fields.
34463
34464 2010-03-22  Jason Merrill  <jason@redhat.com>
34465
34466         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
34467         Use () rather than [], and move before the element type.
34468
34469 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34470
34471         * doc/configfiles.texi (Configuration Files): Removed
34472         fixinc/Makefile*, intl/Makefile.*.
34473         * doc/makefile.texi: Fixed markup. Abstract from version
34474         control system used.
34475         (Makefile): Removed obsolete java/parse.y example.
34476         * doc/sourcebuild.texi: Likewise.
34477         (Top Level): Added config, gnattools, libdecnumber, libgcc,
34478         libgomp, libssp.  Removed fastjar.
34479         (Miscellaneous Docs): Clarify location.
34480         Added COPYING3, COPYING3.LIB.
34481         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
34482
34483 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34484
34485         PR target/38085
34486         * config/i386/i386.c (x86_function_profiler)
34487         [!NO_PROFILE_COUNTERS]: Fix typo.
34488         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
34489         instead of callq.
34490
34491 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
34492             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34493
34494         * doc/sourcebuild.texi (Test Directives): Split into six
34495         subsections, with most of the current text in new subsections
34496         Directives, Selectors, and Final Actions.
34497         (Directives): Split list of test directives into multiple
34498         subsubsections.
34499         (Selectors): Describe use and syntax of selectors.
34500         (Effective-Target Keywords): Describe all existing keywords.
34501         (Add Options): Describe features for dg-add-options.
34502         (Require Support): Describe variants of dg-require-support.
34503         (Final Actions): Describe commands to use in dg-final.
34504
34505 2010-03-22  Michael Matz  <matz@suse.de>
34506
34507         PR middle-end/43475
34508         * recog.c (validate_replace_rtx_group): Replace also in
34509         REG_EQUAL and REG_EQUIV notes.
34510
34511 2010-03-22  Richard Guenther  <rguenther@suse.de>
34512
34513         PR tree-optimization/43390
34514         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
34515         sure vector extracts are type correct.
34516
34517 2010-03-22  Richard Guenther  <rguenther@suse.de>
34518
34519         PR middle-end/40106
34520         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
34521         x * sqrt (x) even when optimizing for size if the target
34522         has native support for sqrt.
34523
34524 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
34525
34526         * varasm.c (make_decl_rtl_for_debug): Also clear
34527         flag_mudflap for the duration of make_decl_rtl call.
34528
34529         PR debug/43443
34530         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
34531         locs from preserved VALUEs.
34532
34533 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34534
34535         PR middle-end/42718
34536         * pa.md (movmemsi): Set align to one if zero.
34537         (movmemdi): Likewise.
34538
34539 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
34540
34541         PR target/42321
34542         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
34543         with their corresponding prologue pushes.
34544
34545 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
34546
34547         PR target/43156
34548         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
34549         at the begining or end.
34550         (spu_expand_epilogue): Likewise.
34551
34552 2010-03-20  Richard Guenther  <rguenther@suse.de>
34553
34554         PR rtl-optimization/43438
34555         * combine.c (make_extraction): Properly zero-/sign-extend an
34556         extraction of the low part of a CONST_INT.  Also handle
34557         CONST_DOUBLE.
34558
34559 2010-03-19  Mike Stump  <mikestump@comcast.net>
34560
34561         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
34562         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
34563         (override_options): Use SUBTARGET32_DEFAULT_CPU.
34564
34565 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
34566
34567         PR c/43211
34568         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
34569         an error.
34570
34571 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
34572
34573         PR rtl-optimization/42258
34574         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
34575         use that may match DEF.
34576
34577         PR target/40697
34578         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
34579         the cost of loading the constant rather than assuming
34580         COSTS_N_INSNS (1).
34581         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
34582         outer code is AND, do the same tests as the andsi3 expander and
34583         return COSTS_N_INSNS (1) if and is cheap.
34584
34585         * optabs.c (avoid_expensive_constant): Fix formatting.
34586
34587 2010-03-19  Michael Matz  <matz@suse.de>
34588
34589         PR c++/43116
34590         * attribs.c (decl_attributes): When rebuilding a function pointer
34591         type use the same qualifiers as the original pointer type.
34592
34593 2010-03-19  Martin Jambor  <mjambor@suse.cz>
34594
34595         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
34596         and is_gimple_ip_invariant_address.
34597
34598 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34599
34600         Revert
34601         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34602
34603         * config/arm/arm.c (arm_override_options): Turn off
34604         flag_dwarf2_cfi_asm for AAPCS variants.
34605
34606 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34607
34608         PR target/43399
34609         * config/arm/arm.c (emit_multi_reg_push): Update comments.
34610         Use PRE_MODIFY instead of PRE_DEC.
34611         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
34612         (vfp_emit_fstmd): Likewise.
34613
34614 2010-03-19  Michael Matz  <matz@suse.de>
34615
34616         PR target/43305
34617         * builtins.c (expand_builtin_interclass_mathfn,
34618         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
34619         if that fails.
34620
34621 2010-03-19  Richard Guenther  <rguenther@suse.de>
34622
34623         PR tree-optimization/43415
34624         * tree-ssa-pre.c (phi_translate): Split out worker to ...
34625         (phi_translate_1): ... this.
34626         (phi_translate): Move all caching here.  Cache all NARY
34627         and REFERENCE translations.
34628
34629 2010-03-19  David S. Miller  <davem@davemloft.net>
34630
34631         With help from Eric Botcazou.
34632         * config/sparc/sparc.c: Include dwarf2out.h.
34633         (emit_pic_helper): Delete.
34634         (pic_helper_symbol_name): Delete.
34635         (pic_helper_emitted_p): Delete.
34636         (pic_helper_needed): New.
34637         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
34638         (get_pc_thunk_name): New.
34639         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
34640         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
34641         Set pic_helper_needed to true.  Don't call emit_pic_helper.
34642         (sparc_expand_prologue): Update load_pic_register call.
34643         (sparc_output_mi_thunk): Likewise.
34644         (sparc_file_end): Emit a hidden comdat symbol for the PIC
34645         thunk if possible.  Output CFI information as needed.
34646
34647 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
34648             Jack Howarth  <howarth@bromo.med.uc.edu>
34649
34650         PR target/36399
34651         * config/i386/i386.h: Fix ABI on darwin x86-32.
34652
34653 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
34654
34655         * tree.h: Declare make_decl_rtl_for_debug.
34656         * varasm.c (make_decl_rtl_for_debug): New.
34657         * dwarf2out.c (rtl_for_decl_location): Call it.
34658         * cfgexpand.c (expand_debug_expr): Call it.
34659
34660 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34661
34662         PR bootstrap/43399
34663         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
34664         mem_mode.
34665
34666         PR bootstrap/43403
34667         * var-tracking.c (vt_init_cfa_base): Do nothing if
34668         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
34669
34670 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
34671
34672         PR debug/42873
34673         * var-tracking.c (canonicalize_vars_star): New.
34674         (dataflow_post_merge_adjust): Use it.
34675
34676 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34677
34678         PR debug/43058
34679         * var-tracking.c (non_suitable_const): New function.
34680         (add_uses): For DEBUG_INSNs with constants, don't record any
34681         value, instead just the constant value itself.
34682         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
34683         is not VAR_LOC_UNKNOWN_P, set var to the constant.
34684         (emit_notes_in_bb): Likewise.
34685         (emit_note_insn_var_location): For onepart variables if
34686         cur_loc is a VOIDmode constant, use DECL_MODE.
34687
34688 2010-03-18  Martin Jambor  <mjambor@suse.cz>
34689
34690         PR middle-end/42450
34691         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
34692         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
34693         all non-clones.  Moved call redirection...
34694         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
34695         (cgraph_materialize_all_clones): Dispose of all
34696         combined_args_to_skip bitmaps.
34697         (verify_cgraph_node): Do not check for edges pointing to wrong
34698         nodes in inline clones.
34699         * tree-inline.c (copy_bb): Call
34700         cgraph_redirect_edge_call_stmt_to_callee.
34701         * ipa.c (cgraph_remove_unreachable_nodes): Call
34702         cgraph_node_remove_callees even when there are used clones.
34703
34704 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34705
34706         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
34707
34708 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34709
34710         PR target/43383
34711         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
34712         for 32bit.
34713
34714 2010-03-18  Michael Matz  <matz@suse.de>
34715
34716         PR middle-end/43419
34717         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
34718         into sqrt(x) if we need to preserve signed zeros.
34719
34720 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
34721             Eric Botcazou  <ebotcazou@adacore.com>
34722
34723         PR rtl-optimization/43360
34724         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
34725         note if we don't know its invariant status.
34726
34727 2010-03-18  Michael Matz  <matz@suse.de>
34728
34729         PR tree-optimization/43402
34730         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
34731         PHI chains of ssa names registered for update.
34732
34733 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
34734
34735         PR target/42427
34736         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
34737         non-offsettable and pre_modify update addressing.
34738         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
34739         and "2" alternatives "#".
34740         (*movdd_softfloat32): Make all alternatives "#";
34741         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
34742         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
34743         (*movdf_softfloat32): Make all alternatives "#";
34744         (movdi): Use the new DIFD mode iterator to create a common splitter
34745         for movdi, movdf and movdd patterns.
34746
34747 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
34748
34749         * common.opt (dumpdir): Remove redundant tab.
34750
34751 2010-03-17  Martin Jambor  <mjambor@suse.cz>
34752
34753         PR tree-optimization/43347
34754         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
34755         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
34756
34757 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
34758
34759         PR rtl-optimization/42216
34760         * regrename.c (create_new_chain): New function, broken out from...
34761         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
34762         appending a use to an empty chain.
34763         (build_def_use): Remove previous changes that convert OP_INOUT to
34764         OP_OUT operands; instead detect the case where an OP_INOUT operand
34765         uses a previously untracked register and create an empty chain for it.
34766
34767 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34768
34769         * doc/extend.texi (Function Attributes): Rewrite unfinished
34770         sentence in ms_abi documentation.
34771
34772 2010-03-17  Alan Modra  <amodra@gmail.com>
34773
34774         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
34775         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
34776         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
34777         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
34778
34779 2010-03-16  Richard Henderson  <rth@redhat.com>
34780
34781         PR middle-end/43365
34782         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
34783         (lower_try_finally): Save and restore eh_seq around the expansion
34784         of the try-finally.
34785
34786 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34787
34788         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
34789         statements before splitting block.
34790
34791 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34792
34793         * doc/sourcebuild.texi (Testsuites): Fix markup.
34794         Use pathnames relative to gcc/testsuite.
34795         (Test Directives): Move description of how timeout is determined.
34796         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
34797         (C Tests): Correct gcc.misc-tests directory.
34798         Framework tests now live in gcc.test-framework.
34799
34800 2010-03-16  Richard Guenther  <rguenther@suse.de>
34801
34802         PR middle-end/43379
34803         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
34804         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
34805
34806 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34807             Alexandre Oliva  <aoliva@redhat.com>
34808
34809         PR tree-optimization/42917
34810         * lambda-code.c (remove_iv): Skip debug statements.
34811         (lambda_loopnest_to_gcc_loopnest): Likewise.
34812         (not_interesting_stmt): Debug statements are not interesting.
34813
34814 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
34815
34816         PR debug/43051
34817         PR debug/43092
34818         * cselib.c (cselib_preserve_constants,
34819         cfa_base_preserved_val): New static variables.
34820         (preserve_only_constants): New function.
34821         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
34822         clear its REG_VALUES.  If cselib_preserve_constants, don't
34823         empty the whole hash table, but preserve there VALUEs with constants,
34824         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
34825         (cselib_preserve_cfa_base_value): New function.
34826         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
34827         (cselib_init): Change argument to int bitfield.  Set
34828         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
34829         is in it.
34830         (cselib_finish): Clear cselib_preserve_constants and
34831         cfa_base_preserved_val.
34832         * cselib.h (enum cselib_record_what): New enum.
34833         (cselib_init): Change argument to int.
34834         (cselib_preserve_cfa_base_value): New prototype.
34835         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
34836         * dse.c (dse_step1): Likewise.
34837         * cfgcleanup.c (thread_jump): Likewise.
34838         * sched-deps.c (sched_analyze): Likewise.
34839         * gcse.c (local_cprop_pass): Likewise.
34840         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
34841         If FN is non-NULL, call the callback always and whenever it returns
34842         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
34843         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
34844         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
34845         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
34846         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
34847         * var-tracking.c: Include recog.h.
34848         (bb_stack_adjust_offset): Remove.
34849         (vt_stack_adjustments): Don't call it, instead just gather the
34850         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
34851         (adjust_stack_reference): Remove.
34852         (compute_cfa_pointer): New function.
34853         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
34854         (struct adjust_mem_data): New type.
34855         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
34856         functions.
34857         (get_address_mode): New function.
34858         (replace_expr_with_values): Use it.
34859         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
34860         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
34861         (adjust_sets): Remove.
34862         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
34863         Use get_address_mode.
34864         (get_adjusted_src): Remove.
34865         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
34866         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
34867         (add_with_sets): Don't call adjust_sets.
34868         (fp_setter, vt_init_cfa_base): New functions.
34869         (vt_initialize): Change return type to bool.  Move most of pool etc.
34870         initialization to the beginning of the function from end.  Pass
34871         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
34872         If !frame_pointer_needed, call vt_stack_adjustment before mos
34873         vector is filled, call vt_init_cfa_base if argp/framep has been
34874         eliminated to sp.  If frame_pointer_needed and argp/framep has
34875         been eliminated to hard frame pointer, set
34876         hard_frame_pointer_adjustment and call vt_init_cfa_base after
34877         encountering fp setter in the prologue.  For MO_ADJUST, call
34878         log_op_type before pusing the op into mos vector, not afterwards.
34879         Call adjust_insn before cselib_process_insn/add_with_sets,
34880         call cancel_changes (0) afterwards.
34881         (variable_tracking_main_1): Adjust for vt_initialize calling
34882         vt_stack_adjustments and returning whether it succeeded or not.
34883
34884 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
34885
34886         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
34887         debug statements.
34888
34889 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
34890
34891         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
34892         has been set.
34893         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
34894         drap_reg has not been set.
34895
34896 2010-03-15  Michael Matz  <matz@suse.de>
34897
34898         PR middle-end/43300
34899         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
34900         use it to expand block copies.
34901         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
34902         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
34903         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
34904
34905 2010-03-15  Richard Guenther  <rguenther@suse.de>
34906
34907         PR tree-optimization/43367
34908         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
34909         elimination check.
34910
34911 2010-03-15  Richard Guenther  <rguenther@suse.de>
34912
34913         PR tree-optimization/43317
34914         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
34915
34916 2010-03-15  Martin Jambor  <mjambor@suse.cz>
34917
34918         PR tree-optimization/43141
34919         * tree-sra.c (create_abstract_origin): New function.
34920         (modify_function): Call create_abstract_origin.
34921
34922 2010-03-15  Chris Demetriou  <cgd@google.com>
34923
34924         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
34925         wasn't copied.
34926
34927 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34928
34929         PR middle-end/43354
34930         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
34931         call insert_out_of_ssa_copy for default definitions.
34932
34933 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34934
34935         * graphite-clast-to-gimple.c (my_long_long): Defined.
34936         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
34937         * graphite-sese-to-poly.c (my_long_long): Defined.
34938         (scop_ivs_can_be_represented): Use it.
34939
34940 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34941
34942         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
34943         graphite-max-bbs-per-function, and loop-block-tile-size.
34944         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
34945         with "maximum".
34946         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
34947
34948 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34949
34950         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
34951         forward declaration.
34952         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
34953         (add_upper_bounds_from_estimated_nit): New.
34954         (build_loop_iteration_domains): Use it.
34955
34956 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34957
34958         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
34959
34960 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34961
34962         PR middle-end/43306
34963         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
34964         should be an INTEGER_CST.  Also handle CASE_CONVERT.
34965
34966 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34967
34968         * graphite.c (graphite_initialize): To bound the number of bbs per
34969         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
34970         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
34971         * doc/invoke.texi: Document it.
34972
34973 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34974
34975         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
34976         * graphite-sese-to-poly.h (build_poly_scop): Same.
34977
34978 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34979
34980         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
34981         the number of parameters in the scop.  Use as an upper bound
34982         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
34983         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
34984         * doc/invoke.texi: Document it.
34985
34986 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
34987
34988         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
34989         * doc/c-tree.texi: Remove.
34990         * doc/generic.texi: Merge c-tree.texi here.
34991         * doc/gccint.texi (Trees): Remove menu entry.
34992         (c-tree.texi): Remove @include.
34993         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
34994         * doc/languages.texi (Reading RTL): Ditto.
34995
34996 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
34997
34998         PR target/42869
34999         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
35000
35001 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
35002
35003         PR middle-end/42431
35004         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
35005         code added to work around reload clobbering CONST insns.
35006
35007 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
35008
35009         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
35010         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
35011         (cselib_preserve_only_values): Remove retain argument, don't
35012         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
35013         * cselib.h (cselib_preserve_only_values): Remove retain argument.
35014         * var-tracking.c (micro_operation): Move insn field before union.
35015         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
35016         (struct variable_tracking_info_def): Remove n_mos field, change
35017         mos into a vector of micro_operations.
35018         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
35019         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
35020         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
35021         changing into a vector.
35022         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
35023         come before all other uops generated by add_stores.
35024         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
35025         argument removal.
35026         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
35027         a vector.  Run just one pass over the bbs instead of separate counting
35028         and computation phase.
35029         (vt_finalize): Free VTI (bb)->mos vector instead of array.
35030
35031         PR debug/43329
35032         * tree-inline.c (remap_decls): Put old_var rather than origin_var
35033         into *nonlocalized_list vector.
35034         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
35035         even if origin is non-NULL.
35036         (gen_variable_die): Likewise.
35037         (process_scope_var): Don't change origin.
35038         (gen_decl_die): Likewise.
35039         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
35040         before adding new edges instead of after it, fix moving over
35041         debug stmts.
35042
35043 2010-03-11  David S. Miller  <davem@davemloft.net>
35044
35045         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
35046         of four.
35047         * configure: Rebuild.
35048
35049 2010-03-11  Martin Jambor  <mjambor@suse.cz>
35050
35051         PR tree-optimization/43257
35052         * tree.c (assign_assembler_name_if_neeeded): New function.
35053         (free_lang_data_in_cgraph): Assembler name assignment moved to the
35054         above new function.
35055         * tree.h (assign_assembler_name_if_neeeded): Declare.
35056         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
35057         the function if needed.
35058
35059 2010-03-11  Chris Demetriou  <cgd@google.com>
35060
35061         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
35062         include/stdint-gcc.h, and include/stdint.h world-readable.
35063
35064 2010-03-11  Richard Guenther  <rguenther@suse.de>
35065
35066         PR tree-optimization/43255
35067         * tree-vrp.c (process_assert_insertions_for): Do not insert
35068         asserts for trivial conditions.
35069
35070 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35071
35072         PR tree-optimization/43280
35073         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
35074         generation.  Move calculation of size out of the if branch.
35075         (find_bswap): Modify compare number generation.
35076
35077 2010-03-11  Richard Guenther  <rguenther@suse.de>
35078
35079         PR lto/43200
35080         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
35081         (input_gimple_stmt): Fixup handled component types during
35082         operand read.  Also fix up decls in ADDR_EXPRs.
35083
35084 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
35085
35086         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
35087         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
35088
35089 2010-03-10  Jan Hubicka  <jh@suse.cz>
35090
35091         PR c/43288
35092         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
35093         * varasm.c (get_variable_section): Don't do that here...
35094         (make_decl_rtl): ... and here.
35095         (do_assemble_alias): Produce decl RTL.
35096         (assemble_alias): Likewise.
35097
35098 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35099
35100         PR debug/43290
35101         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
35102         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
35103         of fde->vdrap_reg.
35104         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
35105         (based_loc_descr): Only express drap or vdrap regno based expressions
35106         using DW_OP_fbreg when not optimizing.
35107         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
35108         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
35109         REG_CFA_SET_VDRAP note.
35110
35111 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
35112
35113         PR tree-optimization/43236
35114         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
35115         error in calculation of base address in reverse iteration case.
35116         (generate_builtin): Take number of latch executions if the statement
35117         is in the latch.
35118
35119 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
35120
35121         PR middle-end/42859
35122         * tree-eh.c: Include pointer-set.h.
35123         (lower_eh_dispatch): Filter out duplicate case labels and
35124         remove the unneeded edge when the label is unused.  Return
35125         true when some edges are removed.
35126         (execute_lower_eh_dispatch): When any lowering resulted in
35127         removing an edge, also delete unreachable blocks.
35128
35129 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35130
35131         PR bootstrap/43287
35132         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
35133         UNSPEC_MACHOPIC_OFFSET.
35134
35135 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
35136
35137         PR target/43294
35138         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
35139         (m68k_delegitimize_address): New function.
35140
35141 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
35142
35143         PR debug/43299
35144         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
35145
35146         PR debug/43299
35147         * var-tracking.c (adjust_sets): New function.
35148         (count_with_sets, add_with_sets): Use it.
35149         (get_adjusted_src): New inline function.
35150         (add_stores): Use it.
35151
35152         PR debug/43304
35153         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
35154         call cselib_dummy_expand_value_rtx_cb instead of
35155         cselib_expand_value_rtx_cb.
35156
35157         PR debug/43293
35158         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
35159         * config/i386/i386.c: Include debug.h and dwarf2out.h.
35160         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
35161         and .cfi_endproc around the pic thunks.
35162         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
35163         all queued unwind info register saves are saved before the call.
35164         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
35165         considered as sp-=4 for unwind info and the pop as sp+=4 which
35166         also clobbers dest, but doesn't actually restore it.
35167
35168         PR debug/43290
35169         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
35170         RTX_FRAME_RELATED_P.
35171
35172 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35173
35174         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
35175         whitespaces in output template.
35176
35177 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35178
35179         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
35180         out array boundary.
35181
35182 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35183
35184         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
35185         builtins.exp in a separate job.
35186
35187 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35188
35189         * graphite-sese-to-poly.c (add_param_constraints): Use
35190         lower_bound_in_type and upper_bound_in_type.
35191
35192 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35193
35194         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
35195         instead of unsigned_type_node.
35196
35197 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35198             Reza Yazdani  <reza.yazdani@amd.com>
35199
35200         PR middle-end/43065
35201         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
35202         on pointer type parameters.
35203
35204 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35205
35206         PR middle-end/42644
35207         PR middle-end/42130
35208         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
35209         handle conversions from pointer to integers.
35210         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
35211         induction variable, to be able to work with code generated by CLooG.
35212         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
35213         (build_poly_scop): Bail out if we cannot codegen a loop.
35214
35215 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35216
35217         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
35218         code generation with gloog_error.
35219
35220 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35221
35222         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
35223         Call fold_convert on all the returned values.
35224         (expand_scalar_variables_expr): Pass to
35225         expand_scalar_variables_ssa_name the type of the resulting expression.
35226
35227 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35228
35229         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
35230         ppl_min_for_le_pointset.
35231         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
35232         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
35233
35234 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35235
35236         * graphite-dependences.c (map_into_dep_poly): Removed.
35237         (dependence_polyhedron_1): Use combine_context_id_scat.
35238
35239 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35240
35241         * graphite-poly.h (struct poly_scattering): Add layout documentation.
35242         (struct poly_bb): Same.
35243         (combine_context_id_scat): New.
35244
35245 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35246
35247         PR middle-end/42326
35248         * sese.c (name_defined_in_loop_p): Return false for default
35249         definitions.
35250
35251 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35252
35253         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
35254         and clean up the logic.
35255
35256 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35257
35258         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
35259         early return.
35260
35261 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35262
35263         * var-tracking.c (remove_cselib_value_chains): Define only for
35264         ENABLE_CHECKING.
35265         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
35266         delete_slot_part, emit_notes_for_differences_1): Don't call
35267         remove_cselib_value_chains here.
35268         (set_slot_part, emit_notes_for_differences_2): Don't call
35269         add_cselib_value_chains here.
35270         (preserved_values): New vector.
35271         (preserve_value): New function.
35272         (add_uses, add_stores, vt_add_function_parameters): Use it
35273         instead of cselib_preserve_value.
35274         (changed_values_stack): New vector.
35275         (check_changed_vars_0): New function.
35276         (check_changed_vars_1, check_changed_vars_2): Use it.
35277         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
35278         changed_values_stack VALUEs.
35279         (vt_emit_notes): For all preserved_values call
35280         add_cselib_value_chains.  If ENABLE_CHECKING call
35281         remove_cselib_value_chains before verifying value_chains is empty.
35282         Initialize and free changed_values_stack.
35283         (vt_initialize): Initialize preserved_values.
35284         (vt_finalize): Free preserved_values.
35285
35286 2010-03-08  Richard Guenther  <rguenther@suse.de>
35287
35288         PR tree-optimization/43269
35289         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
35290         region detection.
35291
35292 2010-03-08  Martin Jambor  <mjambor@suse.cz>
35293
35294         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
35295         (ipa_is_param_called): Removed.
35296         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
35297         (ipa_print_node_params): Do not print the called flag.
35298         (ipa_write_node_info): Do not stream the called flag.
35299         (ipa_read_node_info): Likewise.
35300
35301 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
35302
35303         PR debug/43176
35304         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
35305         * cselib.c (struct expand_value_data): Add dummy field.
35306         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
35307         dummy to false.
35308         (cselib_dummy_expand_value_rtx_cb): New function.
35309         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
35310         any rtl.
35311         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
35312         * var-tracking.c: Include pointer-set.h.
35313         (variable): Change n_var_parts to char from int.  Add
35314         cur_loc_changed and in_changed_variables fields.
35315         (variable_canonicalize): Remove.
35316         (shared_var_p): New inline function.
35317         (unshare_variable): Maintain cur_loc_changed and
35318         in_changed_variables fields.  If var was in changed_variables,
35319         replace it there with new_var.  Just copy cur_loc instead of
35320         resetting it to something else.
35321         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
35322         (dataflow_set_union): Don't call variable_canonicalize.
35323         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
35324         of their DEBUG_EXPR_TREE_DECLs.
35325         (canonicalize_loc_order_check): Verify that cur_loc is NULL
35326         and in_changed_variables and cur_loc_changed is false.
35327         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
35328         and cur_loc_changed.  Don't update cur_loc here.
35329         (variable_merge_over_src): Don't call variable_canonicalize.
35330         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
35331         removing loc that is equal to cur_loc, clear cur_loc,
35332         set cur_loc_changed and ensure variable_was_changed is called.
35333         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
35334         compare pointers in cur_loc check, if it is equal to loc,
35335         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
35336         (variable_different_p): Remove compare_current_location argument,
35337         don't compare cur_loc.
35338         (dataflow_set_different_1): Adjust variable_different_p caller.
35339         (variable_was_changed): If dv had some var in changed_variables
35340         already, reset in_changed_variables flag for it and propagate
35341         cur_loc_changed over to the new variable.  On empty var
35342         always set cur_loc_changed.  Set in_changed_variables on whatever
35343         var is added to changed_variables.
35344         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
35345         Use shared_var_p.  When removing loc that is equal to cur_loc,
35346         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
35347         end, don't set it to something else, just call variable_was_changed.
35348         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
35349         loc being removed, clear cur_loc and set cur_loc_changed.
35350         Set cur_loc_changed if all locations have been removed.
35351         (struct expand_loc_callback_data): New type.
35352         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
35353         allocated.  Always create SUBREGs if simplify_subreg failed.
35354         Prefer to use cur_loc, when that fails and still in
35355         changed_variables (and seen first time) recompute it.  Set
35356         cur_loc_changed of variables which had to change cur_loc and
35357         compute elcd->cur_loc_changed if any of the subexpressions used
35358         had to change cur_loc.
35359         (vt_expand_loc): Adjust to pass arguments in
35360         expand_loc_callback_data structure.
35361         (vt_expand_loc_dummy): New function.
35362         (emitted_notes): New variable.
35363         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
35364         that weren't used for any other decl in current
35365         emit_notes_for_changes call call vt_expand_loc_dummy to update
35366         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
35367         first loc_chain location if NULL before.  Always use just
35368         cur_loc instead of first loc_chain location.  When cur_loc_changed
35369         is false, when not --enable-checking=rtl just don't emit any note.
35370         When rtl checking, compute the note and assert it is the same
35371         as previous note.  Clear cur_loc_changed and in_changed_variables
35372         at the end before removing from changed_variables.
35373         (check_changed_vars_3): New function.
35374         (emit_notes_for_changes): Traverse changed_vars to call
35375         check_changed_vars_3 on each changed var.
35376         (emit_notes_for_differences_1): Clear cur_loc_changed and
35377         in_changed_variables.  Recompute cur_loc of new_var.
35378         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
35379         (vt_emit_notes): Initialize and destroy emitted_notes.
35380
35381 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
35382
35383         PR rtl-optimization/42220
35384         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
35385         Use verify_reg_tracked to determine if we should use OP_OUT rather
35386         than OP_INOUT.
35387         (build_def_use): If we see an in-out operand for a register that we
35388         know nothing about, treat is an output if possible, fail the block if
35389         not.
35390
35391 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35392
35393         PR debug/42897
35394         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
35395         permanently.
35396
35397 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35398
35399         PR debug/42897
35400         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
35401         uses of relevant DEFs that are dead outside the loop too.
35402
35403 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35404
35405         * var-tracking.c (dataflow_set_merge): Swap src and src2.
35406         Reverted:
35407         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
35408         PR debug/41371
35409         * var-tracking.c (values_to_unmark): New variable.
35410         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
35411         values_to_unmark vector.  Moved body to...
35412         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
35413         instead queue it into values_to_unmark vector.
35414         (vt_find_locations): Free values_to_unmark vector.
35415
35416 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
35417
35418         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
35419         (site.exp): Export them when plugins are enabled.
35420
35421 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
35422
35423         PR middle-end/42326
35424         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
35425         that contain scevs.
35426         (chrec_fold_multiply): Same.
35427
35428 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
35429
35430         PR c/43248
35431         * c-decl.c (build_compound_literal): Return early if init is
35432         an error_mark_node.
35433
35434 2010-03-04  Martin Jambor  <mjambor@suse.cz>
35435
35436         PR tree-optimization/43164
35437         PR tree-optimization/43191
35438         * tree-sra.c (type_consists_of_records_p): Reject records with
35439         zero-size bit-fields at the end.
35440
35441 2010-03-04  Mike Stump  <mikestump@comcast.net>
35442
35443         * Makefile.in (TAGS): Remove *.y.
35444
35445 2010-03-04  Richard Guenther  <rguenther@suse.de>
35446
35447         PR tree-optimization/40761
35448         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
35449         in reverse order.
35450         (my_rev_post_order_compute): New function.
35451         (init_pre): Call it.
35452
35453 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
35454
35455         PR middle-end/43209
35456         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
35457         decrease the cost of an IV candidate when the cost is infinite.
35458
35459 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35460
35461         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
35462         Use '3DNow!' for the extension of that name, ensure normal space
35463         after the string.
35464         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
35465
35466 2010-03-03  Jeff Law  <law@redhat.com>
35467
35468         * PR middle-end/32693
35469         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
35470         than gen_rtx_SUBREG.
35471         (extract_bit_field_1): Likewise.
35472
35473 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
35474
35475         * doc/sourcebuild.texi (Test directives): Document that arguments
35476         include-opts and exclude-opts are now optional for dg-skip-if,
35477         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
35478
35479 2010-03-03  Jason Merrill  <jason@redhat.com>
35480
35481         PR c++/12909
35482         * cgraph.h (varpool_node): Add extra_name field.
35483         * varpool.c (varpool_extra_name_alias): New.
35484         (varpool_assemble_decl): Emit extra name aliases.
35485         (varpool_mark_needed_node): Look past an extra name alias.
35486         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
35487         * lto-streamer-in.c (lto_input_tree): Read it.
35488         * lto-streamer-out.c (output_unreferenced_globals): Write it.
35489
35490 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
35491
35492         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
35493         (sparc*-*-solaris2*): ...this.
35494
35495 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
35496
35497         PR debug/43229
35498         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
35499         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
35500         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
35501         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
35502
35503         PR debug/43237
35504         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
35505         fallthrough to default handling, just with want_address 0 instead of 2.
35506         For single element lists, add_AT_loc directly, otherwise create an
35507         artificial variable DIE and stick location list to it.
35508
35509         PR debug/43177
35510         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
35511         (VAL_EXPR_HAS_REVERSE): Define.
35512         (reverse_op): New function.
35513         (add_stores): For reversible operations add an extra MO_VAL_USE.
35514
35515 2010-03-02  Jason Merrill  <jason@redhat.com>
35516
35517         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
35518
35519 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
35520
35521         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
35522         (sparc64-*-linux*): Likewise.
35523         (sparc64-*-solaris2*): Include assembler files before linker ones.
35524         (sparc-*-solaris2*): Simplify and reorder to match previous case.
35525         * config/sparc/gas.h: Delete.
35526         * config/sparc/sol2-64.h: Add copyright notice.
35527         * config/sparc/sol2-gas-bi.h: Likewise.
35528         * config/sparc/sol2-gld.h: Likewise.
35529         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
35530         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
35531         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
35532         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
35533         (sparc_elf_asm_named_section): Rename into...
35534         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
35535
35536 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
35537
35538         * config/alpha/alpha.c (override_options): Fix -mtune error message.
35539
35540 2010-03-02  Jeff Law  <law@redhat.com>
35541
35542         PR middle-end/42431
35543         * reload1.c (rtx_p, substitute_stack): Declare.
35544         (substitute): Record addresses of changed rtxs.
35545         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
35546         Restore the original rtx when complete.
35547         (reload): Free subsitute_stack when complete.
35548
35549 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
35550
35551         * doc/gccint.texi (menu): Add Testsuites as a chapter.
35552         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
35553         new chapter.
35554         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
35555         LTO Testing, gcov Testing, profopt Testing, compat Testing,
35556         Torture Tests): Change from subsection to section.
35557
35558 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
35559             Steven Bosscher  <steven@gcc.gnu.org>
35560
35561         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
35562         instead of bb.
35563
35564 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
35565
35566         PR middle-end/42640
35567         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
35568         the assignment from the new induction variable to the assignment
35569         of the value from the original loop PHI function.
35570
35571 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
35572             Daniel Jacobowitz  <dan@codesourcery.com>
35573
35574         * doc/sourcebuild.texi (Test directives): Clarify options to
35575         dg-skip-if.
35576
35577 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35578
35579         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
35580         Disable cfi directives unless GCC and gas agree on using read-only
35581         .eh_frame sections for 64-bit.
35582         * configure: Regenerate.
35583
35584 2010-03-01  Richard Guenther  <rguenther@suse.de>
35585
35586         PR tree-optimization/43220
35587         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
35588         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
35589
35590 2010-03-01  Richard Guenther  <rguenther@suse.de>
35591             Martin Jambor  <mjambor@suse.cz>
35592
35593         PR middle-end/41250
35594         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
35595         gimplified parameters.
35596
35597 2010-03-01  Christian Bruel  <christian.bruel@st.com>
35598
35599         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
35600
35601 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
35602
35603         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
35604
35605 2010-03-01  Richard Guenther  <rguenther@suse.de>
35606
35607         PR middle-end/43213
35608         * expr.c (expand_assignment): Use the alias-oracle to tell
35609         if the rhs aliases the result decl.
35610
35611 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35612
35613         PR pch/14940
35614         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
35615         to sol_gt_pch_get_address.
35616         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
35617         64-bit, SPARC and x86.
35618         (sol_gt_pch_get_address): New function.
35619
35620 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
35621
35622         * toplev.h (inform_n, error_n): Declare.
35623         * diagnostic.c (inform_n, error_n): New function.
35624
35625 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
35626
35627         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
35628         has no rtl yet when processing local_decls, queue it and recheck
35629         if deferred stack allocation hasn't assigned it rtl.
35630
35631 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
35632
35633         * config/sh/sh.c (unspec_bbr_uid): New.
35634         (gen_block_redirect): Use it instead of INSN_UID.
35635         (gen_far_branch): Likewise.
35636
35637 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
35638
35639         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
35640         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
35641
35642 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35643
35644         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
35645         (Warning Options): -Wno-conversion-null is valid for
35646         Objective-C++ as well.
35647         * doc/tm.texi (Named Address Spaces): Likewise.
35648         * doc/plugins.texi (Plugins): Replace TABs with spaces.
35649         * doc/tree-ssa.texi (Tree SSA): Likewise.
35650
35651 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35652
35653         PR bootstrap/43202
35654         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
35655         by default.  Don't set the default arch for
35656         i[34567]86-*-darwin*|x86_64-*-darwin*.
35657
35658 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35659
35660         PR bootstrap/43202
35661         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
35662         default.  Set the default 32bit/64bit archs with $with_arch
35663         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
35664
35665 2010-02-27  Richard Guenther  <rguenther@suse.de>
35666
35667         PR tree-optimization/43186
35668         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
35669         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
35670         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
35671         unroller iterations.
35672
35673 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35674
35675         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
35676         required and i[34567]86-*-* targets don't support 64bit ISA.
35677
35678 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
35679
35680         PR ada/43096
35681         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
35682         the same alias set.
35683
35684 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35685
35686         * config.gcc: Set the default arch at least to Prescott for
35687         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
35688         if SSE math is enabled.
35689
35690 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35691
35692         * diagnostic.c (diagnostic_initialize): Update.
35693         (diagnostic_report_diagnostic): Test inhibit_notes_p for
35694         informative notes.
35695         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
35696         (diagnostic_inhibit_notes): New.
35697         * toplev.c (process_options): inhibit notes with -fcompare-debug.
35698
35699 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35700
35701         PR c/20631
35702         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
35703         * doc/standards.texi: Likewise.
35704         * doc/extend.texi: Likewise.
35705         * doc/trouble.texi: Likewise.
35706         * doc/cppopts.texi: Likewise.
35707         * doc/install.texi: Likewise.
35708         * c.opt (std=c90,std=gnu90): New options.
35709         * c-opts.c (c_common_handle_option): Handle them.
35710
35711 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35712
35713         PR c/24577
35714         * c-decl.c (undeclared_variable): Use an informative note.
35715
35716 2010-02-26  Richard Guenther  <rguenther@suse.de>
35717
35718         PR tree-optimization/43186
35719         * gimple.h (gimple_fold): Remove.
35720         * gimple.c (gimple_fold): Remove.  Inline into single user ...
35721         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
35722         Try harder for conditions.
35723
35724 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35725
35726         PR debug/43190
35727         * function.c (used_types_insert): Don't skip through named pointer
35728         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
35729         and it is different from the main variant's type.
35730
35731 2010-02-26  Nick Clifton  <nickc@redhat.com>
35732
35733         * config/rx/rx.md (sminsi3): Remove bogus alternative.
35734
35735 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35736
35737         * config.gcc: Support --with-fpmath=sse for x86.
35738
35739         * config/i386/ssemath.h: New.
35740
35741         * doc/install.texi (--with-fpmath=sse): Documented.
35742
35743 2010-02-26  Richard Guenther  <rguenther@suse.de>
35744
35745         PR tree-optimization/43188
35746         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
35747         vector types of over-aligned element type.
35748
35749 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
35750
35751         PR target/43175
35752         * config/i386/i386.c (expand_vec_perm_blend): Use correct
35753         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
35754
35755 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
35756
35757         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
35758
35759 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35760
35761         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
35762         * var-tracking.c: Include diagnostic.h.
35763         (debug_dv): New function.
35764         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
35765
35766         PR debug/43160
35767         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
35768         (add_value_chain, add_value_chains, remove_value_chain,
35769         remove_value_chains): Handle DEBUG_EXPRs.
35770         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
35771
35772         PR debug/43161
35773         * regcprop.c (struct queued_debug_insn_change): New type.
35774         (struct value_data_entry): Add debug_insn_changes field.
35775         (struct value_data): Add n_debug_insn_changes field.
35776         (debug_insn_changes_pool): New variable.
35777         (free_debug_insn_changes, apply_debug_insn_changes,
35778         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
35779         (kill_value_one_regno): Call free_debug_insn_changes if needed.
35780         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
35781         fields.
35782         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
35783         changes for them.
35784         (copyprop_hardreg_forward_1): Don't call apply_change_group for
35785         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
35786         changes, call cprop_find_used_regs via note_stores.
35787         (copyprop_hardreg_forward): When copying vd from predecessor
35788         which has any queued DEBUG_INSN changes, make sure the pointers are
35789         cleared.  At the end call df_analyze and then if there are any
35790         DEBUG_INSN changes queued at the end of some basic block for still
35791         live registers, apply them.
35792         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
35793
35794 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
35795
35796         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
35797         (arm*-*-*): Ditto.
35798
35799 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
35800
35801         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
35802         targets.  Set the default with_cpu/with_arch from arch/cpu.
35803         Allow x86-64 and native for with_cpu/with_arch.
35804
35805 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
35806
35807         * ebitmap.c: Change calls to verify_popcount with calls to
35808         sbitmap_verify_popcount.
35809         (ebitmap_clear_bit): Fixed map->cacheindex test and
35810         map>cache update when bit clearing results in an empty
35811         element.
35812
35813 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
35814
35815         PR target/43154
35816         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
35817         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
35818         and support both V2DF and V2DI modes.
35819         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
35820         support both V2DF and V2DI modes.
35821         (general): Delete trailing whitespace from a few patterns.
35822
35823         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
35824         V2DF/V2DI interleave high/low builtins.
35825
35826         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
35827         new VSX builtins.
35828
35829         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
35830         interleave high/low functions.
35831
35832 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
35833
35834         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
35835         #pragma extern_prefix.
35836
35837 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
35838
35839         PR debug/43166
35840         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
35841         BLKmode, assert op0 is a MEM and just adjust its mode.
35842
35843         PR debug/43165
35844         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
35845         if bitpos isn't multiple of mode's bitsize.
35846
35847 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35848
35849         * c.opt (-ftemplate-depth=): New.
35850         (-ftemplate-depth-): Deprecate.
35851         * optc-gen.awk: Handle -ftemplate-depth=.
35852         * opth-gen.awk: Likewise.
35853         * c-opts.c (c_common_handle_option): Likewise.
35854         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
35855
35856 2010-02-24  Jason Merrill  <jason@redhat.com>
35857
35858         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
35859
35860 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35861
35862         * cfg.c (alloc_aux_for_block): Remove inline.
35863         (alloc_aux_for_edge): Likewise.
35864
35865 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35866
35867         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
35868
35869 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35870
35871         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
35872         * config/i386/sol2-gas.h: New file.
35873         * config.gcc (i[34567]86-*-solaris2*): Use it.
35874
35875 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35876
35877         PR c/43128
35878         * c-typeck.c (ep_convert_and_check): New.
35879         (build_conditional_expr): Use it.
35880         (build_binary_op): Likewise.
35881
35882 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
35883
35884         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
35885
35886         PR debug/43150
35887         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
35888         bounds even for -O+.
35889         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
35890         expr needs to have DECL_NAME set.
35891
35892 2010-02-24  Nick Clifton  <nickc@redhat.com>
35893
35894         * config/mep/mep.c: Include gimple.h.
35895         (mep_function_uses_sp): Delete unused function.
35896         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
35897         parameters.  Use unsigned integers to count args.  Return a
35898         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
35899
35900 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35901
35902         PR target/43107
35903         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
35904         greater or equal to nelt instead of 2 * nelt.
35905         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
35906         with nelt - 1.
35907
35908 2010-02-23  Jason Merrill  <jason@redhat.com>
35909
35910         PR debug/42800
35911         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
35912         in cfun->local_decls even if they have register types.
35913
35914         PR c++/42837
35915         * stor-layout.c (place_field): Don't warn about unnecessary
35916         DECL_PACKED if the type is packed.
35917
35918 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35919
35920         PR target/43139
35921         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
35922         GOTOFF relocs, even when the base reg isn't pic pointer.
35923
35924 2010-02-23  Michael Matz  <matz@suse.de>
35925
35926         PR debug/43077
35927         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
35928         (expand_gimple_basic_block): Generate and use debug temps if there
35929         are debug uses left after the last real use of TERed ssa names.
35930         Unlink debug immediate uses when they are expanded.
35931
35932 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35933
35934         PR 43123
35935         * config/i386/i386.c (override_options): Reorganise to provide
35936         better error messages.
35937
35938 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35939
35940         PR middle-end/43083
35941         * graphite-scop-detection.c (create_single_exit_edge): Move
35942         the call to find_single_exit_edge to....
35943         (create_sese_edges): ...here.  Don't handle multiple edges
35944         exiting the function.
35945         (build_graphite_scops): Don't handle multiple edges
35946         exiting the function.
35947
35948 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35949
35950         PR middle-end/43097
35951         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
35952         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
35953
35954 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35955
35956         PR middle-end/43026
35957         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
35958
35959 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35960
35961         PR c++/43126
35962         * c-typeck.c (convert_arguments): Print declaration location.
35963         * c-common.c (validate_nargs): Rename as
35964         builtin_function_validate_nargs.
35965         (check_builtin_function_arguments): Update.
35966
35967 2010-02-22  Richard Guenther  <rguenther@suse.de>
35968
35969         PR lto/43045
35970         * tree-inline.c (declare_return_variable): Use the type of
35971         the call stmt lhs if available.
35972
35973 2010-02-22  Duncan Sands  <baldrick@free.fr>
35974
35975         * passes.c (register_pass): Always consider all pass lists when
35976         ref_pass_instance_number is zero.
35977
35978 2010-02-22  Richard Guenther  <rguenther@suse.de>
35979
35980         PR tree-optimization/42749
35981         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
35982         parameter.  Do arithmetic in the original type.
35983         (update_accumulator_with_ops): Likewise.
35984         (adjust_accumulator_values): Adjust.
35985
35986 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35987
35988         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
35989         (QI to BLKmode splitter): New splitter.
35990
35991 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
35992
35993         * config/i386/i386.c (initial_ix86_tune_features): Turn on
35994         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
35995
35996 2010-02-22  Richard Guenther  <rguenther@suse.de>
35997
35998         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
35999
36000 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
36001
36002         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
36003         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
36004         ($(T)crti.o, $(T)crtn.o): Remove rules.
36005
36006 2010-02-21  Tobias Burnus  <burnus@net-b.de>
36007
36008         PR fortran/35259
36009         * doc/invoke.texi (-fassociative-math): Document that this
36010         option is automatically enabled for Fortran.
36011
36012 2010-02-20  David S. Miller  <davem@davemloft.net>
36013
36014         * configure.ac: Test if linker and assembler properly support
36015         GOTDATA_OP relocations.
36016         * configure: Rebuild.
36017         * config.in: Likewise.
36018         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
36019         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
36020         (movsi_high_pic): Likewise.
36021         (movdi_lo_sum_pic): Likewise.
36022         (movdi_high_pic): Likewise.
36023         (movsi_pic_gotdata_op): New pattern.
36024         (movdi_pic_gotdata_op): Likewise.
36025         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
36026         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
36027
36028 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
36029
36030         PR target/43067
36031         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
36032         attribute to ssemul.
36033         (xop_mulv2div2di3_high): Ditto.
36034
36035 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36036
36037         PR c++/35669
36038         * c.opt (Wconversion-null): New option.
36039         * doc/invoke.texi (Wconversion-null): Document.
36040
36041 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36042
36043         * common.opt (Wlarger-than-): Add Undocumented.
36044
36045 2010-02-19  Mike Stump  <mikestump@comcast.net>
36046
36047         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
36048
36049 2010-02-19  Jason Merrill  <jason@redhat.com>
36050
36051         PR target/40332
36052         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
36053         * configure: Likewise.
36054
36055 2010-02-20  Alan Modra  <amodra@gmail.com>
36056
36057         PR middle-end/42344
36058         * cgraph.h (cgraph_make_decl_local): Declare.
36059         * cgraph.c (cgraph_make_decl_local): New function.
36060         (cgraph_make_node_local): Use it.
36061         * cgraphunit.c (cgraph_function_versioning): Likewise.
36062         * ipa.c (function_and_variable_visibility): Likewise.
36063
36064 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36065
36066         PR bootstrap/43121
36067         * except.c (sjlj_emit_function_enter): Don't call
36068         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
36069         directly.
36070         * rtl.h (add_reg_br_prob_note): Remove prototype.
36071
36072 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36073
36074         PR 41779
36075         * c-common.c (conversion_warning): Remove widening conversions
36076         before checking the conversion of integers to reals.
36077
36078 2010-02-19  Mike Stump  <mikestump@comcast.net>
36079
36080         PR middle-end/43125
36081         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
36082
36083         PR objc/43061
36084         * cgraphunit.c (process_function_and_variable_attributes): Check
36085         DECL_PRESERVE_P instead of looking up attribute "used".
36086         * ipa-pure-const.c (check_decl): Likewise.
36087         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
36088         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
36089         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
36090         instead of attribute "used".
36091         * config/sol2-c.c (solaris_pragma_init): Likewise.
36092         (solaris_pragma_fini): Likewise.
36093
36094 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36095
36096         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
36097         Use XCNEW instead of xcalloc.
36098         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
36099         XNEW instead of xmalloc.
36100         (get_fields): Use XNEWVEC instead of xmalloc.
36101
36102         PR debug/43084
36103         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
36104         populate vars array.
36105         (create_new_general_access): For debug stmts just reset value.
36106         (get_stmt_accesses): For accesses within debug stmts just record them
36107         using add_access_to_acc_sites instead of preventing the peeling or
36108         counting them as accesses.
36109
36110         PR middle-end/42233
36111         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
36112
36113 2010-02-19  Richard Guenther  <rguenther@suse.de>
36114
36115         PR tree-optimization/42916
36116         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
36117         instructions.
36118
36119 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
36120
36121         * configure.ac: Replace all uses of changequote in macro arguments
36122         with proper quoting.
36123
36124 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36125
36126         PR middle-end/42233
36127         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
36128
36129 2010-02-19  Richard Guenther  <rguenther@suse.de>
36130
36131         PR tree-optimization/42944
36132         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
36133         test for aliasing with errno.
36134
36135 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36136
36137         PR middle-end/42233
36138         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
36139         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
36140         * dojump.c: Include output.h.
36141         (inv): New inline function.
36142         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
36143         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
36144         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
36145         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
36146         argument, pass it down to other calls.
36147         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
36148         add REG_BR_PROB note to the conditional jump.
36149         * cfgexpand.c (add_reg_br_prob_note): Removed.
36150         (expand_gimple_cond): Don't call it, add the probability
36151         as last argument to jumpif_1/jumpifnot_1.
36152         * Makefile.in (dojump.o): Depend on output.h.
36153         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
36154         callers.
36155         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
36156         * stmt.c (do_jump_if_equal): Likewise.
36157         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
36158         * loop-unswitch.c (compare_and_jump_seq): Likewise.
36159         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
36160         Likewise.
36161         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
36162         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
36163         jumpifnot_1 callers.
36164         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
36165         callers.
36166         (store_expr): Adjust jumpifnot caller.
36167         (store_constructor): Adjust jumpif caller.
36168
36169         PR middle-end/42233
36170         * gimplify.c (gimple_boolify): For __builtin_expect call
36171         gimple_boolify also on its first argument.
36172
36173 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
36174
36175         * configure.ac (gnu-unique-object): Wrap regexps using [] in
36176         changequote block.
36177         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
36178         * configure: Regenerated.
36179
36180 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
36181
36182         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
36183         lang_hooks.types_compatible_p instead of comptypes.
36184
36185 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
36186
36187         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
36188         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
36189         if __prefer_thumb__ is defined.
36190
36191 2010-02-18  Martin Jambor  <mjambor@suse.cz>
36192
36193         PR tree-optimization/43066
36194         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
36195         array with zero-sized element type.
36196
36197 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
36198
36199         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
36200         rtx, allocate struct var_loc_node here and return it to the
36201         caller, and only if it is actually needed.
36202         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
36203         move it earlier and return immediately if it returns NULL.
36204
36205 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
36206
36207         * config/sparc/gas.h: New file.  Restore
36208         TARGET_ASM_NAMED_SECTION to its ELF default.
36209         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
36210         check !HAVE_GNU_AS.
36211         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36212         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
36213         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
36214         after sparc/sysv4.h.
36215
36216 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
36217
36218         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
36219
36220 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
36221
36222         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
36223         patterns from predicated pattern.
36224
36225 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
36226
36227         PR target/43103
36228         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
36229         for insn mnemonic suffix.
36230
36231 2010-02-17  Richard Guenther  <rguenther@suse.de>
36232
36233         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
36234         to loop PHI nodes.
36235
36236 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
36237
36238         PR debug/42918
36239         * caller-save.c (save_call_clobbered_regs): If BB ends with
36240         a DEBUG_INSN, move any notes in between last real insn and the last
36241         DEBUG_INSN after the last DEBUG_INSN.
36242
36243 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
36244
36245         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
36246         Fix return type.  Fix argument type.  Explain meaning of return value.
36247
36248 2010-02-16  Richard Guenther  <rguenther@suse.de>
36249
36250         PR tree-optimization/41043
36251         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
36252         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
36253         statements ...
36254         (vrp_visit_phi_node): ... but only for loop PHI nodes.
36255
36256 2010-02-16  Ira Rosen  <irar@il.ibm.com>
36257
36258         PR tree-optimization/43074
36259         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
36260         * tree-vect-loop.c (vect_analyze_loop_operations): Add
36261         vectorizable cycles in hybrid SLP check.
36262         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
36263
36264 2010-02-16  Richard Guenther  <rguenther@suse.de>
36265
36266         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
36267         (true_dependence): If memrefs_conflict_p computes must-alias
36268         trust it.  Move TBAA check after offset-based disambiguation.
36269         (canon_true_dependence): Likewise.
36270
36271 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
36272
36273         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
36274         * doc/invoke.texi: Document it.
36275         * var-tracking.c: Include toplev.h and params.h.
36276         (vt_find_locations): Return bool indicating success.  Compute
36277         hash sizes unconditionally.  Check new parameter, report.
36278         (variable_tracking_main_1): Check vt_find_locations results and
36279         retry.  Renamed from...
36280         (variable_tracking_main): ... this.  New wrapper to preserve
36281         flag_var_tracking_assignments.
36282         * Makefile.in (var-tracking.o): Adjust dependencies.
36283
36284 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
36285             Jakub Jelinek  <jakub@redhat.com>
36286
36287         PR target/42854
36288         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
36289         if weak_import attribute is present.
36290         * config/darwin.c (machopic_select_section): Likewise.
36291
36292 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
36293
36294         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
36295         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
36296         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
36297         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
36298
36299         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
36300         types.
36301
36302         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
36303         Fix argument types.
36304
36305         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
36306         Rewrite text to refer to the names.
36307
36308 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
36309
36310         * config/i386/i386-builtin-types.def
36311         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
36312         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
36313         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
36314         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
36315         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
36316         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
36317         IX86_BUILTIN_VPERMIL2PS256.
36318         (MULTI_ARG_4_DF2_DI_I): Defined.
36319         (MULTI_ARG_4_DF2_DI_I1): Defined.
36320         (MULTI_ARG_4_SF2_SI_I): Defined.
36321         (MULTI_ARG_4_SF2_SI_I1): Defined.
36322         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
36323         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
36324         __builtin_ia32_vpermil2ps256.
36325         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36326         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36327         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
36328         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36329         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36330         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
36331         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
36332         CODE_FOR_xop_vpermil2v8sf3.
36333         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
36334         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
36335         * config/i386/xopintrin.h (_mm_permute2_pd): New.
36336         (_mm256_permute2_pd): New.
36337         (_mm_permute2_ps): New.
36338         (_mm256_permute2_ps): New.
36339
36340 2010-02-15  Nick Clifton  <nickc@redhat.com>
36341
36342         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
36343         boolean parameters.  Use emit_jump_insn when emitting a pop
36344         instruction containing a return insn.
36345         (push): Use 'true' rather than '1' as second parameter to F.
36346         (h8300_expand_prologue): Likewise.
36347         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
36348         (h8300_expand_epilogue): Likewise.
36349
36350 2010-02-15  Richard Guenther  <rguenther@suse.de>
36351
36352         PR middle-end/43068
36353         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
36354         if that is zero.
36355
36356 2010-02-15  Nick Clifton  <nickc@redhat.com>
36357
36358         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
36359         delta.
36360
36361 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
36362
36363         * intl.c (fake_ngettext): New function.
36364         * intl.h (fake_ngettext): Declare.
36365         (ngettext): Define macro.
36366         * collect2.c (notice_translated): New function.
36367         (main): Use notice_translated and ngettext.
36368         * collect2.h (notice_translated): Declare.
36369
36370 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
36371
36372         * reorg.c (delete_computation): Comment fixes.
36373         * caller-save.c (setup_save_areas): Idem.
36374         * sel-sched-dump.c (dump_lv_set): Idem.
36375         * rtl.def: Idem.
36376
36377 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36378
36379         * config/s390/s390.c (s390_sched_init): New function.
36380         (TARGET_SCHED_INIT): Target hook defined.
36381
36382 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
36383             Jack Howarth  <howarth@bromo.med.uc.edu>
36384             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
36385
36386         PR target/42982
36387         Partial revert of unintended change in fix for PR41605.
36388         * config/darwin.h: Fix typo.
36389         * config/darwin9.h: Same.
36390
36391 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36392
36393         * c-pch.c (pch_init): Clear v.
36394
36395 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36396
36397         PR middle-end/42930
36398         * graphite-scop-detection.c (graphite_can_represent_scev): Call
36399         graphite_can_represent_init for MULT_EXPR.
36400
36401 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36402
36403         PR middle-end/42914
36404         PR middle-end/42530
36405         * graphite-sese-to-poly.c (remove_phi): New.
36406         (translate_scalar_reduction_to_array): Call remove_phi.
36407
36408 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36409
36410         PR middle-end/42771
36411         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
36412         * graphite-clast-to-gimple.h (gloog): Update declaration.
36413         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
36414         * graphite-poly.h (struct poly_bb): Add missing comments.
36415         (struct scop): Add poly_scop_p field.
36416         (POLY_SCOP_P): New.
36417         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
36418         * graphite.c (graphite_transform_loops): Build the polyhedral
36419         representation for each scop before code generation.
36420         * sese.c (rename_variables_in_operand): Removed.
36421         (rename_variables_in_expr): Return the renamed expression.
36422         (rename_sese_parameters): New.
36423         * sese.h (rename_sese_parameters): Declared.
36424
36425 2010-02-11  Richard Guenther  <rguenther@suse.de>
36426
36427         PR tree-optimization/42998
36428         * tree-ssa-pre.c (create_expression_by_pieces): Treat
36429         POINTER_PLUS_EXPR properly.
36430
36431 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36432             Changpeng Fang  <changpeng.fang@amd.com>
36433
36434         PR middle-end/40886
36435         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
36436         the cost of an IV candidate when the IV is used in a test against zero.
36437
36438         * gcc.dg/tree-ssa/ivopts-3.c: New.
36439
36440 2010-02-11  Richard Guenther  <rguenther@suse.de>
36441
36442         PR lto/41664
36443         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
36444         pointer-vs-decl case by swapping refs.  Handle some cases
36445         of pointer-vs-decl disambiguations more conservatively.
36446         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
36447         to false after expanding.
36448
36449 2010-02-11  Richard Guenther  <rguenther@suse.de>
36450
36451         PR driver/43021
36452         * gcc.c (process_command): Handle LTO file@offset case more
36453         appropriately.
36454
36455 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36456
36457         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
36458         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
36459         of DEBUG_INSNs.
36460         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
36461
36462         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
36463         if MEM's mode size isn't DWARF2_ADDR_SIZE.
36464         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
36465         Optimize eq/ne comparisons when both arguments are known to be
36466         zero-extended.
36467         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
36468         Don't mask operands unnecessarily if they are known to be already
36469         zero-extended.
36470
36471 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
36472
36473         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
36474         instead of loop.
36475
36476 2010-02-10  Richard Guenther  <rguenther@suse.de>
36477
36478         PR tree-optimization/43017
36479         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
36480         for wrapping signed arithmetic.
36481
36482 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36483
36484         PR debug/43010
36485         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
36486         if no debug info should be emitted for it.
36487
36488 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
36489
36490         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
36491         note when flag_exceptions is set.
36492
36493 2010-02-10  Duncan Sands  <baldrick@free.fr>
36494
36495         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
36496
36497 2010-02-10  Richard Guenther  <rguenther@suse.de>
36498
36499         PR c/43007
36500         * tree.c (get_unwidened): Handle constants.
36501         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
36502
36503 2010-02-10  Martin Jambor  <mjambor@suse.cz>
36504
36505         PR lto/42985
36506         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
36507         check for variable argument counts independently.
36508
36509 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36510
36511         PR target/42841
36512         * config/sh/sh.c (find_barrier): Increase length for non delayed
36513         conditional branches.
36514
36515 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36516
36517         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
36518
36519 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36520
36521         * builtins.c (set_builtin_user_assembler_name): Also handle
36522         ffs if int is smaller than word.
36523
36524 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
36525
36526         PR middle-end/42973
36527         * ira-conflicts.c (get_dup): Remove.
36528         (process_reg_shuffles): Add new parameter.  Use it as an
36529         additional guard for copy generation.
36530         (add_insn_allocno_copies): Rewrite.
36531
36532 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
36533
36534         * common.opt (fsched2-use-traces): Preserved for backward
36535         compatibility.
36536         * doc/invoke.texi: Remove the documentation about option
36537         -fsched2-use-traces.
36538         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
36539         flag_sched2_use_traces.
36540         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
36541         the backward compatibility flag section.
36542
36543 2010-02-09  Richard Guenther  <rguenther@suse.de>
36544
36545         PR tree-optimization/43008
36546         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
36547         make HEAP variables initialized from global memory if they
36548         are not known builtin functions.
36549         (find_func_aliases): Adjust.
36550
36551 2010-02-09  Richard Guenther  <rguenther@suse.de>
36552
36553         PR tree-optimization/43000
36554         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
36555         arithmetic manually.
36556
36557 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
36558
36559         PR tree-optimization/42931
36560         * tree-loop-linear.c (try_interchange_loops): Don't call
36561         double_int_mul if estimated_loop_iterations failed.
36562
36563 2010-02-08  Martin Jambor  <mjambor@suse.cz>
36564
36565         PR middle-end/42898
36566         * tree-sra.c (build_accesses_from_assign): Do not mark in
36567         should_scalarize_away_bitmap if stmt has volatile ops.
36568         (sra_modify_assign): Do not process assigns piecemeal if if stmt
36569         has volatile ops.
36570
36571 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
36572
36573         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
36574
36575 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
36576
36577         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
36578         before the pattern.
36579
36580 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
36581
36582         PR middle-end/42946
36583         * df-core.c (df_finish_pass): Change type of saved_flags to int.
36584
36585 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36586
36587         PR middle-end/42988
36588         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
36589         to unknown_dependence.
36590         (graphite_legal_transform_dr): Handle the unknown_dependence.
36591         (graphite_carried_dependence_level_k): Same.
36592
36593 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36594
36595         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
36596
36597 2010-02-07  Richard Guenther  <rguenther@suse.de>
36598
36599         PR middle-end/42991
36600         * expr.c (get_inner_reference): Always initialize *pbitsize.
36601
36602 2010-02-07  Richard Guenther  <rguenther@suse.de>
36603
36604         PR middle-end/42956
36605         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
36606         new ARRAY_REFs on variable size element or minimal index arrays.
36607         Complete.
36608         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
36609         gimple_fold_indirect_ref.
36610
36611 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
36612
36613         PR target/42957
36614         * arm.c (arm_override_options): Just return if the user has specified
36615         an invalid fpu name.
36616
36617 2010-02-03  Jason Merrill  <jason@redhat.com>
36618
36619         PR c++/42870
36620         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
36621         i386_pe_maybe_record_exported_symbol.
36622
36623 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
36624
36625         PR target/42924
36626         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36627         (pa_delegitimize_address): New function.
36628
36629 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
36630
36631         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
36632         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
36633
36634 2010-02-05  Richard Guenther  <rguenther@suse.de>
36635
36636         PR lto/42762
36637         * lto-streamer-in.c (get_resolution): Deal with references
36638         to undefined functions.
36639
36640 2010-02-05  Richard Guenther  <rguenther@suse.de>
36641
36642         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
36643         (fold_const_aggregate_ref): Likewise.
36644         (ccp_fold_stmt): Substitute loads.
36645         (maybe_fold_reference): Verify types before substituting.
36646         Unshare properly.
36647         (fold_gimple_assign): Unshare properly.
36648         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
36649
36650 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
36651
36652         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
36653         for rs6000_gen_cell_microcode.
36654
36655 2010-02-04  Richard Guenther  <rguenther@suse.de>
36656
36657         PR rtl-optimization/42952
36658         * dse.c (const_or_frame_p): Remove MEM handling.
36659
36660 2010-02-04  Nick Clifton  <nickc@redhat.com>
36661
36662         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
36663         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
36664         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
36665         (mn10300_asm_output_mi_thunk): New function.
36666         (mn10300_can_output_mu_thunk): New function.
36667         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
36668         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
36669         (FUNCTION_ARG): Delete incorrect comment.
36670
36671 2010-02-03  Jason Merrill  <jason@redhat.com>
36672
36673         PR c++/40138
36674         * fold-const.c (operand_equal_p): Handle erroneous types.
36675
36676 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
36677
36678         * config/h8300/h8300.md (can_delay): Fix attibute condition.
36679
36680 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
36681
36682         PR rtl-optimization/42941
36683         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
36684         of xmalloc.
36685
36686 2010-02-03  Jason Merrill  <jason@redhat.com>
36687
36688         PR c++/35652
36689         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
36690
36691 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
36692
36693         PR debug/42896
36694         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
36695         (cselib_reset_table): Renamed from...
36696         (cselib_reset_table_with_next_value): ... this.
36697         (cselib_get_next_uid): Renamed from...
36698         (cselib_get_next_unknown_value): ... this.
36699         * cselib.c (next_uid): Renamed from...
36700         (next_unknown_value): ... this.
36701         (cselib_clear_table): Adjust.
36702         (cselib_reset_table): Adjust.  Renamed from...
36703         (cselib_reset_table_with_next_value): ... this.
36704         (cselib_get_next_uid): Adjust.  Renamed from...
36705         (cselib_get_next_unknown_value): ... this.
36706         (get_value_hash): Use hash.
36707         (cselib_hash_rtx): Likewise.
36708         (new_cselib_val): Adjust.  Set and dump uid.
36709         (cselib_lookup_mem): Pass next_uid as hash.
36710         (cselib_subst_to_values): Likewise.
36711         (cselib_log_lookup): Dump uid.
36712         (cselib_lookup): Pass next_uid as hash.  Adjust.
36713         (cselib_process_insn): Adjust.
36714         (cselib_init): Initialize next_uid.
36715         (cselib_finish): Adjust.
36716         (dump_cselib_table): Likewise.
36717         * dse.c (canon_address): Dump value uid.
36718         * print-rtl.c (print_rtx): Print value uid.
36719         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
36720         (dvuid): New type.
36721         (dv_uid): New function, sort of renamed from...
36722         (dv_htab_hash): ... this, reimplemented in terms of it and...
36723         (dv_uid2hash): ... this.  New.
36724         (variable_htab_eq): Drop excess assertions.
36725         (tie_break_pointers): Removed.
36726         (canon_value_cmp): Compare uids.
36727         (variable_post_merge_New_vals): Print uids.
36728         (vt_add_function_parameters): Adjust.
36729         (vt_initialize): Reset table.  Adjust.
36730
36731 2010-02-03  Richard Guenther  <rguenther@suse.de>
36732
36733         PR tree-optimization/42944
36734         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
36735         (call_may_clobber_ref_p_1): Likewise.  Properly handle
36736         malloc and calloc clobbering errno.
36737
36738 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
36739
36740         * doc/invoke.texi: Fix name of sched1 dump.
36741
36742         * opts.c (decode_options): Set flag_tree_switch_conversion
36743         only conditionally on optimize >= 2.
36744
36745         * gcse.c: Assorted comment fixes in pass description.
36746
36747 2010-02-03  Anthony Green  <green@moxielogic.com>
36748
36749         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
36750         nop padding in order to maintain alignment of storage location of
36751         target function address.
36752         (moxie_trampoline_init): Store target function address at newly
36753         aligned location.
36754         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
36755         to 32.
36756         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
36757
36758 2010-02-03  Richard Guenther  <rguenther@suse.de>
36759
36760         PR middle-end/42927
36761         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
36762
36763 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36764
36765         * config.gcc: Reenable check for obsolete targets.
36766         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
36767         mips-sgi-irix6.[0-4]*.
36768
36769 2010-02-02  Nick Clifton  <nickc@redhat.com>
36770
36771         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
36772         constant size of 4 as being the same as 0.
36773         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
36774         can take values in the range 0..4.
36775
36776 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
36777
36778         PR java/41991
36779         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
36780         as _darwin10_Unwind_FindEnclosingFunction().
36781         * libgcc-libsystem.ver: New.
36782
36783 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
36784
36785         PR target/41399
36786         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
36787         implicitly set registers.
36788
36789 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
36790
36791         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
36792         (arm_override_options): Allow automatic selection of the thread
36793         pointer register if thumb2.
36794         (legitimize_pic_address): Improve code sequences for Thumb2.
36795         (arm_call_tls_get_addr): Likewise.
36796         (legitimize_tls_address): Likewise.
36797         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
36798         (pic_load_addr_32bit): ... this.  New named pattern.
36799         * thumb2.md (pic_load_addr_thumb2): Delete.
36800         (pic_load_dot_plus_four): Delete.
36801         (tls_load_dot_plus_four): New named pattern.
36802
36803 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36804
36805         PR libgomp/29986
36806         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
36807         Document fix for TLS bug.
36808
36809 2010-01-31  Richard Guenther  <rguenther@suse.de>
36810
36811         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
36812         conservatively correct.
36813
36814 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36815
36816         PR target/42850
36817         Revert:
36818         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36819
36820         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
36821
36822 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
36823
36824         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
36825
36826 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
36827
36828         * config.gcc: Adjust order of makefile fragments for mingw targets.
36829
36830 2010-01-31  Richard Guenther  <rguenther@suse.de>
36831
36832         PR middle-end/42898
36833         * gimplify.c (gimplify_init_constructor): For volatile LHS
36834         initialize a temporary.
36835
36836 2010-01-31  Matthias Klose  <doko@ubuntu.com>
36837
36838         * configure.ac: Fix __stack_chk_fail check for cross builds configured
36839         --with-headers
36840         * configure: Regenerate.
36841
36842 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
36843
36844         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
36845         the same alias set and their sizes different constantness.
36846         (aliasing_component_refs_p): Revert 2009-10-24 change.
36847
36848 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36849
36850         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
36851         unused.
36852
36853 2010-01-29  Richard Guenther  <rguenther@suse.de>
36854
36855         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
36856         Assert we successfully updated the call.
36857
36858 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
36859
36860         PR rtl-optimization/42889
36861         * df.h (df_set_bb_dirty_nonlr): New prototype.
36862         * df-core.c (df_set_bb_dirty_nonlr): New function.
36863         * df-scan.c (df_insn_rescan): Call it instead of
36864         df_set_bb_dirty for DEBUG_INSNs.
36865
36866 2010-01-29  Richard Guenther  <rguenther@suse.de>
36867
36868         PR middle-end/37448
36869         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
36870         quadratic behavior in most cases.
36871
36872 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
36873
36874         PR target/42891
36875         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
36876         in the call to gen_x86_movsicc_0_m1.
36877
36878 2010-01-28  Richard Guenther  <rguenther@suse.de>
36879
36880         PR tree-optimization/42871
36881         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
36882
36883 2010-01-28  Richard Guenther  <rguenther@suse.de>
36884
36885         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
36886         into call arguments.
36887
36888 2010-01-28  Richard Guenther  <rguenther@suse.de>
36889
36890         PR middle-end/42883
36891         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
36892         the forwarder if the destination is an EH landing pad.
36893
36894 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
36895
36896         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
36897         block list passed to gimple_duplicate_sese_tail.
36898         (parallelize_loops): Avoid parallelization when the function
36899         has_nonlocal_label.
36900         Avoid parallelization when the preheader is IRREDUCIBLE.
36901         Try to optimize when estimated_loop_iterations_int is unresolved.
36902         Add the loop's location to the dump file.
36903         * tree-cfg.c (add_phi_args_after_redirect): Remove.
36904         (gimple_duplicate_sese_tail): Remove the check for the latch.
36905         Redirect nexits to the exit block.
36906         Remove handling of the incoming edges to the latch.
36907         Redirect the backedge from the copied latch to the exit bb.
36908
36909 2010-01-28  Michael Matz  <matz@suse.de>
36910
36911         PR target/42881
36912         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
36913         Wrap force_reg into a sequence, emit it before user.
36914
36915 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
36916
36917         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
36918         (arm_rev): New.
36919         (arm_legacy_rev): Likewise.
36920         (thumb_legacy_rev): Likewise.
36921
36922 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36923
36924         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
36925         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
36926         on MEM's address failed, try avoid_constant_pool_reference and
36927         recurse if it returned something different.
36928         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
36929         address, try avoid_constant_pool_reference and recurse if it
36930         returned something different.
36931         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
36932         address and avoid_constant_pool_reference returned something
36933         different, don't set have_address.
36934
36935 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
36936
36937         PR debug/42861
36938         * var-tracking.c (val_store): Add modified argument, obey it.
36939         Adjust callers.
36940         (count_uses): Move down logging of main.
36941         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
36942         don't need resolution.
36943         (emit_notes_in_bb): Likewise.
36944
36945 2010-01-27  Richard Guenther  <rguenther@suse.de>
36946
36947         PR middle-end/42878
36948         * tree-inline.c (remap_decl): Delay remapping of SSA name
36949         default definitions until we need them.
36950
36951 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36952
36953         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36954         (rs6000_delegitimize_address): New function.
36955
36956         * config/s390/s390.c (s390_delegitimize_address): Call
36957         delegitimize_mem_from_attrs.
36958
36959         PR middle-end/42874
36960         * tree-inline.c (cannot_copy_type_1): Removed.
36961         (copy_forbidden): Don't forbid copying of functions containing
36962         records/unions with variable length fields.
36963
36964 2010-01-27  Christian Bruel  <christian.bruel@st.com>
36965
36966         Revert:
36967         PR target/42841
36968         * config/sh/sh.c (find_barrier): Increase length for non delayed
36969         conditional branches.
36970
36971 2010-01-27  Matthias Klose  <doko@ubuntu.com>
36972
36973         * configure.ac (gnu-unique-object): Fix ldd version check.
36974         * configure: Regenerate.
36975
36976 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36977
36978         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
36979         HAVE_GNU_AS value.
36980         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
36981         Test for HAVE_GNU_AS value.
36982
36983 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36984
36985         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
36986         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
36987         INT64_TYPE): Define.
36988         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
36989         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
36990         INT_LEAST64_TYPE): Define.
36991         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
36992         UINT_LEAST64_TYPE): Define.
36993         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
36994         INT_FAST64_TYPE): Define.
36995         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
36996         UINT_FAST64_TYPE): Define.
36997         (INTMAX_TYPE, UINTMAX_TYPE): Define.
36998         (INTPTR_TYPE, UINTPTR_TYPE): Define.
36999         (SIG_ATOMIC_TYPE): Define.
37000
37001 2010-01-26  Richard Guenther  <rguenther@suse.de>
37002
37003         * df-scan.c (df_scan_set_bb_info): Remove assert.
37004         (df_insn_rescan_debug_internal): Merge asserts.
37005         (df_install_ref): Likewise.
37006         (df_mark_reg): Use bitmap_set_range.
37007         (df_hard_reg_used_p): Remove assert.
37008         (df_hard_reg_used_count): Likewise.
37009
37010 2010-01-26  Richard Guenther  <rguenther@suse.de>
37011
37012         PR rtl-optimization/42685
37013         * web.c (web_main): Ignore DEBUG_INSNs.
37014
37015 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
37016
37017         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
37018
37019         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
37020         Fix types of fndecl and arglist parameters.
37021
37022 2010-01-26  Richard Guenther  <rguenther@suse.de>
37023
37024         PR middle-end/42806
37025         * tree-eh.c (unsplit_eh): Skip debug insns.
37026
37027 2010-01-26  Richard Guenther  <rguenther@suse.de>
37028
37029         PR tree-optimization/42250
37030         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
37031
37032 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
37033
37034         PR fortran/42866
37035         * omp-low.c (expand_omp_sections): Only use single_pred if
37036         l2_bb is single_pred_p.
37037
37038 2010-01-25  Christian Bruel  <christian.bruel@st.com>
37039
37040         PR target/42841
37041         * config/sh/sh.c (find_barrier): Increase length for non delayed
37042         conditional branches.
37043         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
37044
37045 2010-01-24  David S. Miller  <davem@davemloft.net>
37046
37047         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
37048         define if not using GAS.
37049         * config/sparc/sparc.c (sparc_elf_asm_named_section):
37050         Likewise.  Delete SECTION_MERGE code, which is only applicable
37051         when using GAS.
37052
37053 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
37054
37055         PR c++/42748
37056         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
37057         mangling of va_list in system headers.
37058
37059 2010-01-23  Toon Moene  <toon@moene.org>
37060
37061         * tree-predcom.c (combine_chains): Return NULL, not false.
37062
37063 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
37064
37065         * tree-loop-distribution.c (distribute_loop): Fix declaration and
37066         initialization of variable res to agree with return type.
37067
37068 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
37069
37070         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
37071         * tree-sra.c: Add include of expr.h.
37072
37073 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
37074
37075         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
37076         insert the debug stmt on the single non-EH edge from the stmt.
37077
37078 2010-01-22  Richard Henderson  <rth@redhat.com>
37079
37080         PR tree-opt/42833
37081         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
37082         the RHS until after generate_subtree_copies has insertted its
37083         code before the current statement.
37084
37085 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
37086
37087         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
37088
37089         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
37090
37091 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37092
37093         PR tree-optimization/42585
37094         * tree-sra.c (struct access): New field grp_total_scalarization.
37095         (dump_access): Dump the new field.
37096         (should_scalarize_away_bitmap): New variable.
37097         (cannot_scalarize_away_bitmap): Likewise.
37098         (sra_initialize): Allocate new bitmaps.
37099         (sra_deinitialize): Free new bitmaps.
37100         (create_access_1): New function.
37101         (create_access): Parts moved to create_access_1.
37102         (type_consists_of_records_p): New function.
37103         (completely_scalarize_record): Likewise.
37104         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
37105         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
37106         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
37107         access.
37108         (analyze_all_variable_accesses): Completely scalarize small eligible
37109         records.
37110
37111 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37112
37113         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
37114
37115 2010-01-21  Andrew Haley  <aph@redhat.com>
37116
37117         * gcc.c (process_command): Move lang_specific_driver before
37118         setting cc_libexec_prefix.
37119
37120 2010-01-21  Richard Guenther  <rguenther@suse.de>
37121
37122         PR middle-end/19988
37123         * fold-const.c (negate_expr_p): Pretend only negative
37124         real constants are easily negatable.
37125
37126 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
37127             Jason Merrill  <jason@redhat.com>
37128
37129         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
37130         (TYPE_TRANSPARENT_AGGR): this, for union and record.
37131         * calls.c (initialize argument_information): Handle it.
37132         * c-common.c (handle_transparent_union_attribute): Use new name.
37133         * c-decl.c (finish_struct): Ditto.
37134         * c-typeck.c (type_lists_compatible_p): Ditto.
37135         (convert_for_assignment): Use new name and also handle record.
37136         * function.c (aggregate_value_p): Handle it.
37137         (pass_by_reference): Ditto.
37138         (assign_parm_data_types): Ditto.
37139         * print-tree.c (print_node): Ditto.
37140         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
37141         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
37142         * tree.c (first_field): New fn.
37143
37144 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
37145
37146         PR target/42818
37147         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
37148         even when linking statically, for now.
37149
37150 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37151
37152         PR debug/42715
37153         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
37154         without a cselib val.
37155         (count_uses): Accept MO_VAL_SET with no val on stores.
37156         (add_stores): Likewise.
37157
37158 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37159
37160         * var-tracking.c (check_value_val): Add a compile time assertion.
37161         (dv_is_decl_p): Simplify.
37162         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
37163         gcc_assert if ENABLE_CHECKING.
37164
37165 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37166
37167         PR debug/42782
37168         * var-tracking.c: Include tree-flow.h.
37169         (mem_dies_at_call): New.
37170         (dataflow_set_preserve_mem_locs): Use it.
37171         (dataflow_set_remove_mem_locs): Likewise.
37172         (dump_var): Renamed from dump_variable.  Adjust all callers.
37173         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
37174         * Makefile.in (var-tracking.o): Adjust deps.
37175
37176 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
37177
37178         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
37179
37180 2010-01-20  Richard Guenther  <rguenther@suse.de>
37181
37182         PR tree-optimization/42717
37183         * tree-ssa-dce.c (get_live_post_dom): Remove.
37184         (forward_edge_to_pdom): Take an arbitrary edge to copy
37185         degenerate PHI args from.
37186         (remove_dead_stmt): Use the first post-dominator even if it
37187         does not contain live statements as redirection destination.
37188
37189 2010-01-20  Richard Guenther  <rguenther@suse.de>
37190
37191         * tree-inline.c (estimate_num_insns): Handle EH builtins.
37192
37193 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37194
37195         * sel-sched.c (create_speculation_check): Remove set but not used
37196         variable twin.
37197         (try_transformation_cache): Remove set but not used variable ds.
37198         (calculate_privileged_insns): Remove set but not used variables
37199         cur_insn and min_spec_insn.
37200         (find_best_expr): Remove set but not used variable avail_n.
37201         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
37202         variable e.
37203         * cgraphunit.c (assemble_thunk): Remove set but not used variable
37204         false_label.
37205         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
37206         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
37207         new_scop_exit_edge.
37208
37209 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
37210
37211         PR bootstrap/42786
37212         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
37213         cpu types.  Add support for *-sse3 cpu types.
37214         (x86_64-*-*): Ditto.
37215
37216 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37217
37218         PR middle-end/42803
37219         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
37220         argument, call initializer_constant_valid_p_1 instead of
37221         initializer_constant_valid_p, pass CACHE to it, return NULL
37222         immediately if first call returns NULL.
37223         (initializer_constant_valid_p_1): New function.
37224         (initializer_constant_valid_p): Use it.
37225
37226 2010-01-20  Thomas Quinot  <quinot@adacore.com>
37227
37228         * tree.def (PLACEHOLDER_EXPR): Fix comment.
37229
37230 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37231
37232         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
37233         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
37234         (loc_list_from_tree): Don't handle unsigned division.  Handle
37235         signed modulo using DW_OP_{over,over,div,mul,minus}.
37236         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
37237         modulo instead of signed.
37238
37239 2010-01-20  DJ Delorie  <dj@redhat.com>
37240
37241         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
37242         (Fpa): Pass it
37243         (h8300_emit_stack_adjustment): Propogate it.
37244         (push): Pass it.
37245         (h8300_expand_prologue): Likewise.
37246         (h8300_expand_epilogue): Likewise.
37247
37248 2010-01-19  Michael Matz  <matz@suse.de>
37249
37250         PR tree-optimization/41783
37251         * tree-data-ref.c (toplevel): Include flags.h.
37252         (dump_data_dependence_relation):  Also dump the inputs if the
37253         result will be unknown.
37254         (split_constant_offset_1): Look through some conversions.
37255         * tree-predcom.c (determine_roots_comp): Restart a new chain if
37256         the offset from last element is too large.
37257         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
37258         (reassociate_to_the_same_stmt): Handle vector registers.
37259         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
37260         (e.g. conversions).
37261         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
37262         wide_prolog_niters argument, emit widening instructions.
37263         (vect_do_peeling_for_alignment): Adjust caller, use widened
37264         variant of the iteration cound.
37265         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
37266
37267 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37268
37269         PR target/38697
37270         * config/arm/neon-testgen.m (emit_automatics): New parameter
37271         features. Adjust for Fixed_return_reg feature.
37272         (test_intrinsic): Call emit_automatics with new feature.
37273         * config/arm/neon.ml: Update copyright years.
37274         (features): New Fixed_return_reg feature.
37275         (ops): Update feature for Vget_low.
37276
37277 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
37278
37279         PR tree-optimization/42719
37280         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
37281         stmt uses.
37282
37283         PR debug/42728
37284         * fwprop.c (all_uses_available_at): Return false if def_set dest
37285         is a REG that is used in def_insn.
37286
37287 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
37288
37289         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
37290
37291         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
37292         Add argument names.
37293
37294         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
37295
37296         * target.h (struct gcc_target) <secondary_reload>: Change type
37297         of last argument to secondary_reload_info *.
37298
37299 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
37300
37301         PR target/42774
37302         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
37303         memory references with unaligned offsets.  Remove CQImode handling.
37304         (unaligned_memory_operand): Return 1 for memory references with
37305         unaligned offsets.  Remove CQImode handling.
37306
37307 2010-01-18  Richard Guenther  <rguenther@suse.de>
37308
37309         PR middle-end/39954
37310         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
37311         builtin calls.
37312
37313 2010-01-18  Richard Guenther  <rguenther@suse.de>
37314
37315         PR tree-optimization/42781
37316         * tree-ssa-structalias.c (find_what_var_points_to): Skip
37317         restrict processing only if the original variable was artificial.
37318
37319 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
37320
37321         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
37322         find number of popped argument bytes.
37323
37324         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
37325         Fix the text that describes the return value for invalid insns.
37326
37327         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
37328
37329         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
37330         Clarify what 'cost of the -dependence' is.  Fix quoting.
37331
37332         * toplev.c (default_get_pch_validity): Rename argument to "sz".
37333         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
37334
37335 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
37336
37337         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
37338         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
37339
37340 2010-01-17  Richard Guenther  <rguenther@suse.de>
37341
37342         PR middle-end/42248
37343         * function.c (split_complex_args): Take a VEC to modify.
37344         (assign_parms_augmented_arg_list): Build a VEC instead of
37345         a chain of PARM_DECLs.
37346         (assign_parms_unsplit_complex): Take a VEC of arguments.
37347         Do not fixup unmodified parms.
37348         (assign_parms): Deal with the VEC.
37349         (gimplify_parameters): Likewise.
37350
37351 2010-01-17  Richard Guenther  <rguenther@suse.de>
37352
37353         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
37354         node existence check.
37355         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
37356         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
37357         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
37358         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
37359         (gimple_execute_on_growing_pred): Likewise.
37360
37361 2010-01-17  Richard Guenther  <rguenther@suse.de>
37362
37363         PR tree-optimization/42773
37364         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
37365         (compute_antic_aux): Likewise.
37366         (compute_partial_antic_aux): Likewise.
37367
37368 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
37369
37370         PR debug/42767
37371         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
37372         and US_TRUNCATE.
37373
37374 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
37375
37376         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
37377         appearance.
37378
37379         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
37380         Fix markup for strict argument.
37381
37382         (TARGET_SCHED_REORDER2): Fix argument types.
37383
37384         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
37385         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
37386
37387         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
37388         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
37389
37390         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
37391         Add argument name.
37392
37393         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
37394         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
37395         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
37396         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
37397         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
37398
37399         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
37400
37401         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
37402
37403         (TARGET_ASM_RELOC_RW_MASK): Add return type.
37404         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
37405
37406         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
37407
37408         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
37409         Use prototype.
37410
37411         (TARGET_ASM_NAMED_SECTION): Fix argument list.
37412
37413         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
37414         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
37415
37416         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
37417
37418         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
37419
37420         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
37421         referring to it.  Fix language.
37422
37423         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
37424
37425         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
37426
37427         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
37428
37429         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
37430
37431         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
37432         '@var{stream}.  Remove stray 'and'.
37433
37434         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
37435
37436         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
37437
37438         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
37439
37440         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
37441         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
37442
37443         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
37444         Fix description of return value.
37445         Rename argument "sz" to "len."
37446
37447         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
37448         Clarify meaning of 'true' return value.
37449
37450         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
37451
37452         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
37453         rep_mode versus mode_rep.
37454
37455         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
37456
37457         (TARGET_BUILTIN_DECL): Fix name.
37458
37459         (TARGET_COMMUTATIVE_P): Fix type of first argument.
37460
37461         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
37462
37463         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
37464
37465         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
37466
37467         (TARGET_RELAXED_ORDERING): Use @deftypevr.
37468
37469         (TARGET_GET_DRAP_RTX): Note that this is a hook.
37470         Clarify language.
37471
37472         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
37473         Rename argument tm_fn to md_fn.
37474
37475         (TARGET_OPTION_PRINT): Fix argument list.
37476
37477 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
37478
37479         PR target/42664
37480         * config/i386/i386.c (ix86_fixup_binary_operands):
37481         Revert FMA4 fixup of operands.
37482
37483 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37484
37485         PR other/42525
37486         * Makefile.in (write_entries_to_file, install-plugin):
37487         Use \012 instead of \n with tr.
37488
37489 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
37490
37491         * configure.ac (HAVE_AS_REF): New C macro.
37492         * configure: Regenerate.
37493         * config.in: Likewise.
37494         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
37495         if HAVE_AS_REF.
37496         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
37497         if HAVE_AS_REF.
37498
37499 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
37500
37501         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
37502
37503         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
37504
37505         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
37506
37507         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
37508
37509         (TARGET_IN_SMALL_DATA_P): Fix argument type.
37510
37511         (TARGET_BINDS_LOCAL_P): Fix argument type.
37512
37513         (TARGET_ASM_FILE_END): Use prototype.
37514
37515         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
37516
37517         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
37518
37519         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
37520
37521         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
37522
37523         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
37524         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
37525
37526         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
37527         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
37528
37529         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
37530         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
37531         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
37532         (TARGET_ADDR_SPACE_CONVERT): Likewise.
37533
37534         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
37535
37536         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
37537
37538         (TARGET_INIT_BUILTINS): Use prototype.
37539
37540         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
37541         Put 'const char *' in braces.  Fix parameter types.
37542         (TARGET_INVALID_CONVERSION): Fix parameter types.
37543         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
37544         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
37545
37546         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
37547         Fix argument type.
37548
37549         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
37550
37551         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
37552
37553 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
37554
37555         * doc/tm.texi (TARGET_HELP): Fix return type.
37556
37557         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
37558         in braces.  Fix argument types.
37559
37560         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
37561
37562         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
37563
37564         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
37565
37566         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
37567         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
37568
37569         (TARGET_MANGLE_TYPE): Fix argument types.
37570
37571         (TARGET_IRA_COVER_CLASSES): Use prototype.
37572
37573         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
37574
37575         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
37576
37577         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
37578
37579         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
37580
37581         (TARGET_CALLEE_COPIES): Fix argument types.
37582
37583         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
37584
37585         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
37586
37587         (TARGET_FUNCTION_VALUE): Fix argument types.
37588
37589         (TARGET_RETURN_IN_MSB): Fix argument type.
37590
37591         (TARGET_RETURN_IN_MEMORY): Fix argument types.
37592
37593         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
37594
37595         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
37596
37597         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
37598         agree with return type.
37599
37600         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
37601
37602 2010-01-15  Jing Yu  <jingyu@google.com>
37603
37604         PR rtl-optimization/42691
37605         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
37606         a pseudo to a constant and are merged, and adjust comments.
37607
37608 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
37609
37610         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
37611
37612 2010-01-15  Richard Guenther  <rguenther@suse.de>
37613
37614         PR middle-end/42739
37615         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
37616         labels of computed or non-local gotos to the destination.
37617         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
37618         landing pad label is the first label.
37619
37620 2010-01-15  Richard Guenther  <rguenther@suse.de>
37621
37622         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
37623
37624 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
37625
37626         PR target/42747
37627         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
37628         to allow generation of the xssqrtdp instruction on power7.
37629         (sqrtdf2_fpr): Ditto.
37630
37631 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37632
37633         PR middle-end/42674
37634         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
37635         functions with noreturn attribute.
37636
37637         PR c++/42608
37638         * varasm.c (declare_weak): Add weak attribute to decl if it
37639         doesn't have one already.
37640         (assemble_external): Only add decls to weak_decls if they also
37641         have weak attribute.
37642
37643 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
37644
37645         * var-tracking.c (var_reg_delete): Don't delete the association
37646         between REGs and values or one-part variables if the register
37647         isn't clobbered.
37648
37649 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37650
37651         PR debug/42657
37652         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
37653         because its first operand is a non-localized variable.
37654
37655 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37656
37657         PR tree-optimization/42706
37658         * tree-sra.c (encountered_recursive_call): New variable.
37659         (encountered_unchangable_recursive_call): Likewise.
37660         (sra_initialize): Initialize both new variables.
37661         (callsite_has_enough_arguments_p): New function.
37662         (scan_function): Call decl and flags check only for IPA-SRA, check
37663         whether there is a recursive call and whether it has enough arguments.
37664         (all_callers_have_enough_arguments_p): New function.
37665         (convert_callers): Look for recursive calls only when
37666         encountered_recursive_call is set.
37667         (ipa_early_sra): Bail out either if
37668         !all_callers_have_enough_arguments_p or
37669         encountered_unchangable_recursive_call.
37670
37671 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37672
37673         * sel-sched.c: Add 2010 to copyright years.
37674         * sel-sched-ir.c: Likewise.
37675         * sel-sched-ir.h: Likewise.
37676
37677 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37678
37679         PR tree-optimization/42714
37680         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
37681         constructors specially.
37682
37683 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37684
37685         * config/i386/drivers-i386.c (detect_caches_intel):
37686         Add l2sizekb parameter and fill in.
37687         (host_detect_local_cpu): Add l2sizekb, fill in.
37688         Add Atom small cache heuristic.
37689
37690 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37691
37692         * config/i386/drivers-i386.c (detect_caches_cpuid4):
37693         Add level3 parameter and fill in.
37694         (detect_caches_intel): Handle level3 cache.
37695
37696 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37697
37698         * config/i386/drivers-i386.c (host_detect_local_cpu):
37699         Fix core duo detection.
37700
37701 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37702
37703         * config/i386/drivers-i386.c (host_detect_local_cpu):
37704         Fix Atom detection.
37705
37706 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37707
37708         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
37709         (rs6000_variable_issue_1): this.  Use...
37710         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
37711
37712 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37713
37714         * sel-sched-ir.c (sel_restore_other_notes): Rename to
37715         sel_restore_notes.  Update all callers.  Call reemit_notes
37716         for all insns.
37717
37718 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37719
37720         PR rtl-optimization/42246
37721         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
37722         loops.
37723
37724 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37725
37726         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
37727         all successors is the same as number of successors in current region.
37728
37729 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37730
37731         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
37732         to rename is not separable.  Otherwise check that its LHS is not NULL.
37733
37734 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37735
37736         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
37737
37738 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37739
37740         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
37741         available registers when failed to discover LHS register class.
37742         Fix indentation.  Update comment.
37743
37744 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37745             Alexander Monakov  <amonakov@ispras.ru>
37746
37747         PR rtl-optimization/42389
37748         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
37749         to can_issue_more.
37750         (advance_state_on_fence): Likewise.
37751         (sel_target_adjust_priority): Print debug output only when
37752         sched_verbose >= 4, not 2.
37753         (get_expr_cost): Do not issue all unique insns on the next cycle.
37754         (fill_insns): Initialize can_issue_more from the value saved
37755         with the fence.
37756         * sel-sched-ir.c (flist_add): New parameter issue_more.
37757         Init FENCE_ISSUE_MORE with it.
37758         (merge_fences): Likewise.
37759         (init_fences): Update call to flist_add.
37760         (add_to_fences, add_clean_fence_to_fences)
37761         (add_dirty_fence_to_fences): Likewise.
37762         (move_fence_to_fences): Update call to merge_fences.
37763         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
37764         sched groups.
37765         * sel-sched-ir.h (struct _fence): New field issue_more.
37766         (FENCE_ISSUE_MORE): New accessor macro.
37767
37768 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37769
37770         PR rtl-optimization/42388
37771         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
37772         that have no predecessors nor successors.  Do not call move_bb_info
37773         for empty blocks outside of current region.
37774
37775 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37776
37777         PR rtl-optimization/42294
37778         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
37779         * sel-sched.c (move_exprs_to_boundary): Transitively add all
37780         originators' originators.
37781
37782 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37783
37784         PR rtl-optimization/39453
37785         PR rtl-optimization/42246
37786         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
37787         for pipelining_p.
37788         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
37789
37790 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37791             Alexander Monakov  <amonakov@ispras.ru>
37792
37793         PR middle-end/42245
37794         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
37795         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
37796         argument.  Update all callers.
37797         (tidy_control_flow): ... and here.  Recompute topological order
37798         of basic blocks in region if necessary.
37799         (sel_redirect_edge_and_branch): Change return type.  Return true
37800         if topological order might have been invalidated.
37801         (purge_empty_blocks): Export and move from...
37802         * sel-sched.c (purge_empty_blocks): ... here.
37803         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
37804         (maybe_tidy_empty_bb): Delete prototype.
37805         (purge_empty_blocks): Declare.
37806
37807 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37808
37809         PR rtl-optimization/42249
37810         * sel-sched.c (try_replace_dest_reg): When chosen register
37811         and original register is the same, do not bail out early, but
37812         still check all original insns for validity of replacing destination
37813         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
37814         in this case.
37815
37816 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37817
37818         PR c/42721
37819         Port from no-undefined-overflow branch:
37820         2009-03-09  Richard Guenther  <rguenther@suse.de>
37821
37822         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
37823
37824 2010-01-14  Richard Guenther  <rguenther@suse.de>
37825
37826         PR lto/42665
37827         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
37828
37829 2010-01-14  Ira Rosen  <irar@il.ibm.com>
37830
37831         PR tree-optimization/42709
37832         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
37833         as scalar type in creation of constant vector operand.
37834
37835 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37836
37837         PR testsuite/42414
37838         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
37839         (check-parallel-%): Match `testsuite' directory component only
37840         at the end.
37841
37842 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
37843
37844         PR translation/39521
37845         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
37846         strings with _().
37847
37848 2010-01-13  Richard Guenther  <rguenther@suse.de>
37849
37850         PR tree-optimization/42730
37851         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
37852         offset zero.
37853
37854 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
37855
37856         PR target/pr42542
37857         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
37858         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
37859         them signed.
37860
37861 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
37862
37863         * config/bfin/libgcc-bfin.ver: Regenerate based on current
37864         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
37865         ___umulsi3_highpart.
37866
37867         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
37868         rather than schedule_insns if the pass is enabled.
37869
37870 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37871
37872         PR tree-optimization/42704
37873         * tree-sra.c (sra_modify_assign): Do not delete assignments to
37874         SSA_NAMEs.
37875
37876 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37877
37878         PR tree-optimization/42703
37879         * tree-sra.c (analyze_access_subtree): Check that we can build a
37880         reference to the original data within the aggregate.
37881
37882 2010-01-13  Richard Guenther  <rguenther@suse.de>
37883
37884         PR tree-optimization/42705
37885         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
37886
37887 2010-01-13  Richard Guenther  <rguenther@suse.de>
37888
37889         PR middle-end/42716
37890         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
37891
37892 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
37893
37894         PR debug/41371
37895         * var-tracking.c (values_to_unmark): New variable.
37896         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
37897         values_to_unmark vector.  Moved body to...
37898         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
37899         instead queue it into values_to_unmark vector.
37900         (vt_find_locations): Free values_to_unmark vector.
37901
37902 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
37903
37904         * config/s390/s390.c (override_options): Set
37905         default of max-pending-list-length to 256
37906
37907 2010-01-13  Richard Guenther  <rguenther@suse.de>
37908
37909         PR lto/42678
37910         * tree-pass.h (PROP_gimple_lcx): New.
37911         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
37912         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
37913         before the final cleanup_eh.
37914         (dump_properties): Dump PROP_gimple_lcx.
37915         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
37916         (tree_lower_complex_O0): Remove.
37917         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
37918         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
37919         tree_lower_complex, schedule TODO_update_ssa.
37920         * lto-streamer-out.c (output_function): Stream the functions
37921         properties.
37922         * lto-streamer-in.c (input_function): Likewise.
37923         (lto_read_body): Do not override them here.
37924
37925 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
37926
37927         PR c/42708
37928         * c-typeck.c (build_c_cast): Fold value cast to union type before
37929         wrapping it in a CONSTRUCTOR.
37930
37931 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37932
37933         PR rtl-optimization/42699
37934         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
37935         involved.
37936
37937 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37938
37939         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37940         SUBTARGET_WARN_UNUSED_SPEC): Move ...
37941         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37942         SUBTARGET_WARN_UNUSED_SPEC): ... here
37943         * config/mips/iris5.h (LIBGCC_SPEC): Define.
37944
37945 2010-01-12  Julian Brown  <julian@codesourcery.com>
37946
37947         * config/arm/neon-schedgen.ml (Utils): Don't try to
37948         open missing module.
37949         (find_with_result): New.
37950
37951 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37952
37953         PR debug/42662
37954         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
37955         sharing when canonicalizing ({lt,ge}u (plus a b) b).
37956
37957         PR tree-optimization/42645
37958         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
37959         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
37960         decl_map, set processing_debug_stmt to -1 and return name without
37961         any remapping.
37962
37963 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
37964
37965         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
37966         binutils version, and reword target configuration description.
37967
37968 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
37969
37970         * config/avr/avr.h (LINKER_NAME): Remove.
37971
37972 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
37973
37974         PR target/42416
37975         * config/rs6000/rs6000.c (rs6000_override_options): On targets
37976         that support VSX, warn for -mno-altivec if vsx is not disabled,
37977         and disable vsx.
37978
37979 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
37980             Shujing Zhao  <pearly.zhao@oracle.com>
37981
37982         PR translation/42469
37983         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
37984         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
37985         character between option name and help text.
37986         * c.opt (imultilib): Likewise.
37987
37988 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
37989
37990         * lto-streamer-out.c (output_unreferenced_globals): Output static
37991         variables.
37992
37993 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
37994
37995         PR rtl-optimization/42621
37996         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
37997         optimizing for size.
37998         (duplicate_computed_gotos): Remove now-redundant check.
37999
38000 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
38001
38002         PR target/37454
38003         * configure.ac: Save and restore LDFLAGS and LIBS
38004         * configure: Regenerate.
38005
38006 2010-01-10  Richard Guenther  <rguenther@suse.de>
38007
38008         PR middle-end/42667
38009         * builtins.c (fold_builtin_strlen): Add type argument and
38010         convert the resulting length to it.
38011         (fold_builtin_1): Adjust.
38012
38013 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
38014
38015         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
38016         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
38017         1 insn.
38018         (num_insns_constant_wide): Adjust for that change.
38019
38020 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38021
38022         PR debug/42631
38023         * web.c (union_defs): Add used argument, to combine uses of
38024         uninitialized regs.
38025         (entry_register): Adjust type and tests of used argument.
38026         (web_main): Widen used for new use.  Pass it to union_defs.
38027         * df.h (union_defs): Adjust prototype.
38028
38029 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38030
38031         PR debug/42630
38032         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
38033         uses in new incoming argument.  Free body.
38034         (reset_debug_uses_in_loop): New.
38035         (analyze_insn_to_expand_var): Call the latter if the former found
38036         anything.  Fix whitespace.  Reject invalid dest overlaps before
38037         going through all insns in the loop.
38038
38039 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38040
38041         PR debug/42629
38042         * haifa-sched.c (dying_use_p): Debug insns don't count.
38043
38044 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38045
38046         PR middle-end/42363
38047         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
38048         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
38049         (verify_gimple_call): Reject LHS in noreturn calls.
38050
38051 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38052
38053         PR debug/42604
38054         PR debug/42395
38055         * tree-vect-loop-manip.c (adjust_info): New type.
38056         (adjust_vec): New pointer to vector.
38057         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
38058         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
38059         (slpeel_update_phis_for_duplicate_loop): Use them.
38060         (slpeel_update_phi_nodes_for_guard1): Likewise.
38061         (slpeel_update_phi_nodes_for_guard2): Likewise.
38062         (slpeel_tree_peel_loop_to_edge): Likewise.
38063         (vect_update_ivs_after_vectorizer): Likewise.
38064
38065 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38066
38067         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
38068         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
38069
38070 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38071
38072         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
38073         bogus uninitialized warning.
38074
38075 2010-01-09  Richard Guenther  <rguenther@suse.de>
38076
38077         PR middle-end/42512
38078         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
38079         the evolution is compatible with the initial condition.
38080
38081 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
38082
38083         * gcc.c (process_command): Update copyright notice dates.
38084         * gcov.c (print_version): Likewise.
38085         * gcov-dump.c (print_version): Likewise.
38086         * mips-tfile.c (main): Likewise.
38087         * mips-tdump.c (main): Likewise.
38088
38089 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
38090
38091         PR target/41885
38092         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
38093         (rotlhi3): Delete.
38094         (rotlhi3_8): Delete.
38095         (rotlsi3): Delete.
38096         (rotlsi3_8): Delete.
38097         (rotlsi3_16): Delete.
38098         (rotlsi3_24): Delete.
38099         (rotl<mode>3): New.
38100         (*rotw<mode>3): New.
38101         (*rotb<mode>3): New.
38102         * config/avr/avr.c (avr_rotate_bytes): New function.
38103         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
38104
38105 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
38106
38107         PR target/37454
38108         * configure.ac: Modify -rdynamic check.
38109         * configure: Regenerate.
38110
38111 2010-01-08  DJ Delorie  <dj@redhat.com>
38112
38113         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
38114         register popping order.
38115
38116 2010-01-08  Richard Guenther  <rguenther@suse.de>
38117
38118         PR lto/42528
38119         * c.opt (fsigned-char): Also let LTO handle this option.
38120         (funsigned-char): Likewise.
38121
38122 2010-01-07  Richard Guenther  <rguenther@suse.de>
38123
38124         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
38125         (gimple_op): Likewise.
38126         (gimple_op_ptr): Likewise.
38127         (gimple_assign_set_lhs): Remove gcc_assert.
38128         (gimple_assign_set_rhs1): Likewise.
38129         (gimple_assign_set_rhs2): Likewise.
38130         (gimple_call_set_lhs): Likewise.
38131         (gimple_call_set_fn): Likewise.
38132         (gimple_call_set_fndecl): Likewise.
38133         (gimple_call_fndecl): Likewise.
38134         (gimple_call_return_type): Likewise.
38135         (gimple_call_set_chain): Likewise.
38136         (gimple_call_num_args): Likewise.
38137         (gimple_call_set_arg): Likewise.
38138         (gimple_cond_set_code): Likewise.
38139         (gimple_cond_set_lhs): Likewise.
38140         (gimple_cond_set_rhs): Likewise.
38141         (gimple_cond_set_true_label): Likewise.
38142         (gimple_cond_set_false_label): Likewise.
38143         (gimple_label_set_label): Likewise.
38144         (gimple_goto_set_dest): Likewise.
38145         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
38146         (gimple_debug_bind_get_value): Likewise.
38147         (gimple_debug_bind_get_value_ptr): Likewise.
38148         (gimple_debug_bind_set_var): Likewise.
38149         (gimple_debug_bind_set_value): Likewise.
38150         (gimple_debug_bind_reset_value): Likewise.
38151         (gimple_debug_bind_has_value_p): Likewise.
38152         (gimple_return_retval_ptr): Remove gcc_assert.
38153         (gimple_return_retval): Likewise.
38154         (gimple_return_set_retval): Likewise.
38155         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
38156         (safe_referenced_var_iterator): Remove.
38157         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
38158         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
38159         (fill_referenced_var_vec): Remove.
38160         (first_readonly_imm_use): Remove redundant gcc_assert.
38161         (phi_arg_index_from_use): Combine gcc_asserts.
38162         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
38163         (first_imm_use_stmt): Remove redundant gcc_assert.
38164         * tree-cfg.c (verify_gimple_call): Verify function and chain
38165         operands.  Verify arguments.
38166         (verify_types_in_gimple_stmt): Verify condition code and labels.
38167
38168 2010-01-07  Richard Guenther  <rguenther@suse.de>
38169
38170         PR tree-optimization/42641
38171         * sese.c (rename_map_elt_info): Use the SSA name version, do
38172         not hash pointers.
38173
38174 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
38175
38176         PR tree-optimization/42625
38177         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
38178         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
38179
38180 2010-01-07  Duncan Sands  <baldrick@free.fr>
38181
38182         * Makefile.in (PLUGIN_HEADERS): Add version.h.
38183
38184 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
38185
38186         PR target/42511
38187         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
38188         note itself is not function_invariant_p.
38189
38190 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
38191
38192         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
38193         Do not add the DF_NOTE problem.
38194         * store-motion.c (execute_rtl_store_motion): Likewise.
38195
38196 2010-01-07  Martin Jambor  <mjambor@suse.cz>
38197
38198         PR tree-optimization/42157
38199         * tree-sra.c (compare_access_positions): Stabilize sort if both
38200         accesses have integer types, return zero immediately if they are the
38201         same.
38202
38203 2010-01-06  Richard Henderson  <rth@redhat.com>
38204
38205         PR middle-end/41883
38206         * haifa-sched.c (add_to_note_list): Merge into ...
38207         (concat_note_lists): ... here, and ...
38208         (unlink_other_notes, rm_other_notes): Merge into...
38209         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
38210         NOTE_INSN_EPILOGUE_BEG.
38211
38212 2010-01-06  Richard Guenther  <rguenther@suse.de>
38213
38214         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
38215         not inline regular functions into always-inline functions.
38216
38217 2010-01-06  Nick Clifton  <nickc@redhat.com>
38218
38219         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
38220         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
38221         used together.
38222         (OVERRIDE_OPTIONS): Delete.
38223         (OPTIMIZATION_OPTIONS): Define.
38224         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
38225         * config/rx/rx.c (rx_handle_option): Issue an error message if
38226         -mcpu=rx200 and -fpu are used together.
38227         (rx_set_optimization_options): New function.  Issue an error
38228         message if an optimization attribute attempts to reset the FPU/
38229         math optimization pairing.
38230         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
38231         * config/rx/rx.opt: Set the default to 32-bit doubles.
38232         * config/rx/t-rx: Add multilibs for -nofpu option.
38233         * doc/invoke.texi: Update documentation of RX options.
38234
38235 2010-01-06  Richard Guenther  <rguenther@suse.de>
38236
38237         * tree-ssa-pre.c (name_to_id): New global.
38238         (alloc_expression_id): Simplify SSA name handling.
38239         (lookup_expression_id): Likewise.
38240         (init_pre): Zero name_to_id.
38241         (fini_pre): Free it.
38242
38243 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
38244
38245         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
38246
38247 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
38248
38249         PR target/42542
38250         * config/i386/sse.md (smaxv2di3): New.
38251         (umaxv2di3): Likewise.
38252         (sminv2di3): Likewise.
38253         (uminv2di3): Likewise.
38254
38255 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
38256
38257         PR target/42564
38258         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
38259         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
38260         (legitimize_tls_address): Likewise.
38261         (sparc_tls_referenced_p): Likewise.
38262         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
38263         and adjust calls to legitimize_pic_address.
38264         (legitimate_constant_p) Use sparc_tls_referenced_p.
38265         (legitimate_pic_operand_p): Likewise.
38266         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
38267         (sparc_tls_symbol_ref_1): Delete.
38268         (sparc_tls_referenced_p): Make static, recognize specific patterns.
38269         (legitimize_tls_address): Make static, handle CONST patterns.
38270         (legitimize_pic_address): Make static, remove unused parameter and
38271         adjust recursive calls.
38272         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
38273         and adjust call to legitimize_pic_address.
38274         (sparc_output_mi_thunk): Likewise.
38275
38276 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
38277             H.J. Lu  <hongjiu.lu@intel.com>
38278
38279         PR target/42542
38280         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
38281         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
38282         operands to make them signed.
38283
38284         Revert:
38285         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38286
38287         PR target/42542
38288         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38289         GTU to GT for V4SI and V2DI.
38290
38291         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38292         (umin<mode>3): Removed.
38293         (uminv8hi3): New.
38294         (uminv4si3): Likewise.
38295
38296 2010-01-05  Martin Jambor  <mjambor@suse.cz>
38297
38298         PR tree-optimization/42462
38299         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
38300         current_function_decl to helper functions and macros.
38301
38302 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38303
38304         PR bootstrap/41771
38305         * flags.h: Don't include real.h.
38306         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
38307         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
38308         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
38309         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
38310         * dominance.c: Update copyright.
38311         * gimple.c (walk_gimple_op): Remove inline.
38312         * tree-ssa-reassoc.c: Include real.h.
38313         * Makefile.in (FLAGS_H): Remove $(REAL_H).
38314         (tree-ssa-reassoc.o): Depend on $(REAL_H).
38315
38316 2010-01-05  Nick Clifton  <nickc@redhat.com>
38317
38318         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
38319         register to push into the stack frame when the accumulator has to
38320         be saved during interrupts.
38321
38322 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
38323
38324         * doc/invoke.texi: Remove the documentation about option
38325         -Wunreachable-code.
38326         * common.opt (Wunreachable-code):  Preserved for backward
38327         compatibility.
38328         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
38329         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
38330         the backward compatibility flag section.
38331
38332 2010-01-05  Richard Guenther  <rguenther@suse.de>
38333
38334         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
38335
38336 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
38337
38338         PR other/42611
38339         * cfgexpand.c (expand_one_var): Diagnose too large variables.
38340
38341         PR tree-optimization/42508
38342         * tree-sra.c (convert_callers): Check for recursive call
38343         by comparing cgraph nodes instead of decls.
38344         (modify_function): Call ipa_modify_formal_parameters also
38345         on all same_body aliases.
38346
38347         * cgraphunit.c (cgraph_materialize_all_clones): Compare
38348         cgraph nodes when checking for same_body aliases.
38349
38350 2010-01-05  Richard Guenther  <rguenther@suse.de>
38351
38352         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
38353         allocation and lookup.
38354         (get_or_alloc_expr_for_constant): Likewise.
38355         (phi_translate): Sink allocation.
38356
38357 2010-01-04  Richard Guenther  <rguenther@suse.de>
38358
38359         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
38360         a new entry only if needed.
38361         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
38362         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
38363         hashtable lookup.
38364         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
38365         the result array.
38366         (phi_translate): Handle CONSTANTs early.
38367
38368 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38369
38370         PR tree-optimization/42398
38371         * tree-sra.c (struct access): Removed flag grp_different_types.
38372         (dump_access): Do not dump the removed flag.
38373         (sort_and_splice_var_accesses): Do not set the removed flag.
38374         (sra_modify_expr): Check for type compatibility directly.
38375
38376 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38377
38378         PR tree-optimization/42366
38379         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
38380         edges with variable number of parameters.
38381         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
38382         flag instead of asserting it.
38383         (ipa_read_node_info): Read uses_analysis_done flag.
38384
38385 2010-01-04  Richard Guenther  <rguenther@suse.de>
38386
38387         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
38388         iterative_hash_* as intended.
38389         (vn_reference_compute_hash): Likewise.  Simplify hashing
38390         SSA names.
38391         (vn_reference_lookup_2): Likewise.
38392         (vn_nary_op_compute_hash): Likewise.
38393         (vn_phi_compute_hash): Likewise.
38394         (expressions_equal_p): Remove strange code.
38395         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
38396         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
38397         (bitmap_insert_into_set_1): Take value-id as parameter.
38398         (add_to_value): Pass it.
38399         (bitmap_insert_into_set): Likewise.
38400         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
38401
38402 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
38403
38404         PR driver/42442
38405         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
38406         (do_self_spec): For switches with SWITCH_IGNORE set set also
38407         SWITCH_IGNORE_PERMANENTLY.
38408         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
38409         of SWITCH_IGNORE.
38410
38411 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
38412
38413         * lto-streamer-out.c (output_unreferenced_globals): Output the full
38414         tree of an unreferenced global var.
38415
38416 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38417
38418         PR target/42542
38419         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38420         GTU to GT for V4SI and V2DI.
38421
38422         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38423         (umin<mode>3): Removed.
38424         (uminv8hi3): New.
38425         (uminv4si3): Likewise.
38426
38427 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38428
38429         PR lto/42581
38430         * collect2.c (main): Turn on trace in collect2 if -v is passed
38431         to gcc with LTO.
38432
38433 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
38434
38435         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
38436         description of expression operand.
38437
38438 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
38439
38440         * configure.ac: Add install-html to target_list for Make-hooks.
38441         * configure: Regenerate.
38442         * fortran/Make-lang.in (F95_HTMLFILES): New.
38443         (fortran.html): Use it.
38444         (fortran.install-html): New.
38445         * Makefile.in (install-html): Add lang.install-html.
38446         * java/Make-lang.in (JAVA_HTMLFILES): New.
38447         (java.html): Use it.
38448         (java.install-html): New.
38449         * objc/Make-lang.in (objc.install-html): New.
38450         * objcp/Make-lang.in (obj-c++.install-html): New.
38451         * cp/Make-lang.in (c++.install-html): New.
38452         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
38453         * lto/Make-lang.in (lto.install-html): New.
38454
38455 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38456
38457         PR lto/42520
38458         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
38459
38460 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38461
38462         PR rtl-optimization/41862
38463         * store-motion.c (store_killed_in_insn, compute_store_table,
38464         remove_reachable_equiv_notes, replace_store_insn,
38465         build_store_vectors): Ignore all DEBUG_INSNs.
38466
38467 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38468
38469         PR lto/41564
38470         * common.opt: Add dumpdir.
38471
38472         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
38473         isn't specified.
38474         (option_map): Add --dumpdir.
38475
38476         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
38477
38478         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
38479
38480         * opts.c (decode_options): Try dump_dir_name first if
38481         dump_base_name isn't an absolute path.
38482         (common_handle_option): Handle OPT_dumpdir.
38483
38484         * toplev.c (dump_dir_name): New.
38485         (print_switch_values): Also ignore -dumpdir.
38486
38487         * toplev.h (dump_dir_name): New.
38488
38489 2010-01-03  Richard Guenther  <rguenther@suse.de>
38490
38491         PR tree-optimization/42589
38492         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
38493         double-word expansion of bswap32.
38494
38495 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38496
38497         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
38498         with BLOCK_FOR_INSN.
38499         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
38500         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
38501         noce_process_if_block): Likewise.
38502         * gcse.c (compute_local_properties, insert_expr_in_table,
38503         insert_set_in_table, canon_list_insert, find_avail_set,
38504         pre_insert_copy_insn): Likewise.
38505
38506         * basic-block.h (BLOCK_NUM): Move from here...
38507         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
38508
38509 2010-01-03  Richard Guenther  <rguenther@suse.de>
38510
38511         PR tree-optimization/42438
38512         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
38513         contains_may_not_return_call flag.
38514         (BB_MAY_NOTRETURN): New.
38515         (valid_in_sets): Trapping nary operations are not valid
38516         in blocks that may not return.
38517         (insert_into_preds_of_block): Remove check for trapping expressions.
38518         (compute_avail): Compute also BB_MAY_NOTRETURN.
38519
38520 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
38521
38522         * doc/invoke.texi: Add 2010 to copyright years.
38523
38524 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
38525
38526         * config/sparc/sparc.c: Fix formatting nits.
38527
38528 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
38529             Alexander Monakov  <amonakov@ispras.ru>
38530
38531         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
38532
38533 2010-01-02  Richard Guenther  <rguenther@suse.de>
38534
38535         PR middle-end/42577
38536         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
38537         (simplify_switch_using_ranges): Mark to be removed edges
38538         as non-executable.
38539
38540 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38541
38542         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
38543
38544         * collect2.c (scan_libraries): Add missing argument in call to
38545         scan_prog_file.
38546
38547 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
38548
38549         PR target/42448
38550         * config/alpha/predicates.md (aligned_memory_operand): Return false
38551         for CQImode.
38552         (unaligned_memory_operand): Return true for CQImode.
38553         * config/alpha/alpha.c (get_aligned_mem): Assert that location
38554         doesn not cross aligned SImode word boundary.
38555
38556 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
38557
38558         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
38559         Remove.
38560         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
38561         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
38562
38563 2010-01-02  Richard Guenther  <rguenther@suse.de>
38564
38565         PR lto/41597
38566         * toplev.c (compile_file): Emit LTO marker properly.  Change
38567         it to __gnu_lto_v1.
38568         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
38569
38570 2010-01-01  Richard Guenther  <rguenther@suse.de>
38571
38572         PR debug/42455
38573         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
38574
38575 2010-01-01  Richard Guenther  <rguenther@suse.de>
38576
38577         PR c/42570
38578         * c-decl.c (grokdeclarator): For zero-size arrays force
38579         structural equality checks as layout_type does.
38580
38581 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38582
38583         * builtins.c: Update copyright to 2010.
38584
38585 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38586
38587         PR lto/42531
38588         * lto-streamer-out.c (produce_asm): Revert the last change.
38589         (copy_function): Likewise.
38590
38591         * lto-streamer.c (lto_get_section_name): Skip any leading
38592         asterisk in name.
38593
38594 2010-01-01  Richard Guenther  <rguenther@suse.de>
38595
38596         PR middle-end/42559
38597         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
38598         for LABEL_DECLs.
38599
38600 \f
38601 Copyright (C) 2010 Free Software Foundation, Inc.
38602
38603 Copying and distribution of this file, with or without modification,
38604 are permitted in any medium without royalty provided the copyright
38605 notice and this notice are preserved.