OSDN Git Service

* config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2
3         * config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
4         config/sparc/linux.h, config/sparc/linux64.h: Remove comments
5         mentioning /lib/elf.
6
7 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
8
9         * config/bfin/bfin.h (LINK_SPEC): Remove %{b}.
10         * config/frv/frv.h (LINK_SPEC): Remove %{b}.
11         * config/i386/netware.h (LINK_SPEC): Remove %{b}.
12         * config/i386/nto.h (LINK_SPEC): Remove %{b}.
13         * config/lm32/uclinux-elf.h (LINK_SPEC): Remove %{b}.
14         * config/sol2.h (LINK_SPEC): Remove %{b}.
15         * config/svr4.h (LINK_SPEC): Remove %{b}.
16
17 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
18
19         * config/i386/freebsd.h (LINK_SPEC): Cut long comment.
20         * config/i386/linux.h (LINK_SPEC): Cut long comment.
21         * config/i386/netware.h (LINK_SPEC): Remove %{V}.
22         * config/m32r/linux.h (LINK_SPEC): Cut long comment.
23         * config/m68k/linux.h (LINK_SPEC): Cut long comment.
24         * config/sparc/linux.h (LINK_SPEC): Cut long comment.
25         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
26         * config/sparc/linux64.h (LINK_SPEC): Cut long comment.
27         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
28         * config/sparc/netbsd-elf.h (ASM_SPEC): Remove %{V} and
29         %{v:%{!V:-V}}.
30
31 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
32
33         * gcc.c (trad_capable_cpp, default_compilers): Don't handle
34         -ftraditional.
35
36 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
37
38         * config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
39         * config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
40         * config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
41         * config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
42         * config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
43         * config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
44         * config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
45         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
46         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
47         * config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
48         * config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
49         * config/sol2.h (ASM_SPEC): Don't handle -Wa,.
50         * config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
51         * config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
52         * config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
53         * config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
54         * config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
55         * config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.
56
57 2010-12-02  Paul Koning  <ni1d@arrl.net>
58
59         * config/pdp11/pdp11.c (output_jump): Map unsigned to signed
60         opcodes if CC_NO_OVERFLOW is set.
61         (notice_update_cc_on_set): Correct setting of CC0 as a side
62         effect; set CC_NO_OVERFLOW for cases where C flag is not
63         meaningful.
64
65 2010-12-02  Ian Lance Taylor  <iant@google.com>
66
67         * doc/install.texi (Configuration): Update default for
68         --with-boot-ldflags.
69
70 2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>
71
72         PR c/45062
73         * c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
74         !funcdef_flag.
75
76 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
77
78         PR tree-optimization/45199
79         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
80         (stores_zero_from_loop): Call
81         mem_write_stride_of_same_size_as_unit_type_p.
82         * tree-data-ref.h (stride_of_unit_type_p): New.
83         * tree-loop-distribution.c (generate_memset_zero): Simplified.
84         Call stride_of_unit_type_p.
85         (build_rdg_partition_for_component): Do not call
86         rdg_flag_similar_memory_accesses when
87         flag_tree_loop_distribute_patterns is set.
88
89 2010-12-02  Richard Guenther  <rguenther@suse.de>
90
91         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
92         sign-changing conversions for induction detection.
93
94 2010-12-02  Richard Guenther  <rguenther@suse.de>
95
96         PR tree-optimization/46723
97         * tree-vect-loop.c (get_initial_def_for_induction): Strip
98         conversions from the induction evolution and apply it to
99         the result instead.
100         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
101         assigns for induction defs.
102
103 2010-12-02  Richard Guenther  <rguenther@suse.de>
104
105         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
106         the case we need to split the edge and not the block.
107
108 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
109
110         DFA model for Core 2 and Core i7 scheduling.
111
112         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
113         * config/i386/i386.c (ix86_option_override_internal): Update entries
114         for Core 2 and Core i7.
115         (ix86_issue_rate): Set issue rate to 3 [be realistic].
116         * config/i386/i386.md: Include "core2.md".
117         (define_attr cpu): Add "corei7".
118
119 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
120
121         Define tuning for Core 2 and Core i7.
122
123         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
124         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
125         (m_CORE2): Replace with m_CORE2_{32,64}.
126         (m_CORE2I7{,_32,_64}): New macros.
127         (m_GENERIC32, m_GENERIC64): Update.
128         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
129         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
130         set m_CORE2I7_64 iff m_GENERIC64.
131         (processor_target_table): Use generic costs for Core 2 and Core i7.
132         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
133         (ix86_issue_rate): Remove entry for Core 2.
134         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
135         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
136         (TARGET_CORE2): Update.
137         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
138         (PROCESSOR_CORE2): Remove.
139
140 2010-12-02  Richard Guenther  <rguenther@suse.de>
141
142         * lto-streamer.h (LTO_major_version): Bump to 2.
143
144 2010-12-02  Richard Guenther  <rguenther@suse.de>
145
146         PR lto/44871
147         * gimple.c (canonical_type_hash_cache): New hashtable.
148         (gimple_type_hash): Make a wrapper around ...
149         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
150         (gimple_canonical_type_hash): Likewise.
151         (gtc_visit): Take a gtc_mode argument.
152         (gimple_types_compatible_p_1): Likewise. Do not compare struct
153         tag names or field names when computing canonical types.
154         (gimple_types_compatible_p): Adjust.
155         (visit): Take a gtc_mode argument.
156         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
157         names or field names when computing hashes of canonical types.
158         (gimple_register_canonical_type): Use gimple_canonical_type_hash
159         for the hash.
160         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
161         (free_gimple_type_tables): Free canonical_type_hash_cache.
162
163 2010-12-02  Richard Guenther  <rguenther@suse.de>
164             Ira Rosen  <irar@il.ibm.com>
165
166         PR tree-optimization/46663
167         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
168         FUNCTION_DECL exists and that it's a builtin.
169
170 2010-12-02  Jie Zhang  <jie@codesourcery.com>
171
172         PR middle-end/46674
173         * varasm.c (compute_visible_aliases): Handle user set
174         assembler name.
175
176 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
177
178         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
179         thinko regarding setting -mno-<xxx> debug switches.
180         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
181
182 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
183
184         * intl.c: Don't include tm.h.
185         * Makefile.in (intl.o): Don't depend on $(TM_H).
186
187 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
188
189         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
190         unused warning.
191         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
192
193 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
194
195         * graphite-sese-to-poly.c (analyze_drs): Removed.
196         (build_scop_drs): Do not call analyze_drs.
197         (analyze_drs_in_stmts): New.
198         (insert_stmts): New.
199         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
200         (insert_out_of_ssa_copy_on_edge): Same.
201         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
202         (rewrite_phi_out_of_ssa): Same.
203         (rewrite_cross_bb_scalar_dependence): Same.
204         (split_reduction_stmt): Move data references in the new basic blocks.
205         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
206
207 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
208
209         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
210
211 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
212
213         PR middle-end/45297
214         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
215         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
216         * graphite-poly.h (new_poly_bb): Update declaration.
217         (gbb_from_bb): Moved here...
218         (pbb_from_bb): New.
219         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
220         Removed.
221         (graphite_stmt_p): Removed.
222         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
223         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
224         new_poly_bb.
225         (build_scop_bbs_1): Do not pass in sbitmap reductions.
226         (build_scop_bbs): Same.
227         (gbb_from_bb): ... from here.
228         (add_conditions_to_constraints): Moved up.
229         (analyze_drs): New.
230         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
231         not contain data references.
232         (new_pbb_from_pbb): New.
233         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
234         block is split.
235         (rewrite_close_phi_out_of_ssa): Update call to
236         insert_out_of_ssa_copy_on_edge.
237         (rewrite_reductions_out_of_ssa): Now static.
238         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
239         (split_pbb): New.
240         (split_reduction_stmt): Call split_pbb.
241         (translate_scalar_reduction_to_array): Pass in the scop, do not
242         pass in the sbitmap reductions.
243         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
244         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
245         (rewrite_commutative_reductions_out_of_ssa): Same.
246         (build_poly_scop): Call build_scop_bbs,
247         rewrite_commutative_reductions_out_of_ssa,
248         rewrite_reductions_out_of_ssa, and
249         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
250         before scop_to_lst.
251         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
252         Removed declaration.
253         (rewrite_reductions_out_of_ssa): Same.
254         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
255         (build_scop_bbs): Same.
256         * graphite.c (graphite_transform_loops): Do not initialize reductions.
257         Do not call build_scop_bbs,
258         rewrite_commutative_reductions_out_of_ssa,
259         rewrite_reductions_out_of_ssa, and
260         rewrite_cross_bb_scalar_deps_out_of_ssa.
261         * sese.h (struct gimple_bb): Add field pbb.
262         (GBB_PBB): New.
263
264 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
265
266         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
267         New.
268         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
269         handle_scalar_deps_crossing_scop_limits.
270         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
271         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
272
273 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
274
275         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
276         when replacing a constant in an ADDR_EXPR.
277
278 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
279
280         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
281         for the stride.
282         (lst_do_strip_mine): Same.
283         (scop_do_strip_mine): Same.
284         * graphite-poly.c (apply_poly_transforms): Update call to
285         scop_do_strip_mine.
286         * graphite-poly.h (scop_do_strip_mine): Update declaration.
287
288 2010-12-01  Jan Hubicka  <jh@suse.cz>
289
290         * tree.c (build_common_builtin_nodes): Do not initialize
291         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
292         * builtins.c (expand_builtin_profile_func): Remove.
293         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
294         BUILT_IN_PROFILE_FUNC_EXIT.
295         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
296         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
297         * gimplify.c (gimplify_function_tree): Reorganize code calling
298         profiling functions.
299
300 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
301
302         * opts.c: Expand comment on tm.h include.
303
304 2010-12-01  Yao Qi  <yao@codesourcery.com>
305
306         * config/arm/predicates.md ("vfp_register_operand"): Return true for
307         VFP_D0_D7_REGS classes.
308
309 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
310
311         * common.opt (flag_stack_check): New Variable entry.
312         (fcompare-debug-second): Use Var.
313         * flags.h (flag_compare_debug, flag_stack_check): Remove.
314         * opts.c (flag_compare_debug): Remove.
315         (common_handle_option): Don't handle OPT_fcompare_debug_second.
316         Set opts->x_flag_stack_check for OPT_fstack_check_.
317         * toplev.c (flag_stack_check): Remove.
318
319 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
320
321         * common.opt (main_input_filename, main_input_basename,
322         main_input_baselength): New Variable entries.  From toplev.c.
323         * final.c (output_quoted_string): Move from toplev.c.
324         * output.h (output_quoted_string): Move from toplev.h.
325         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
326         access main_input_filename, main_input_baselength and
327         main_input_basename.
328         * targhooks.c: Include intl.h and opts.h.
329         (option_affects_pch_p, default_get_pch_validity): Move from
330         toplev.c.
331         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
332         Move from toplev.h.
333         * toplev.c (main_input_filename, main_input_basename,
334         main_input_baselength): Move to common.opt.
335         (output_quoted_string): Move to final.c.
336         (warn_deprecated_use): Move to tree.c.
337         (option_affects_pch_p, default_get_pch_validity,
338         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
339         * toplev.h (skip_leading_substring): Move to tree-dump.c.
340         (warn_deprecated_use): Move to tree.h.
341         (output_quoted_string): Move to output.h.
342         (main_input_filename, main_input_basename, main_input_baselength):
343         Move to common.opt.
344         (default_get_pch_validity, default_pch_valid_p): Move to
345         targhooks.c.
346         * tree-dump.c (skip_leading_substring): Move from toplev.h.
347         * tree.c (warn_deprecated_use): Move from toplev.c.
348         * tree.h (warn_deprecated_use): Move from toplev.h.
349         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
350         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
351         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
352         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
353         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
354         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
355         config/mcore/mcore.c, config/mep/mep.c,
356         config/microblaze/microblaze.c, config/mips/mips.c,
357         config/mmix/mmix.c, config/mn10300/mn10300.c,
358         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
359         config/picochip/picochip.c, config/s390/s390.c,
360         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
361         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
362         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
363         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
364         varasm.c, xcoffout.c: Don't include toplev.h.
365         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
366         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
367         varasm.o, xcoffout.o): Update dependencies.
368         * config/arm/t-arm (arm.o): Update dependencies.
369         * config/spu/t-spu-elf (spu.o): Update dependencies.
370
371 2010-12-01  Richard Guenther  <rguenther@suse.de>
372
373         PR tree-optimization/46730
374         * value-prof.c (gimple_ic): Always generate a separate merge BB.
375
376 2010-11-30  Ian Lance Taylor  <iant@google.com>
377
378         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
379         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
380         * config/i386/linux64.h (ASM_SPEC): Likewise.
381         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
382         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
383         * config/i386/vxworks.h (ASM_SPEC): Likewise.
384         * config/i386/x86-64.h (ASM_SPEC): Likewise.
385         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
386         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
387
388 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
389
390         * c-decl.c (finish_function): Call objc_finish_function in
391         Objective-C.
392         * c-typeck.c (convert_for_assignment): Do not call
393         objc_type_quals_match().
394
395 2010-11-30  Richard Guenther  <rguenther@suse.de>
396
397         PR tree-optimization/46722
398         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
399         operands as arguments.
400         (execute_optimize_widening_mul): Also handle power of two as
401         multiplication.
402
403 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
404
405         PR middle-end/46709
406         * cgraphunit.c (process_function_and_variable_attributes): Fix
407         cut'n'pasteo.
408
409 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
410
411         * hwint.c:  New.  Extracted from toplev.c.
412         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
413         Move from toplev.h.
414         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
415         Move to hwint.c.
416         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
417         Move to hwint.h.
418         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
419         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
420         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
421         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
422         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
423         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
424         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
425         tree-vrp.c: Don't include toplev.h.
426         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
427         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
428         toplev.h in generated output.
429         * Makefile.in (OBJS-common): Add hwint.o.
430         Dependencies for above files changed to remove toplev.h.
431         (hwint.o): New.
432         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
433         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
434         toplev.h.
435         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
436         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
437
438 2010-11-30  Richard Guenther  <rguenther@suse.de>
439
440         PR tree-optimization/46717
441         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
442         call.  Manually create EH edges for the direct call and update
443         target PHI nodes.
444
445 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
446
447         * diagnostic-core.h: Include bversion.h.
448         * toplev.h: Don't include input.h or bversion.h.
449         (parse_optimize_options): Don't declare here.
450         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
451         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
452         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
453         config/host-darwin.c, config/i386/host-cygwin.c,
454         config/i386/host-mingw32.c, config/i386/msformat-c.c,
455         config/i386/netware.c, config/i386/nwld.c,
456         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
457         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
458         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
459         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
460         config/score/score3.c, config/score/score7.c,
461         config/sh/symbian-base.c, config/sh/symbian-c.c,
462         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
463         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
464         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
465         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
466         graphite-blocking.c, graphite-clast-to-gimple.c,
467         graphite-dependences.c, graphite-flattening.c,
468         graphite-interchange.c, graphite-poly.c,
469         graphite-scop-detection.c, graphite.c, haifa-sched.c,
470         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
471         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
472         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
473         lto-opts.c, lto-section-in.c, lto-section-out.c,
474         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
475         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
476         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
477         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
478         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
479         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
480         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
481         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
482         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
483         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
484         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
485         include toplev.h.
486         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
487         toplev.h.  Dependencies for above files and c-family files changed
488         to remove $(TOPLEV_H) or toplev.h.
489         (C_TREE_H): Don't include $(TOPLEV_H).
490         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
491         bversion.h.
492         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
493         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
494         config/t-darwin, config/t-sol2,
495         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
496         Dependencies for above files changed to remove $(TOPLEV_H) or
497         toplev.h.
498
499 2010-11-30  Richard Guenther  <rguenther@suse.de>
500
501         PR lto/44986
502         * gcc.c (main): Use the first input with a compiler as infile
503         for link spec processing.
504
505 2010-11-30  Richard Guenther  <rguenther@suse.de>
506
507         PR lto/45949
508         * cgraphunit.c (ipa_passes): Stop after errors from
509         small IPA passes.
510
511 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
512
513         * gcc-plugin.h: Include coretypes.h.
514         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
515
516 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
517
518         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
519         * ggc-none.c (ggc_internal_alloc_zone_stat)
520         (ggc_internal_cleared_alloc_zone_stat): New.
521
522 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
523
524         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
525         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
526         (rs6000_emit_prologue): Don't set PIC register if
527         TARGET_SINGLE_PIC_BASE.
528         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
529         * doc/invoke.texi (msingle-pic-base): Document.
530
531 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
532
533         PR driver/46712
534         * exec-tool.in (id): New.
535         Check and export LT_RCU_$id instead of LT_RCU.
536
537 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
538
539         PR tree-optimization/46675
540         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
541         in offset calculation.
542
543 2010-11-29  Jan Hubicka  <jh@suse.cz>
544
545         * collect2.c (main): Do not imply verbose output with
546         LTO and linker plugin.
547
548 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
549
550         * dwarf2out.c (print_die): Print the address of the current DIE or
551         of any DIE referenced by the current one.
552
553 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
554
555         PR debug/46101
556         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
557         function.
558         (scope_die_for, gen_type_die_for_member): Replace uses of
559         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
560
561 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
562
563         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
564         (darwin_asm_declare_object_name): Correct spelling.
565         (darwin_output_aligned_bss): Likewise.
566
567 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
568             Mike Stump  <mrs@gcc.gnu.org>
569
570         PR target/26427
571         PR target/33120
572         PR testsuite/35710
573         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
574         (ASM_OUTPUT_LOCAL): Likewise.
575         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
576         (darwin_output_aligned_bss): Likewise.
577         (darwin_asm_output_aligned_decl_local): Likewise.
578         (darwin_asm_output_aligned_decl_common): Likewise.
579         (darwin_use_anchors_for_symbol_p): Likewise.
580         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
581         (TARGET_ASM_OUTPUT_ANCHOR): Define.
582         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
583         (DARWIN_SECTION_ANCHORS): Set to 1.
584         * config/darwin.c (emit_aligned_common): New var.
585         (darwin_init_sections): Check that the Darwin private zero-size section
586         marker is in range.
587         (darwin_text_section): Check for zero-sized objects.
588         (darwin_mergeable_string_section): Likewise.
589         (darwin_mergeable_constant_section): Likewise.
590         (machopic_select_section): Adjust to check for zero-sized objects.
591         Assert that OBJC meta data are non-zero sized.
592         (darwin_asm_declare_object_name): New.
593         (darwin_asm_declare_constant_name): Adjust for zero-sized
594         object sections.
595         (BYTES_ZFILL): Define.
596         (darwin_emit_weak_or_comdat): New.
597         (darwin_emit_local_bss): New.
598         (darwin_emit_common): New.
599         (darwin_output_aligned_bss): New.
600         (darwin_asm_output_aligned_decl_common): New.
601         (darwin_asm_output_aligned_decl_local): New.
602         (darwin_file_end): Disable subsections_via_symbols when section
603         anchoring is active.
604         (darwin_asm_output_anchor): Re-enable.
605         (darwin_use_anchors_for_symbol_p): New.
606         (darwin_override_options): Check for versions that can emit
607         aligned common.  Update usage of flags to current.
608         * config/darwin-sections.def: Update comments and flags for
609         non-anchor sections.  zobj_const_section, zobj_data_section,
610         zobj_bss_section, zobj_const_data_section: New.
611         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
612         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
613         (L2_MAX_OFILE_ALIGNMENT): Define.
614         (ASM_OUTPUT_ALIGNED_BSS): Define.
615         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
616         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
617         (SECTION_NO_ANCHOR): Define.
618         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
619         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
620
621 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
622
623         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
624         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
625         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
626         Conditionally define.
627         (GET_ENVIRONMENT): Poison.
628         * configure.ac: Don't test for mincore.
629         * configure: Regenerate.
630         * config.in: Regenerate.
631         * collect2-aix.c: Don't include <sys/mman.h>.
632         * collect2.c: Don't include <signal.h>.
633         (SIGCHLD): Don't define.
634         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
635         * config/alpha/alpha.c: Include "splay-tree.h" instead of
636         <splay-tree.h>.
637         * config/arm/arm.c (arm_target_help): Use getenv instead of
638         GET_ENVIRONMENT.
639         * config/avr/driver-avr.c: Don't include <stdlib.h>.
640         * config/frv/frv.c: Don't include <ctype.h>.
641         * config/host-darwin.c: Don't include <sys/mman.h>.
642         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
643         (MAP_FAILED): Don't define.
644         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
645         * config/host-solaris.c: Don't include <sys/mman.h>.
646         * config/i386/cygming.h: Don't include <stdio.h>.
647         * config/i386/driver-i386.c: Don't include <stdlib.h>.
648         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
649         * config/iq2000/iq2000.c: Don't include <signal.h>.
650         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
651         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
652         * config/mep/mep-pragma.c: Don't include <stdio.h>.
653         * config/microblaze/microblaze.c: Don't include <signal.h>.
654         * config/mips/mips.c: Don't include <signal.h>.
655         * config/rs6000/host-darwin.c: Don't include <signal.h>.
656         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
657         * defaults.h (GET_ENVIRONMENT): Don't define.
658         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
659         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
660         (SIGCHLD, MAP_FAILED, kill): Don't define.
661         (process_command): Use getenv instead of GET_ENVIRONMENT.
662         * genhooks.c: Don't include <string.h>.
663         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
664         <sys/types.h>.
665         (MAP_FAILED): Don't define.
666         * ggc-page.c Don't include <sys/mman.h>.
667         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
668         * ggc-zone.c: Don't include <sys/mman.h>.
669         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
670         * graph.c: Include "config.h" instead of <config.h>.
671         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
672         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
673         (SIGCHLD, kill): Don't define.
674         * mips-tfile.c: Don't include <signal.h>.
675         * opts.c: Don't include <signal.h> or <sys/resource.h>.
676         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
677         * passes.c: Don't include <signal.h>, <sys/resource.h> or
678         <sys/times.h>.
679         * sparseset.h: Don't include <assert.h>.
680         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
681         * tlink.c: Don't include "libiberty.h".
682         * toplev.c: Don't include <signal.h> or <sys/times.h>.
683         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
684         * tree-switch-conversion.c: Don't include <signal.h>.
685         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
686
687 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
688
689         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
690         c_parser_objc_try_catch_finally_statement for consistency with the
691         C++ parser.  Parse @catch(...) and pass NULL_TREE to
692         objc_begin_catch_clause() in that case.  Improved error recovery.
693         Reorganized code to be almost identical to
694         cp_parser_objc_try_catch_finally_statement.
695
696 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
697
698         PR tree-optimization/46621
699         * gimple.h: Don't include tm.h or hard-reg-set.h .
700         * Makefile.in (GIMPLE_H): Remove $(TM_H).
701
702         PR bootstrap/44756
703         * cppbuiltin.c: Include target.h .
704         (define_builtin_macros_for_type_sizes):
705         Use targetm.float_words_big_endian.
706
707 2010-11-27  Jan Hubicka  <jh@suse.cz>
708
709         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
710         and output cold_text_section_label.
711         (dwarf2out_init): Don't do that there.
712         (dwarf2out_finish): Handle cold section end label only if cold
713         section was used.
714
715 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
716
717         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
718         VLA variables.
719
720 2010-11-27  Richard Guenther  <rguenther@suse.de>
721
722         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
723         (gimple_assign_ssa_name_copy_p): Likewise.
724         (gimple_assign_unary_nop_p): Use is_gimple_assign.
725         (is_gimple_cast): Remove.
726         (gimple_assign_single_p): Move ...
727         * gimple.h (gimple_assign_single_p): ... here.
728         (is_gimple_cast): Remove.
729         (gimple_assign_rhs_code): Simplify.
730         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
731         instead of is_gimple_cast.
732         * ipa-type-escape.c (look_for_casts): Likewise.
733
734 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
735
736         * doc/options.texi (Enum, EnumValue): Document new record types.
737         (Enum): Document new option flag.
738         * opt-functions.awk
739         * optc-gen.awk: Handle enumerated option arguments.
740         * opth-gen.awk: Handle enumerated option arguments.
741         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
742         enum_value_to_arg): New.
743         (decode_cmdline_option): Handle enumerated arguments.
744         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
745         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
746         * opts.c (print_filtered_help, print_specific_help): Take
747         lang_mask arguments.
748         (print_filtered_help): Handle printing values of enumerated
749         options.  Print possible arguments for enumerated options.
750         (print_specific_help): Update call to print_filtered_help.
751         (common_handle_option): Update calls to print_specific_help.  Use
752         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
753         handle OPT_ffp_contract_, OPT_fexcess_precision_,
754         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
755         OPT_fira_region_ here.
756         * opts.h (enum cl_var_type): Add CLVC_ENUM.
757         (struct cl_option): Add var_enum.
758         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
759         struct cl_enum, cl_enums, cl_enums_count): New.
760         (CL_ERR_ENUM_ARG): Define.
761         (CL_ERR_NEGATIVE): Update value.
762         (enum_value_to_arg): Declare.
763         * common.opt (flag_ira_algorithm, flag_ira_region,
764         flag_fp_contract_mode, flag_excess_precision_cmdline,
765         default_visibility, flag_tls_default): Remove Variable entries.
766         (help_enum_printed): New Variable.
767         (fdiagnostics-show-location=): Use Enum.  Add associated
768         SourceInclude, Enum and EnumValue entries.
769         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
770         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
771         associated Enum and EnumValue entries.
772
773 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
774
775         PR target/46623
776         * config/microblaze/microblaze.c (microblaze_block_move_straight):
777         Use XALLOCAVEC.
778         (microblaze_option_override): Don't use C++ style comments.
779         (save_restore_insns): Remove unused variable base_offset.
780         (microblaze_expand_prologue): Remove unused variable insn.
781         (microblaze_secondary_reload): Adjust type to match target.h .
782         (microblaze_elf_in_small_data_p): Move declarations to start of block.
783         (microblaze_expand_move): Likewise.
784         * config/microblaze/microblaze.h (LARGE_INT):
785         Avoid signed / unsigned comparisons.
786         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
787         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
788         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
789
790 2010-11-26  Michael Matz  <matz@suse.de>
791
792         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
793
794         * passes.c (init_optimization_passes): Remove superfluous
795         copy-prop pass.
796
797 2010-11-26  Richard Guenther  <rguenther@suse.de>
798
799         PR lto/46648
800         * gimple.c (gtc_visit): Do not return true for members of an
801         SCC still being processed but the current lattice value of
802         the member.  Treat SCC members comparison state as lattice,
803         starting at equal, eventually dropping to unequal.
804         (gimple_types_compatible_p_1): Likewise.
805
806 2010-11-26  Richard Guenther  <rguenther@suse.de>
807
808         PR middle-end/46559
809         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
810         for location list processing.
811
812 2010-11-26  Richard Guenther  <rguenther@suse.de>
813
814         PR lto/46560
815         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
816         flags manually.
817
818 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
819
820         * config/s390/s390.c (print_operand_address): Replace assert with
821         error message.
822         (print_operand): Replace assertions, gcc_unreachable and
823         fatal_insn with error messages.
824
825 2010-11-26  Richard Guenther  <rguenther@suse.de>
826
827         PR tree-optimization/46665
828         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
829
830 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
831
832         * config/arm/arm.c (arm_option_override): enable loop array
833         prefetching at -O3 for suitable targets, and configure params.
834         * config/arm/arm-protos.h (struct tune_params): Add fields for
835         configuring loop array prefetching.
836
837 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
838
839         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
840
841 2010-11-26  Richard Guenther  <rguenther@suse.de>
842
843         PR tree-optimization/46664
844         * tree-affine.c (aff_combination_to_tree): Add rest last.
845
846 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
847
848         PR target/33637
849         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
850         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
851         * configure: Regenerated.
852         * exec-tool.in: Not quoting command, may have extra arguments.
853
854 2010-11-26  Richard Guenther  <rguenther@suse.de>
855
856         PR tree-optimization/46528
857         PR debug/46338
858         * profile.c (branch_prob): Do not split blocks based on locations
859         from debug statements.
860
861 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
862
863         PR middle-end/46647
864         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
865         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
866
867         PR bootstrap/45700
868         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
869         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
870         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
871         build6_loc): Define.
872         * fold-const.c (protected_set_expr_location_unshare): New inline.
873         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
874         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
875         pedantic_omit_one_operand_loc, omit_two_operands_loc,
876         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
877         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
878         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
879         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
880         instead of buildN followed by SET_EXPR_LOCATION or
881         protected_set_expr_location.
882         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
883         Use buildN_stat_loc instead of buildN_stat followed by
884         SET_EXPR_LOCATION.
885
886 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
887
888         * Makefile.in (s-tm-texi): Remove spurous tab.
889
890 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
891
892         PR debug/46258
893         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
894         debug stmts.
895
896 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
897
898         * toplev.c (finalize): Add no_backend parameter.  Don't finish
899         passes when preprocessing only.  Adjust...
900         (do_compile): ... caller.
901
902 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
903
904         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
905         flag_unsafe_math_optimizations.
906         (negsf2): Likewise.
907         Move fnegabs related patterns together.  Only use fmpynfadd instruction
908         to negate a multiply if !flag_signed_zeros is true.
909
910 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
911
912         * gengtype-state.c (read_state_structures): Initialize "previous".
913
914 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
915             Jeremie Salvucci  <jeremie.salvucci@free.fr>
916
917         * gengtype-state.c: Add new file.
918
919         * gengtype.c (type count): New variable.
920         (new_structure, find_param_structure, create_pointer)
921         (create_array): Use it to set state_number in types.
922         (dump_everything): Improve comment.
923         (main): Call read_state and write_state. Print type_count.
924
925         * gengtype.h (type_lineloc): New function.
926         (read_state, write_state): New declarations.
927
928         * Makefile.in (GENGTYPE_FLAGS): New variable.
929         (s-gtype): Run gengtype twice and generate gtype.state.
930         (build/gengtype-state.o): New rule.
931         (build/gengtype$(build_exeext)): Link gengtype-state.o.
932         (mostlyclean): Update comment.  Remove gtype.state.
933
934 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
935
936         PR middle-end/46637
937         * combine.c (try_combine): When substing i2dest for i2src, pass
938         1 as last argument even if
939         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
940
941 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
942
943         PR middle-end/46647
944         * builtins.c (target_char_cast): Check INTEGER_CST instead of
945         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
946
947 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
948
949         * target.def (supports_split_stack, except_unwind_info): Take
950         gcc_options parameters.
951         * targhooks.c (default_except_unwind_info,
952         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
953         gcc_options parameters.
954         * targhooks.h (default_except_unwind_info,
955         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
956         prototypes.
957         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
958         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
959         Document that hooks must not be modified.
960         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
961         * doc/tm.texi: Regenerate.
962         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
963         &global_options to targetm.except_unwind_info.
964         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
965         dwarf2out_begin_prologue, dwarf2out_frame_init,
966         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
967         &global_options to targetm.except_unwind_info.
968         * except.c (init_eh, finish_eh_generation,
969         gate_convert_to_eh_region_ranges,
970         output_one_function_exception_table): Pass &global_options to
971         targetm.except_unwind_info.
972         * expr.c (build_personality_function): Pass &global_options to
973         targetm.except_unwind_info.
974         * function.c (expand_function_end): Pass &global_options to
975         targetm.except_unwind_info.
976         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
977         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
978         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
979         and targetm.supports_split_stack.  Remove assertions about opts
980         and opts_set.
981         (common_handle_option): Remove assertions about opts, opts_set and dc.
982         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
983         &global_options to targetm.except_unwind_info.
984         * tree.c (build_common_builtin_nodes: Pass &global_options to
985         targetm.except_unwind_info.
986         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
987         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
988         thumb1_expand_prologue, thumb1_output_function_prologue,
989         arm_unwind_emit, arm_output_fn_unwind): Update calls to
990         arm_except_unwind_info.
991         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
992         parameter.
993         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
994         parameter.
995         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
996         ia64_reorg, ia64_asm_unwind_emit): Update calls to
997         ia64_except_unwind_info.
998         * config/pa/pa.c (pa_option_override): Pass &global_options to
999         targetm.except_unwind_info.
1000         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
1001         Remove prototype.
1002
1003 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
1004
1005         * cgraphunit.c (process_function_and_variable_attributes):
1006         Mark dllexport-ed function/variables as needed.
1007         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
1008         as externally visible.
1009
1010 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
1011
1012         PR rtl-optimization/46585
1013         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
1014         (vinsn_init): Skip computation of dependencies for local NOPs.
1015         (vinsn_delete): Don't try to free regsets for local NOPs.
1016         (setup_nop_and_exit_insns): Change definition of nop_pattern.
1017
1018 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
1019
1020         PR rtl-optimization/46602
1021         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
1022         (tidy_control_flow): Here.
1023
1024 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
1025             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1026
1027         PR bootstrap/45888
1028         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
1029         Fix target.def pathname in timestamp comparison.
1030
1031 2010-11-24  Richard Henderson  <rth@redhat.com>
1032
1033         * config/ia64/predicates.md (pmpyshr_operand): New.
1034         * config/ia64/ia64.c (ia64_expand_unpack): New.
1035         (ia64_expand_widen_mul_v4hi): New.
1036         (ia64_expand_widen_sum): Update for pattern renames.
1037         (ia64_expand_dot_prod_v8qi): Likewise.
1038         * config/ia64/ia64-protos.h: Update.
1039         * config/ia64/vect.md (vecwider): New mode attribute.
1040         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
1041         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
1042         (pmpyshr2, pmpyshr2_u): New.
1043         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
1044         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
1045         (mulv2si3): New.
1046         (vec_pack_ssat_v4hi): Rename from pack2_sss.
1047         (vec_pack_usat_v4hi): Rename from *pack2_uss.
1048         (vec_pack_ssat_v2si): Rename from pack4_sss.
1049         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
1050         vec_select operation.
1051         (vec_interleave_highv8qi): Similarly.
1052         (mux1_alt): Rename from *mux1_alt.
1053         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
1054         (vec_interleave_lowv4hi): Rename from unpack2_l.
1055         (vec_interleave_highv4hi): Rename from unpack2_h.
1056         (mix2_r): Rename from *mix2_r.
1057         (mix2_l): Similarly.
1058         (vec_extract_evenodd_helper): New.
1059         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
1060         (vec_interleave_lowv2si): Rename from *unpack4_l.
1061         (vec_interleave_highv2si): Rename from *unpack4_h.
1062         (vec_extract_evenv2si, vec_extract_oddv2si): New.
1063         (vec_interleave_lowv2sf): Rename from fmix_r.
1064         (vec_interleave_highv2sf): Rename from *fmix_l.
1065         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
1066         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
1067         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
1068         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
1069
1070 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1071
1072         * targhooks.c (default_except_unwind_info): Remove
1073         MUST_USE_SJLJ_EXCEPTIONS case.
1074         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1075         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1076         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1077         * doc/tm.texi: Regenerate.
1078         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
1079
1080 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1081
1082         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
1083         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
1084         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
1085         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
1086         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
1087
1088 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1089
1090         PR target/46519
1091         * config/i386/i386.c (ix86_expand_call): Don't check
1092         TREE_THIS_VOLATILE.
1093
1094 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1095
1096         PR target/46519
1097         * config/i386/i386.c (upper_128bits_state): New.
1098         (block_info_def): Remove upper_128bits_set and done.  Add state,
1099         referenced, count, processed and rescanned.
1100         (check_avx256_stores): Updated.
1101         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
1102         Call note_stores only if needed.  Set referenced and count.
1103         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
1104         (rescan_move_or_delete_vzeroupper): New.
1105         (move_or_delete_vzeroupper):  Process and rescan all all basic
1106         blocks instead of predecessor blocks of all exit points.
1107         (ix86_option_override_internal): Enable vzeroupper optimization
1108         only for -fexpensive-optimizations and not optimizing for size.
1109         (use_avx256_p): Removed.
1110         (init_cumulative_args): Don't set use_avx256_p.
1111         (ix86_function_arg): Likewise.
1112         (ix86_expand_move): Likewise.
1113         (ix86_expand_vector_move_misalign): Likewise.
1114         (ix86_local_alignment): Likewise.
1115         (ix86_minimum_alignment): Likewise.
1116         (ix86_expand_epilogue): Don't check use_avx256_p when generating
1117         vzeroupper.
1118         (ix86_expand_call): Likewise.
1119
1120         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
1121         and use_avx256_p.  Add rescan_vzeroupper_p.
1122
1123 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1124
1125         * toplev.c: Include <signal.h>.
1126
1127 2010-11-24  Richard Guenther  <rguenther@suse.de>
1128
1129         PR lto/43218
1130         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
1131         conflicting function signatures as non-inlineable.
1132
1133 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1134
1135         PR rtl-optimization/46614
1136         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
1137          (deps_analyze_insn): Mark JUMP_INSNs in
1138         last_pending_memory_flush that weren't added through
1139         flush_pending_lists with NON_FLUSH_JUMP_KIND.
1140         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
1141         on INSN_LIST instead of JUMP_P check on its operand.
1142         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
1143
1144 2010-11-24  Richard Guenther  <rguenther@suse.de>
1145
1146         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
1147
1148 2010-11-24  Richard Guenther  <rguenther@suse.de>
1149
1150         PR lto/46606
1151         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
1152         a FIELD_DECL that is type correct issue a warning and fixup
1153         with a VIEW_CONVERT_EXPR.
1154
1155 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
1156
1157         * doc/invoke.texi (Options for Debugging Your Program or GCC):
1158         Explain static numbering of dump files.
1159
1160 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1161
1162         * common.opt (user_vect_verbosity_level): New Variable entry.
1163         (ftree-vectorizer-verbose=): Mark as UInteger.
1164         * flag-types.h (enum vect_verbosity_levels): Move from enum
1165         verbosity_levels in tree-vectorizer.h.
1166         * opts.c: Don't include tree.h.
1167         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
1168         gcc_options parameter; take integer option argument.
1169         (common_handle_option): Update call to vect_set_verbosity_level.
1170         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
1171         (vect_set_verbosity_level): Move to opts.c.
1172         (vect_verbosity_level, vect_print_dump_info): Update for change of
1173         enum name.
1174         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
1175         (vect_print_dump_info): Update for change of enum name.
1176         * tree.h (vect_set_verbosity_level): Remove.
1177         * Makefile.in (opts.o): Update dependencies.
1178
1179 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1180
1181         PR middle-end/46629
1182         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
1183         instead of insn with any_condjump_p.
1184
1185 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
1186
1187         * config/mips/loongson.md: Change the description comment of the file
1188         and update the copyright years.
1189         (define_insn "<u>div<mode>3): Add loongson3a support.
1190         (define_insn "<u>mod<mode>3"): Likewise.
1191         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
1192         mul<mode>3_mul3_loongson.
1193         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
1194         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
1195
1196 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1197
1198         * common.opt (initial_max_fld_align, flag_debug_asm,
1199         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
1200         flag_print_asm_name, graph_dump_format, help_printed,
1201         help_columns, flag_opts_finished): New Variable entries.
1202         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
1203         frandom-seed=): Mark deferred.
1204         (fsched-verbose=): Use UInteger and Var.
1205         * flags.h (set_struct_debug_option, flag_print_asm_name,
1206         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
1207         graph_dump_format): Don't declare here.
1208         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
1209         * opts-global.c: Include dbgcnt.h and debug.h.
1210         (decode_options): Pass location to finish_options.
1211         (handle_common_deferred_options): Check flag_dump_all_passed.
1212         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
1213         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
1214         OPT_fstack_limit.
1215         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
1216         (set_struct_debug_option): Add location_t parameter.  Update
1217         recursive call.  Use error_at.
1218         (default_options_optimization): Use error_at.
1219         (finish_options): Add location_t parameter.  Use
1220         opts->x_flag_opts_finished instead of first_time_p.  Use
1221         opts->x_optimize instead of optimize.  Use error_at.  Pass
1222         location to inform.
1223         (print_filtered_help): Use opts->x_help_printed to track what
1224         options have been printed.
1225         (print_specific_help): Use opts->x_help_columns to track number of
1226         columns.
1227         (common_handle_option): Pass locations and gcc_options pointers to
1228         more functions.  Use warning_at instead of fnotice and warning.
1229         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
1230         OPT_fdebug_prefix_map_.  Use error_at.  Set
1231         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
1232         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
1233         OPT_fsched_verbose_.
1234         (handle_param): Add location_r parameter.  Use error_at.
1235         (set_debug_level): Add location_r parameter.  Use error_at and
1236         warning_at.
1237         (setup_core_dumping): Add diagnostic_context parameter.
1238         (decode_d_option): Add gcc_options, location_t and
1239         diagnostic_context parameters and use them instead of global
1240         state.  Use warning_at.
1241         (enable_warning_as_error): Use error_at.
1242         * opts.h (finish_options): Update prototype.
1243         (set_struct_debug_option): Declare here.
1244         * rtl.h (fix_sched_param): Remove.
1245         * stor-layout.c (initial_max_fld_align): Remove.
1246         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
1247         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
1248         (process_options): Set maximum_field_alignment.
1249         * tree.h (initial_max_fld_align) Don't declare here.
1250         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1251
1252 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1253
1254         * flag-types.h (struct visibility_flags): Don't declare here.
1255         * flags.h (strip_off_ending, fast_math_flags_set_p,
1256         fast_math_flags_struct_set_p): Declare here.
1257         (visibility_options): Don't declare here.
1258         * opts-common.c (option_enabled, get_option_state): Move from
1259         opts.c.
1260         * opts-global.c: Include diagnostic.h instead of
1261         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
1262         and toplev.h.
1263         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1264         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1265         print_ignored_options, unknown_option_callback,
1266         post_handling_callback, lang_handle_option, add_input_filename,
1267         read_cmdline_options, initial_lang_mask, init_options_once,
1268         decode_cmdline_options_to_array_default_mask,
1269         set_default_handlers, decode_options): Move from opts.c.
1270         (print_ignored_options): Use warning_at instead of saving and
1271         restoring input_location.
1272         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
1273         instead of expr.h.  Don't include langhooks.h, except.h or
1274         lto-streamer.h.  Add more comments on includes.
1275         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
1276         toplev.c.
1277         (visibility_options): Move to c-family/c-common.c.
1278         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1279         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1280         print_ignored_options, unknown_option_callback,
1281         post_handling_callback, lang_handle_option, add_input_filename,
1282         read_cmdline_options, initial_lang_mask, init_options_once,
1283         decode_cmdline_options_to_array_default_mask,
1284         set_default_handlers, decode_options): Move to opts-global.c.
1285         (target_handle_option, default_options_optimization,
1286         finish_options, common_handle_option): Remove static.
1287         (option_enabled, get_option_state): Move to opts-common.c.
1288         * opts.h (common_handle_option, target_handle_option,
1289         finish_options, default_options_optimization): Declare.
1290         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
1291         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
1292         opts.c.
1293         * toplev.h (strip_off_ending, decode_d_option,
1294         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
1295         declare here.
1296         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1297
1298 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
1299
1300         PR driver/42690
1301         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
1302         options, replace by call of pass-through-libs spec function to process
1303         link_gcc_c_sequence spec.
1304         (lto_libgcc_spec): Delete variable.
1305         (static_specs[]): Remove related entry.
1306         (static_spec_functions[]): Add new entry for pass-through-libs.
1307         (main): Don't generate deleted lto_libgcc_spec.
1308         (pass_through_libs_spec_func): New function to implement the new
1309         pass-through-libs spec function.
1310         * doc/invoke.texi (pass-through-libs): Document new spec function.
1311
1312 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1313
1314         * doc/options.texi (Warning, Optimization): Document.
1315
1316 2010-11-23  Jan Hubicka  <jh@suse.cz>
1317
1318         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
1319         (tree_decl_with_vis): Add implicit_section_name_p.
1320         * targhooks.h (default_function_section): Declare.
1321         * target.def (function_section): New hook.
1322         * defaults.h (HOT_TEXT_SECTION_NAME,
1323         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1324         * predict.c (choose_function_section): Remove.
1325         (estimate_bb_frequencies): Do not use choose_function_section.
1326         * coretypes.h (enum node_frequency): Move here from cgraph.h
1327         * cgraph.h (enum node_frequency): Remove.
1328         * varasm.c (initialize_cold_section_name, unlikely_text_section,
1329         unlikely_text_section_p): Remove.
1330         (named_subsection_entry): New structure.
1331         (get_text_section): New function.
1332         (default_function_section): New function.
1333         (function_section_1): Break out from ...; handle profile info.
1334         (function_section): ... here.
1335         (unlikely_text_section): Remove.
1336         (unlikely_text_section_p): Use function_section_1.
1337         (assemble_start_function): Do not initialize cold section.
1338         (default_section_type_flags): Do not special case cold subsection.
1339         (switch_to_section): Likewise.
1340         * output.h (get_text_section): Define.
1341         * config/i386/winnt.c: Do not special case cold section.
1342         * config/darwin-protos.h (darwin_function_section): Declare.
1343         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
1344         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1345         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
1346         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1347         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
1348         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
1349         * config/darwin.c (machopic_select_section): Use
1350         darwin_function_section.
1351         (darwin_function_section): New function.
1352         * config/darwin.h (HOT_TEXT_SECTION_NAME,
1353         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1354         (TARGET_ASM_FUNCTION_SECTION): Define.
1355         * system.h (HOT_TEXT_SECTION_NAME,
1356         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
1357
1358 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
1359
1360         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
1361         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
1362
1363 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
1364
1365         PR middle-end/46499
1366         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
1367         following unconditional jumps.
1368
1369 2010-11-23  Richard Guenther  <rguenther@suse.de>
1370
1371         * doc/md.texi (386 constraints): Clarify A constraint documentation.
1372
1373 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1374             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1375
1376         * gengtype.c (enum typekind, struct options)
1377         (struct nested_ptr_data, struct pair, NUM_PARAM)
1378         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
1379         Move to gengtype.h.
1380         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
1381         Remove static, add zero state_number.
1382         (typedefs, structures, param_structs, variables): Remove static.
1383         (create_option): Remove.
1384         (create_string_option, create_type_option, create_nested_option):
1385         New functions.
1386         (create_nested_ptr_option): Use create_nested_option.
1387         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
1388         new create*option functions.
1389         (process_gc_options): Adjust for discriminated option.
1390         (output_mangled_typename): Handle TYPE_NONE.
1391         (walk_type): Test option kinds.
1392         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
1393         (write_func_for_structure, write_type, write_local, write_root)
1394         (write_roots, note_def_vec, dump_options): Adjust for
1395         discriminated option.
1396
1397         * gengtype.h (typedefs, structures, param_structs, variables
1398         enum typekind): Move from gengtype.c
1399         (enum option_kind): New discriminating enumeration.
1400         (struct options): Becomes discriminated.
1401         (struct nested_ptr_data): Nove from gengtype.c
1402         (create_string_option, create_type_option, create_nested_option)
1403         (create_nested_ptr_option): New functions
1404         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
1405         (UNION_OR_STRUCT_P): Move from gengtype.c
1406
1407         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
1408         discriminated options.
1409
1410 2010-11-23  Richard Guenther  <rguenther@suse.de>
1411
1412         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
1413         twice.  Avoid re-allocating the ops vector all the time.
1414
1415 2010-11-23  Richard Guenther  <rguenther@suse.de>
1416
1417         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
1418         is_gimple_min_invariant, group tree code checks to allow
1419         combining them.
1420         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
1421         of is_gimple_reg.
1422
1423 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
1424
1425         * config.gcc (sparc*-*-*): Reorder.
1426
1427 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1428
1429         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
1430         Remove ENABLE_CHECKING around DBGPRINTF.
1431
1432 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
1433
1434         * common.opt (exit_after_options, write_symbols, debug_info_level,
1435         use_gnu_debug_info_extensions): New Variable entries.
1436         (fprofile-dir=): Use Var.
1437         * flag-types.h (enum debug_info_level): Rename to enum
1438         debug_info_levels.
1439         * flags.h (write_symbols, debug_info_level,
1440         use_gnu_debug_info_extensions): Remove declarations.
1441         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
1442         (set_struct_debug_option): Make static variables const.
1443         (use_gnu_debug_info_extensions): Remove.
1444         (set_debug_level, print_filtered_help, print_specific_help,
1445         fast_math_flags_set_p): Take gcc_options parameters and use them
1446         in place of global variables.
1447         (print_filtered_help): Make new_help non-static.
1448         (print_specific_help): Update call to print_filtered_help.
1449         (common_handle_option): Update calls to print_specific_help.  Use
1450         gcc_options structure for more settings.  Make --help table
1451         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
1452         set_debug_level.
1453         * toplev.c (profile_data_prefix): Remove.
1454         * toplev.h (profile_data_prefix, exit_after_options): Remove
1455         declarations.
1456         (fast_math_flags_set_p): Update prototype.
1457         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
1458         Update call to fast_math_flags_set_p.
1459
1460 2010-11-22  Richard Henderson  <rth@redhat.com>
1461
1462         PR target/46434
1463         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
1464         return the address register extracted.
1465         (crx_decompose_address): Update the extracted address register.
1466
1467 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
1468
1469         PR driver/43335
1470         * gcc.c (main): Don't crash when lto-wrapper program is not found.
1471
1472 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
1473
1474         PR target/46608
1475         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
1476         * config/picochip/picochip-protos.h: Don't include "target.h" .
1477         (picochip_secondary_reload): Don't declare.
1478
1479         PR target/46613
1480         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
1481         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
1482         static.
1483
1484 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
1485
1486         PR bootstrap/46609
1487         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
1488         (source_dot_c_frul): Likewise.
1489
1490 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
1491
1492         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
1493
1494 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
1495
1496         PR bootstrap/44970
1497         * Makefile.in (fwprop.o) Add sparseset.h.
1498         * fwprop.c: Include sparseset.h
1499         (struct find_occurrence_data, find_occurrence_callback,
1500         find_occurrence): Remove.
1501         (active_defs, active_defs_check, register_active_defs,
1502         update_df_init, update_uses): New.
1503         (update_df): Rewrite.
1504         (try_fwprop_subst, forward_propagate_asm): Add calls to
1505         update_df_init and update_df.
1506         (fwprop_init): Allocate active_defs and active_defs_check.
1507         (fwprop_done): Free them.
1508         (fwprop, fwprop_addr): Adjust comments.
1509         * df.h (df_uses_create): Declare.
1510         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
1511         (df_ref_create): Return result of df_ref_create_structure directly.
1512         (df_ref_create_structure): Call df_install_ref_incremental when
1513         no collection_rec is passed.
1514         (df_ref_record): Do not create multiword hard reg info when no
1515         collection_rec is passed.
1516         (df_uses_create): New.
1517
1518 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1519
1520         PR middle-end/43057
1521         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
1522         setting location.
1523
1524 2010-11-22  Richard Guenther  <rguenther@suse.de>
1525
1526         * gimple-fold.c (maybe_fold_reference): When canonicalizing
1527         MEM_REFs, preserve volatileness.
1528         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
1529         addresses.
1530
1531 2010-11-22  Richard Guenther  <rguenther@suse.de>
1532
1533         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
1534
1535 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
1536
1537         PR rtl-optimization/45652
1538         * alias.c (get_reg_base_value): New.
1539         * rtl.h (get_reg_base_value): Add prototype.
1540         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
1541         non-null REG_BASE_VALUE for renaming.
1542
1543 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
1544             Basile Starynkevitch  <basile@starynkevitch.net>
1545
1546         * gengtype.c: Include xregex.h and obstack.h
1547         Added comments about role of get_output_file_with_visibility and
1548         our regexpr machinery.
1549         (frul_actionrout_t, struct file_rule_st): New.
1550         (hader_dot_h_frul, source_dot_c_frul): New functions.
1551         (NULL_REGEX,  NULL_FRULACT): New.
1552         (files_rules): New.
1553         (matching_file_name_substitute): New function.
1554         (get_output_file_with_visibility): Updated comments and rewritten
1555         to use the new files_rules machinery.
1556
1557         * Makefile.in (XREGEX_H): Added variable.
1558         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
1559
1560 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1561
1562         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
1563
1564 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1565
1566         * target.def (conditional_register_usage): Define.
1567         * reginfo.c (init_reg_sets_1): Call
1568         targetm.conditional_register_usage.
1569         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
1570         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
1571         for making it a hook.
1572         * doc/tm.texi: Regenerate.
1573         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1574         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
1575         New function.
1576         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1577         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1578         * config/arc/arc.c (arc_conditional_register_usage): ...here.
1579         New function.
1580         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1581         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1582         * config/arm/arm.c (arm_conditional_register_usage): ...here.
1583         New function.
1584         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1585         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
1586         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
1587         * config/bfin/bfin.c (conditional_register_usage): Move code into...
1588         (bfin_conditional_register_usage): ...here.  New function.
1589         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1590         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
1591         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
1592         * config/cris/cris.c (cris_conditional_register_usage): Make static.
1593         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1594         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
1595         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
1596         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
1597         * config/frv/frv.c (frv_conditional_register_usage): Make static.
1598         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1599         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1600         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
1601         New function.
1602         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1603         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
1604         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
1605         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
1606         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1607         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
1608         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
1609         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
1610         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1611         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1612         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
1613         New function.
1614         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1615         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
1616         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
1617         Delete.
1618         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
1619         static.
1620         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1621         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
1622         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
1623         * config/mep/mep.c (mep_conditional_register_usage): Make static.
1624         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1625         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
1626         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
1627         * config/mips/mips.c (mips_conditional_register_usage): Make static.
1628         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1629         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
1630         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
1631         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
1632         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1633         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1634         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
1635         ...here.  New function.
1636         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1637         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1638         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
1639         * config/pa/pa.c (pa_conditional_register_usage): ...here.
1640         New function.
1641         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1642         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1643         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
1644         New function.
1645         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1646         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
1647         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
1648         Delete.
1649         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
1650         static.
1651         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1652         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
1653         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
1654         * config/rx/rx.c (rx_conditional_register_usage): Make static.
1655         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1656         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
1657         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
1658         * config/s390/s390.c (s390_conditional_register_usage): Make static.
1659         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1660         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1661         * config/score/score.c (score_conditional_register_usage): ...here.
1662         New function.
1663         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1664         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1665         * config/sh/sh.c (sh_conditional_register_usage): ...here.
1666         New function.
1667         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1668         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1669         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
1670         New function.
1671         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1672         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
1673         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
1674         * config/spu/spu.c (spu_conditional_register_usage): Make static.
1675         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1676         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1677         * config/v850/v850.c (v850_conditional_register_usage): ...here.
1678         New function.
1679         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1680
1681 2010-11-21  Jan Hubicka  <jh@suse.cz>
1682             Dominique d'Humieres <dominiq@lps.ens.ft>
1683
1684         PR target/46510
1685         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
1686         finalize external decls.
1687
1688 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
1689
1690         * system.h (strerror): Poison.
1691
1692 2010-11-21  Richard Henderson  <rth@redhat.com>
1693
1694         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
1695         for infq/huge_valq.
1696
1697 2010-11-21  Richard Henderson  <rth@redhat.com>
1698
1699         PR rtl-optimization/46571
1700         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
1701         (compute_hash_table_work): Use NONDEBUG_INSN_P.
1702
1703 2010-11-21  Paul Koning  <ni1d@arrl.net>
1704
1705         * config/mips/pdp11.md (negsi2): Fix wrong code.
1706
1707 2010-11-21  Paul Koning  <ni1d@arrl.net>
1708
1709         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
1710         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1711
1712 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
1713
1714         * config/mips/mips.c (machine_function): Rename load_label_length to
1715         load_label_num_insns.
1716         (mips_load_label_length): Rename to...
1717         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
1718         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
1719
1720 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1721
1722         PR target/46533
1723         * config/alpha/predicates.md (direct_call_operand): Return false
1724         for !TARGET_SMALL_TEXT targets.
1725
1726 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
1727
1728         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
1729         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
1730         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
1731         * doc/tm.texi: Regenerate.
1732         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
1733         HANDLE_PRAGMA_WEAK): Poison.
1734         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1735         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1736         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
1737         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
1738         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1739         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1740         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1741         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
1742         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1743         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
1744         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1745         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
1746         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1747         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1748         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1749         (HANDLE_PRAGMA_WEAK): Don't undefine.
1750         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1751         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
1752         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1753         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
1754         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1755         (HANDLE_PRAGMA_WEAK): Don't undefine.
1756         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1757         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
1758         (HANDLE_PRAGMA_PACK): Don't undefine.
1759         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
1760         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1761         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1762         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1763         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
1764         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1765         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1766         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1767         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
1768         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1769         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
1770         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1771         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1772         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1773         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1774         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
1775         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1776
1777 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1778
1779         PR target/31100
1780         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
1781         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
1782         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
1783
1784 2010-11-20  Jan Hubicka  <jh@suse.cz>
1785
1786         * cgraph.c (ld_plugin_symbol_resolution_names): New.
1787         (dump_cgraph_node): Dump resolution.
1788         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
1789         (cgraph_comdat_can_be_unshared_p): Dclare.
1790         * lto-streamer-out.c (produce_symtab): Use
1791         cgraph_comdat_can_be_unshared_p.
1792         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
1793         (cgraph_comdat_can_be_unshared_p): New function based on logic
1794         in cgraph_externally_visible_p.
1795         (cgraph_externally_visible_p): Use it.
1796         (varpool_externally_visible_p): Virtual tables can be unshared.
1797         * varpool.c (dump_varpool_node): Dump resolution.
1798
1799 2010-11-20  Jan Hubicka  <jh@suse.cz>
1800
1801         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
1802
1803 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1804
1805         PR other/46202
1806         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
1807         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
1808         shell quoting.
1809         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
1810         (install-strip): New target.
1811         (STRIPPROG): New variable, exported if STRIP is set.
1812         * doc/install.texi (Final install): Minor markup and code style
1813         fixes.  Document install-strip target.
1814
1815 2010-11-20  Paul Koning  <ni1d@arrl.net>
1816
1817         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
1818         pdp11_regno_reg_class): New functions.
1819         * config/pdp11/pdp11.md (define_constants): Add register numbers.
1820         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
1821         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
1822         functions.
1823         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
1824         frame pointer and argument pointer pseudo-registers.
1825         (ARG_POINTER_REGNUM): Define.
1826         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
1827         argument pointer.
1828         (FIRST_PARM_OFFSET): Update for argument pointer.
1829         (INITIAL_FRAME_POINTER_OFFSET): Delete.
1830         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
1831         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
1832         frame pointer and argument pointer.
1833
1834 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
1835
1836         PR debug/46561
1837         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
1838         when looking for immediate uses.
1839
1840         PR tree-optimization/45830
1841         * stmt.c (expand_switch_using_bit_tests_p): New function.
1842         (expand_case): Use it.
1843         * tree.h (expand_switch_using_bit_tests_p): New prototype.
1844         * tree-switch-conversion.c (struct switch_conv_info): Add
1845         bit_test_uniq, bit_test_count and bit_test_bb fields.
1846         (check_range): Fix a comment.
1847         (check_process_case): Compute bit_test_uniq and bit_test_count.
1848         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
1849         allocation.
1850         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
1851         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
1852         (array_value_type): New function.
1853         (build_one_array): Use it, if it returned different type,
1854         fold_convert all constructor fields and convert back to the
1855         wider type in the generated code.
1856         (process_switch): Initialize bit_test_uniq, bit_test_count and
1857         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
1858         returned true.
1859
1860 2010-11-19  Michael Matz  <matz@suse.de>
1861
1862         PR tree-optimization/46077
1863         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
1864
1865 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
1866
1867         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1868         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
1869         function.
1870         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1871
1872 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
1873
1874         * mode-switching.c (optimize_mode_switching): Use
1875         FOR_BB_INSNS instead of open-coded loop.
1876         * cfgrtl.c (redirect_branch_edge): Ditto.
1877
1878 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
1879
1880         PR target/46436
1881         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
1882         to accomodate 32 bit HOST_WIDE_INT.
1883         (m68hc11_emit_logical): Remove unused variable insn.
1884         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
1885         this_insn_uses_iy before use.
1886
1887         PR target/46434
1888         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
1889
1890 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1891
1892         PR c/46547
1893         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
1894         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
1895
1896 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
1897
1898         * doc/extend.texi (Function attributes): Document PowerPC target
1899         attributes that are supported.
1900         (Pragmas): Document that PowerPC now supports target pragmas.
1901
1902         * doc/options.texi (TargetVariable): Document TargetVariable,
1903         HeaderInclude, and SourceInclude.
1904
1905         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
1906         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
1907         -ffp-contract=off.
1908
1909         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
1910         SourceInclude directives.  Fix a cut+paste error with target save
1911         enum variables.  Sort enums in the structures after ints and
1912         before shorts.
1913         * opth-gen.awk: Ditto.
1914
1915         * configure.ac: Add support for HeaderInclude and SourceInclude option
1916         directives to add the appropriate files to the dependency lists.
1917         * configure: Regenerate.
1918         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
1919         (OPTIONS_C_EXTRA): New variable for SourceInclude.
1920         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
1921         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
1922         (gcc-options.o): Ditto.
1923         * opt-include.awk: New awk script to handle HeaderInclude and
1924         TargetInclude.
1925
1926         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
1927         gets saved in the target options.
1928         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
1929         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
1930         (-mprototype): Ditto.
1931         (-mbit-word): ditto.
1932         (-mregnames): Ditto.
1933         (-msecure-plt): Ditto.
1934         (-mbss-plt): Ditto.
1935         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
1936         (-mpowerpc-gfxopt): Ditto.
1937         (-mmfcrf): Ditto.
1938         (-mpopcntb): Ditto.
1939         (-mfprnd): Ditto.
1940         (-mcmpb): Ditto.
1941         (-mmmfpgpr): Ditto.
1942         (-maltivec): Ditto.
1943         (-mhard-dfp): Ditto.
1944         (-mmulhw): Ditto.
1945         (-mdlmzb): Ditto.
1946         (-mmultiple): Ditto.
1947         (-mstring): Ditto.
1948         (-mpopcntd): Ditto.
1949         (-mfriz): Ditto.
1950         (-mvsx): Ditto.
1951         (-mno-update): Ditto.
1952         (-mavoid-indexed-addresses): Ditto.
1953         (-mtls-markers): Ditto.
1954         (-msched-epilog): Ditto.
1955         (-msched-prolog): Ditto.
1956         (-maix-struct-return): Ditto.
1957         (-msvr4-struct-return): Ditto.
1958         (-mxl-compat): Ditto.
1959         (-mrecip-precision): Ditto.
1960         (-mfp-in-toc): Ditto.
1961         (-msum-in-toc): Ditto.
1962         (-mvrsave): Ditto.
1963         (-mblock-move-inline-limit=): Ditto.
1964         (-misel): Ditto.
1965         (-mpaired): Ditto.
1966         (-mlongcall): Ditto.
1967         (-mgen-cell-microcode): Ditto.
1968         (-mwarn-cell-microcode): Ditto.
1969         (-mwarn-altivec-long): Ditto.
1970         (-mprioritize-restricted-insns=): Ditto.
1971         (-msingle-float): Ditto.
1972         (-mdouble-float): Ditto.
1973         (-msimple-fpu): Ditto.
1974         (-mxilinx-fpu): Ditto.
1975         * config/rs6000/aix64.opt (-mpe): Ditto.
1976
1977         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
1978         (rs6000_cpu): Move variable to be a target variable.  Rename
1979         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
1980         -mdebug=<xxx> variables into a single int.
1981         (rs6000_always_hint): Ditto.
1982         (rs6000_sched_groups): Ditto.
1983         (rs6000_align_branch_targets): Ditto.
1984         (rs6000_sched_costly_dep): Ditto.
1985         (rs6000_sched_insert_nops): Ditto.
1986         (rs6000_long_double_type_size): Ditto.
1987         (rs6000_ieeequad): Ditto.
1988         (rs6000_altivec_abi): Ditto.
1989         (rs6000_spe): Ditto.
1990         (rs6000_spe_abi): Ditto.
1991         (rs6000_float_gprs): Ditto.
1992         (rs6000_darwin64_abi): Ditto.
1993         (can_override_loop_align): Ditto.
1994         (rs6000_sdata): Ditto.
1995         (rs6000_tls_size): Ditto.
1996         (rs6000_current_abi): Ditto.
1997         (rs6000_traceback): Ditto.
1998         (rs6000_alignment_flags): Ditto.
1999         (rs6000_current_cmodel): Ditto.
2000         (rs6000_recip_control): Ditto.
2001         (rs6000_cpu_index): Ditto.
2002         (rs6000_tune_index): Ditto.
2003         (rs6000_debug): Ditto.
2004         (rs6000_target_flags_explict): Ditto.
2005
2006         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
2007         declaration.
2008
2009         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
2010         cmodel.  Change all uses.
2011
2012         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
2013         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
2014         Rename cmodel to rs6000_current_cmodel.
2015         (rs6000_sched_groups): Ditto.
2016         (rs6000_align_branch_targets): Ditto.
2017         (rs6000_sched_costly_dep): Ditto.
2018         (rs6000_sched_insert_nops): Ditto.
2019         (rs6000_long_double_type_size): Ditto.
2020         (rs6000_ieeequad): Ditto.
2021         (rs6000_altivec_abi): Ditto.
2022         (rs6000_spe): Ditto.
2023         (rs6000_spe_abi): Ditto.
2024         (rs6000_float_gprs): Ditto.
2025         (rs6000_darwin64_abi): Ditto.
2026         (can_override_loop_align): Ditto.
2027         (rs6000_sdata): Ditto.
2028         (rs6000_tls_size): Ditto.
2029         (rs6000_current_abi): Ditto.
2030         (rs6000_traceback): Ditto.
2031         (rs6000_alignment_flags): Ditto.
2032         (rs6000_current_cmodel): Ditto.
2033         (rs6000_recip_control): Ditto.
2034         (rs6000_cpu_index): Ditto.
2035         (rs6000_tune_index): Ditto.
2036         (rs6000_debug): Ditto.
2037         (rs6000_target_flags_explict): Ditto.
2038         (rs6000_sched_insert_nops_str): Make static.
2039         (rs6000_sched_costly_dep_str): Ditto.
2040         (rs6000_recip_name): Ditto.
2041         (rs6000_abi_name): Ditto.
2042         (rs6000_sdata_name): Ditto.
2043         (enum rs6000_traceback_name): Move to rs6000-opts.h.
2044         (rs6000_parse_tls_size_option): Delete.
2045         (rs6000_valid_attribute_p): New function for target attributes and
2046         pragmas.
2047         (rs6000_function_specific_save): Ditto.
2048         (rs6000_function_specific_restore): Ditto.
2049         (rs6000_function_specific_print): Ditto.
2050         (rs6000_can_inline_p): Ditto.
2051         (rs6000_set_current_function): Ditto.
2052         (rs6000_inner_target_options): Ditto.
2053         (rs6000_debug_target_options): Ditto.
2054         (rs6000_pragma_target_parse): Ditto.
2055         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
2056         attributes and pragmas.
2057         (TARGET_OPTION_SAVE): Ditto.
2058         (TARGET_OPTION_RESTORE): Ditto.
2059         (TARGET_OPTION_PRINT): Ditto.
2060         (TARGET_CAN_INLINE_P): Ditto.
2061         (TARGET_SET_CURRENT_FUNCTION): Ditto.
2062         (POWER_MASKS): Move to file level scope from the
2063         rs6000_option_override_internal function.
2064         (POWERPC_MASKS): Ditto.
2065         (ISA_*_MASKS): Ditto.
2066         (struct rs6000_ptt): Ditto.
2067         (processor_target_table): Ditto.
2068         (rs6000_cpu_name_lookup): Map cpu name to an index in
2069         processor_target_table.
2070         (rs6000_debug_reg_global): Print more information on processor
2071         options for -mdebug=reg.
2072         (rs6000_init_hard_regno_mode_ok): Add support for target
2073         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
2074         Allow -mdebug=val1,val2.  Rename cmodel variable.
2075         (rs6000_option_override_internal): Ditto.
2076         (rs6000_option_override): Ditto.
2077         (rs6000_handle_option): Ditto.
2078         (rs6000_conditional_register_usage): Add debug trace message.
2079         (struct rs6000_opt_mask): New for target attribute/pragma support.
2080         (rs6000_opt_masks): Ditto.
2081         (struct rs6000_opt_var): Ditto.
2082         (rs6000_opt_vars): Ditto.
2083         (rs6000_previous_function): Ditto.
2084
2085         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
2086         wasn't already included.
2087         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
2088         (enum processor_type): Ditto.
2089         (rs6000_cpu): Ditto.
2090         (enum fpu_type_t): Ditto.
2091         (fpu_type): Ditto.
2092         (enum rs6000_dependence_cost): Ditto.
2093         (enum rs6000_nop_insertion): Ditto.
2094         (enum group_termination): Ditto.
2095         (rs6000_long_double_type_size): Ditto.
2096         (rs6000_ieeequad): Ditto.
2097         (rs6000_altivec_abi): Ditto.
2098         (rs6000_spe_abi): Ditto.
2099         (rs6000_spe): Ditto.
2100         (rs6000_float_gprs): Ditto.
2101         (rs6000_alignment_flags): Ditto.
2102         (rs6000_sched_insert_nops): Ditto.
2103         (enum rs6000_vector): Ditto.
2104         (enum rs6000_abi): Ditto.
2105         (rs6000_current_opt): Ditto.
2106         (rs6000_debug_*): Delete.
2107         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
2108         (TARGET_DEBUG*): Ditto.
2109
2110         * config/rs6000/rs6000-opts.h: New header file to define the enums
2111         that are used in target variables that are now defined in rs6000.opt.
2112
2113         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
2114         rs6000-opts.h.
2115         (rs6000_sdata): Ditto.
2116         (rs6000_abi_name): Delete.
2117         (rs6000_sdata_name): Ditto.
2118         (rs6000_tls_size_string): Ditto.
2119
2120 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2121
2122         * common.opt (debug_struct_ordinary, debug_struct_generic): New
2123         Variable entries.
2124         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
2125         should_emit_struct_debug): Move from opts.c.
2126         * flag-types.h (enum debug_struct_file): Move from opts.c.
2127         * flags.h (should_emit_struct_debug): Remove.
2128         (base_of_path): Declare.
2129         (set_struct_debug_option): Add gcc_options parameter.
2130         * optc-gen.awk, opth-gen.awk: Handle array variables.
2131         * opts.c (enum debug_struct_file, debug_struct_ordinary,
2132         debug_struct_generic): Remove.
2133         (set_struct_debug_option): Add gcc_options parameter.
2134         (base_of_path): Remove static.
2135         (main_input_basename, main_input_baselength, matches_main_base,
2136         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
2137         Remove.
2138         * toplev.c (main_input_basename, main_input_baselength): Define
2139         here.
2140         * toplev.h (main_input_basename, main_input_baselength): Declare
2141         here.
2142
2143 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2144
2145         * common.opt (flag_instrument_functions_exclude_functions,
2146         flag_instrument_functions_exclude_files): New Variable definitions.
2147         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
2148         * gimplify.c (char_p): Declare type and vectors.
2149         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
2150         * opts.c (flag_instrument_functions_exclude_functions,
2151         flag_instrument_functions_exclude_files): Remove.
2152         (add_comma_separated_to_vector): Take void **.
2153         (flag_instrument_functions_exclude_p): Move to gimplify.c.
2154         (common_handle_option): Use options structure for
2155         -finstrument-functions-exclude- options.
2156
2157 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2158
2159         * doc/options.texi (Var): Document effects of Defer.
2160         (Defer): Document.
2161         * opt-functions.awk (var_type, var_set): Handle deferred options.
2162         * opts-common.c (set_option): Handle CLVC_DEFER.
2163         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
2164         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
2165         fstack-limit-symbol=): Mark as deferred.
2166         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
2167         plugin.h.
2168         (print_filtered_help): Don't report state of CLVC_DEFER options.
2169         (common_handle_option): Move code for OPT_fcall_used_,
2170         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
2171         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
2172         OPT_fstack_limit_symbol_ to opts-global.c.
2173         (option_enabled, get_option_state): Handle CLVC_DEFER.
2174         * opts.h: Include vec.h.
2175         (enum cl_var_type): Add CLVC_DEFER.
2176         (cl_deferred_option): Define type and vectors.
2177         (handle_common_deferred_options): Declare.
2178         * opts-global.c: New.
2179         * toplev.c (toplev_main): Call handle_common_deferred_options
2180         * Makefile.in (OPTS_H): Include $(VEC_H).
2181         (OBJS-common): Include opts-global.o.
2182         (opts.o): Update dependencies.
2183         (opts-global.o): Add dependencies.
2184
2185 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
2186
2187         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
2188         to objc_declare_protocols.
2189
2190 2010-11-19  Richard Guenther  <rguenther@suse.de>
2191
2192         PR lto/45789
2193         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
2194         IDENTIFIERs do not stream TREE_TYPE.
2195         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
2196
2197 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
2198
2199         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
2200
2201 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
2202
2203         PR target/45870
2204         * dwarf2out.c (const_ok_for_output_1): Don't complain about
2205         non-delegitimized TLS UNSPECs.
2206
2207 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
2208             Ian Lance Taylor  <iant@google.com>
2209
2210         * config/darwin-c.c (darwin_additional_format_types): Export.
2211
2212 2010-11-18  Paul Koning  <ni1d@arrl.net>
2213
2214         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
2215         pointer.
2216
2217 2010-11-18  Paul Koning  <ni1d@arrl.net>
2218
2219         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
2220         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
2221         * config/pdp11/pdp11.opt (-mabshi): Delete.
2222
2223 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
2224
2225         * resource.h (struct resources): Fix typo in the comment.
2226
2227 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2228
2229         PR target/46546
2230         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
2231
2232 2010-11-18  Richard Henderson  <rth@redhat.com>
2233
2234         PR middle-end/46515
2235         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
2236         maybe_copy_epilogue_insn; handle prologue insns as well.
2237         * rtl.h, cfglayout.c: Update for rename.
2238         * recog.c (peep2_attempt): Copy prologue/epilogue data for
2239         RTX_FRAME_RELATED_P insns.
2240
2241 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
2242
2243         PR middle-end/46534
2244         * builtins.c (fold_builtin_printf): Don't copy and modify string
2245         before build_string_literal, instead modify what
2246         build_string_literal returned.
2247
2248 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
2249
2250         PR c/33193
2251         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
2252         REALPART_EXPR and IMAGPART_EXPR.
2253
2254 2010-11-18  Richard Guenther  <rguenther@suse.de>
2255
2256         PR tree-optimization/46172
2257         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
2258         function.
2259         (slpeel_tree_peel_loop_to_edge): Call it.
2260
2261 2010-11-18  Jeff Law  <law@redhat.com>
2262
2263         PR middle-end-optimization/46297
2264         * postreload.c (reload_combine_note_store): Deal with embedded
2265         side effects in MEM expressions.
2266
2267 2010-11-18  Richard Guenther  <rguenther@suse.de>
2268
2269         PR lto/45089
2270         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
2271         when checking is not enabled.
2272
2273 2010-11-18  Richard Guenther  <rguenther@suse.de>
2274
2275         PR lto/46525
2276         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
2277         type leaders.
2278         (gimple_register_canonical_type): Also cache the canoncial type
2279         for non type leaders.
2280
2281 2010-11-18  Richard Guenther  <rguenther@suse.de>
2282
2283         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
2284
2285 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
2286
2287         PR middle-end/46518
2288         * sel-sched-ir.c (init_expr): Use the correct type for
2289         target_available.
2290         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
2291
2292 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2293
2294         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
2295         as well as -mrelocatable at the same time.
2296
2297 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
2298
2299         PR target/46422
2300         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
2301         Call the clz builtin.
2302
2303 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
2304             Steve Ellcey  <sje@cup.hp.com>
2305
2306         PR middle-end/31490
2307         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
2308         if section attribute used.
2309
2310 2010-11-17  Jan Hubicka  <jh@suse.cz>
2311
2312         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
2313         expand errno setting variant when optimizing for size.
2314
2315 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
2316
2317         * postreload.c (reload_combine): Call control_flow_insn_p only once.
2318         Reverse backward loop.  Fix formatting issues.
2319
2320 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
2321
2322         * c-parser.c (c_token_is_qualifier,
2323         c_parser_next_token_is_qualifier): New.
2324         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
2325         Improve error message on specs->tagdef_seen_p.
2326         (c_parser_struct_or_union_specifier): Improve error recovery.
2327         (c_parser_declspecs): Move exit condition on C_ID_ID early.
2328         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
2329         using c_parser_next_token_is_qualifier; extend it to cover
2330         a ctsk_tagdef typespec and !typespec_ok in general.
2331
2332 2010-11-17  Richard Guenther  <rguenther@suse.de>
2333
2334         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
2335         (gimple_mod_pow2_value_transform): Likewise.
2336         (gimple_mod_subtract_transform): Likewise.
2337
2338 2010-11-17  Richard Guenther  <rguenther@suse.de>
2339
2340         PR lto/46504
2341         * gimple.c (gimple_register_canonical_type): Make sure to only
2342         make type leaders canonical types.
2343
2344 2010-11-17  Michael Matz  <matz@suse.de>
2345
2346         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
2347         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
2348         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
2349         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
2350         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
2351         (pass_build_ssa): ... but here.
2352         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
2353         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
2354         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
2355         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
2356         * predict.c (rebuild_frequencies): Ditto.
2357         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
2358         * emit-rtl.c (verify_rtl_sharing): Ditto.
2359         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
2360         * tree-ssa-live.c (remove_unused_locals): Ditto.
2361         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
2362         * tree-ssa.c (pass_early_warn_uninitialized,
2363         execute_update_addresses_taken, pass_update_address_taken): Ditto.
2364         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
2365         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
2366         * passes.c (pass_postreload, execute_todo): Ditto.
2367         * tree-ssanames.c (pass_release_ssa_names): Ditto.
2368
2369 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2370
2371         * doc/invoke.texi (-dy): Remove.
2372         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
2373         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
2374         * langhooks.c (lhd_do_nothing_i): Remove.
2375         * langhooks.h (lang_hooks.parse_file): Take no arguments.
2376         * toplev.c (set_yydebug): Remove.
2377         (compile_file): Update call to lang_hooks.parse_file.
2378         (decode_d_option): Don't handle -dy.
2379
2380 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2381
2382         PR rtl-optimization/46440
2383         * combine.c (update_cfg_for_uncondjump): When changing
2384         an indirect jump into unconditional jump, remove BARRIERs
2385         from bb's footer.
2386
2387 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2388
2389         * opts.c (target_handle_option): Do not assert that loc ==
2390         UNKNOWN_LOCATION.
2391
2392 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2393             Richard Guenther  <rguenther@suse.de>
2394
2395         PR middle-end/45838
2396         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2397         call_may_clobber_ref_p_1): Return true for __sync_* and some
2398         OpenMP builtins that act as threading barriers.
2399
2400 2010-11-17  Richard Guenther  <rguenther@suse.de>
2401
2402         PR tree-optimization/46498
2403         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
2404
2405 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2406
2407         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
2408         (xtensa_function_arg_boundary): ...this.
2409         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
2410         thinko in declaration.
2411         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
2412         number of parameters to picochip_function_arg_boundary.
2413         (picochip_arg_advance): Likewise.
2414
2415 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2416
2417         PR target/46512
2418         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
2419         under check for type.
2420
2421 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2422
2423         * ifcvt.c (dead_or_predicable): Fix typo.
2424
2425 2010-11-16  Richard Henderson  <rth@redhat.com>
2426
2427         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
2428         * config/s390/s390.opt (mfused-madd): Remove.
2429         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
2430         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
2431         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
2432         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
2433
2434 2010-11-16  Richard Henderson  <rth@redhat.com>
2435
2436         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
2437         * config/rs6000/rs6000.opt (mfused-madd): Remove.
2438         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
2439         (*altivec_vmaddfp_1): Remove.
2440         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
2441         (altivec_mulv4sf3): Expand to FMA directly.
2442         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
2443         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
2444         * config/rs6000/paired.md (paired_madds0): Use FMA.
2445         (paired_madds1): Likewise.
2446         (*paired_madd): Rename from paired_madd; use FMA.
2447         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
2448         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
2449         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
2450         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
2451         (rs6000_emit_madd): Use fma_optab.
2452         (rs6000_emit_msub): Use fms_optab.
2453         (rs6000_emit_nmsub): Expand the FMA pattern directly.
2454         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
2455         (*fmasf4_fpr): Rename from fmasf4_fpr.
2456         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
2457         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
2458         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
2459         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
2460         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
2461         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
2462         (*fmadf4_fpr): Rename from fmadf4_fpr.
2463         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
2464         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
2465         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
2466         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
2467         (fmasf4, fmadf4): Macroize into...
2468         (fma<FMA_F>4): ... here.
2469         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
2470         (nfma<FMA_F>4, nfms<FMA_F>4): New.
2471         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
2472         TARGET_FUSED_MADD.
2473         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
2474         (*vsx_fmadd<mode>4_1): Remove.
2475         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
2476         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
2477         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
2478         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
2479         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
2480         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
2481         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
2482
2483 2010-11-16  Richard Henderson  <rth@redhat.com>
2484
2485         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
2486         (fmasf4, fnmadf4, fnmasf4): Likewise.
2487         (unnamed plus+mult insns and splitters): Delete.
2488
2489 2010-11-16  Richard Henderson  <rth@redhat.com>
2490
2491         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
2492         (fnma<VSF>4): Rename from fnms_<VSF>.
2493         (fms<VSF>4): Rename from fms_<VSF>.
2494         (fma<VDF>4): Rename from fma_<VDF>.
2495         (fms<VDF>4): Rename from fms_<VDF>.
2496         (nfma<VDF>4): Rename from fnma_<VDF>.
2497         (nfms<VDF>4): Rename from fnms_<VDF>.
2498         (fnma<VDF>4, fnms<VDF>4): New expanders.
2499         (floatunsdisf2): Update for the renames.
2500         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
2501         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
2502
2503 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2504
2505         PR rtl-optimization/46490
2506         * combine.c (expand_compound_operation): Fix thinko.
2507
2508 2010-11-16  Richard Henderson  <rth@redhat.com>
2509
2510         PR target/46470
2511         * recog.c (peep2_attempt): Convert frame-related info when possible.
2512         (peep2_fill_buffer): Allow frame-related insns into the buffer.
2513         (peephole2_optimize): Allow peep2_attempt to fail.
2514
2515 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2516
2517         PR rtl-optimization/46315
2518         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
2519         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
2520         extracted from...
2521         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
2522         (remove_reg_equal_equiv_notes_for_defs): ...this.
2523         (delete_unmarked_insns): Adjust to above renaming.
2524         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
2525         referring to registers set in the insns being moved, if any.
2526
2527         * df-core.c (df_ref_dump): New function extracted from...
2528         (df_refs_chain_dump): ...here.  Call it.
2529         (df_regs_chain_dump): Likewise.
2530         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
2531         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
2532
2533 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
2534
2535         PR rtl-optimization/46395
2536         * postreload.c (reload_combine): Invalidate register use
2537         information on all control flow insns.
2538
2539         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
2540         LABEL_REF in UNSPEC operand.
2541
2542 2010-11-16  Jan Hubicka  <jh@suse.cz>
2543
2544         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
2545         when !flag_toplevel_reorder do not remove unless variable is
2546         COMDAT or ARTIFICIAL.
2547         * ipa.c (varpool_can_remove_if_no_refs): ... here.
2548         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
2549         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
2550         * varpool.c (decide_is_variable_needed): Do not handle visibility
2551         issues.
2552         (varpool_finalize_decl): Likewise.
2553         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
2554         update outdated comment on DECL_RTL_SET_P check.
2555
2556 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2557
2558         * config/sol2.h (NM_FLAGS): Define.
2559         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
2560         * doc/tm.texi: Update.
2561
2562 2010-11-16  Nick Clifton  <nickc@redhat.com>
2563
2564         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
2565         (msubsf4): Rename to fmssf4, and use fma.
2566         (nmaddsf4): Rename to fnmasf4 and use fma.
2567         (nmsubsf4): Rename to fnmssf4 and use fma.
2568
2569 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
2570
2571         PR target/44762
2572         * config/score/score3.c (score3_return_in_memory): Constify arguments.
2573         (score3_in_small_data_p, score3_function_value): Likewise.
2574         (score3_trampoline_init): Use LCT_NORMAL.
2575         (score3_print_operand): Initialize code as UNKNOWN.
2576         * config/score/predicates.md (score_load_multiple_operation):
2577         Remove unused variable.
2578         (score_store_multiple_operation): Likewise.
2579         * config/score/score7.c (score7_return_in_memory): Constify arguments.
2580         (score7_in_small_data_p, score7_function_value): Likewise.
2581         (score7_trampoline_init): Use LCT_NORMAL.
2582         (score7_print_operand): Initialize code as UNKNOWN.
2583         * config/score/score3.h (score3_return_in_memory): Update prototype.
2584         (score3_in_small_data_p, score3_function_value): Likewise.
2585         * config/score/score-protos.h (score_function_value): Likewise.
2586         * config/score/score7.h (score7_return_in_memory): Update prototype.
2587         (score7_in_small_data_p, score7_function_value): Likewise.
2588         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
2589         (score_return_in_memory, score_pass_by_reference): Constify arguments.
2590         (score_output_mi_thunk, score_function_prologue): Don't return a value.
2591         (score_function_epilogue, score_in_small_data_p): Likewise.
2592         (score_option_override, score_asm_trampoline_template): Likewise.
2593         (score_trampoline_init, score_print_operand): Likewise.
2594         (score_print_operand_address, score_prologue): Likewise.
2595         (score_epilogue, score_call, score_call_value): Likewise.
2596         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
2597         (score_function_arg_advance): Likewise. Make static.
2598         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
2599         (score_function_arg, score_legitimate_address_p): Make static.
2600         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
2601         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
2602         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
2603         Allow (W) == HOST_BITS_PER_WIDE_INT.
2604
2605         PR java/46386
2606         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
2607         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
2608
2609 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2610
2611         * config/arc/arc.c: Delete pasto.
2612         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
2613
2614 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
2615
2616         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
2617         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
2618         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
2619         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2620         (mn10300_preferred_reload_class,
2621         mn10300_preferred_output_reload_class): New functions.
2622
2623 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2624
2625         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
2626         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
2627         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
2628         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
2629
2630 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2631
2632         * builtins.c (std_gimplify_va_arg_expr): Use
2633         targetm.calls.function_arg_boundary.
2634         * function.c (assign_parms, locate_and_pad_parm): Likewise.
2635         * calls.c (struct arg_data): Update comment.
2636         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
2637         * target.def (function_arg_boundary): Define.
2638         * targhooks.h (default_function_arg_boundary): Declare.
2639         * targhooks.c (default_function_arg_boundary): Define.
2640         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
2641         TARGET_FUNCTION_ARG_BOUNDARY.
2642         (FUNCTION_ARG_BOUNDARY): Delete.
2643         (TARGET_FUNCTION_ARG_BOUNDARY): New.
2644         * doc/tm.texi: Regenerate.
2645         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
2646         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
2647         * config/arc/arc.c (arc_function_arg_boundary): Define.
2648         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2649         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
2650         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
2651         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
2652         (arm_function_arg_boundary): Define.
2653         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2654         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
2655         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
2656         * config/frv/frv.c (frv_function_arg_boundary): Make static.
2657         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2658         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
2659         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
2660         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
2661         (ix86_compat_function_arg_boundary): Take and return unsigned int.
2662         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2663         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
2664         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
2665         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
2666         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2667         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
2668         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
2669         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2670         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
2671         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
2672         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
2673         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2674         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
2675         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
2676         * config/mips/mips.c (mips_function_arg_boundary): Make static.
2677         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2678         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
2679         * config/pa/pa.c (pa_function_arg_boundary): Define.
2680         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2681         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
2682         * config/picochip/picochip-protos.h
2683         (picochip_get_function_arg_boundary): Delete.
2684         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
2685         Rename to...
2686         (picochip_function_arg_boundary): ...this.  Make static.
2687         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
2688         (picochip_arg_advance): Adjust.
2689         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2690         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
2691         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
2692         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
2693         (rs6000_function_arg_boundary): ...this.  Make static.
2694         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
2695         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2696         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
2697         * config/rx/rx.c (rx_function_arg_boundary): Define.
2698         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2699         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
2700         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
2701         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2702         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
2703         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
2704         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
2705         (xtensa_function_arg_boundary): ...this.  Make static.
2706         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2707
2708 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2709
2710         * expr.c (alignment_for_piecewise_move): New function.
2711         (widest_int_mode_for_size): New function.
2712         (move_by_pieces, move_by_pieces_ninsns): Call them.
2713         (can_store_by_pieces, store_by_pieces_1): Likewise.
2714
2715 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2716
2717         * gcc.c (char_p): Define.  Define a VEC of it.
2718         (n_linker_options, n_assembler_options, n_preprocessor_options):
2719         Delete.
2720         (linker_options, assembler_options, preprocessor_options): Convert
2721         to a VEC.
2722         (add_preprocessor_option): Adjust.
2723         (add_assembler_option): Adjust.
2724         (add_linker_option): Adjust.
2725         (do_specs_vec): New function.
2726         (do_spec_1): Call it.  Adjust for new types.
2727
2728 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2729
2730         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
2731         (sreal.o, statistics.o, stringpool.o): Likewise.
2732
2733 2010-11-16  Richard Guenther  <rguenther@suse.de>
2734
2735         PR tree-optimization/44545
2736         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
2737         statements are not reassociatable.
2738         (reassociate_bb): Likewise.
2739
2740 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2741
2742         * bitmap.c: Delete unnecessary includes.
2743         * ebitmap.c: Likewise.
2744         * et-forest.c: Likewise.
2745         * sreal.c: Likewise.
2746         * statistics.c: Likewise.
2747         * stringpool.c: Likewise.
2748         * double-int.c: Add comment for inclusion of tm.h.
2749
2750 2010-11-16  Richard Guenther  <rguenther@suse.de>
2751
2752         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
2753         (visit_nary_op): ... this.
2754         (visit_binary_op): Remove.
2755         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
2756
2757 2010-11-16  Richard Guenther  <rguenther@suse.de>
2758
2759         PR middle-end/45172
2760         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
2761
2762 2010-11-16  Nick Clifton  <nickc@redhat.com>
2763
2764         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
2765         record is packed.
2766
2767 2010-11-15  Richard Henderson  <rth@redhat.com>
2768
2769         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
2770         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
2771         DOT_PROD_EXPR.
2772
2773 2010-11-15  Richard Henderson  <rth@redhat.com>
2774
2775         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
2776         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
2777         fma rtx_code.
2778
2779 2010-11-15  Richard Henderson  <rth@redhat.com>
2780
2781         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
2782         and *mulsubsf4 respectively.  Use fma rtx_code.
2783
2784 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
2785
2786         * gcc.c: Include "vec.h".
2787         (argbuf): Make into a VEC.
2788         (argbuf_length, argbuf_index): Remove.
2789         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
2790         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
2791         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
2792         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
2793         (gcc.o): Depend on $(VEC_H).
2794
2795 2010-11-15  Richard Henderson  <rth@redhat.com>
2796
2797         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
2798         via FMA if unsafe math.
2799         (insert_var_expansion_initialization): Handle FMA.
2800         (combine_var_copies_in_loop_exit): Likewise.
2801
2802 2010-11-15  Richard Henderson  <rth@redhat.com>
2803
2804         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
2805         * config/ia64/ia64.opt: Remove mfused-madd.
2806         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
2807         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
2808         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
2809         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
2810         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
2811         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
2812         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
2813         (fmav2sf4): Rename from fpma; use FMA code.
2814         (fmsv2sf4): Rename from fpms; use FMA code.
2815         (fnmav2sf4): Rename from *fpnma; use FMA code.
2816         * config/ia64/ia64.md (MODE_SDF): New iterator.
2817         (suffix): New mode attribute.
2818         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
2819         (fmssf4): Rename from *fmssf4.
2820         (fnmasf4): Rename from *nfmasf4.
2821         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
2822         (*nmadddf4, *nmadddf4_truncsf): Remove.
2823         (fmsdf4): Rename from *fmsdf4.
2824         (fnmadf4): Rename from *nfmadf4.
2825         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
2826         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
2827         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
2828         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
2829         (fmsxf4): Rename from *fmsxf4.
2830         (fnmaxf4): Rename from *nfmaxf4.
2831         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
2832         (*fnmaxf_trunc_<MODE_SDF>): New.
2833
2834 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2835
2836         PR tree-optimization/46461
2837         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
2838         a gimple val.
2839
2840 2010-11-15  Ian Lance Taylor  <iant@google.com>
2841
2842         * godump.c: New file.
2843         * common.opt (fdump-go-spec=): New option.
2844         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
2845         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
2846         (TYPE_SYMTAB_IS_DIE): Define.
2847         (struct tree_type): Change GTY for symtab field to use
2848         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
2849         to pick the union field.
2850         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
2851         (dump_go_spec_init): Declare.
2852         * toplev.c (process_options): Handle flag_dump_go_spec.
2853         * debug.c: Include "tree.h".
2854         (do_nothing_debug_hooks): Set tree_type_symtab_field.
2855         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
2856         * dbxout.c (dbx_debug_hooks): Likewise.
2857         (xcoff_debug_hooks): Likewise.
2858         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2859         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
2860         SDB_DEBUGGING_INFO is not defined.
2861         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
2862         (Overall Options): Document -fdump-go-spec.
2863         * Makefile.in (OBJS-common): Add godump.o.
2864         (debug.o): Add dependency on $(TREE_H).
2865         (godump.o): New target.
2866         (GTFILES): Add $(srcdir)/godump.c.
2867
2868 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2869
2870         PR debug/46095
2871         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
2872         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
2873         style < 0, add REG_FRAME_RELATED_EXPR.
2874
2875         PR debug/46387
2876         * rtl.h (vt_equate_reg_base_value): New prototype.
2877         * alias.c (vt_equate_reg_base_value): New function.
2878         * var-tracking.c (vt_init_cfa_base): Use it.
2879
2880 2010-11-15  Jan Hubicka  <jh@suse.cz>
2881             Diego Novillo  <dnovillo@google.com>
2882
2883         PR lto/41528
2884         * doc/lto.texi: Add.
2885         * doc/gccint.texi: Add reference to lto.texi.
2886         * doc/invoke.texi: Update user documentation for LTO.
2887         Move internal flags to lto.texi
2888
2889 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
2890
2891         * c-typeck.c (build_unary_op): Use
2892         objc_build_incr_expr_for_property_ref to build the pre/post
2893         increment/decrement of an Objective-C property ref, and skip the
2894         lvalue_or_else check in that case.
2895
2896 2010-11-15  Martin Jambor  <mjambor@suse.cz>
2897
2898         PR tree-optimization/46349
2899         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
2900         (contains_vce_or_bfcref_p): Likewise.
2901         (sra_modify_assign): Use them.
2902
2903 2010-11-15  Richard Guenther  <rguenther@suse.de>
2904
2905         PR tree-optimization/46467
2906         * tree-ssa-structalias.c (do_structure_copy): Properly treat
2907         variables without subvars.
2908
2909 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
2910
2911         * config/picochip/picochip.c (file header): Picochip name change.
2912         * config/picochip/picochip.md (file header): Likewise.
2913         * config/picochip/predicates.md (file header): Likewise.
2914         * config/picochip/dfa_space.md (file header): Likewise.
2915         * config/picochip/dfa_speed.md (file header): Likewise.
2916         * config/picochip/picochip.h(file header): Likewise.
2917         * config/picochip/constraints.md (file header): Likewise.
2918         * config/picochip/picochip-protos.h (file header): Likewise.
2919         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
2920         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
2921         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
2922         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
2923         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
2924         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
2925         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
2926         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
2927         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
2928         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
2929         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
2930         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
2931         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
2932         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
2933
2934 2010-11-15  Richard Guenther  <rguenther@suse.de>
2935
2936         PR bootstrap/46474
2937         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
2938
2939 2010-11-15  Nick Clifton  <nickc@redhat.com>
2940
2941         * config/stormy16/stormy16.c (direct_return): Do not generate a
2942         direct return for interrupt handlers.
2943
2944 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
2945
2946         * Makefile.in (tm.texi): Replace with rule for:
2947         ($(srcdir)/doc/tm.texi).
2948         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
2949         $(srcdir)/doc/tm.texi .
2950         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
2951         tm.texi .
2952
2953         PR target/46427
2954         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
2955
2956         PR bootstrap/45444
2957         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
2958         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
2959
2960         PR target/46432
2961         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
2962
2963 2010-11-15  Richard Guenther  <rguenther@suse.de>
2964
2965         PR lto/44150
2966         * lto-opts.c (lto_write_options): Write -fexceptions even if
2967         not set by the user.
2968
2969 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2970
2971         PR c/46462
2972         * c-decl.c (declspecs_add_type): Make variables with error types
2973         integers.
2974         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
2975         do not start a declaration before an Objective-C foreach.
2976         (c_parser_declaration_or_fndef): Improve recovery after unknown
2977         type name.
2978         (c_parser_for_statement): Hoist entrance of "foreach context"
2979         before ifs, add corresponding reset where it was missing.  Do
2980         not set objc_could_be_foreach_context for C.
2981
2982 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
2983
2984         PR tree-optimization/45722
2985         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
2986         this is a reference to a component.
2987         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
2988         (ipa_note_param_call): Adjust comment.
2989
2990 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
2991
2992         * config/mips/mips.c (machine_function): Remove
2993         initialized_mips16_gp_pseudo_p.
2994         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
2995         detect whether a pseudo has already been created.  Unconditionally
2996         create a new one if not.
2997         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
2998         expanding to rtl.  Create a new pseudo otherwise, if allowed.
2999
3000 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
3001
3002         PR target/43440
3003         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
3004         * tm.texi: Regenerated.
3005         * output.h (decode_reg_name_and_count): Declare.
3006         * varasm.c (decode_reg_name_and_count): New function.
3007         (decode_reg_name): Reimplement using decode_reg_name_and_count.
3008         * reginfo.c (fix_register): Use decode_reg_name_and_count and
3009         iterate over all regs used.
3010         * stmt.c (expand_asm_operands): Likewise.
3011         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
3012         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
3013         multiple machine registers.
3014
3015 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
3016
3017         * stor-layout.c (place_union_field): Do not put location information
3018         on offset expressions.
3019         (place_field): Likewise.
3020         (finalize_record_size): Likewise on size expressions.
3021         (finalize_type_size): Likewise.
3022         (layout_type): Likewise.
3023
3024 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
3025
3026         PR debug/42889
3027         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
3028         * df-core.c (df_set_bb_dirty_nonrl): Remove.
3029         * df.h (df_set_bb_dirty_nonlr): Likewise.
3030
3031 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
3032
3033         * config/mips/mips.md (call_internal): Pass curr_insn to
3034         mips_split_call.
3035         (call_internal_direct): Ditto.
3036         (call_value_internal): Ditto.
3037         (call_value_internal_direct): Ditto.
3038         (call_value_multiple_internal): Ditto.
3039         * config/mips/mips.c (mips_split_call): Do not copy
3040         CALL_INSN_FUNCTION_USAGE here.
3041
3042 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
3043
3044         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
3045         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
3046         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
3047         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
3048         (TUNE_LOONGSON_3A): Define.
3049         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
3050         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
3051         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
3052         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
3053         (mips_rtx_cost_data): Add Loongson-3A.
3054
3055 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3056
3057         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
3058         switches.
3059
3060 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3061
3062         * dwarf2out.c (macinfo_entry): New struct.
3063         (output_comp_unit): Emit the section start label here and flag that we
3064         will emit an info section.
3065         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
3066         emitting directly.
3067         (dwarf2out_end_source_file): Likewise.
3068         (dwarf2out_define): Likewise.
3069         (dwarf2out_undef): Likewise.
3070         (output_macinfo): New.
3071         (dwarf2out_init): Do not emit debug section switches here, allocate a
3072         vec for macinfo, when required.
3073         (dwarf2out_finish): First switch to debug_abbrev_section here.
3074         debug_line_section,  debug_macinfo_section, Likewise.
3075         Check that the pubtypes table has at least one unpruned entry before
3076         trying to emit it.
3077
3078 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3079
3080         PR c/20385
3081         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
3082         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
3083         token lookahead.
3084         (c_parser_compound_statement_nostart, c_parser_label,
3085         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
3086         (c_parser_declaration_or_fndef): Detect the case now matched by
3087         c_parser_next_tokens_start_declaration, give error and correct it.
3088
3089 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3090
3091         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
3092         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
3093         with typespec_kind.
3094         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
3095         (shadow_tag_warned, check_compound_literal_type): Adjust
3096         uses of tag_defined_p.
3097         (declspecs_add_type): Set typespec_kind.
3098         * c-parser.c (c_parser_declaration_or_fndef,
3099         c_parser_declspecs, c_parser_struct_declaration,
3100         c_parser_parameter_declaration, c_parser_type_name,
3101         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
3102         of type_seen_p.
3103         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
3104         tag_defined_p, pass ctsk_firstref through.
3105
3106 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3107
3108         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
3109         (struct format_wanted_type): Replace field "name" with "kind", add
3110         "format_start" and "format_length".
3111         (check_format_info_main): Fill in new fields.  Fill in
3112         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
3113         after the final NUL outside the while loop.  Do not include
3114         width and precision modifiers in the format_start/format_length
3115         of the main format.
3116         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
3117         arguments.  Compute WANTED_TYPE first so that format_type_warning
3118         can be called for missing arguments.  Adjust calls to
3119         format_type_warning.
3120         (format_type_warning): Fetch as much information as possible
3121         from format_wanted_type.  Adjust printing now that every
3122         warning has a "descr", as well as for missing argument warnings
3123         and to include % sign for format specifiers.
3124
3125 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
3126
3127         PR rtl-optimization/46204
3128         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
3129         Update all callers.  Do not recompute topological order.  Adjust
3130         fallthrough edges following a degenerate conditional jump.
3131
3132 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3133
3134         * opts-common.c (control_warning_option): New.
3135         * opts.c (set_default_handlers): New.
3136         (decode_options): Use set_default_handlers and
3137         control_warning_option.
3138         (common_handle_option): Update call to enable_warning_as_error.
3139         (enable_warning_as_error): Take gcc_options parameters.  Use
3140         control_warning_option.
3141         * opts.h (set_default_handlers, control_warning_option): Declare.
3142
3143 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3144
3145         * Makefile.in (OPTS_H): Define.
3146         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
3147         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
3148         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
3149         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
3150         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
3151         * gcc.c (driver_handle_option): Take location_t parameter.
3152         (process_command, do_self_spec): Update calls to
3153         read_cmdline_option.
3154         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
3155         * langhooks.c (lhd_handle_option): Take location_t parameter.
3156         * langhooks.h (handle_option): Take location_t parameter.
3157         * lto-opts.c (lto_reissue_options): Update call to set_option.
3158         * opts-common.c (handle_option): Make static.  Take location_t
3159         parameter and pass it to other functions.
3160         (handle_generated_option): Take location_t parameter and pass it
3161         to other functions.
3162         (read_cmdline_option): Take location_t parameter and pass it to
3163         other functions.  Use warning_at and error_at.
3164         (set_option): Take location_t parameter and pass it to other
3165         functions.
3166         * opts.c (common_handle_option): Take location_t parameter and
3167         pass it to other functions.
3168         (enable_warning_as_error): Make static.  Take location_t parameter
3169         and pass it to other functions.
3170         (lang_handle_option): Take location_t parameter and pass it to
3171         other functions.
3172         (target_handle_option): Take location_t parameter.
3173         (read_cmdline_options, maybe_default_option,
3174         maybe_default_options, default_options_optimization,
3175         decode_options): Take location_t parameter and pass it to other
3176         functions.
3177         * opts.h: Include input.h.
3178         (struct cl_option_handler_func, decode_options, set_option,
3179         handle_generated_option, read_cmdline_option): Take location_t
3180         parameters.
3181         (handle_option, enable_warning_as_error): Remove.
3182         * toplev.c (toplev_main): Update call to decode_options.
3183
3184 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
3185
3186         * graphite-cloog-util.c (oppose_constraint,
3187         cloog_matrix_to_ppl_constraint,
3188         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
3189         CLooG isl uses unsigned integers.  This triggered a warning.
3190
3191 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3192
3193         PR target/46438
3194         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
3195         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
3196         (xtensa_function_arg_1): De-constify cum.
3197         (xtensa_expand_prologue): Use add_reg_note.
3198
3199         PR target/46435
3200         * config/cris/cris.c (saved_regs_mentioned): Delete.
3201         (cris_reload_address_legitimized): Cast itype to enum reload_type.
3202         Remove unused variable op0p.
3203         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
3204         (cris_emit_movem_store): Use add_reg_note.
3205
3206         PR bootstrap/46456
3207         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
3208
3209 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3210
3211         * function.c (expand_function_end): Set the locator of the prologue on
3212         the stack checking insns.
3213
3214 2010-11-12  Richard Henderson  <rth@redhat.com>
3215
3216         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
3217         * config/xtensa/xtensa.opt (mfused-madd): Remove.
3218         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
3219         MASK_FUSED_MADD.
3220         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
3221         (fnmasf4): Rename from mulsubsf3; use fma.
3222
3223 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3224             Richard Henderson  <rth@redhat.com>
3225
3226         PR target/46428
3227         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
3228         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
3229         comparison.
3230
3231 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
3232
3233         * opts-common.c (decode_cmdline_option): Initialize separate_args.
3234
3235 2010-11-12  Jan Hubicka  <jh@suse.cz>
3236
3237         * doc/invoke.texi (early-inlining-insns): Update default.
3238         * params.def (early-inlining-insns): Default to 10.
3239
3240 2010-11-12  Olivier Hainque  <hainque@adacore.com>
3241
3242         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
3243
3244 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3245
3246         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
3247         (SUPPORTS_INIT_PRIORITY): Define.
3248
3249 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3250
3251         PR target/46430
3252         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
3253         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
3254         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
3255         (avr_device_to_devicelib): Likewise.
3256         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
3257         into block.
3258         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
3259         (zero_extendhidi2, zero_extendsidi2): Likewise.
3260         * config/avr/avr.c (avr_num_arg_regs): Constify type.
3261         (avr_return_addr_rtx): De-constify tem.
3262         (avr_rotate_bytes): Move declarations to start of block.
3263         Don't use variable length array.  Put nested if/else into block.
3264
3265         PR rtl-optimization/46433
3266         * var-tracking.c: Include tm_p.h .
3267
3268         PR bootstrap/44756
3269         PR build/44767
3270         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
3271         should be unsigned.
3272         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
3273         * doc/tm.texi: Regenerate.
3274
3275         PR target/46412
3276         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
3277         * config/bfin/bfin.c: Include sel-sched.h .
3278         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
3279         (expand_interrupt_handler_prologue): Remove unused variable insn.
3280         (bfin_load_pic_reg): Likewise.
3281         (bfin_rtx_costs): Make code / outer_code variables of type
3282         enum rtx_code, copied from re-named parameters.
3283         (bfin_local_alignment): Change align argument and return type
3284         to unsigned.
3285         (bfin_adjust_cost): Remove unused variable insn_type.
3286         Declare variables at start of block.
3287         (struct loop_info): Rename to...
3288         (struct loop_info_d).
3289         (workaround_rts_anomaly): Change type of icode to int.
3290         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
3291         with int-typed variable.
3292         (note_np_check_stores): Likewise.
3293         (trapping_loads_p): Remove unused variable pat.
3294         (bfin_expand_binop_builtin): Use expand_normal.
3295         (bfin_expand_unop_builtin): Likewise.
3296         (bfin_expand_builtin): Likewise.  Set tmode before use.
3297
3298         PR middle-end/44769
3299         * final.c (split_double): Don't use BITS_PER_WORD directly in
3300         shift count.
3301
3302         PR target/46431
3303         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
3304         assignment.
3305
3306         PR target/46450
3307         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
3308         Use add_reg_note.
3309         (xstormy16_function_arg): Dereference cum.
3310         (xstormy16_expand_builtin): Use expand_normal.
3311         Change type of omode to enum machine_mode.
3312         (combine_bnp): Rename and to and_insn.
3313
3314         PR target/46437
3315         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
3316         localreg.
3317
3318 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3319
3320         PR debug/46375
3321         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
3322
3323 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
3324
3325         PR lto/46376
3326         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
3327
3328 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
3329
3330         PR c/44782
3331         * common.opt (fmax-errors=): New option.
3332         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
3333         * diagnostic.h (struct diagnostic_context): Add max_errors field.
3334         * diagnostic.c (diagnostic_initialize): Initialize it.
3335         (diagnostic_action_after_output): Exit if more than max_errors
3336         have been output.
3337         * doc/invoke.texi (Warning Options): Add -fmax-errors.
3338         (-fmax-errors): Document.
3339
3340 2010-11-11  Richard Henderson  <rth@redhat.com>
3341
3342         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
3343
3344 2010-11-11  Richard Henderson  <rth@redhat.com>
3345
3346         * config/fused-madd.opt: New file.
3347         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
3348         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
3349         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
3350         * config/i386/i386.opt (mfused-madd): Remove.
3351         * config/i386/sse.md (split_fma): Remove.
3352         (split_fms, split_fnma, split_fnms): Remove.
3353
3354 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
3355
3356         PR target/46088
3357         * config/i386/i386.md (*ashl<mode>3_cconly,
3358         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
3359         change nonimmediate_operand predicate to register_operand.
3360
3361 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
3362
3363         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
3364
3365 2010-11-11  Jan Hubicka  <jh@suse.cz>
3366
3367         * opts.c (finish_options): Do not error on -flto-partition alone.
3368
3369         * doc/invoke.texi (-fwhopr): Merge into -flto section.
3370         (-flto-partition): Document none.
3371         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
3372         * lto-wrapper.c: Update comment.
3373         (run_gcc): Update LTO option parsing.
3374         * opts.c (finish_options): add support -flto-partition=none
3375         (common_handle_option): Remove fwhopr.
3376         * common.opt: Turn fwhopr into flto.
3377         * collect2.c (main): Update option handling.
3378         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
3379         * ipa-split.c (execute_split_functions): Remove flag_whopr.
3380         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
3381         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
3382         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
3383
3384 2010-11-11  Jan Hubicka  <jh@suse.cz>
3385
3386         PR tree-optimize/40436
3387         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
3388         (eliminated_by_inlining_prob): ... this one; return 50% probability
3389         for SRA.
3390         (estimate_function_body_sizes): Update use of
3391         eliminated_by_inlining_prob; estimate static function size
3392         for 2 instructions.
3393
3394 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
3395
3396         PR target/44749
3397         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
3398         declare.  Change type of argument four to type int.
3399         (mep_secondary_input_reload_class): Returns enum reg_class.
3400         (mep_secondary_output_reload_class): Likewise.
3401         (mep_function_value): Change types of arguments to cont_tree.
3402         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
3403         argument four to type int.
3404         (mep_secondary_input_reload_class): Returns enum reg_class.
3405         (mep_secondary_output_reload_class): Likewise.
3406         (mep_function_value): Change types of arguments to cont_tree.
3407         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
3408         mep_regno_reg_class to enum reg_class.
3409
3410 2010-11-11  Richard Henderson  <rth@redhat.com>
3411
3412         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
3413         that the target has the exact fma operation that we matched.
3414
3415 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3416
3417         * reginfo.c (fix_register): Avoid inserting English word in
3418         diagnostic sentence.  Use %qs for quoting and %'.
3419
3420 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
3421
3422         * config/i386/driver-i386.c (host_detect_local_cpu): Support
3423         Intel processor family 6, model 0x2c.
3424
3425 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3426
3427         * opts.c (warning_as_error_callback,
3428         register_warning_as_error_callback): Remove.
3429         (enable_warning_as_error): Don't use warning_as_error_callback.
3430         * opts.h (register_warning_as_error_callback): Remove.
3431
3432 2010-11-11  Richard Henderson  <rth@redhat.com>
3433
3434         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
3435         in between the MULT and the PLUS/MINUS.
3436
3437 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3438
3439         PR middle-end/46388
3440         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
3441         BLKmode mode for it.
3442         (expand_expr_real_1): Similarly for op0.
3443
3444 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3445
3446         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
3447         Document optional target selector.
3448
3449 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
3450
3451         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
3452         assembling high and low parts of size if not using 32-bit HWINT; else
3453         use DECL_SIZE_UNITS, not DECL_SIZE.
3454
3455 2010-11-11  Martin Jambor  <mjambor@suse.cz>
3456
3457         PR tree-optimization/46383
3458         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
3459         offsets.
3460         (compute_complex_ancestor_jump_func): Likewise.
3461         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
3462
3463 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3464
3465         PR debug/46150
3466         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
3467         true if expr1->hash != expr2->hash.
3468
3469 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3470
3471         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
3472         diagnostics with lowercase letters.
3473         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
3474         lowercase letters.
3475         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
3476         diagnostic.
3477         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3478         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
3479         lowercase letters.
3480         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3481         Remove trailing ' ' from diagnostic.
3482         * config/avr/avr.c (print_operand_address): Start diagnostic with
3483         a lowercase letter and remove trailing '.'.
3484         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
3485         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
3486         with lowercase letters.  Use %' in diagnostics.  Remove trailing
3487         '.' from diagnostics.
3488         (bfin_handle_longcall_attribute): Use %' in diagnostic.
3489         * config/cris/cris.c (cris_split_movdx,
3490         cris_expand_pic_call_address): Start diagnostics with lowercase
3491         letters.
3492         (cris_asm_output_label_ref): Use %' in diagnostic.
3493         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
3494         letter.
3495         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
3496         lowercase letter.
3497         * config/darwin-c.c (version_as_macro): Start diagnostic with a
3498         lowercase letter.
3499         * config/darwin-driver.c (darwin_default_min_version): Use %' in
3500         diagnostic.
3501         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
3502         diagnostic.
3503         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3504         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
3505         diagnostics.
3506         * config/i386/i386.c (ix86_option_override_internal): Write
3507         diagnostic as a single sentence without trailing '.'.  Use %' in
3508         diagnostics.
3509         (ix86_function_sseregparm, classify_argument): Start diagnostics
3510         with lowercase letters.
3511         (ix86_expand_prologue): Use %' in diagnostic.
3512         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
3513         diagnostic.
3514         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
3515         lowercase letter.
3516         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
3517         diagnostic.
3518         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3519         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
3520         '`' in help text.
3521         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
3522         lowercase letter.
3523         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
3524         lowercase letters.
3525         * config/microblaze/microblaze.c (microblaze_handle_option):
3526         Remove trailing '.' from diagnostic.
3527         (print_operand): Start diagnostic with a lowercase letter.
3528         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
3529         lowercase letters.  Avoid '`' in diagnostics.
3530         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
3531         lowercase letters.  Avoid '`' in diagnostics.
3532         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
3533         lowercase letters.  Avoid '`' in diagnostics.
3534         * config/picochip/picochip.c (picochip_option_override,
3535         picochip_emit_save_register, picochip_function_arg,
3536         picochip_output_label, picochip_output_internal_label,
3537         picochip_asm_output_opcode, picochip_output_cbranch,
3538         picochip_output_compare, picochip_output_branch,
3539         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
3540         diagnostics. Start diagnostics with lowercase letters.  Use %' in
3541         diagnostics.
3542         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
3543         "SPE" capitalization.  Start diagnostic with a lowercase letter.
3544         (rs6000_handle_option): Start diagnostics with lowercase letters.
3545         (def_builtin): Remove trailing '.' from diagnostic.
3546         (rs6000_savres_routine_name): Start diagnostic with a lowercase
3547         letter.
3548         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
3549         diagnostic.
3550         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
3551         lowercase letter.
3552         * config/s390/s390.c (s390_option_override) Start diagnostics with
3553         lowercase letters.  Use %' in diagnostic.
3554         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
3555         lowercase letters.
3556         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
3557         diagnostic.
3558         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
3559         diagnostic.
3560         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
3561         diagnostic.
3562         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3563         * config/spu/spu.c (spu_option_override): Start diagnostics with
3564         lowercase letters.  Use %qs for quoting in diagnostics.
3565         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
3566         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
3567         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
3568         from diagnostic.
3569         * convert.c (convert_to_integer, convert_to_vector): Use %' in
3570         diagnostics.
3571         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
3572         letter and use "cannot" spelling.
3573         * expmed.c (extract_fixed_bit_field): Start diagnostic with
3574         lowercase letter and format as a single sentence without '.'.
3575         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
3576         Use %' in diagnostics.
3577         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3578         Use %' in diagnostics.
3579         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3580         Use %' in diagnostics.
3581         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
3582         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
3583         with lowercase letters and remove tailing '.' and '\n'.
3584         * lto-cgraph.c (input_profile_summary): Start diagnostic with
3585         lowercase letter and remove trailing '.'.
3586         (input_cgraph): Start diagnostics with lowercase letters and
3587         remove trailing '\n'.
3588         * opts.c (finish_options, common_handle_option): Start diagnostics
3589         with lowercase letters and remove trailing '.'.  Fix typo in
3590         diagnostic.
3591         * passes.c (position_pass): Start diagnostic with lowercase letter.
3592         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
3593         register_callback, try_init_one_plugin): Start diagnostics with
3594         lowercase letters.
3595         * reload1.c (spill_failure): Use %' in diagnostic.
3596         (gen_reload): Start diagnostic with a lowercase letter.
3597         * stor-layout.c (place_field): Start diagnostic with a lowercase
3598         letter.
3599         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
3600         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
3601         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
3602         Start diagnostics with lowercase letters, remove trailing '.' and
3603         use %' in diagnostics.
3604         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
3605         (verify_ssa): Don't split diagnostic across two error calls.
3606         Spell out "number" and use %' in diagnostic.
3607         * value-prof.c (visit_hist, check_counter): Start diagnostics with
3608         lowercase letters.
3609
3610 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
3611
3612         PR middle-end/46419
3613         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
3614         (_mm_cvtpu16_ps): Ditto.
3615
3616 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3617
3618         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
3619         warn_larger_than, larger_than_size, warn_frame_larger_than,
3620         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
3621         default_visibility, flag_tls_default): New Variable declarations.
3622         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
3623         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
3624         (v): Declare as Common and document here.
3625         * flags.h (default_visibility, flag_generate_lto,
3626         warn_larger_than, larger_than_size, warn_frame_larger_than,
3627         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
3628         flag_shlib, flag_excess_precision_cmdline): Remove.
3629         (set_Wstrict_aliasing): Update prototype.
3630         * gcc.c (verbose_flag): Remove.
3631         (driver_handle_option): Add diagnostic_context parameter.  Don't
3632         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
3633         incrementing it.
3634         * opts-common.c (handle_option): Pass dc to handler.
3635         * opts.c (warn_larger_than, larger_than_size,
3636         warn_frame_larger_than, frame_larger_than_size,
3637         default_visibility): Remove.
3638         (common_handle_option): Add diagnostic_context parameter.
3639         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
3640         gcc_options parameters.
3641         (lang_handle_option, target_handle_option, read_cmdline_options,
3642         decode_options): Add diagnostic_context parameters.
3643         (finish_options): Access option state through opts pointer where
3644         possible.
3645         (common_handle_option): Access option state through opts pointer
3646         where possible.  Do not set local static variable verbose.  Do not
3647         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
3648         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
3649         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
3650         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
3651         OPT_fwhopr_.  Do not explicitly set .opt file variables for
3652         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
3653         (set_Wstrict_aliasing): Add gcc_options parameter.
3654         * opts.h (struct cl_option_handler_func): Add diagnostic_context
3655         parameter to handler.
3656         (decode_options): Add diagnostic_context parameter.
3657         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
3658         asm_file_name, flag_generate_lto, flag_gen_aux_info,
3659         aux_info_file_name, flag_shlib, flag_tls_default,
3660         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
3661         (toplev_main): Pass global_dc to decode_options.
3662         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
3663         aux_info_file_name, asm_file_name): Remove.
3664         * tree.h (flag_tls_default): Remove.
3665
3666 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
3667
3668         PR target/45986
3669         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
3670         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
3671
3672 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3673
3674         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
3675         (x86_64-*-*): Likewise.
3676         * config/i386/cpuid.h: Define TBM bit.
3677         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3678         and set has_tbm.
3679         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3680         isa_flag for TBM.
3681         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
3682         (OPTION_MASK_ISA_TBM_UNSET): New.
3683         (ix86_handle_option): Handle -mtbm.
3684         (isa_opts): Add -mtbm.
3685         (enum pta_flags): Add PTA_TBM.
3686         (ix86_option_override_internal): Add TBM support.
3687         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
3688         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
3689         (IX86_BUILTIN_BEXTRI64): Likewise.
3690         (bdesc_args): Add TBM intrinsics.
3691         (ix86_expand_builtin): Add TBM specific case.
3692         * config/i386/i386.h (TARGET_TBM): New for TBM.
3693         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
3694         (tbm_bextri_<mode>): Likewise.
3695         (*tbm_blcfill_<mode>): Likewise.
3696         (*tbm_blci_<mode>): Likewise.
3697         (*tbm_blcic_<mode>): Likewise.
3698         (*tbm_blcmsk_<mode>): Likewise.
3699         (*tbm_blcs_<mode>): Likewise.
3700         (*tbm_blsfill_<mode>): Likewise.
3701         (*tbm_blsic_<mode>): Likewise.
3702         (*tbm_t1mskc_<mode>): Likewise.
3703         (*tbm_tzmsk_<mode>): Likewise.
3704         * config/i386/i386.opt: Add -mtbm.
3705         * config/i386/tbmintrin.h (__bextri_u32): New.
3706         (__blcfill_u32): Likewise.
3707         (__blci_u32): Likewise.
3708         (__blcic_u32): Likewise.
3709         (__blcmsk_u32): Likewise.
3710         (__blcs_u32): Likewise.
3711         (__blsfill_u32): Likewise.
3712         (__blsic_u32): Likewise.
3713         (__t1mskc_u32): Likewise.
3714         (__tzmsk_u32): Likewise.
3715         (__bextri_u64): Likewise.
3716         (__blcfill_u64): Likewise.
3717         (__blci_u64): Likewise.
3718         (__blcic_u64): Likewise.
3719         (__blcmsk_u64): Likewise.
3720         (__blcs_u64): Likewise.
3721         (__blsfill_u64): Likewise.
3722         (__blsic_u64): Likewise.
3723         (__t1mskc_u64): Likewise.
3724         (__tzmsk_u64): Likewise.
3725         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
3726         * doc/invoke.texi: Document -mtbm.
3727         * doc/extend.texi: Document TBM built-in functions.
3728
3729 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3730
3731         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
3732         (x86_64-*-*): Likewise.
3733         * config/i386/cpuid.h: Define BMI bit.
3734         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3735         and set has_bmi.
3736         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3737         isa_flag for BMI.
3738         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
3739         (OPTION_MASK_ISA_BMI_UNSET): New.
3740         (ix86_handle_option): Handle -mbmi.
3741         (isa_opts): Add -mbmi.
3742         (enum pta_flags): Add PTA_BMI.
3743         (ix86_option_override_internal): Add BMI support.
3744         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
3745         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
3746         (IX86_BUILTIN_BEXTR64): Likewise.
3747         (IX86_BUILTIN_CTZS): Likewise.
3748         (bdesc_args): Add BMI intrinsics.
3749         (ix86_expand_args_builtin): Add BMI specific cases.
3750         * config/i386/i386.h (TARGET_BMI): New for BMI.
3751         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
3752         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
3753         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
3754         (UNSPEC_TZCNT): Likewise.
3755         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
3756         (bmi_andn_<mode>): New for BMI.
3757         (bmi_bextr_<mode>): Likewise.
3758         (bmi_blsi_<mode>): Likewise.
3759         (bmi_blsmsk_<mode>): Likewise.
3760         (bmi_blsr_<mode>): Likewise.
3761         * config/i386/i386.opt: Add -mbmi.
3762         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
3763         * config/i386/bmiintrin.h (__lzcnt_u16): New.
3764         (__tzcnt_u16): Likewise.
3765         (__andn_u32): Likewise.
3766         (__bextr_u32): Likewise.
3767         (__blsi_u32): Likewise.
3768         (__blsmsk_u32): Likewise.
3769         (__blsr_u32): Likewise.
3770         (__lzcnt_u32): Likewise.
3771         (__tzcnt_u32): Likewise.
3772         (__andn_u64): Likewise.
3773         (__bextr_u64): Likewise.
3774         (__blsi_u64): Likewise.
3775         (__blsmsk_u64): Likewise.
3776         (__blsr_u64): Likewise.
3777         (__lzcnt_u64): Likewise.
3778         (__tzcnt_u64): Likewise.
3779         * doc/invoke.texi: Document -mbmi and -mno-bmi.
3780         * doc/extend.texi: Document BMI built-in functions.
3781
3782 2010-11-10  Jan Hubicka  <jh@suse.cz>
3783
3784         PR tree-optimize/46228
3785         * doc/invoke.texi (comdat-sharing-probability): Document.
3786         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
3787         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
3788
3789 2010-11-10  Jan Hubicka  <jh@suse.cz>
3790
3791         PR tree-optimize/46228
3792         * cgraph.c (cgraph_propagate_frequency): Fix typo.
3793
3794 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
3795
3796         PR tree-optimization/46414
3797         * tree-inline.c (estimate_move_cost): Check preferred vector
3798         mode for vector type.
3799
3800 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3801
3802         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
3803
3804 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
3805
3806         PR tree-optimization/45971
3807         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
3808         for phi nodes analyzable by scev.
3809
3810 2010-11-10  Richard Guenther  <rguenther@suse.de>
3811
3812         PR tree-optimization/44964
3813         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
3814
3815 2010-11-10  Martin Jambor  <mjambor@suse.cz>
3816
3817         PR tree-optimization/46351
3818         PR tree-optimization/46377
3819         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
3820         aggregate bit-fields.
3821
3822 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3823
3824         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3825         * doc/tm.texi: Regenerate.
3826         * opts-common.c (tm.h): Don't include.
3827         (target_option_translations): Remove.
3828         (decode_cmdline_options_to_array): Don't handle translating options.
3829         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
3830         * config/darwin-driver.c: Don't condition includes on
3831         CROSS_DIRECTORY_STRUCTURE.
3832         (darwin_default_min_version): Make static.
3833         (darwin_driver_init): New.  Call darwin_default_min_version if not
3834         CROSS_DIRECTORY_STRUCTURE.
3835         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3836         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
3837         (ASM_SPEC): Add %{static}.
3838         (darwin_default_min_version): Don't declare.
3839         (darwin_driver_init): Declare.
3840         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
3841         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
3842         * config/darwin.opt (all_load, allowable_client,
3843         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
3844         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
3845         exported_symbols_list, filelist, findirect-virtual-calls,
3846         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
3847         framework, fterminated-vtables, gfull, gused, image_base, init,
3848         install_name, multi_module, multiply_defined,
3849         multiply_defined_unused, no_dead_strip_inits_and_terms,
3850         seg_addr_table, seg_addr_table_filename, segaddr,
3851         segs_read_only_addr, segs_read_write_addr, single_module,
3852         umbrella, unexported_symbols_list, weak_reference_mismatches,
3853         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
3854         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
3855         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
3856         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
3857         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
3858         (ASM_SPEC): Add %{static}.
3859         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3860         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3861         (DRIVER_SELF_SPECS): Handle options formerly in
3862         TARGET_OPTION_TRANSLATE_TABLE.
3863         * config/mep/mep.opt (mfar): New.
3864         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3865         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
3866         TARGET_OPTION_TRANSLATE_TABLE.
3867         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
3868         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3869         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
3870         ffix-and-continue, findirect-data): New.
3871         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3872         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
3873         (mnofpu): Define mask and use Report here.
3874
3875 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3876
3877         * config/s390/s390.c (s390_emit_prologue): Report the stack
3878         size if -fstack-usage is used.
3879
3880 2010-11-10  Richard Guenther  <rguenther@suse.de>
3881
3882         PR tree-optimization/46398
3883         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
3884
3885 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
3886
3887         PR target/44760
3888         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
3889         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
3890         GP_REG_OR_PSEUDO_STRICT_P.
3891         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
3892         unexpected alternative.
3893         (*movsf_internal): Likewise.
3894         (indirect_jump): Replace call to non-existant function with call to
3895         internal_error.
3896         (tablejump): Likewise.
3897         * config/iq2000/iq2000.c: Include df.h .
3898         (iq2000_function_arg_advance): Use CONST_CAST2.
3899         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
3900         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
3901         a non-zero function address.
3902         (iq2000_initial_elimination_offset): Add gcc_unreachable for
3903         unexpected value of FROM.
3904         (symbolic_expression_p): Delete.
3905         (iq2000_function_value): Constify func.
3906         (expand_one_builtin): Use expand_normal.
3907         (iq2000_print_operand): Don't print VALUE if calculating it failed.
3908
3909         PR rtl-optimization/44764
3910         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
3911
3912         PR target/46407
3913         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
3914         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
3915         with ATTRIBUTE_UNUSED.
3916         (valid_psw_flag): Constify parameter which.
3917         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
3918
3919         PR target/46415
3920         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
3921         (mmix_dbx_register_number): Likewise.
3922         * config/mmix/mmix.c: Include df.h .
3923         (mmix_local_alignment): Change argument basic_align and return type
3924         to unsigned.
3925         (mmix_dbx_register_number): Change argument and return type to
3926         unsigned.
3927         (mmix_expand_prologue): Use add_reg_note.
3928
3929         PR target/46417
3930         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
3931         (spu_split_store): Use aform.
3932         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
3933
3934 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3935
3936         PR/46268
3937         * doc/gty.texi (GTY Options): Clarify that variable_size produces
3938         allocators taking size in bytes, compare with length option.  Add
3939         size calculation example.
3940         (Invoking the garbage collector): Ensure that sentences are
3941         followed by two spaces.  Describe that pointer fields must be
3942         initialized at ggc_collect call.
3943         (Troubleshooting): New section.
3944
3945 2010-11-09  Jan Hubicka  <jh@suse.cz>
3946
3947         PR tree-optimization/40436
3948         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
3949         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
3950         normal instructions; be sure bultin is not implemented in this file;
3951         compute non-zero return cost.
3952         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
3953         * tree-inline.h (eni_weights_d): Add return cost.
3954
3955 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
3956
3957         * c-parser.c (c_parser_struct_declaration): Handle declaration
3958         specifiers followed by CPP_CLOSE_BRACE.
3959
3960 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3961
3962         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
3963         split occurs before reload, and we allocate memory at the time of
3964         the split, not during expansion.  Add attributes.
3965         (floatsi<mode>2_lfiwax_mem): Ditto.
3966         (floatunssi<mode>2_lfiwzx): Ditto.
3967         (floatunssi<mode>2_lfiwzx_mem): Ditto.
3968         (floatsidf2): Ditto.
3969         (floatunssisf2): Ditto.
3970         (floatunssidf2): Ditto.
3971         (fix_trunc<mode>si2): Ditto.
3972         (fix_trunc<mode>si2_stfiwx): Ditto.
3973         (fix_trunc<mode>si2_internal): Ditto.
3974         (fix_trunc<mode>si2): Ditto.
3975         (fix_trunc<mode>di2): Ditto.
3976         (fixuns_trunc<mode>si2_stfiwx): Ditto.
3977         (floatsisf2): Ditto.
3978         (floatdidf2_mem): Ditto.
3979         (floatunsdidf2_mem): Ditto.
3980         (floatunsdidf2): Ditto.
3981         (floatdisf2_internal1): Ditto.
3982         (floatdisf2_mem): Ditto.
3983         (floatunsdisf2_mem): Ditto.
3984         (floatsi<mode>2_lfiwax_mem2): Delete.
3985         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
3986         (fix_trunc<mode>si2_mem): Ditto.
3987         (fixuns_trunc<mode>si2_mem): Ditto.
3988         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
3989         type operations to reduce copying the values to multiple memory slots.
3990         (roundu32<mode>2_fprs): Ditto.
3991
3992         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
3993         PRE_INC, PRE_DEC, PRE_MODIFY.
3994         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
3995
3996         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
3997         Delete prototype.
3998
3999 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4000
4001         PR target/43808
4002         * cfgexpand.c (partition_stack_vars): Call
4003         update_alias_info_with_stack_vars unconditionally.
4004         (update_alias_info_with_stack_vars): Allow unused
4005         unreferenced vars when not optimizing.
4006
4007 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
4008
4009         PR tree-optimization/46036
4010         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
4011         add_to_dst_predicate_list.
4012
4013 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4014
4015         PR debug/46171
4016         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
4017         earlier.
4018         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
4019         argument, call dead_debug_reset when adding REG_UNUSED note.
4020         (dead_debug_reset): New function.
4021         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
4022         df_create_unused_note callers.
4023
4024 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
4025
4026         * config/fr30/fr30.c: Include "df.h".
4027
4028 2010-11-09  Richard Guenther  <rguenther@suse.de>
4029
4030         PR tree-optimization/46355
4031         * tree-loop-distribution.c (tree_loop_distribution): Do not
4032         distribute loops without a single exit.
4033
4034 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4035
4036         PR rtl-optimization/46237
4037         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
4038         saved hard regs if they might get partially clobbered.
4039
4040 2010-11-09  Paul Koning  <ni1d@arrl.net>
4041
4042         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
4043
4044 2010-11-09  Richard Guenther  <rguenther@suse.de>
4045
4046         PR tree-optimization/46177
4047         * tree-loop-distribution.c (prop_phis): Remove.
4048         (generate_builtin): Re-use the old loop exit edge to avoid
4049         needing to update PHI nodes.
4050
4051 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
4052
4053         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
4054         type of args_size to unsigned HOST_WIDE_INT.
4055
4056         PR target/44755
4057         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
4058         * config/t-pnt16-warn: New file.
4059         * config/picochip/picochip.c (picochip_emit_stack_allocate):
4060         Use add_reg_note.
4061         (picochip_emit_save_register): Likewise.
4062         (picochip_emit_restore_register): Remove variable insn.
4063         (picochip_legitimize_address): Don't use C++ style comments.
4064         (picochip_legitimize_reload_address): Likewise.
4065         (reorder_var_tracking_notes): Remove variable vliw_start.
4066         (picochip_reorg): Cast first arguemnt to emit_note_after to
4067         enum insn_note.
4068         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
4069         (picochip_expand_builtin_3op): Likewise.
4070         (picochip_expand_builtin_2opvoid): Likewise.
4071         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
4072         (picochip_expand_array_testport): Likewise.
4073         (picochip_init_builtins): Remove unused variables.
4074         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
4075         to unsigned long, and output it as such.
4076         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
4077         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
4078         (schedType): Cast result of picochip_schedule_type to
4079         enum attr_schedType.
4080
4081         PR target/44759
4082         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
4083         conditional to type of S.
4084         (mn10300_function_arg): Remove unused variable align.
4085         (mn10300_arg_partial_bytes): Likewise.
4086         * config/mn10300/mn10300.md (attribute cpu): Cast value to
4087         enum attr_cpu.
4088
4089 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
4090
4091         PR bootstrap/46392
4092         * gengtype-parse.c (type): Call get_input_file_name to get file name.
4093
4094 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4095
4096         * tree.h (contains_placeholder_p): Fix comment.
4097         (type_contains_placeholder_p): Adjust comment.
4098         * tree.c (contains_placeholder_p): Fix comment.
4099         (type_contains_placeholder_1): Do not recurse on pointed-to types and
4100         adjust comment.
4101         (type_contains_placeholder_p): Add comment.
4102
4103 2010-11-09  Paul Koning  <ni1d@arrl.net>
4104
4105         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
4106         output of byte values.
4107
4108 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4109
4110         PR middle-end/46360
4111         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
4112         not in SSA mode.
4113
4114 2010-11-09  Richard Guenther  <rguenther@suse.de>
4115
4116         PR middle-end/46221
4117         * varasm.c (compute_visible_aliases): New function.
4118         (remove_unreachable_alias_pairs): Aliases make a target available
4119         even though we reclaimed the cgraph node.
4120         (finish_aliases_1): Likewise.
4121         * Makefile.in (varasm.o): Add pointer-set.h dependency.
4122
4123 2010-11-09  Nick Clifton  <nickc@redhat.com>
4124
4125         * config/mn10300/mn10300-modes.def: New file.
4126
4127 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
4128             Jeremie Salvucci  <jeremie.salvucci@free.fr>
4129
4130         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
4131         (plugin_files, get_file_basename, get_file_realbasename)
4132         (get_file_langdir, error_at_line, gt_files, this_file)
4133         (system_h_file, read_input_list, create_field_all)
4134         (get_file_srcdir_relative_path, get_file_basename)
4135         (get_file_langdir, get_file_gtfilename)
4136         (get_output_file_with_visibility, get_output_file_name)
4137         (struct flist, put_mangled_filename, walk_type)
4138         (put_mangled_filename, finish_root_table, write_roots): Use
4139         input_file-s.
4140         (lang_dir_names, num_lang_dirs): Remove static.
4141         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
4142         (main): Use input_file-s.
4143
4144         * gengtype.h: (struct input_file_st, input_file): New type.
4145         (struct fileloc): Use it.
4146         (gt_files, num_gt_files, this_file, system_h_file)
4147         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
4148         (get_input_file_name): New function.
4149         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
4150         use input_file.
4151         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
4152         (get_output_file_name): Ditto.
4153
4154         * gengtype-lex.l (yybegin): Use input_file.
4155
4156         * gengtype-parse.c (parse_error): Use input_file.
4157
4158 2010-11-08  Xinliang David Li  <davidxl@google.com>
4159
4160         PR tree-optimization/46316
4161         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
4162         * double-int.h (double_int_mul_with_sign): New function.
4163         * double-int.c (double_int_mul_with_sign): New function.
4164
4165 2010-11-08  Paul Koning  <ni1d@arrl.net>
4166
4167         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
4168
4169 2010-11-08  Paul Koning  <ni1d@arrl.net>
4170
4171         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
4172
4173 2010-11-08  Paul Koning  <ni1d@arrl.net>
4174
4175         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
4176         to 8 bits.
4177
4178 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
4179
4180         PR target/46378
4181         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
4182         turn on ISA 2.04 rounding instructions for power5.
4183
4184         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
4185         not ISA 2.02.
4186
4187         PR target/45585
4188         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
4189         in FPR registers.
4190         (movdi_low_st): Ditto.
4191
4192 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4193             Richard Henderson  <rth@redhat.com>
4194
4195         PR target/44758
4196         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
4197         (attribute acc_group): Cast value to enum attr_acc_group.
4198         (*movdi_nodouble+6): Use gen_int_mode.
4199         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
4200         if RTX_CODE is defined or not.
4201         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
4202         struct frv_io.
4203         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
4204         (frv_frame_access, frv_expand_prologue): Remove unused variables.
4205         (frv_expand_block_clear): Likewise.
4206         (frv_trampoline_init): Use LCT_NORMAL.
4207         (struct frv_packet_group): New struct, broken out of type of
4208         frv_packet.
4209         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
4210         use cast in loop counter increment.
4211         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
4212         assigning to io->type.
4213         (bdesc_set): Use rtx_code UNKNOWN in initializer.
4214         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
4215         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
4216         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
4217         (frv_read_argument): Use expand_normal.
4218
4219         PR target/44757
4220         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
4221         lm32_legitimate_constant_p.
4222         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
4223         * config/lm32/lm32.c (gen_int_relational): Make new block for
4224         LE / LT / LEU / LTU case.  Declare variables at start of block.
4225         (lm32_block_move_inline): Use XALLOCAVEC.
4226
4227 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4228
4229         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
4230
4231 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4232
4233         * gengtype (get_output_file_for_structure): Ensure type is union
4234         or struct.
4235         (write_splay_tree_allocator_def): Use
4236         get_output_file_with_visibility.
4237
4238 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4239
4240         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
4241         to defined values in case of an error.
4242         (s390_option_override): Skip further processing if the -march
4243         parameter wasn't recognized.
4244
4245 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4246
4247         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
4248         assert that REG is a hard register number before using it as an index.
4249
4250         PR bootstrap/46358
4251         * config/i386/i386.c (ix86_expand_split_stack_prologue):
4252         Avoid warnings when HOST_WIDE_INT is 32 bit.
4253
4254 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
4255
4256         PR target/46208
4257         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
4258         (sparc_promote_prototypes): Likewise.
4259         (sparc_promote_function_mode): Promote in 32-bit mode as well.
4260         (sparc_return_in_memory): Remove superfluous parentheses.
4261         (sparc_struct_value_rtx): Fix long lines.
4262         (sparc_function_value_1): Promote in 32-bit mode as well.
4263
4264 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
4265
4266         PR rtl-optimization/45352
4267         * sel-sched.c (find_best_expr): Do not set pneed_stall when
4268         the variable_issue hook is not implemented.
4269         (fill_insns): Remove dead variable stall_iterations.
4270         (init_seqno_1): Force EBB start for resetting sched cycles on any
4271         successor blocks of the rescheduled region.
4272         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
4273         (reset_sched_cycles_in_current_ebb): Add debug printing.
4274         New variable issued_insns.  Advance state when we have issued
4275         issue_rate insns.
4276
4277 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4278
4279         * gengtype (main): Get here's position using POS_HERE macro for
4280         do*typedef calls.
4281
4282 2010-11-07  Ian Lance Taylor  <iant@google.com>
4283
4284         PR target/46089
4285         * config/i386/i386.c (split_stack_fn_large): New static variable.
4286         (ix86_expand_split_stack_prologue): Handle large model.
4287
4288 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
4289
4290         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
4291         all possible addressing modes.
4292
4293 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
4294
4295         PR tree-optimization/46346
4296         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
4297
4298 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4299
4300         * config/mips/mips.c: Revert previous patch.
4301         * config/mips/mips.md: Likewise.
4302
4303 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4304
4305         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
4306         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
4307         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
4308         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
4309         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
4310         to use FMA.
4311         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
4312         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
4313         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
4314         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
4315
4316 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
4317
4318         PR c/43384
4319         * c-decl.c (lookup_label): Labels can only be referenced in a
4320         function's scope.
4321         (store_parm_decls_oldstyle): Skip erroneous parameters.
4322
4323 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
4324
4325         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
4326         LIBCALL_VALUE): Remove macros.
4327         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4328         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4329         (fr30_function_value_regno_p, fr30_function_value,
4330         fr30_libcall_value): New functions.
4331
4332 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
4333
4334         PR middle-end/46314
4335         * target.def (generate_internal_label): New asm_out hook.
4336         * output.h (default_generate_internal_label): Declare.
4337         * varasm.c (default_generate_internal_label): Define.
4338
4339 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
4340
4341         PR target/44981
4342         * doc/extend.tex (format): Document NSString extension.
4343         (format_arg): Likewise.
4344         (Darwin Format Checks): New section.
4345         * doc/tm.texi: Document string object hooks (generated).
4346         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
4347         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4348         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4349         * target.def (objc_construct_string_object): Rename, amend
4350         documentation.
4351         (string_object_ref_type_p): New hook.
4352         (check_string_object_format_arg): New hook.
4353         * c-parser.c (c_parser_attributes): Allow objective-c class names as
4354         attribute identifiers.
4355         * config/darwin-c.c (darwin_cfstring_ref_p): New.
4356         (darwin_check_cfstring_format_arg): New.
4357         (darwin_additional_format_types): New.
4358         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
4359         (darwin_check_cfstring_format_arg): New.
4360         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
4361         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4362         (TARGET_N_FORMAT_TYPES): New.
4363         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4364
4365 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
4366             Pascal Obry  <obry@adacore.com>
4367
4368         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
4369         in 64-bit mode and 17 otherwise.
4370
4371 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4372
4373         PR debug/45939
4374         * var-tracking.c (emit_note_insn_var_location): Make sure that
4375         call related var location notes come before the normal ones.
4376
4377 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4378
4379         PR target/46326
4380         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
4381         in the last change.
4382
4383 2010-11-05  Ian Lance Taylor  <iant@google.com>
4384
4385         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
4386
4387 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4388
4389         PR c/44772
4390         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
4391         pointer_set_contains if DECL_NAME is NULL.
4392
4393 2010-11-05  Ian Lance Taylor  <iant@google.com>
4394
4395         PR target/46084
4396         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
4397         request enough additional space for alignment, and force alignment.
4398
4399 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
4400
4401         * config/i386/i386.c (legitimate_pic_address_disp_p):
4402         Handle UNSPEC_PCREL.
4403         (ix86_legitimate_address_p): Likewise.
4404         (legitimize_pic_address): Likewise.
4405         (output_pic_addr_const): Likewise.
4406         (ix86_delegitimize_address): Likewise.
4407         (ix86_find_base_term): Likewise.
4408         (memory_address_length): Likewise.
4409         (x86_output_mi_thunk): Handle special case x64
4410         for non local binding.
4411         * config/i386/i386.md (UNSPEC_PCREL): New.
4412         * config/i386/winnt.c (i386_pe_binds_local_p):
4413         Allow weak symbol for x64 windows with non-local binding.
4414
4415 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4416
4417         PR target/45670
4418         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
4419         instead of EXPAND_NORMAL for base expansion.
4420
4421 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
4422
4423         * config.gcc: Support --with-fpmath=avx for x86.
4424         * config/i386/avxmath.h: New.
4425         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
4426
4427 2010-11-05  Ian Lance Taylor  <iant@google.com>
4428
4429         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
4430         * gengtype.c (walk_type): Don't recognize descbits option.
4431
4432 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
4433
4434         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
4435         WORD_SWITCH_TAKES_ARG): Remove.
4436         * doc/options.texi (Args): Document.
4437         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
4438         * doc/tm.texi: Regenerate.
4439         * opt-functions.awk (switch_flags): Handle Args.
4440         * opts-common.c: Update comment on tm.h include.
4441         (decode_cmdline_option): Handle options with multiple arguments.
4442         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
4443         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
4444         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
4445         CL_COMMON): Update values.
4446         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
4447         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
4448         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
4449         sectobjectsymbols, sectorder, segcreate, segprot): New.
4450
4451 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4452             Uros Bizjak  <ubizjak@gmail.com>
4453
4454         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
4455         256bit AVX register is used.
4456         (ix86_expand_vector_move_misalign): Likewise.
4457         (ix86_expand_vector_move): Replace use_avx256_p with
4458         VALID_AVX256_REG_MODE.
4459
4460 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
4461
4462          PR target/44750
4463         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
4464         change.  Set $@-warn.o to -Wno-error.
4465
4466         PR bootstrap/44756
4467         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
4468         comparing it to a signed value.
4469
4470         PR middle-end/44766
4471         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
4472         PR bootstrap/44770
4473         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
4474         to i.
4475
4476         PR target/44754
4477         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
4478         (m32c_function_arg).  Add comma between arguments two and three.
4479         (m32c_promote_prototypes): Remove declaration.
4480         (current_function_special_page_vector): Likewise.
4481         (m32c_regno_reg_class): Change return type to enum reg_class.
4482         (m32c_pushm_popm): Use add_reg_note.
4483         (m32c_push_rounding): Change return type to unsigned int.
4484         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
4485         enum reload_type.
4486         (m32c_insert_attributes): Constify variable name.
4487         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
4488         (m32c_prepare_shift): Remove variable lref.
4489         (m32c_expand_movcc): Remove variable cmp.
4490         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
4491         (m32c_compare_redundant): Remove variable op2.
4492         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
4493         (m32c_pragma_memregs): Assign the number to target_memregs.
4494         (m32c_pragma_address): Remove variable var_str.
4495         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
4496         enum reg_class.
4497         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
4498         * config/m32c/bitops.md (andsi3): Add default case to switch.
4499         (iorsi3, xorsi3): Likewise.
4500         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
4501         * config/m32c/jump.md (call, call_value): Likewise.
4502         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
4503         (m32c_regno_reg_class): Likewise.
4504         (current_function_special_page_vector): Declare.
4505
4506 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4507
4508         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
4509
4510         PR tree-optimization/46099
4511         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
4512         if it is NULL and uid wasn't found in the hash table.  Just fold the
4513         result if it is NULL otherwise.  Insert other potentially needed
4514         stmts right before current stmt instead of on the entry edge.
4515         (struct elv_data): Add gsi and reset fields.
4516         (eliminate_local_variables_1): Adjust caller.  If take_address_of
4517         failed for debug stmt, set dta->reset and return.
4518         (eliminate_local_variables_stmt): Change STMT argument for GSI,
4519         pass GSI through to the callback, handle resetting of debug stmts.
4520         (eliminate_local_variables): Adjust caller.  Process debug stmts
4521         in second phase.
4522
4523         PR middle-end/43690
4524         * gimplify.c (gimplify_asm_expr): If a "m" input is a
4525         {pre,post}{in,de}crement, fail.
4526
4527         PR debug/46307
4528         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
4529         * tree-pretty-print.c (dump_generic_node): Likewise.
4530         (op_code_prio): Likewise.
4531         * cfgexpand.c (expand_debug_expr): Likewise.
4532
4533 2010-11-04  Paul Koning  <ni1d@arrl.net>
4534
4535         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
4536         constraints.
4537
4538 2010-11-04  Chao-ying Fu  <fu@mips.com>
4539
4540         * configure.ac: Test assembler support for DSP Rev1 mult.
4541         * configure: Regenerate.
4542         * config.in: Regenerate.
4543         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
4544         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
4545         (CODE_FOR_mips_multu): New define.
4546         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
4547         dspr2_32 to dsp_32.
4548         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
4549         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
4550         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
4551         New define_expand patterns.
4552         * config/mips/constraints.md (ka): Update the constraint to test
4553         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
4554         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
4555         mips_multu): Delete.
4556         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
4557         Change target constraint to "ka".
4558         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
4559         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
4560         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4561         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
4562         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4563         (<u>maddsidi4): Likewise.
4564         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
4565         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
4566
4567 2010-11-04  Paul Koning  <ni1d@arrl.net>
4568
4569         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
4570
4571 2010-11-04  Paul Koning  <ni1d@arrl.net>
4572
4573         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
4574
4575 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
4576
4577         Fixed using the Objective-C 2.0 dot-syntax with class names.
4578         * c-parser.c (c_parser_next_token_starts_declspecs): In
4579         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
4580         (c_parser_next_token_starts_declaration): Same.
4581         (c_parser_postfix_expression): Parse the Objective-C 2.0
4582         dot-syntax with a class name.
4583
4584 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
4585
4586         * final.c (compute_alignments): Compute/free loop info all the time.
4587         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
4588         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
4589         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
4590         * config/rs6000/rs6000.c (cfgloop.h): Include.
4591         (can_override_loop_align): New.
4592         (rs6000_option_override_internal): Set it.
4593         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
4594         (rs6000_loop_align): New function.
4595         (rs6000_loop_align_max_skip): Likewise.
4596
4597 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4598
4599         PR driver/45703
4600         * collect2.c (main): Print --help output to stdout.  Do not
4601         exit right away, so ld --help is appended.  Add empty lines
4602         to separate output suitably.
4603
4604 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
4605
4606         PR tree-optimization/46233
4607         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
4608         after calling analyze_function, not before.
4609
4610         PR target/46234
4611         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
4612         instead of build_va_arg_indirect_ref.
4613         * config/spu/spu.c (spu_va_start): Likewise.
4614         * config/s390/s390.c (s390_va_start): Likewise.
4615
4616 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
4617
4618         PR middle-end/46292
4619         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
4620         if the innermode is not vector mode, determine the mode of a subreg
4621         by using mode_for_size of inner_size.
4622
4623 2010-11-04  Richard Guenther  <rguenther@suse.de>
4624
4625         PR rtl-optimization/46183
4626         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
4627         (execute_rtl_pre): Likewise.
4628         (execute_rtl_hoist): Likewise.
4629
4630 2010-11-04  Richard Guenther  <rguenther@suse.de>
4631
4632         PR tree-optimization/46068
4633         * ipa-split.c (consider_split): Remove gcc_unreachable.
4634
4635 2010-11-04  Richard Guenther  <rguenther@suse.de>
4636
4637         * tree-nested.c (build_addr): Use build_fold_addr_expr.
4638
4639 2010-11-04  Richard Guenther  <rguenther@suse.de>
4640
4641         PR tree-optimization/45991
4642         * gimplify.c (force_gimple_operand_1): Use the provded test
4643         function in the initial test.
4644
4645 2010-11-04  Jeff Law  <law@redhat.com>
4646
4647         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
4648         of readonly memory equivalances for const/pure calls.
4649
4650 2010-11-04  Richard Guenther  <rguenther@suse.de>
4651
4652         PR tree-optimization/45733
4653         * tree-vect-stmts.c (reverse_vec_elements): Honor the
4654         permute builtins function return type.
4655
4656 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
4657
4658         PR middle-end/44765
4659         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
4660         as an index, check it is not INVALID_REGNUM.
4661
4662         PR bootstrap/44756
4663         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
4664         unsignedp.
4665         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
4666
4667         PR bootstrap/44756
4668         * function.c (thread_prologue_and_epilogue_insns): Add
4669         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
4670
4671         PR bootstrap/44756
4672         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
4673
4674         PR target/44750
4675         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
4676         (pdp11_preferred_reload_class): Rename class to rclass.
4677         (pdp11_preferred_output_reload_class): Likewise.
4678         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
4679         ALL_COMPILERFLAGS .
4680         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
4681
4682         PR bootstrap/44756
4683         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
4684         iteration variables to enum machine_mode.
4685
4686         PR target/44751
4687         * config/h8300/h8300.c: Include df.h.
4688         (push, pop): Use add_reg_note.
4689         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
4690         (compute_a_shift_cc): Likewise.
4691         (expand_a_shift): Argument code has type enum rtx_code.
4692         (struct shift_insn): Member cc_valid has type enum attr_cc.
4693         (struct shift_info) <cc_inline, cc_special>: Likewise.
4694         enum attr_cc.
4695         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
4696         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
4697
4698 2010-11-04  Ira Rosen  <irar@il.ibm.com>
4699
4700         PR tree-optimization/46213
4701         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
4702         MINUS_EXPR only if the first operand is reduction operand.
4703
4704 2010-11-04  Richard Guenther  <rguenther@suse.de>
4705             Richard Henderson  <rth@redhat.com>
4706
4707         * tree.def (FMA_EXPR): New tree code.
4708         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
4709         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
4710         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
4711         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
4712         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
4713         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
4714         (execute_optimize_widening_mul): Call it.  Reorganize to allow
4715         dead stmt removal.  Move TODO flags ...
4716         (pass_optimize_widening_mul): ... here.
4717         * flag-types.h (enum fp_contract_mode): New enum.
4718         * common.opt (flag_fp_contract_mode): New variable.
4719         (-ffp-contract): New option.
4720         * opts.c (common_handle_option): Handle it.
4721         * doc/invoke.texi (-ffp-contract): Document.
4722         * tree.h (fold_fma): Declare.
4723         * builtins.c (fold_fma): New function.
4724         (fold_builtin_fma): Likewise.
4725         (fold_builtin_3): Call it for fma.
4726         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
4727         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
4728         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
4729         New expanders.
4730         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
4731         named patterns.
4732         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
4733         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
4734         (fms_optab, fnma_optab, fnms_optab): New defines.
4735         * gimplify.c (gimplify_expr): Handle binary truth expressions
4736         explicitly.  Handle FMA_EXPR.
4737         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
4738         operations.
4739
4740 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4741             Richard Guenther  <rguenther@suse.de>
4742
4743         * passes.c (init_optimization_passes): Move veclower after SSA.
4744         * tree-vect-generic.c (uniform_vector_p): New function.
4745         (expand_vector_operations_1): Handle conversion.
4746         (pass_lower_vector): Update SSA form.
4747
4748 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
4749
4750         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
4751         plugin capabilities.
4752         * configure: Regenerate.
4753
4754 2010-11-03  Xinliang David Li  <davidxl@google.com>
4755
4756         PR target/46200
4757         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
4758         Adjust cbase if the use stmt is after iv update.
4759
4760 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4761
4762         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
4763
4764 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4765
4766         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
4767         comment.  Pass true to the last argument of output_stack_adjust.
4768
4769 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4770
4771         PR target/46295
4772         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
4773         if 256bit AVX register is used.
4774
4775 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
4776
4777         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
4778         xsmindp/xsmaxdp on VSX for single precision min/max.
4779         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
4780         (vsx_sminsf3): Ditto.
4781
4782 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4783
4784         * combine.c (try_combine): Fix formatting issues, improve comments and
4785         fix a pasto.
4786
4787 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4788
4789         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
4790         of the result before building binary expressions.
4791
4792 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4793
4794         PR rtl-optimization/45865
4795         * Makefile.in (df-problems.o): Revert revision 164552.
4796         * basic-block.h (enum bb_flags): Likewise.
4797         * cfgcleanup.c (block_was_dirty): Likewise.
4798         (try_forward_edges): Likewise.
4799         (try_crossjump_bb): Likewise.
4800         (try_head_merge_bb): Likewise.
4801         (try_optimize_cfg): Likewise.
4802         (cleanup_cfg): Likewise.
4803         * df-core.c (df_set_bb_dirty): Likewise.
4804         * df-problems.c: Likewise.
4805         (df_simulate_find_uses): Likewise.
4806         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
4807         (find_memory, find_memory_store): Likewise.
4808         (can_move_insns_across): Likewise.
4809         * df.h (can_move_insns_across): Likewise.
4810         * ifcvt.c (find_memory): Likewise.
4811         (dead_or_predicable): Likewise.
4812
4813 2010-11-03  Richard Guenther  <rguenther@suse.de>
4814
4815         PR middle-end/46288
4816         * predict.c (strip_predict_hints): Simply DCE builtin expect if
4817         the result is unused.
4818
4819 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4820
4821         PR tree-optimization/46009
4822         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
4823         cond_if_else_store_replacement if bb1 and bb2 have the same
4824         single successor.
4825         (cond_store_replacement): Use gimple_assign_single_p, don't
4826         check if rhs is SSA_NAME or invariant.  Call release_defs for
4827         assign.
4828         (cond_if_else_store_replacement): New function.
4829
4830 2010-11-03  Richard Guenther  <rguenther@suse.de>
4831
4832         * opts.c (finish_options): Properly check for all WHOPR
4833         flags before complaining about -flto-partition.
4834
4835 2010-11-04  Alan Modra  <amodra@gmail.com>
4836
4837         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
4838         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
4839         TARGET_SECURE_PLT.
4840         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
4841         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
4842         on input, "r" on output.
4843
4844 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
4845
4846         Implemented -fobjc-std=objc1 flag.
4847         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
4848         option.
4849         * doc/standards.texi (Standards): Updated the section on
4850         Objective-C; mention support for Objective-C 2.0 features and the
4851         new -fstd-objc=objc1 flag to disable them.
4852
4853 2010-11-03  Richard Guenther  <rguenther@suse.de>
4854
4855         PR middle-end/46241
4856         * dwarf2out.c (scope_die_for): Properly detect global scope.
4857
4858 2010-11-03  Richard Guenther  <rguenther@suse.de>
4859
4860         PR tree-optimization/46190
4861         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4862         Properly compute peel iterations.
4863
4864 2010-11-03  Richard Guenther  <rguenther@suse.de>
4865
4866         PR tree-optimization/46286
4867         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
4868         re-allocated vector data.
4869
4870 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4871
4872         PR target/46285
4873         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
4874         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
4875         is completed.
4876
4877 2010-11-03  Richard Guenther  <rguenther@suse.de>
4878
4879         PR tree-optimization/46217
4880         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
4881         flag matches.
4882         (execute_update_addresses_taken): Likewise.
4883
4884 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
4885
4886         PR bootstrap/44335
4887         * targhooks.c (targhook_words_big_endian): New function.
4888         (targhook_float_words_big_endian): Likewise.
4889         * targhooks.h (targhook_words_big_endian): Declare.
4890         (targhook_float_words_big_endian): Likewise.
4891         * target.def (words_big_endian, float_words_big_endian): New hooks.
4892
4893 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4894
4895         PR tree-optimization/46165
4896         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
4897         a normal call into noreturn call.
4898
4899 2010-11-03  Richard Guenther  <rguenther@suse.de>
4900
4901         PR middle-end/46251
4902         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
4903         not INDIRECT_REFs.
4904
4905 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4906
4907         PR tree-optimization/46107
4908         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
4909         if cfg_hook_duplicate_loop_to_header_edge failed.
4910
4911 2010-11-03  Ian Lance Taylor  <iant@google.com>
4912
4913         PR lto/46273
4914         * config.gcc: Don't set lto_binary_reader.
4915         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
4916         (Configuration): Mention --disable-lto.  Remove --with-libelf
4917         paragraph.
4918
4919 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4920
4921         PR debug/46252
4922         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
4923         prev_real_insn.
4924         * gcse.c (insert_insn_end_basic_block): Likewise.
4925
4926         PR rtl-optimization/46034
4927         PR rtl-optimization/46212
4928         PR rtl-optimization/46248
4929         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
4930         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
4931         before i0dest -> i0src substitution and pass 1 instead of 0 as last
4932         argument to subst on i2pat.
4933
4934 2010-11-02  Ian Lance Taylor  <iant@google.com>
4935
4936         * configure.ac: Use AC_SYS_LARGEFILE.
4937         * configure: Rebuild.
4938         * config.in: Rebuild.
4939
4940 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
4941
4942         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
4943         fold_convert.
4944         * c-typeck.c (build_function_call_vec): Likewise.
4945         * cfgexpand.c (expand_debug_expr): Likewise.
4946         * cgraphunit.c (assemble_thunk): Likewise.
4947         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
4948         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
4949         (fold_binary_loc, fold_ternary_loc): Likewise.
4950         * gimple-fold.c (get_symbol_constant_value): Likewise.
4951         * gimple-low.c (lower_builtin_setjmp): Likewise.
4952         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
4953         * gimplify.c (gimplify_init_constructor): Likewise.
4954         * lambda.h (build_linear_expr): Likewise.
4955         * omp-low.c (omp_reduction_init): Likewise.
4956         * tree-inline.c (remap_ssa_name): Likewise.
4957         * tree-object-size.c (compute_object_sizes): Likewise.
4958         * tree-sra.c (init_subtree_with_zero): Likewise.
4959         (sra_ipa_modify_assign): Likewise.
4960         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
4961         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
4962         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
4963         (undistribute_ops_list): Likewise.
4964         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
4965         * tree-vect-stmts.c (vectorizable_call): Likewise.
4966         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
4967         (build_zero_cst): Handle more cases directly.  Update comment.
4968
4969 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4970
4971         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
4972         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
4973
4974         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
4975         and call ix86_split_call_vzeroupper instead of
4976         ix86_split_call_pop_vzeroupper.
4977         (*call_pop_1_vzeroupper): Likewise.
4978         (*sibcall_pop_1_vzeroupper): Likewise.
4979         (*call_value_pop_0_vzeroupper): Likewise.
4980         (*call_value_pop_1_vzeroupper): Likewise.
4981         (*sibcall_value_pop_1_vzeroupper): Likewise.
4982
4983 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4984
4985         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
4986
4987 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
4988
4989         * basic-block.h (insert_insn_end_bb_new): Delete.
4990         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
4991
4992 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
4993             H.J. Lu  <hongjiu.lu@intel.com>
4994
4995         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
4996         (ix86_split_call_pop_vzeroupper): Likewise.
4997
4998         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
4999         (ix86_expand_call): Conditionally decorate calls with
5000         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
5001         (ix86_split_call_vzeroupper): New.
5002         (ix86_split_call_pop_vzeroupper): Likewise.
5003
5004         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
5005         (*call_pop_0_vzeroupper): New insn_and_split pattern.
5006         (*call_pop_1_vzeroupper): Likewise.
5007         (*sibcall_pop_1_vzeroupper): Likewise.
5008         (*call_0_vzeroupper): Likewise.
5009         (*call_1_vzeroupper): Likewise.
5010         (*sibcall_1_vzeroupper): Likewise.
5011         (*call_1_rex64_vzeroupper): Likewise.
5012         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
5013         (*call_1_rex64_large_vzeroupper): Likewise.
5014         (*sibcall_1_rex64_vzeroupper): Likewise.
5015         (*call_value_pop_0_vzeroupper): Likewise.
5016         (*call_value_pop_1_vzeroupper): Likewise.
5017         (*sibcall_value_pop_1_vzeroupper): Likewise.
5018         (*call_value_0_vzeroupper): Likewise.
5019         (*call_value_0_rex64_vzeroupper): Likewise.
5020         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
5021         (*call_value_1_vzeroupper): Likewise.
5022         (*sibcall_value_1_vzeroupper): Likewise.
5023         (*call_value_1_rex64_vzeroupper): Likewise.
5024         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
5025         (*call_value_1_rex64_large_vzeroupper): Likewise.
5026         (*sibcall_value_1_rex64_vzeroupper): Likewise.
5027
5028 2010-11-02  Ian Lance Taylor  <iant@google.com>
5029
5030         PR lto/46273
5031         * config.gcc: Revert last patch: set lto_binary_reader.
5032
5033 2010-11-02  Richard Guenther  <rguenther@suse.de>
5034
5035         PR tree-optimization/46149
5036         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
5037         non-indirect MEM_REF variants.
5038
5039 2010-11-02  Richard Guenther  <rguenther@suse.de>
5040
5041         PR tree-optimization/46216
5042         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5043         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
5044
5045 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5046
5047         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
5048         (*-*-osf*): Likewise.
5049         * configure: Regenerate.
5050
5051 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
5052
5053         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
5054         for Intel Core 2 and Core i7.
5055
5056 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
5057
5058         Model decoder of Core 2/i7 for multipass scheduling.
5059
5060         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
5061         New type to hold target-specific data for multipass scheduling.
5062         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5063         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
5064         Core 2/i7.
5065         (core2i7_secondary_decoder_max_insn_size,)
5066         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
5067         New static variables.
5068         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
5069         ([_]ix86_first_cycle_multipass_data): New static variable.
5070         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
5071         Implement targetm.sched hooks.
5072         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
5073         of ...
5074         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
5075         Implement new targetm.sched hooks.
5076         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
5077         targetm.sched hook to install multipass scheduling hooks on demand.
5078
5079         * doc/tm.texi.in: Document new targetm.sched hooks.
5080         * doc/tm.texi: Regenerate.
5081
5082         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5083         (first_cycle_multipass_data_t): New typedef.
5084         (struct choice_entry: target_data): New field.
5085         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
5086         to allow target model restrictions not represented in DFA.
5087         (choose_ready, schedule_block): Update.
5088         (sched_extend_ready_list, sched_finish_ready_list): Call new target
5089         hooks to initialize target-specific data for multipass scheduling.
5090         * sched-int.h (max_issue): Update declaration.
5091         * sel-sched.c (choose_best_insn): Update.
5092         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
5093         (first_cycle_multipass_{init, fini}): Define and document new
5094         targetm.sched hooks.
5095
5096 2010-11-02  Richard Guenther  <rguenther@suse.de>
5097
5098         PR tree-optimization/46184
5099         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
5100         input vector type from the reduction operand as well.
5101
5102 2010-11-02  Richard Guenther  <rguenther@suse.de>
5103
5104         PR tree-optimization/46177
5105         * tree-loop-distribution.c (prop_phis): Use
5106         mark_virtual_phi_result_for_renaming.
5107
5108 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5109
5110         PR middle-end/46120
5111         * tree.c (get_binfo_at_offset): Bail out on artificial
5112         fields.  Identify primary bases according to their offsets.
5113
5114 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5115
5116         PR tree-optimization/45875
5117         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
5118         (gimple_get_relevant_ref_binfo): Detect primary bases according to
5119         their field offset.
5120
5121 2010-11-02  Ian Lance Taylor  <iant@google.com>
5122
5123         * doc/install.texi (Configuration): Note in two places that Java
5124         is not enabled by default.
5125
5126 2010-11-02  Ian Lance Taylor  <iant@google.com>
5127
5128         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
5129         (Configuration): Mention --disable-lto.  Remove --with-libelf
5130         paragraph.
5131
5132 2010-11-02  Ian Lance Taylor  <iant@google.com>
5133
5134         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
5135         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
5136         LIBELFINC.  Remove HAVE_libelf.
5137         * config.gcc: Don't set lto_binary_reader.
5138         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
5139         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
5140         (LIBS): Remove $(LIBELFLIBS).
5141         (INCLUDES): Remove $(LIBELFINC).
5142         * configure: Rebuild.
5143         * config.in: Rebuild.
5144
5145 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
5146
5147         * config/microblaze/microblaze-protos.h (function_arg): Delete.
5148         (function_arg_advance): Delete.
5149         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
5150         (FUNCTION_ARG): Delete.
5151         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
5152         (microblaze_function_arg_advance): ...this.  Make static.  Take a
5153         const_tree and a bool.
5154         (function-arg): Rename to...
5155         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
5156         and a bool.
5157         (microblaze_expand_prologue): Call targetm.calls.function_arg and
5158         targetm.calls.function_arg_advance.
5159         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5160
5161 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5162
5163         Merge from FSF "apple/trunk" branch.
5164
5165         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
5166         * config/darwin.opt: .. to here.
5167         (matt-stubs): New option.
5168         * config/i386/darwin.opt: Delete.
5169         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
5170         (MACHO_DYNAMIC_NO_PIC_P): New.
5171         (MACHOPIC_INDIRECT): New.
5172         (MACHOPIC_PURE): New.
5173         * config/i386/darwin.h (DARWIN_X86) Define to 1.
5174         (MACHOPIC_ATT_STUB): New.
5175         (CC1_SPEC): Do not remove mdynamic-no-pic.
5176         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5177         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5178         (FUNCTION_PROFILER): Correct over-length line.
5179         (SUBTARGET_OVERRIDE_OPTIONS): New.
5180         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5181         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
5182         (legitimate_constant_p): Handle mdynamic-no-pic.
5183         (ix86_legitimate_address_p): Likewise.
5184         (ix86_legitimize_address): Likewise.
5185         (ix86_expand_move): Likewise.
5186         (machopic_output_stub): Update for ATT-style stubs and
5187         mdynamic-no-pic.
5188         * config/darwin-protos.h (machopic_symbol_defined_p): New.
5189         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
5190         TARGET_DYNAMIC_NO_PIC: Remove.
5191         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5192         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5193         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
5194         Remove handling of mdynamic-no-pic.
5195         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
5196         Define if required.
5197         (machopic_symbol_defined_p): Do not try to use current_function_decl
5198         when generating _get_pc thunks within stubs.
5199         (machopic_indirect_data_reference): Rework for direct conditionals
5200         rather than #ifdefs, add x86 mdynamic-no-pic
5201         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
5202         defined value.
5203         (darwin_override_options): Handle mdynamic-no-pic here.
5204         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
5205         (machopic_lazy_symbol_ptr3_section): New.
5206         (machopic_picsymbol_stub2_section): New.
5207         (machopic_picsymbol_stub3_section): New.
5208         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
5209         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5210         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
5211         Moved common definition from x86 and rs6000.
5212         (MACHO_DYNAMIC_NO_PIC_P): Override value.
5213         (MACHOPIC_INDIRECT): Likewise.
5214         (MACHOPIC_PURE): Likewise.
5215         * config.gcc (x86-darwin-*): Remove darwin.opt.
5216
5217 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
5218
5219         PR debug/46255
5220         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
5221         instead of gsi_last_bb.
5222
5223 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5224             Maxim Kuvyrkov  <maxim@codesourcery.com>
5225
5226         * config/i386/i386.c (cpu_names): Add "corei7".
5227         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
5228
5229 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5230             Maxim Kuvyrkov  <maxim@codesourcery.com>
5231
5232         Tune alignment for Intel Core i7
5233
5234         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
5235         (enum processor_type): Update comment.  Add entries for Core i7.
5236         * config/i386-c.c (ix86_target_macros_internal): Update.
5237         * config/i386.c (m_COREI7{_32,_64}): New macros.
5238         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
5239         (processor_target_table): Tune alignment for Core i7.
5240         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
5241
5242         * doc/invoke.texi: Document "corei7" option value.
5243
5244 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5245             Maxim Kuvyrkov  <maxim@codesourcery.com>
5246             H.J. Lu  <hjl.tools@gmail.com>
5247
5248         Basic support for Intel Core i7
5249
5250         * i386.c (ix86_option_override_internal): Add entry for corei7, use
5251         generic tuning.  Use generic32 when compiling for 32-bit ABI.
5252
5253 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5254
5255         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
5256         sections and call darwin_asm_dwarf_section() to handle them.
5257         (darwin_asm_dwarf_section): New.
5258         (darwin_file_start): Remove code emitting dwarf section symbols.
5259
5260 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
5261
5262         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
5263         explicitly disable stack protection when building libgcc.
5264         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
5265
5266 2010-11-01  Jason Merrill  <jason@redhat.com>
5267
5268         * fold-const.c (fold_indirect_ref_1): Handle folding
5269         POINTER_PLUS_EXPR to ARRAY_REF.
5270
5271 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
5272
5273         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
5274         (sh_delegitimize_address): New function.
5275
5276 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5277
5278         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
5279         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
5280         (CC1_SPEC): Don't handle -target.
5281         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
5282         options.
5283         * config/darwin.opt (Zallowable_client, Zbundle_loader,
5284         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
5285         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
5286         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
5287         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
5288         Zweak_reference_mismatches, client_name, compatibility_version,
5289         current_version, dylinker_install_name, pagezero_size,
5290         read_only_relocs, seg1addr, segs_read_only_addr,
5291         segs_read_write_addr, sub_library, sub_umbrella): New.
5292         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
5293         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
5294         * config/freebsd.opt: New.
5295         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
5296         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
5297         * config/rpath.opt: New.
5298         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
5299         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
5300         Use rpath.opt.
5301
5302 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5303
5304         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
5305         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
5306         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
5307         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
5308         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
5309         Document that options in .opt files do not need to be included.
5310         * doc/tm.texi: Regenerate.
5311         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
5312         * opts-common.c: Update comment on tm.h include.
5313         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
5314         * system.h (SWITCH_TAKES_ARG): Poison.
5315         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
5316         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
5317         in darwin.opt.
5318         (LINK_COMMAND_SPEC_A): Don't include %{x}.
5319         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5320         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
5321         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
5322         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5323         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
5324         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
5325         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
5326         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
5327         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5328         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
5329         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
5330         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
5331         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
5332         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
5333         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
5334         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
5335         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
5336         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
5337         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
5338         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
5339         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
5340         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
5341         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5342
5343 2010-11-01  Paul Koning  <ni1d@arrl.net>
5344
5345         * config/pdp11/pdp11.md: Use iterators.
5346         (addqi3, subqi3, iorsi3, xorsi3): Delete.
5347
5348 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
5349
5350         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
5351         GCC_INSN_FLAGS_H.
5352         * libgcov.c (__gcov_indirect_call_profiler): Set
5353         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
5354         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
5355
5356 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5357
5358         PR tree-optimization/46259
5359
5360         Revert:
5361         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5362         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
5363         build_vector_from_val.
5364
5365 2010-11-01  DJ Delorie  <dj@redhat.com>
5366
5367         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
5368         as well as an assertion.
5369
5370 2010-11-01  Paul Koning  <ni1d@arrl.net>
5371
5372         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
5373         complex modes in memory.
5374
5375 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5376
5377         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
5378
5379 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
5380
5381         PR target/45250
5382         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
5383         (cfa_base_offset): New variable.
5384         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
5385         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
5386         is NULL.
5387         (vt_init_cfa_base): Initialize cfa_base_offset.
5388
5389 2010-11-01  Alan Modra  <amodra@gmail.com>
5390
5391         PR target/46030
5392         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
5393         and savres_strategy.
5394         (stack_info): New file scope var.
5395         (rs6000_init_machine_status): Init stack_info.
5396         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
5397         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
5398         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
5399         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
5400         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
5401         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
5402         (rs6000_savres_strategy): Rewrite.
5403         (rs6000_stack_info): Use "stack_info" in place of local "info".
5404         Return cached stack info when reload_completed unless ENABLE_CHECKING
5405         in which case confirm newly calculated stack info matches old info.
5406         Delay calculation of lr_save_p, set it for out of line gp save/restore
5407         as well as fp.  Call rs6000_savres_strategy from here..
5408         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
5409         (rs6000_output_function_prologue): Use info->savres_strategy to
5410         determine whether fp save/restore externs need to be emitted.
5411
5412 2010-10-31  Jason Merrill  <jason@redhat.com>
5413
5414         * tree.h (EXPR_LOC_OR_HERE): New macro.
5415         * builtins.c (c_strlen): Use it.
5416         * c-decl.c (build_enumerator): Likewise.
5417         * gimplify.c (internal_get_tmp_var): Likewise.
5418         (shortcut_cond_expr): Likewise.
5419         (gimplify_one_sizepos): Likewise.
5420
5421 2010-10-31  Richard Henderson  <rth@redhat.com>
5422
5423         * config/i386/cygming.h (TARGET_SEH): New.
5424         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
5425         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
5426         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
5427         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
5428         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
5429         (ASM_DECLARE_FUNCTION_SIZE): New.
5430         * config/i386/i386-protos.h: Update.
5431         * config/i386/i386.c (ix86_option_override_internal): Enable
5432         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
5433         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
5434         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
5435         (ix86_compute_frame_layout): For SEH, disable
5436         use_fast_prologue_epilogue, move frame pointer to the end of
5437         the frame.  Initialize hfp_save_offset.
5438         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
5439         at end of prologue for SEH.
5440         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
5441         emit blockage at beginning of epilogue.
5442         (ix86_expand_binary_operator): After reload, emit LEA if needed.
5443         (ix86_output_call_insn): New.
5444         * config/i386/i386.h (TARGET_SEH): New.
5445         (struct machine_function): Add member seh.
5446         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
5447         * config/i386/winnt.c (struct seh_frame_state): New.
5448         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
5449         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
5450         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
5451         i386_pe_start_function, i386_pe_end_function): New.
5452
5453         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
5454         as CFA_STORE in rules 12 and 13.
5455
5456 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
5457
5458         PR tree-optimization/46142
5459         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
5460         accommodate third function argument.
5461
5462 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5463
5464         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
5465
5466 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5467
5468         * fold-const.c (build_zero_vector): Use build_vector_from_val.
5469         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
5470         (get_initial_def_for_reduction): Likewise.
5471         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
5472         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
5473         * tree.c (build_one_cst): Likewise.
5474         (build_vector_from_val): Use types_compatible_p for assert.
5475
5476 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5477
5478         * emit-rtl.c (mark_used_flags): New function.
5479         (set_used_flags, reset_used_flags): Call it.
5480
5481 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
5482
5483         PR middle-end/44569
5484         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
5485         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
5486
5487 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
5488
5489         PR target/46195
5490         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
5491         (ix86_compat_aligned_value_p): This.
5492         (ix86_old_function_arg_boundary): Renamed to ...
5493         (ix86_compat_function_arg_boundary): This.  Updated.
5494         (ix86_contains_aligned_value_p): New.
5495         (ix86_function_arg_boundary): Align long double parameters on
5496         stack to 4byte in 32bit.
5497
5498 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
5499
5500         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
5501         * c-parser.c (c_parser_objc_at_property_declaration): Removed
5502         parsing of RID_COPIES and RID_IVAR.  Updated call to
5503         objc_add_property_declaration.
5504         * c-typecheck.c (build_component_ref): Call
5505         objc_maybe_build_component_ref instead of objc_build_setter_call.
5506         Use objc_is_property_ref to improve Objective-C checks.
5507         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
5508         of objc_build_getter_call.
5509
5510 2010-10-29  Paul Koning  <ni1d@arrl.net>
5511
5512         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5513         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
5514         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
5515         (REG_OK_STRICT): Move description.
5516
5517 2010-10-29  Paul Koning  <ni1d@arrl.net>
5518
5519         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
5520
5521 2010-10-29  Paul Koning  <ni1d@arrl.net>
5522
5523         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
5524
5525 2010-10-29  Paul Koning  <ni1d@arrl.net>
5526
5527         PR/41822
5528         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
5529
5530 2010-10-29  Richard Henderson  <rth@redhat.com>
5531
5532         PR rtl-opt/46226
5533         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
5534         for asm goto.
5535
5536 2010-10-29  Paul Koning  <ni1d@arrl.net>
5537
5538         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
5539         register to register move.
5540
5541 2010-10-29  Paul Koning  <ni1d@arrl.net>
5542
5543         * config/pdp11/pdp11.c (print_operand_address): Correct handling
5544         of integer constant addresses, delete vax-only logic.
5545
5546 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
5547
5548         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
5549         a conditional expression.
5550
5551 2010-10-29  Paul Koning  <ni1d@arrl.net>
5552
5553         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
5554         instruction encoding.
5555
5556 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5557             Andrew Pinski  <pinskia@gmail.com>
5558
5559         * tree.h (build_vector_from_val): Declare.
5560         * tree.c (build_vector_from_val): New function.
5561         * c-typeck.c (build_binary_op): Handle vector shifting.
5562         * doc/extend.texi: Description of the vector shifting operation.
5563
5564 2010-10-29  Paul Koning  <pkoning@equallogic.com>
5565
5566         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
5567         pdp11_secondary_memory_needed): Declare.
5568         * config/pdp11/predicates.md (float_operand): New predicate.
5569         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
5570         (cbranchdf4, movdf): Change predicate.
5571         (movsf): Handle FPU register case.
5572         (truncdfsf2, extendsfdf2): Add FPU register case.
5573         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
5574         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
5575         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5576         (pdp11_register_move_cost): Update cost matrix.
5577         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
5578         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
5579         pdp11_secondary_memory_needed): New function.
5580         (pdp11_return_in_memory): Add other float types.
5581         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
5582         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
5583         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
5584         REGISTER_MOVE_COST): Delete.
5585         (BASE_RETURN_VALUE_REG): Add other float types.
5586
5587 2010-10-29  Nick Clifton  <nickc@redhat.com>
5588
5589         * doc/invoke.texi: Document -mam34 and -mtune options.
5590         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
5591         (mn10300_tune_cpu): New variable.
5592         (mn10300_handle_option): Handle -mam34 and -mtune options.
5593         (mn10300_option_override): Convert tune string into tune cpu variable.
5594         (mn10300_legitimate_constant_p): Delete unused local variable.
5595         (is_load_insn): New function.
5596         (is_store_insn): New function.
5597         (mn10300_adjust_schedule_cost): New function.
5598         (TARGET_SCHED_ADJUST_COST): Define.
5599         * config/mn10300/mn10300.opt (mam34): New option.
5600         (mtune): New option.
5601         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
5602         (enum processor_type): Add AM34.
5603         (TARGET_AM34): Define.
5604         * config/mn10300/mn10300.md (attr cpu): Add am34.
5605         Add pipeline description.
5606         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
5607         Remove unneeded alternatives.  Add timing attribute.
5608         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
5609         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
5610         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
5611         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
5612         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
5613         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
5614         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
5615         float_conditional_branch, jump, indirect_jump, tablejump,
5616         call_internal, call_value_internal, zero_extendqisi2_am33,
5617         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
5618         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
5619         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
5620         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
5621         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
5622         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
5623         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
5624         return_internal_regs, store_movm, return, call_next_insn):
5625         Add timing attribute.
5626         (am33_subsi3): Add missing clobber of CC_REG.
5627         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
5628         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
5629         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
5630         extendqisi2): Fix predicates.
5631         (call_internal, call_internal_value): Separate alternatives.
5632         * config/mn10300/t-mn10300: Add AM34 multilib.
5633
5634 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
5635
5636         * config/sh/sh.c (sh_promote_function_mode): Use
5637         default_promote_function_mode if !sh_promote_prototypes.
5638
5639 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
5640
5641         * recog.c (split_all_insns): Remove dead code.
5642
5643 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5644
5645         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5646
5647 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5648
5649         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5650         (FUNCTION_ARG_ADVANCE): Delete.
5651         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
5652         functions.
5653         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
5654         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5655         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5656
5657 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5658
5659         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
5660         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5661         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5662         Take a const_tree and a bool.
5663         (mcore_function_arg_advance): New function.
5664         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5665
5666 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5667
5668         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
5669         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5670         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5671         Take a const_tree and a bool.
5672         (mcore_function_arg_advance): New function.
5673         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5674
5675 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5676
5677         * config/h8300/h8300-protos.h (function_arg): Delete.
5678         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5679         * config/h8300/h8300.c (function_arg): Rename to...
5680         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
5681         a bool.
5682         (h8300_function_arg_advance): New function.
5683         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5684
5685 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5686
5687         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
5688         to...
5689         * config/arc/arc.c (arc_function_arg): ...here and...
5690         (arc_function_arg_advance): ...here.  New functions.
5691         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5692
5693 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5694
5695         * config/crx/crx-protos.h (crx_function_arg): Delete.
5696         (crx_function_arg_advance): Delete.
5697         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5698         * config/crx/crx.c (crx_function_arg): Make static.  Take a
5699         const_tree and a bool.
5700         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
5701         (enough_regs_for_param): Take a const_tree.
5702         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5703
5704 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5705
5706         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
5707         (m68hc11_function_arg_advance): Delete.
5708         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
5709         (FUNCTION_ARG_ADVANCE): Delete.
5710         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
5711         Take a const_tree and a bool.
5712         (m68hc11_function_arg_advance): Likewise.
5713         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5714
5715 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5716
5717         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
5718         (xstormy16_function_arg_advance): Delete.
5719         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
5720         (FUNCTION_ARG_ADVANCE): Delete.
5721         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
5722         Take a const_tree and a bool.
5723         (xstormy16_function_arg_advance): Likewise.  Return void, updating
5724         the CUM parameter instead.
5725         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5726
5727 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5728
5729         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
5730         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5731         (MOXIE_FUNCTION_ARG_SIZE): Move to...
5732         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
5733         (moxie_function_arg): Make static.  Take a const_tree and a bool.
5734         (moxie_function_arg_advance): New function.
5735         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5736
5737 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5738
5739         * config/mn10300/mn10300-protos.h (function_arg): Delete.
5740         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
5741         (FUNCTION_ARG_ADVANCE): Delete.
5742         * config/mn10300/mn10300.c (function_arg): Rename to...
5743         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
5744         and a bool.
5745         (mn10300_function_arg_advance): New function.
5746         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5747
5748 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5749
5750         * config/iq2000/iq2000-protos.h (function_arg): Delete.
5751         (function_arg_advance): Delete.
5752         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5753         * config/iq2000/iq2000.c (function_arg): Rename to...
5754         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
5755         a bool.
5756         (function_arg_advance): Rename to...
5757         (iq2000_function_arg_advance): ...this.  Make static.  Take a
5758         const_tree and a bool.
5759         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
5760         iq2000_function_arg.
5761         (iq2000_pass_by_reference): Call iq2000_function_arg).
5762         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5763
5764 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5765
5766         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
5767         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5768         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
5769         const_tree.
5770         (fr30_function_arg): New function.
5771         (fr30_function_arg_advance): New function.
5772         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5773
5774 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5775
5776         * config/frv/frv-protos.h (frv_function_arg): Delete.
5777         (frv_function_arg_advance): Delete.
5778         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5779         * config/frv/frv.c (frv_function_arg): Rename to...
5780         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
5781         (frv_function_arg, frv_function_incoming_arg): New functions.
5782         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
5783         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5784         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5785
5786 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
5787
5788         PR target/46153
5789         * config/i386/sse.md (sse_movhlps_exp): Use destination
5790         returned from ix86_fixup_binary_operands to expand insn.
5791         (sse_movlhps_exp): Ditto.
5792         (sse_loadhps_exp): Ditto.
5793         (sse_loadlps_exp): Ditto.
5794         (sse2_loadhpd_exp): Ditto.
5795         (sse2_loadlpd_exp): Ditto.
5796
5797 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
5798
5799         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
5800         constants in thumb2.
5801
5802 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
5803
5804         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
5805         arithmetics in masking operations.
5806         (contains_muldiv): Likewise.
5807         (try_combine): Likewise.
5808         (find_split_point): Likewise.
5809         (combine_simplify_rtx): Likewise.
5810         (simplify_if_then_else): Likewise.
5811         (simplify_set): Likewise.
5812         (expand_compound_operation): Likewise.
5813         (expand_field_assignment): Likewise.
5814         (make_extraction): Likewise.
5815         (extract_left_shift): Likewise.
5816         (make_compound_operation): Likewise.
5817         (force_to_mode): Likewise.
5818         (make_field_assignment): Likewise.
5819         (reg_nonzero_bits_for_combine): Likewise.
5820         (simplify_shift_const_1): Likewise.
5821         (simplify_comparison): Likewise.
5822
5823 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
5824
5825         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
5826         (ia64_function_arg_advance): Delete.
5827         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5828         (FUNCTION_ARG_ADVANCE): Delete.
5829         * config/ia64/ia64.c (ia64_function_arg): Rename to...
5830         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
5831         bool arguments.
5832         (ia64_function_arg, ia64_function_incoming_arg): New functions.
5833         (ia64_function_arg_advance): Make static.  Take a const_tree and
5834         a bool.
5835         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5836         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5837
5838 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
5839
5840         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
5841         (TARGET_GET_RAW_ARG_MODE): New.
5842         * doc/tm.texi: Regenerate.
5843         * target.def (get_raw_result_mode): New.
5844         (get_raw_arg_mode): New.
5845         * targhooks.c (default_get_reg_raw_mode): New.
5846         * targhooks.h (default_get_reg_raw_mode): New.
5847         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
5848         (apply_result_size): Ditto.
5849         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
5850         (TARGET_GET_RAW_RESULT_MODE): Define.
5851         (TARGET_GET_RAW_ARG_MODE): Ditto.
5852
5853 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5854
5855         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
5856         for newer Solaris 10 release.
5857         (sparc_fallback_frame_state): Likewise.
5858
5859 2010-10-27  Jason Merrill  <jason@redhat.com>
5860
5861         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
5862         variables sooner.
5863
5864 2010-10-27  Jie Zhang  <jie@codesourcery.com>
5865             Maxim Kuvyrkov  <maxim@codesourcery.com>
5866
5867         * haifa-sched.c (ISSUE_POINTS): Remove.
5868         (max_issue): Don't issue more than issue_rate instructions.
5869
5870 2010-10-27  Ian Lance Taylor  <iant@google.com>
5871
5872         PR target/46197
5873         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
5874         (split_stack_return): Replace UNSPEC_STACK_CHECK with
5875         UNSPECV_SPLIT_STACK_RETURN.
5876
5877 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
5878
5879         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
5880
5881         * config/i386/i386.c (block_info): New.
5882         (BLOCK_INFO): Likewise.
5883         (call_avx256_state): Likewise.
5884         (check_avx256_stores): Likewise.
5885         (move_or_delete_vzeroupper_2): Likewise.
5886         (move_or_delete_vzeroupper_1): Likewise.
5887         (move_or_delete_vzeroupper): Likewise.
5888         (use_avx256_p): Likewise.
5889         (function_pass_avx256_p): Likewise.
5890         (flag_opts): Add -mvzeroupper.
5891         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
5892         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
5893         is disabled.
5894         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
5895         generate vzeroupper.
5896         (init_cumulative_args): Add an int to indicate caller.  Set
5897         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
5898         based on return type.
5899         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
5900         caller_pass_avx256_p based on argument type.
5901         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
5902         is used, but not returned by caller.
5903         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
5904         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
5905         is used.
5906         (ix86_minimum_alignment): Likewise.
5907         (ix86_expand_special_args_builtin): Set target to
5908         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
5909         (ix86_reorg): Run the vzeroupper optimization if needed.
5910
5911         * config/i386/i386.h (ix86_args): Add caller.
5912         (INIT_CUMULATIVE_ARGS): Updated.
5913         (machine_function): Add use_vzeroupper_p, use_avx256_p,
5914         caller_pass_avx256_p, caller_return_avx256_p,
5915         callee_pass_avx256_p and callee_return_avx256_p.
5916
5917         * config/i386/i386.opt (-mvzeroupper): New.
5918
5919         * config/i386/predicates.md (vzeroupper_operation): Removed.
5920
5921         * config/i386/sse.md (avx_vzeroupper): Removed.
5922         (*avx_vzeroupper): Removed.
5923         (avx_vzeroupper): New.
5924
5925         * doc/invoke.texi: Document -mvzeroupper.
5926
5927 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5928
5929         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
5930         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
5931         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
5932
5933 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5934             Olivier Hainque  <hainque@adacore.com>
5935
5936         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
5937         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
5938         fs->signal_frame instead.
5939
5940 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5941
5942         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
5943         parsing of RID_COPIES and RID_IVAR.
5944
5945 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5946
5947         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
5948         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
5949         Do not use objc_set_property_attr, but use local variables
5950         instead.  Detect repeated usage of setter, getter and ivar
5951         attributes.  Improved error processing when a setter name does not
5952         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
5953         that the token is a keyword.  Updated call to
5954         objc_add_property_declaration.
5955
5956 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5957
5958         * c-parser.c (c_parser_objc_at_property): Renamed to
5959         c_parser_objc_at_property_declaration.  Updated calls to
5960         objc_add_property_variable, now objc_add_property_declaration.
5961         Code rewritten to be much more robust in recovering from syntax
5962         errors.  Added comments.
5963         (c_parser_objc_property_attrlist): Removed.
5964         (c_parser_external_declaration): Updated calls to
5965         c_parser_objc_at_property, now
5966         c_parser_objc_at_property_declaration.
5967         (c_parser_objc_methodprotolist): Same change.
5968
5969 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5970
5971         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
5972
5973 2010-10-26  Jan Hubicka  <jh@suse.cz>
5974
5975         * ipa.c (process_references): Enqueue all referenced nodes;
5976         mark as reachable only non-external nodes.
5977         (cgraph_remove_unreachable_nodes): All referenced nodes should
5978         be enqueued; remove bogues node->needed check.
5979
5980 2010-10-26  Jan Hubicka  <jh@suse.cz>
5981
5982         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
5983         to represent OMP.
5984
5985 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5986
5987         * config/i386/i386.md (split_stack_return): Replace
5988         unspec_volatile with unspec.
5989
5990 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
5991
5992         * doc/install.texi: Fix typo in --with-sysroot description.
5993
5994 2010-10-26  Jan Hubicka  <jh@suse.cz>
5995
5996         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
5997         Use info provided by linker plugin.
5998
5999 2010-10-26  Jason Merrill  <jason@redhat.com>
6000
6001         * varasm.c (constructor_static_from_elts_p): Don't require a
6002         CONSTRUCTOR to have elements to be suitable for static
6003         initialization.  Allow ARRAY_TYPE as well.
6004
6005 2010-10-26  Jan Hubicka  <jh@suse.cz>
6006
6007         PR middle-end/45736
6008         * cgraph.c (cgraph_set_readonly_flag): Rename to...
6009         (cgraph_set_const_flags) ... this one; get also looping argument;
6010         clear constructor/destructor flags.
6011         (cgraph_set_pure_flag): Likewise.
6012         (cgraph_set_looping_const_or_pure_flag): Remove.
6013         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
6014         to optimize away static ctors/dtors; it does not work on inline clones;
6015         external functions can always be rmeoved.
6016         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
6017         inline clones; in LTO external functions always can go.
6018         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
6019         (cgraph_mark_address_taken_node): Assert that we are not taking
6020         address of inline clone.
6021         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
6022         external functions.
6023         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
6024         address taken.
6025         (ipcp_initialize_node_lattices): Only local functions can be
6026         handled without cloning.
6027         * cgraph.h (cgraph_set_readonly_flag,
6028         cgraph_set_looping_const_or_pure_flag): Remove.
6029         (cgraph_set_const_flag): Declare.
6030         (cgraph_set_pure_flag): Update.
6031         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
6032         flags setting code.
6033         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
6034         look at inline clones; fix handling of external definitions.
6035         (cgraph_postorder): Do not look at inline clones in the first pass.
6036         (function_and_variable_visibility): Drop constructors/destructor
6037         flags at pure and const functions.
6038         * tree-profile.c (tree_profiling): Update.
6039         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
6040         address taken; external functions do not account to whole program size.
6041         (cgraph_decide_inlining): Likewise; do not try to inline
6042         functions already inlined.
6043
6044 2010-10-26  Jie Zhang  <jie@codesourcery.com>
6045
6046         * doc/invoke.texi: Improve documentation of
6047         -fstrict-volatile-bitfields.
6048
6049 2010-10-26  Ira Rosen  <irar@il.ibm.com>
6050
6051         PR tree-optimization/46167
6052         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
6053         is basic block for the statement.
6054
6055 2010-10-26  Paul Koning  <ni1d@arrl.net>
6056
6057         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
6058         current definition of struct_real_format.
6059
6060 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6061
6062         PR target/44948
6063         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
6064         (ix86_function_arg_boundary): Always align parameters on stack
6065         in 64bit and align parameters with alignment >= 16byte on stack
6066         in 32bit.  Warn alignment change.
6067
6068 2010-10-26  Ian Lance Taylor  <iant@google.com>
6069
6070         PR middle-end/45687
6071         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
6072         offset.
6073
6074 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
6075
6076         Implement opaque-enum-specifiesr for C++0x
6077         * tree.h (ENUM_IS_OPAQUE): New.
6078         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
6079
6080 2010-10-26  Jie Zhang  <jie@codesourcery.com>
6081
6082         * stor-layout.c (layout_decl): Use the field's type to
6083         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
6084         * config/arm/arm.c (arm_override_options): Default to
6085         -fstrict-volatile-bitfields.
6086
6087 2010-10-25  Paul Koning  <ni1d@arrl.net>
6088
6089         * config/pdp11/pdp11.md: Add define_constants for register
6090         numbers, branch offset limits.
6091         * config/pdp11/pdp11.c: Use named constants instead of numbers.
6092         * config/pdp11.pdp11.h: Ditto.
6093
6094 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6095
6096         * configure.ac: Use $cpu_type instead of $target to define the nop.
6097         * configure: Regenerate.
6098
6099 2010-10-25  Jie Zhang  <jie@codesourcery.com>
6100
6101         * combine.c (try_combine): If insns need to be kept around, check that
6102         they can be copied in the merged instruction.
6103
6104 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6105
6106         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
6107         has been modified.
6108         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
6109         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
6110         it has been modified.
6111
6112 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6113
6114         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
6115
6116 2010-10-24  Paul Koning  <ni1d@arrl.net>
6117
6118         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
6119         * config/pdp11/pdp11.c (output_jump): Ditto.
6120
6121 2010-10-24  Ian Lance Taylor  <iant@google.com>
6122
6123         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
6124
6125 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6126
6127         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
6128         least one insn with a locus corresponding to an edge's goto_locus,
6129         disregard non-fallthru edges to the exit block and merge the blocks
6130         created for the same goto_locus.
6131
6132 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
6133
6134         * gcc.c (n_switches_alloc_debug_check): New.
6135         (set_option_handlers): New.
6136         (process_command): Use set_option_handlers.
6137         (do_self_spec): Pass spec-generated options through option handlers.
6138         (main): Also save and restore n_switches_alloc when swapping
6139         switch arrays.
6140
6141 2010-10-23  Richard Henderson  <rth@redhat.com>
6142
6143         PR target/46144
6144         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
6145         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
6146         Honor matching operands when splitting to XOR.
6147
6148 2010-10-23  Ian Lance Taylor  <iant@google.com>
6149
6150         * tree-vrp.c (extract_range_from_binary_expr): If
6151         flag_non_call_exceptions don't eliminate division by zero.
6152         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
6153
6154 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
6155
6156         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
6157         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
6158         __ORDER_PDP_ENDIAN__.
6159         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6160         (struct DWstruct): Define based on __BYTE_ORDER__.
6161         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6162         (struct INTstruct): Define based on __BYTE_ORDER__.
6163         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6164         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
6165         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
6166         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6167         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6168         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6169         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6170         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6171         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6172         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6173         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6174         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6175         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6176         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6177         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6178         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6179         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6180         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6181         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6182         * doc/tm.texi: Regenerate.
6183         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
6184         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
6185
6186 2010-10-23  Jie Zhang  <jie@codesourcery.com>
6187
6188         PR rtl-optimization/37360
6189         * config/mips/mips.c (cached_can_issue_more): New local variable.
6190         (mips_sched_reorder_1): New.
6191         (mips_sched_reorder): Use mips_sched_reorder_1.
6192         (mips_sched_reorder2): New.
6193         (mips_variable_issue): Set cached_can_issue_more.
6194         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
6195         instead of mips_sched_reorder.
6196
6197         Revert:
6198         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
6199         PR rtl-optimization/37360
6200         * haifa-sched.c (max_issue): Do not assert that we never issue more
6201         insns than issue_rate.  Add comment.
6202
6203 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
6204
6205         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
6206         location info of the expression.
6207
6208 2010-10-22  DJ Delorie  <dj@redhat.com>
6209
6210         * doc/extend.texi (Named Address Spaces): Document the M32C named
6211         address space.
6212
6213         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
6214         __far address space.
6215         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
6216         "__far" address space for R8C and M16C processor variants.
6217         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
6218         (far_addr_space_p): New.
6219         (encode_pattern_1): Add sign and zero extend support.
6220         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
6221         (m32c_extra_constraint_p2): Add SF constraint.
6222         (m32c_legitimate_address_p): Support __far addresses.
6223         (m32c_addr_space_pointer_mode): New.
6224         (m32c_addr_space_address_mode): New.
6225         (m32c_addr_space_legitimate_address_p): New.
6226         (m32c_addr_space_legitimize_address): New.
6227         (m32c_addr_space_subset_p): New.
6228         (m32c_addr_space_convert): New.
6229         (conversions): Add __far operand patterns.
6230         (m32c_prepare_move): Force constants into registers for __far moves.
6231         (m32c_split_move): __far moves are always split.
6232         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
6233         * config/m32c/mov.md (mov<mode>_far_op1): New.
6234         (mov<mode>_far_op2): New.
6235         (movqi_op): Add __far (SF) support.
6236         (movhi_op): Likewise.
6237         (movsi_splittable): Split A1A0 also.
6238
6239 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6240             Andrew Pinski  <pinskia@gmail.com>
6241
6242         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
6243         * doc/extend.texi: New paragraph
6244
6245 2010-10-22  Paul Koning  <ni1d@arrl.net>
6246
6247         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
6248
6249 2010-10-22  DJ Delorie  <dj@redhat.com>
6250
6251         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
6252
6253 2010-10-22  Paul Koning  <ni1d@arrl.net>
6254
6255         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
6256
6257 2010-10-22  Richard Henderson  <rth@redhat.com>
6258
6259         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
6260         cases for __builtin_fma and __builtin_fmaf.
6261
6262 2010-10-22  Richard Henderson  <rth@redhat.com>
6263
6264         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
6265         NEG+USE for vectors as well.
6266         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
6267         and splitter.
6268
6269 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6270
6271         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
6272         SWITCH_CURTAILS_COMPILATION): Remove.
6273         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
6274         * doc/tm.texi: Regenerate.
6275         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
6276
6277 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6278
6279         * config/i386/bdver1.md: New file.
6280         * config/i386/i386.md (include "bdver1.md"): Invoke the
6281         pipeline description for bdver1.
6282         (x86_sahf_1): Add "bdver1_decode" attribute.
6283         (*cmpfp_i_mixed): Likewise.
6284         (*cmpfp_i_sse): Likewise.
6285         (*cmpfp_i_i387): Likewise.
6286         (*cmpfp_iu_mixed): Likewise.
6287         (*cmpfp_iu_sse): Likewise.
6288         (*cmpfp_iu_387): Likewise.
6289         (*swap<mode>,*swap<mode>_1): Likewise.
6290         (fixuns_trunc<mode>hi2): Likewise.
6291         (fix_trunc<mode>si_sse): Likewise.
6292         (x86_fnstcw_1): Likewise.
6293         (x86_fldcw_1): Likewise.
6294         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
6295         (*floatsi<mode>2_vector_mixed): Likewise.
6296         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
6297         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
6298         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
6299         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
6300         (*floatsi<mode>2_vector_sse): Likewise.
6301         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
6302         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
6303         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
6304         (*mul<mode>3_1): Likewise.
6305         (*mulsi3_1_zext): Likewise.
6306         (*mulhi3_1): Likewise.
6307         (*mulqi3_1): Likewise.
6308         (*<u>mul<mode><dwi>3_1): Likewise.
6309         (*<u>mulqihi3_1): Likewise.
6310         (*<s>muldi3_highpart_1): Likewise.
6311         (*<s>mulsi3_highpart_1): Likewise.
6312         (*<s>mulsi3_highpart_zext): Likewise.
6313         (x86_64_shld): Likewise.
6314         (x86_shld): Likewise.
6315         (x86_64_shrd): Likewise.
6316         (x86_shrd): Likewise.
6317         (sqrtxf2): Likewise.
6318         (sqrt_extend<mode>xf2_i387): Likewise.
6319         (*sqrt<mode>2_sse): Likewise.
6320         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
6321         (sse_cvtsi2ssq): Likewise.
6322         (sse_cvtss2si): Likewise.
6323         (sse_cvtss2si_2): Likewise.
6324         (sse_cvtss2siq): Likewise.
6325         (sse_cvtss2siq_2): Likewise.
6326         (sse_cvttss2si): Likewise.
6327         (sse_cvttss2siq): Likewise.
6328         (sse2_cvtpi2pd): Likewise.
6329         (sse2_cvttpd2pi): Likewise.
6330         (sse2_cvtsi2sd): Likewise.
6331         (sse2_cvtsi2sdq): Likewise.
6332         (sse2_cvtsd2si): Likewise.
6333         (sse2_cvtsd2si_2): Likewise.
6334         (sse2_cvtsd2siq): Likewise.
6335         (sse2_cvtsd2siq_2): Likewise.
6336         (sse2_cvttsd2si): Likewise.
6337         (sse2_cvttsd2siq): Likewise.
6338         (*sse2_cvtpd2dq): Likewise.
6339         (*sse2_cvttpd2dq): Likewise.
6340         (sse2_cvtsd2ss): Likewise.
6341         (sse2_cvtss2sd): Likewise.
6342         (*sse2_cvtpd2ps): Likewise.
6343         (sse2_cvtps2pd): Likewise.
6344
6345 2010-10-22  Richard Guenther  <rguenther@suse.de>
6346
6347         PR middle-end/46137
6348         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
6349         remove the virtual operands if they are not needed.
6350
6351 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6352
6353         * config/i386/i386.c (processor_costs bdver1_cost): Update
6354         insn costs and architectural parameters for bdver1.
6355
6356 2010-10-22  Richard Guenther  <rguenther@suse.de>
6357
6358         * gimple.h (gimple_register_canonical_type): Declare.
6359         * gimple.c (gimple_canonical_types): New global hashtable.
6360         (struct gimple_type_leader_entry_s): New type.
6361         (gimple_type_leader): New global cache.
6362         (gimple_lookup_type_leader): New function.
6363         (gtc_visit): Query the proper cache.
6364         (gimple_types_compatible_p): Likewise.
6365         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
6366         (gimple_canonical_type_eq): New function.
6367         (gimple_register_canonical_type): Likewise.
6368         (print_gimple_types_stats): Adjust for gimple_canonical_types.
6369         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
6370         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
6371         gimple_types_compatible_p for LTO.
6372
6373 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
6374
6375         PR target/46098
6376         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
6377         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
6378         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
6379         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
6380         (<sse>_movu<ssemodesuffix>): New expander.
6381         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
6382         (avx_movdqu<avxmodesuffix>): New expander.
6383         (*sse2_movdqu): Rename from sse2_movdqu.
6384         (sse2_movdqu): New expander.
6385
6386 2010-10-22  Richard Guenther  <rguenther@suse.de>
6387
6388         PR tree-optimization/45720
6389         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
6390         Handle negative step.
6391         (vect_enhance_data_refs_alignment): Likewise.
6392         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
6393         (vect_create_cond_for_align_checks): Likewise.
6394         (vect_create_cond_for_alias_checks): Likewise.
6395
6396 2010-10-22  Ira Rosen  <irar@il.ibm.com>
6397
6398         PR tree-optimization/46126
6399         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
6400         vectorizable_shift in case of basic block vectorization.
6401
6402 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6403
6404         * target.h (enum opt_levels, struct default_options): New.
6405         * target.def (handle_ofast): Remove hook.
6406         (target_option.optimization): Change to
6407         target_option.optimization_table.
6408         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
6409         TARGET_OPTION_OPTIMIZATION_TABLE.
6410         (CAN_DEBUG_WITHOUT_FP): Remove.
6411         * doc/tm.texi: Regenerate.
6412         * opts.c (maybe_default_option, maybe_default_options,
6413         default_options_table): New.
6414         (default_options_optimization): Take extra parameters.  Don't
6415         assert that global_options and global_options_set are in use.  Use
6416         maybe_default_options.
6417         (decode_options): Pass extra parameters to
6418         default_options_optimization.
6419         * common.opt (falign-loops): Use value 0 with Var.
6420         (frerun-cse-after-loop, ftree-ter): Remove Init.
6421         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
6422         TARGET_OPTION_OPTIMIZATION): Remove.
6423         * targhooks.c (empty_optimization_table): New.
6424         * targhooks.h (empty_optimization_table): Declare.
6425         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
6426         * config/alpha/alpha.c (alpha_option_optimization_table,
6427         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6428         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
6429         * config/arm/arm.c (arm_option_optimization: Change to
6430         arm_option_optimization_table.
6431         (TARGET_OPTION_OPTIMIZATION): Change to
6432         TARGET_OPTION_OPTIMIZATION_TABLE.
6433         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
6434         * config/avr/avr.c (avr_option_optimization_table,
6435         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6436         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
6437         * config/cris/cris.c (cris_option_optimization): Change to
6438         cris_option_optimization_table.
6439         (TARGET_OPTION_OPTIMIZATION): Change to
6440         TARGET_OPTION_OPTIMIZATION_TABLE.
6441         * config/crx/crx.c (crx_option_optimization): Change to
6442         crx_option_optimization_table.
6443         (TARGET_OPTION_OPTIMIZATION): Change to
6444         TARGET_OPTION_OPTIMIZATION_TABLE.
6445         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6446         * config/fr30/fr30.c (fr30_option_optimization_table,
6447         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6448         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
6449         * config/frv/frv.c (frv_option_optimization_table,
6450         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6451         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
6452         * config/h8300/h8300.c (h8300_option_optimization): Change to
6453         h8300_option_optimization_table.
6454         (TARGET_OPTION_OPTIMIZATION): Change to
6455         TARGET_OPTION_OPTIMIZATION_TABLE.
6456         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6457         * config/i386/i386.c (ix86_option_optimization): Change to
6458         ix86_option_optimization_table.
6459         (TARGET_OPTION_OPTIMIZATION): Change to
6460         TARGET_OPTION_OPTIMIZATION_TABLE.
6461         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
6462         as initializer.
6463         * config/ia64/ia64.c (ia64_option_optimization): Change to
6464         ia64_option_optimization_table.
6465         (TARGET_OPTION_OPTIMIZATION): Change to
6466         TARGET_OPTION_OPTIMIZATION_TABLE.
6467         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
6468         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
6469         initializer.
6470         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
6471         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6472         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6473         * config/lm32/lm32.c (lm32_option_optimization_table,
6474         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6475         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
6476         * config/m32r/m32r.c (m32r_option_optimization): Change to
6477         m32r_option_optimization_table.
6478         (TARGET_OPTION_OPTIMIZATION): Change to
6479         TARGET_OPTION_OPTIMIZATION_TABLE.
6480         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
6481         CAN_DEBUG_WITHOUT_FP): Remove.
6482         * config/mcore/mcore.c (mcore_option_optimization): Change to
6483         mcore_option_optimization_table.
6484         (TARGET_OPTION_OPTIMIZATION): Change to
6485         TARGET_OPTION_OPTIMIZATION_TABLE.
6486         * config/mep/mep.c (mep_option_optimization): Change to
6487         mep_option_optimization_table.
6488         (TARGET_OPTION_OPTIMIZATION): Change to
6489         TARGET_OPTION_OPTIMIZATION_TABLE.
6490         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
6491         * config/microblaze/microblaze.c
6492         (microblaze_option_optimization_table,
6493         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6494         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
6495         * config/mips/mips.c (mips_option_optimization_table,
6496         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6497         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
6498         * config/mmix/mmix.c (mmix_option_optimization): Change to
6499         mmix_option_optimization_table.
6500         (TARGET_OPTION_OPTIMIZATION): Change to
6501         TARGET_OPTION_OPTIMIZATION_TABLE.
6502         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
6503         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
6504         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6505         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6506         * config/pa/pa.c (pa_option_optimization_table,
6507         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6508         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6509         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
6510         pdp11_option_optimization_table.
6511         (TARGET_OPTION_OPTIMIZATION): Change to
6512         TARGET_OPTION_OPTIMIZATION_TABLE.
6513         * config/picochip/picochip.c (picochip_option_optimization_table,
6514         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6515         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
6516         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
6517         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6518         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6519         * config/rx/rx.c (rx_option_optimization_table,
6520         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6521         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6522         * config/s390/s390.c (s390_option_optimization): Change to
6523         s390_option_optimization_table.
6524         (s390_option_override): Update comment.
6525         (TARGET_OPTION_OPTIMIZATION): Change to
6526         TARGET_OPTION_OPTIMIZATION_TABLE.
6527         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
6528         * config/score/score.c (score_option_optimization_table,
6529         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6530         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
6531         * config/sh/sh.c (sh_option_optimization): Change to
6532         sh_option_optimization_table.
6533         (TARGET_OPTION_OPTIMIZATION): Change to
6534         TARGET_OPTION_OPTIMIZATION_TABLE.
6535         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
6536         (sh_option_override, expand_block_move, multcosts, find_barrier,
6537         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
6538         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
6539         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
6540         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
6541         instead of TARGET_SMALLCODE.
6542         * config/sh/sh.opt (mspace): Make into an alias for -Os.
6543         * config/sparc/sparc.c (sparc_option_optimization_table,
6544         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6545         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
6546         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
6547         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6548         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
6549         * config/v850/v850.c (v850_option_optimization): Change to
6550         v850_option_optimization_table.
6551         (TARGET_OPTION_OPTIMIZATION): Change to
6552         TARGET_OPTION_OPTIMIZATION_TABLE.
6553         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
6554         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
6555         xtensa_option_optimization_table.
6556         (TARGET_OPTION_OPTIMIZATION): Change to
6557         TARGET_OPTION_OPTIMIZATION_TABLE.
6558         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6559
6560 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
6561
6562         Based on the CFString implementation in FSF apple/trunk branch.
6563
6564         * target.def (objc_construct_string): New Hook.
6565         * doc/tm.texi (objc_construct_string): Document.
6566         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
6567         * config/t-darwin: Amend build rules for darwin.o.
6568         * config/darwin.opt: Add cfstrings flags.
6569         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
6570         (darwin_objc_construct_string): New.
6571         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
6572         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
6573         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
6574         (darwin_fold_builtin): Likewise.
6575         (darwin_build_constant_cfstring): Likewise.
6576         (darwin_objc_construct_string): Likewise.
6577         (darwin_cfstring_p): Likewise.
6578         (darwin_enter_string_into_cfstring_table): Likewise.
6579         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
6580         * config/darwin.c (darwin_running_cxx): New var.
6581         (machopic_select_section): Return cfstring_constant_object_section.
6582         (darwin_override_options): Set darwin_running_cxx.
6583         (add_builtin_field_decl): New.
6584         (darwin_init_cfstring_builtins): New.
6585         (darwin_build_constant_cfstring): New.
6586         (darwin_fold_builtin): New.
6587         (cfstring_hash): New.
6588         (cfstring_eq): New.
6589         (darwin_enter_string_into_cfstring_table): New.
6590         * config/darwin-sections.def (cfstring_constant_object_section): New.
6591         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
6592         (TARGET_OBJC_CONSTRUCT_STRING): Define.
6593
6594 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6595
6596         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
6597         TYPE_STUB_DECL instead of TREE_CHAIN.
6598         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
6599         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
6600         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
6601         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
6602         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
6603         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
6604         Likewise.
6605         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
6606
6607 2010-10-22  Jie Zhang  <jie@codesourcery.com>
6608
6609         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
6610         (copy_blkmode_from_reg): Likewise.
6611         (read_complex_part): Likewise.
6612         (expand_expr_real_1): Calculate packedp and pass it to
6613         extract_bit_field.
6614         * expr.h (extract_bit_field): Update declaration.
6615         * calls.c (store_unaligned_arguments_into_pseudos): Update call
6616         to extract_bit_field.
6617         * expmed.c (extract_fixed_bit_field): Update calls to
6618         extract_fixed_bit_field.
6619         (store_split_bit_field): Likewise.
6620         (extract_bit_field_1): Add new argument packedp.
6621         (extract_bit_field): Add new argument packedp.
6622         (extract_fixed_bit_field): Add new argument packedp and let
6623         packed attribute override volatile.
6624         * stmt.c (expand_return): Update call to extract_bit_field.
6625
6626 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6627
6628         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
6629
6630 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6631
6632         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
6633         of gcc_checking_assert.
6634         * sel-sched.c (code_motion_process_successors): Likewise.
6635
6636 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
6637
6638         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
6639         when stopping because of a different locus on edge or insn.
6640         (try_optimize_cfg): Add comment.
6641         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
6642         block is a forwarder block, propagate locus on the edge.
6643         (cfg_layout_merge_blocks): Likewise.
6644
6645 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
6646
6647         PR target/45946
6648         * config/i386/i386.md (*pushti2): New insn pattern.
6649         (pushti2 splitter): New insn splitter.
6650         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
6651         DWI mode iterator.
6652
6653 2010-10-21  Paul Koning  <ni1d@arrl.net>
6654
6655         * config/pdp11/pdp11-protos.md (arith_operand,
6656         const_immediate_operand, expand_shift_operand,
6657         immediate15_operand): Delete
6658         * config/pdp11/pdp11.c: Ditto.
6659         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
6660         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
6661         EXTRA_CONSTRAINT): Delete.
6662         * config/pdp11/pdp11.md (various): Use standard constraints
6663         instead of removed ones.
6664         * config/pdp11/constraints.md: New file.
6665         * config/pdp11/predicates.md: New file.
6666
6667 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
6668
6669         PR c/45834
6670         * alias.c (true_dependence_1): Remove obsolete check for QImode.
6671         (may_alias_p): Ditto.
6672
6673 2010-10-21  Martin Jambor  <mjambor@suse.cz>
6674
6675         PR tree-optimization/45875
6676         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
6677
6678 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6679
6680         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
6681         variables.
6682         (create_new_def_for): Likewise.
6683
6684 2010-10-21  Nick Clifton  <nickc@redhat.com>
6685
6686         * config/mn10300/mn10300.c: Fold code to 80-character width.
6687         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6688         MEM, CONST_INT and CONST_DOUBLE.
6689         (targetm): Move initialization to end of file.
6690         (print_operand): Rename to mn10300_print_operand.
6691         (print_operand_address): Rename to mn10300_print_operand_address.
6692         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
6693         (expand_prologue): Rename to mn10300_expand_prologue.
6694         (expand_epilogue): Rename to mn10300_expand_epilogue.
6695         (initial_offset): Rename to mn10300_initial_offset.
6696         (function_arg): Rename to mn10300_function_arg.
6697         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
6698         (symbolic_operand): Rename to mn10300_symbolic_operand.
6699         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
6700         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
6701         * config/mn10300/mn10300-protos.h: Update prototypes.
6702         * config/mn10300/mn10300.h: Fold code to 80-character width.
6703         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6704         MEM, CONST_INT and CONST_DOUBLE.
6705         (CPP_SPEC): Move to...
6706         (TARGET_CPU_CPP_BUILTINS): ... here.
6707         * config/mn10300/mn10300.md: Fold code to 80-character width.
6708         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6709         MEM, CONST_INT and CONST_DOUBLE.
6710
6711 2010-10-21  Ira Rosen  <irar@il.ibm.com>
6712
6713         PR tree-optimization/46049
6714         PR tree-optimization/46052
6715         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
6716         (vect_get_slp_defs): Add arguments.
6717         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
6718         operands to vect_get_slp_defs.
6719         (vectorizable_reduction): Fix comment, pass scalar operands to
6720         vect_get_slp_defs.
6721         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
6722         type to determine number of units in the created vector.
6723         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
6724         (vectorizable_conversion): Fix comment.
6725         (vectorizable_shift): New function.
6726         (vectorizable_operation): Move code that handles shifts to
6727         vectorizable_shift.
6728         (vectorizable_type_demotion): Fix comment, pass scalar operands to
6729         vect_get_slp_defs.
6730         (vectorizable_type_promotion, vectorizable_store): Likewise.
6731         (vectorizable_condition): Fix comment.
6732         (vect_analyze_stmt): Call vectorizable_shift.
6733         (vect_transform_stmt): Likewise.
6734         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
6735         Use it as the operand to create vectors for, except reduction
6736         initial definition and store.  Use operands type.
6737         (vect_get_slp_defs): Add new arguments.  Pass them to
6738          vect_get_constant_vectors.
6739
6740 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6741
6742         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
6743         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
6744         * cfghooks.c (fixup_reorder_chain): Likewise.
6745         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
6746         * cgraph.c (cgraph_add_thunk): Likewise.
6747         (cgraph_create_edge_1): Likewise.
6748         (cgraph_create_virtual_clone): Likewise.
6749         * ddg.c (add_cross_iteration_register_deps): Likewise.
6750         * dwarf2out.c (modified_type_die): Likewise.
6751         * emit-rtl.c (set_mem_alias_set): Likewise.
6752         * ggc-zone.c (zone_allocate_marks): Likewise.
6753         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
6754         * gimple.c (iterative_hash_gimple_type): Likewise.
6755         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
6756         (create_single_exit_edge): Likewise.
6757         * haifa-sched.c (choose_ready): Likewise.
6758         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6759         * passes.c (execute_todo): Likewise.
6760         * sched-ebb.c (begin_schedule_ready): Likewise.
6761         * sel-sched.c (code_motion_process_successors): Likewise.
6762         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
6763         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
6764         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
6765         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
6766         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
6767         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
6768         (ssa_conflicts_add): Likewise.
6769         * tree-ssa-copy.c (replace_exp): Likewise.
6770         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
6771         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
6772         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
6773         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
6774         (compute_antic): Likewise.
6775         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
6776         (add_dependence): Likewise.
6777         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
6778         * tree-vrp.c (supports_overflow_infinity): Likewise.
6779         (make_overflow_infinity, negative_overflow_infinity): Likewise.
6780         (avoid_overflow_infinity, register_new_assert_for): Likewise.
6781         (process_assert_insertions_for): Likewise.
6782         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
6783         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
6784         (intersect_loc_chains, variable_merge_over_cur): Likewise.
6785
6786 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6787
6788         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
6789         * reload1.c (has_nonexceptional_receiver): Likewise.
6790         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
6791         (create_new_def_for): Likewise.
6792         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
6793         (merge_phi_nodes): Likewise.
6794         (has_abnormal_incoming_edge_p): Delete.
6795
6796 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
6797
6798         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
6799
6800 2010-10-21  Richard Guenther  <rguenther@suse.de>
6801             Michael Matz  <matz@suse.de>
6802
6803         PR tree-optimization/45764
6804         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
6805         Adjust initial misalignment for negative DR_STEP.
6806         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
6807         do not have the same alignment over the whole iteration domain.
6808
6809 2010-10-21  Richard Guenther  <rguenther@suse.de>
6810
6811         PR tree-optimization/46111
6812         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
6813
6814 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6815
6816         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
6817
6818 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6819
6820         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
6821         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
6822
6823 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6824
6825         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
6826         signal_frame.
6827         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
6828
6829 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6830
6831         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
6832         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
6833
6834 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6835
6836         * basic-block.h (find_fallthru_edge): Define.
6837         * cfgcleanup.c (merge_blocks_move): Use it.
6838         (try_crossjump_bb): Likewise.
6839         * cfglayout.c (fixup_reorder_chains): Likewise.
6840         (fixup_fallthru_exit_predecessor): Likewise.
6841         * cfgrtl.c (rtl_split_edge): Likewise.
6842         (rtl_verify_flow_info): Likewise.
6843         * function.c (thread_prologue_and_epilogue_insns): Likewise.
6844         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
6845         * ifcvt.c (block_fallthru): Likewise.
6846         * reload1.c (fixup_abnormal_edges): Likewise.
6847         * sched-ebb.c (being_schedule_ready): Likewise.
6848         (schedule_ebb): Likwise.
6849         * sched-rgn.c (find_single_block_region): Likewise.
6850         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
6851         * tree-complex.c (expand_complex_move): Likewise.
6852         * sched-int.h (find_fallthru_edge): Rename to...
6853         (find_fallthru_edge_from): ...this.
6854         * haifa-sched.c (find_fallthru_edge): Rename to...
6855         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
6856         (init_before_recovery): Call find_fallthru_edge_from.
6857         * sel-sched-ir.c (merge_fences): Likewise.
6858         * sel-sched.c (in_fallthru_bb_p): Likewise.
6859         (move_cond_jump): Likewise.
6860
6861 2010-10-20  Paul Koning  <ni1d@arrl.net>
6862
6863         * config/pdp11/pdp11.md (various): Fix conditions on a number of
6864         insn to check for target 11/40 or higher.
6865
6866 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6867
6868         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
6869         bool instead of a tree.
6870         (c_parser_objc_method_decl): Added bool argument.  Updated call to
6871         objc_build_method_signature.
6872         (c_parser_objc_method_definition): Do not call
6873         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
6874         c_parser_objc_method_decl and objc_start_method_definition.
6875         (c_parser_objc_methodproto): Do not call objc_set_method_type.
6876         Updated calls to c_parser_objc_method_type,
6877         c_parser_objc_method_decl and objc_add_method_declaration.
6878
6879 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
6880
6881         PR tree-optimization/45919
6882         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
6883         array members.
6884
6885         PR tree-optimization/46066
6886         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
6887         instead of gsi_last_bb.
6888
6889 2010-10-20  DJ Delorie  <dj@redhat.com>
6890
6891         * config/m32c/m32c.c (m32c_option_override): Always disable
6892         function-cse in 16-bit mode.  Indirect calls are always worse than
6893         direct calls as there is no 16-bit indirect call opcode.
6894         (m32c_override_options_after_change): New, likewise.
6895
6896 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6897
6898         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
6899         emitting the conditional move in the inner mode of the SUBREG.
6900
6901 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
6902
6903         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
6904         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
6905         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6906         (ia64_preferred_reload_class): Make static.  Change rclass argument
6907         and result types from enum reg_class to reg_class_t.
6908
6909 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
6910
6911         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
6912         call for single operand expression.
6913
6914 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6915
6916         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
6917         if there is a call statement to pure or const function in the block.
6918
6919 2010-10-20  Paul Koning  <pkoning@equallogic.com>
6920
6921         Fix several build errors for pdp11 target.
6922         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
6923         (cbranchdf4): Conditional on TARGET_FPU.
6924         (movdf): Ditto; correct alternatives check.
6925         (movmemhi): Fix predicate and constraint.
6926         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
6927
6928 2010-10-20  Richard Guenther  <rguenther@suse.de>
6929
6930         PR lto/45667
6931         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
6932         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
6933         (verify_gimple_assign_single): Disable ADDR_EXPR type check
6934         when in LTO.
6935
6936 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
6937
6938         PR fortran/42169
6939         * ira-emit.c (store_can_be_removed_p): Return false instead of
6940         gcc_unreachable.
6941
6942 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
6943
6944         * fold-const.c (fold_binary_loc): New transformation.
6945
6946 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
6947
6948         PR target/46085
6949         * config/i386/sse.md (reduc_splus_v8sf): Updated.
6950         (reduc_splus_v4df): Likewise.
6951
6952 2010-10-20  Richard Guenther  <rguenther@suse.de>
6953
6954         PR tree-optimization/45860
6955         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
6956         conditional store replacement for non-register type stores.
6957
6958 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6959
6960         * stor-layout.c (skip_simple_constant_arithmetic): New function.
6961         (self_referential_size): Use it instead of skip_simple_arithmetic.
6962
6963 2010-10-20  Olivier Hainque  <hainque@adacore.com>
6964
6965         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
6966         If the current function calls eh_return, claim live all registers
6967         that we need to check for liveness otherwise.
6968
6969 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6970
6971         * c-decl.c (c_write_global_declarations): Call
6972         objc_write_global_declarations when compiling Objective-C.
6973         * c-lang.c (finish_file): Removed.
6974
6975 2010-10-19  DJ Delorie  <dj@redhat.com>
6976
6977         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
6978         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
6979         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
6980         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
6981         * doc/tm.texi: Regenerate.
6982         * targhooks.h (default_label_align_after_barrier_max_skip,
6983         default_loop_align_max_skip, default_label_align_max_skip,
6984         default_jump_align_max_skip): Declare.
6985         * target.def (label_align_after_barrier_max_skip): New.
6986         (loop_align_max_skip): New.
6987         (label_align_max_skip): New.
6988         (jump_align_max_skip): New.
6989         * system.h (poison): Add those macros to the list.
6990         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
6991         (LOOP_ALIGN_MAX_SKIP): Remove.
6992         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
6993         (JUMP_ALIGN_MAX_SKIP): Remove.
6994         (default_label_align_after_barrier_max_skip): New.
6995         (default_loop_align_max_skip): New.
6996         (default_label_align_max_skip): New.
6997         (default_jump_align_max_skip): New.
6998         (compute_alignments): Use the new hooks.
6999         (shorten_branches): Likewise.
7000
7001 2010-10-19  Richard Henderson  <rth@redhat.com>
7002
7003         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
7004         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
7005         (fma4i_fmadd_<mode>): New.
7006         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
7007         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
7008         standard fma patterns.
7009         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
7010         enable for FMA.
7011         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
7012         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
7013         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
7014
7015 2010-10-19  Paul Koning  <pkoning@equallogic.com>
7016
7017         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
7018         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
7019
7020 2010-10-19  Richard Henderson  <rth@redhat.com>
7021
7022         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
7023         (fmadf4, *fmsdf4, *nfmadf4): New.
7024         (fmaxf4, *fmsxf4, *nfmaxf4): New.
7025
7026 2010-10-19  Michael Eager  <eager@eagercon.com>
7027
7028         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
7029         Use sjlj unwind info for exceptions.
7030
7031 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
7032
7033         PR fortran/43414
7034         * dwarf2out.c (add_calling_convention_attribute): Flag main
7035         Fortran subroutine with DW_AT_main_subprogram.
7036
7037 2010-10-19  Nick Clifton  <nickc@redhat.com>
7038
7039         * config/rx/rx.c (rx_function_value): Small integer types are
7040         promoted to SImode.
7041         (rx_promote_function_mode): New function.
7042         (TARGET_PROMOTE_FUNCTION_MODE): Define.
7043
7044 2010-10-19  Nick Clifton  <nickc@redhat.com>
7045
7046         * config/mep/mep.c (mep_print_operand): Use
7047         targetm.strip_name_encoding.
7048         (mep_output_aligned_common): Likewise.
7049
7050 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
7051
7052         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
7053
7054 2010-10-18  Richard Henderson  <rth@redhat.com>
7055
7056         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
7057         (fma (neg a) (neg b) c) and (fma a (neg b) c).
7058
7059 2010-10-18  Richard Henderson  <rth@redhat.com>
7060
7061         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
7062         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
7063         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
7064         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
7065         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
7066         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
7067         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
7068         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
7069         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
7070         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
7071         (bdesc_multi_arg): Remove the corresponding builtins.
7072         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
7073         (UNSPEC_FMA4_FMSUBADD): Remove.
7074         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
7075         * config/i386/sse.md (FMA4MODEF4): Remove.
7076         (FMAMODE): Add.
7077         (fma<mode>4): New expander.
7078         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
7079         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
7080         (*fma4i_fmsub_<mode>): Similarly.
7081         (*fma4i_fnmadd_<mode>): Similarly.
7082         (*fma4i_fnmsub_<mode>): Similarly.
7083         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
7084         with the first operand.
7085         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
7086         of explicit arithmetic.  Macroize with AVXMODEF2P.
7087         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
7088         (xop_frcz<mode>2): Macroize with FMAMODE.
7089         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
7090         the first operand.
7091         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
7092         extra negations.
7093         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
7094         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
7095         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
7096         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
7097         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
7098         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
7099         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
7100         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
7101
7102 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
7103
7104         PR rtl-optimization/45966
7105         * combine.c (try_combine): If added_sets_2, deal with the case
7106         where i0 feeds i1 and i1 feeds i2.
7107
7108 2010-10-18  Jan Hubicka  <jh@suse.cz>
7109
7110         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
7111         preserve flags before trying to guess on visibility.
7112         (varpool_externally_visible_p): New function.
7113         (function_and_variable_visibility): Use it.
7114
7115 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7116
7117         Implemented parsing @synthesize and @dynamic for Objective-C.
7118         * c-parser.c (c_parser_external_declaration): Recognize
7119         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
7120         (c_parser_objc_at_synthesize_declaration): New.
7121         (c_parser_objc_at_dynamic_declaration): New.
7122
7123 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7124
7125         * c-parser.c (c_parser_objc_class_declaration): After finding an
7126         error, parse the whole declaration then reset parser->error.
7127
7128 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7129
7130         PR target/46041
7131         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
7132         * builtins.c (mode_has_fma): Ditto.
7133
7134 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
7135
7136         PR target/36898
7137         PR middle-end/43760
7138         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
7139
7140 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
7141
7142         * config/i386/i386.c (ix86_option_override_internal): Define and
7143         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
7144         default.
7145         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7146         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
7147
7148 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7149
7150         Merge from 'apple/trunk' branch on FSF servers.
7151         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
7152         following Objective-C change:
7153
7154         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
7155
7156         Radar 4301047
7157         * c-parse.in (objc_quals): Build objc qualifier list same way
7158         as gcc-3.3
7159
7160 2010-10-18  Jan Hubicka  <jh@suse.cz>
7161
7162         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
7163         function_and_variable_visibility): Revert accidental commit.
7164
7165 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7166
7167         Merge from 'apple/trunk' branch on FSF servers.
7168         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
7169         the following Objective-C change:
7170
7171         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
7172
7173         Radar 4204796
7174         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
7175         'volatilized' type used in a typeof operator.
7176
7177 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
7178
7179         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
7180         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
7181         rewrite modelled on gimple_purge_dead_eh_edges.
7182         (gimple_purge_all_dead_abnormal_call_edges): New function.
7183         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
7184         directly instead of through gimple_purge_dead_abnormal_call_edges.
7185         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
7186         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
7187         removed AB side-effects from one of its statements.
7188         (init_pre): Initialize need_ab_cleanup.
7189         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
7190         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
7191
7192 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7193
7194         PR c/46015
7195         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
7196         on computed goto argument.
7197
7198 2010-10-18  Richard Guenther  <rguenther@suse.de>
7199
7200         PR tree-optimization/45967
7201         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
7202         (could_have_pointers): Likewise.
7203         (handle_rhs_call, handle_const_call, handle_pure_call,
7204         find_func_aliases, intra_create_variable_infos): Remove calls to them.
7205         (struct fieldoff): Add must_have_pointers field.
7206         (type_must_have_pointers): New function.
7207         (field_must_have_pointers): Likewise.
7208         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
7209         Adjust field merging.
7210         (create_function_info_for): May-have-pointers of varinfo is
7211         almost always true.
7212         (create_variable_info_for_1): Likewise.
7213
7214 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
7215
7216         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
7217         of operands to vec_concat.
7218
7219 2010-10-18  Richard Guenther  <rguenther@suse.de>
7220
7221         PR lto/44950
7222         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
7223         also clear references to entries of it.
7224
7225 2010-10-18  Andi Kleen  <ak@linux.intel.com>
7226
7227         PR other/43448
7228         * gccbug.in: Remove.
7229         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
7230         (doc, distclean, install-common): Remove reference to gccbug.
7231         * configure: Regenerate.
7232         * configure.ac (all_outputs): Remove gccbug.
7233         * doc/configfiles.texi: Remove references to gccbug.
7234         * doc/sourcebuild.texi: Dito.
7235
7236 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7237
7238         PR middle-end/46019
7239         * fold-const.c (fold_binary_loc): If integer_pow2p has
7240         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
7241
7242 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7243             Jeremie Salvucci  <jeremie.salvucci@free.fr>
7244
7245         * gengtype.c (verbosity_level): Add variable.
7246         (set_gc_used): Count variables for verbosity.
7247         (close_output_files): Backing up files, counting written ones
7248         verbosily.
7249         (write_types): Count emitted functions for verbosity. Added
7250         debug messages.
7251         (write_enum_defn): Count structures for verbosity. Added debug
7252         messages.
7253         (gengtype_long_options): Add "verbose" & "backupdir".
7254         (print_usage): Ditto.
7255         (main): Verbose display of parsed files.
7256
7257         * gengtype.h (verbosity_level): Add declaration.
7258
7259 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7260
7261         * gengtype.c (parse_program_options): Add allocation of
7262         plugin_files, and correct test on nb_plugin_files.
7263
7264 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7265
7266         Merge from 'apple/trunk' branch on FSF servers.
7267
7268         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
7269
7270         Radar 4133425
7271         * c-decl.c (undeclared_variable): Issue diagnostic on
7272         private 'ivar' access.
7273
7274 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7275
7276         PR target/46051
7277         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
7278         generated sequence to match *avx_vperm2f128<mode>_nozero.
7279         (vec_interleave_lowv4df): Ditto.
7280         (vec_interleave_highv8sf): Ditto.
7281         (vec_interleave_lowv8sf): Ditto.
7282
7283 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
7284
7285         * libgcov.c (create_file_directory): Enable it for win32 case.
7286         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
7287         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
7288         (GCOV_PREFIX_SKIP): Likewise.
7289
7290 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7291
7292         * doc/objc.texi (GNU Objective-C runtime API): New section.
7293         (Modern GNU Objective-C runtime API): New section.
7294         (Traditional GNU Objective-C runtime API): New section.
7295         (Executing code before main): Mention that this section is
7296         specific to the GNU Objective-C runtime.
7297         (Garbage Collection): Same.
7298
7299 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7300
7301         * c-parser.c (c_parser_for_statement): Move initialization of
7302         cond and incr before if.
7303
7304 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
7305
7306         * target.def (preferred_output_reload_class): New hook.
7307         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
7308         * doc/tm.texi: Regenerate.
7309         * targhooks.c (default_preferred_output_reload_class): New function.
7310         * targhooks.h (default_preferred_output_reload_class): Declare.
7311         * reload.c (find_dummy_reload): Change rclass argument type from
7312         enum reg_class to reg_class_t. Change this_alternative array type
7313         from enum reg_class to reg_class_t.
7314         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7315         (push_reload): Change preferred_class variable type to reg_class_t.
7316         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7317         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
7318         argument type from enum reg_class to reg_class_t. Use
7319         HARD_REGISTER_NUM_P predicate.
7320         * recog.h (reg_fits_class_p): Update prototype.
7321
7322         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7323         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
7324         Remove.
7325         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
7326         static. Change regclass argument and result types from enum reg_class
7327         to reg_class_t.
7328         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7329
7330 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
7331
7332         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
7333         visibility enum, and handle @package.
7334
7335 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7336
7337         * doc/objc.texi (What you can and what you cannot do in +load):
7338         Document that sending messages to constant string objects in +load
7339         is not guaranteed to work.
7340
7341 2010-10-16  Jan Hubicka  <jh@suse.cz>
7342
7343         PR middle-end/44206
7344         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
7345         existence of refrences before removing the function.
7346
7347 2010-10-16  Jan Hubicka  <jh@suse.cz>
7348
7349         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
7350         only_called_at_startup and only_called_at_exit.
7351         (cgraph_propagate_frequency): Compute only_called_at_startup and
7352         only_called_at_exit.
7353         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
7354         only_called_at_exit.
7355         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
7356         flags.
7357         * predict.c (compute_function_frequency): Initialize the new flags.
7358
7359 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
7360
7361         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
7362         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
7363         on the bounds of its domain.
7364         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
7365
7366 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
7367
7368         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
7369         * config/avr/avr-protos.h (preferred_reload_class): Remove.
7370         * config/avr/avr.c (preferred_reload_class): Remove.
7371         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
7372         * config/pa/pa.c (emit_move_sequence): Update comment
7373         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
7374         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
7375         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
7376         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
7377         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
7378         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
7379         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
7380         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
7381         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
7382         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
7383         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
7384         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
7385         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
7386
7387 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7388
7389         * opts.c (set_fast_math_flags,
7390         set_unsafe_math_optimizations_flags): Make static.
7391         * toplev.h (set_fast_math_flags,
7392         set_unsafe_math_optimizations_flags): Remove prototypes.
7393
7394 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7395
7396         * config/arm/arm.c (arm_option_optimization): Set
7397         flag_section_anchors to 1 not 2.
7398         * config/i386/i386.c (ix86_option_override_internal): Check
7399         global_options_set.x_flag_zee and
7400         global_options_set.x_flag_omit_frame_pointer.
7401         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
7402         flag_zee to 2.
7403         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
7404         global_options_set.x_flag_omit_frame_pointer.
7405         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
7406         opts->x_flag_section_anchors to 1 not 2.
7407         * config/sh/sh.c (sh_option_optimization): Don't set
7408         flag_schedule_insns to 2.
7409         (sh_option_override): Check
7410         global_options_set.x_flag_schedule_insns.
7411         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
7412
7413 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
7414
7415         * configure.ac: Make sure inhibit_libc remains false for mingw targets
7416         as cross.
7417         * configure: Regenerated.
7418
7419 2010-10-15  Xinliang David Li  <davidxl@google.com>
7420
7421         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
7422         function.
7423         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
7424         into a recursive function.
7425
7426 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
7427
7428         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
7429         (*movdfcc_1): ditto.
7430
7431 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7432
7433         * target.def (target_option.init_struct): New hook.
7434         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
7435         * doc/tm.texi: Regenerate.
7436         * hooks.c (hook_void_gcc_optionsp): New.
7437         * hooks.h (hook_void_gcc_optionsp): Declare.
7438         * langhooks-def.h (lhd_init_options_struct): Remove.
7439         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
7440         * langhooks.c (lhd_init_options_struct): Remove.
7441         * opts.c (init_options_struct): Also call
7442         targetm.target_option.init_struct.
7443         * config/i386/i386.c (ix86_option_init_struct,
7444         TARGET_OPTION_INIT_STRUCT): New.
7445         (ix86_option_optimization): Move some settings to
7446         ix86_option_init_struct.
7447         * config/pdp11/pdp11.c (pdp11_option_init_struct,
7448         TARGET_OPTION_INIT_STRUCT): New.
7449         (pdp11_option_optimization): Move some settings to
7450         pdp11_option_init_struct.
7451         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
7452         rs6000_option_init_struct.  Use options structure pointer.
7453         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7454         * config/s390/s390.c (s390_option_init_struct,
7455         TARGET_OPTION_INIT_STRUCT): New.
7456         (s390_option_optimization): Don't set
7457         flag_asynchronous_unwind_tables here.
7458         * config/sh/sh.c (sh_option_init_struct,
7459         TARGET_OPTION_INIT_STRUCT): New.
7460         (sh_option_optimization): Don't set flag_finite_math_only here.
7461         * config/spu/spu.c (spu_option_optimization): Replace by
7462         spu_option_optimization.  Use options structure pointer.
7463         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7464
7465 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7466
7467         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
7468
7469         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
7470         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
7471         (Standard names): Document fma.
7472
7473         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
7474         __FP_FAST_FMAF, __FP_FAST_FMAL.
7475
7476         * builitns.c (expand_builtin_mathfn_ternary): New function for
7477         expanding ternary math functions, like fma.
7478         (expand_builtin): Call it for the fma builtins.
7479
7480         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
7481         ops at present.
7482
7483         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
7484         vectorizable functions to support vectorizing fma.
7485
7486         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7487         Handle fma builtins.
7488
7489         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
7490         (UNSPEC_VSX_MSUB): Ditto.
7491         (UNSPEC_VSX_NMADD): Ditto.
7492         (UNSPEC_VSX_NMSUB): Ditto.
7493         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
7494         of UNSPEC. Renumber combiner patterns.
7495         (vsx_fmsub<mode>4*): Ditto.
7496         (vsx_fnmadd<mode>4*): Ditto.
7497         (vsx_fnmsub<mode>4*): Ditto.
7498
7499         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
7500         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
7501         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
7502         (altivec_vmaddfp_1): Ditto.
7503         (altivec_vmaddfp_2): Ditto.
7504         (atlivec_mulv4sf3): Ditto.
7505         (altivec_vnmsubfp): Ditto.
7506         (altivec_vnmsubfp_1): Ditto.
7507         (altivec_vnmsubfp_2): Ditto.
7508         (altivec_vnmsubfp_3): Delete.
7509
7510         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
7511         (fmasf4_fpr): Ditto.
7512         (fmssf4_fpr): Ditto.
7513         (fnmasf4_fpr): Ditto.
7514         (fnmssf4_fpr): Ditto.
7515         (fmadf4): Ditto.
7516         (fmadf4_fpr): Ditto.
7517         (fmsdf4_fpr): Ditto.
7518         (fnmadf4_fpr): Ditto.
7519         (fnmsdf4_fpr): Ditto.
7520
7521         * optabs.h (OTI_fma): Add fma optab.
7522         (fma_optab): Ditto.
7523
7524         * genopinit.c (optabs): Set fma optab.
7525
7526         * rtl.def (FMA): Add FMA rtl.
7527
7528         * tree.h (mode_has_fma): New function to return if MODE supports a
7529         fast multiply and add instruction.
7530         * builtins.c (mode_has_fma): Ditto.
7531
7532 2010-10-15  Jan Hubicka  <jh@suse.cz>
7533
7534         * lto-streamer-out.c (write_symbol): Use pointer set of seen
7535         objects instead of bitmap.
7536         (produce_symtab): Likewise; output defined symbols first.
7537
7538 2010-10-15  Jie Zhang  <jie@codesourcery.com>
7539
7540         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
7541         Option Summary and Index.
7542
7543 2010-10-15  Richard Guenther  <rguenther@suse.de>
7544
7545         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
7546         for automatic variables again.
7547
7548 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7549
7550         * doc/extend.texi (Variable Length): Don't refer to VLAs not
7551         conforming to C99.
7552
7553 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7554
7555         * config/rx/rx.c (rx_option_optimization): Change to
7556         rx_override_options_after_change.  Don't change
7557         flag_lto_compression_level.  Don't check for changes to whether
7558         FPU instructions can be used.  Check and set only
7559         flag_finite_math_only, not other fast-math flags.
7560         (rx_option_override): Call rx_override_options_after_change.
7561         (TARGET_OPTION_OPTIMIZATION): Remove.
7562         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
7563
7564 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7565
7566         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
7567         disable section anchors for lang_hooks.name[4] != 'O'.
7568
7569 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7570
7571         * config/frv/frv.c (frv_option_optimization,
7572         TARGET_OPTION_OPTIMIZATION): Remove.
7573         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
7574
7575 2010-10-15  Michael Matz  <matz@suse.de>
7576
7577         * cgraphunit.c (clone_of_p): Define unconditionally.
7578
7579 2010-10-15  Richard Guenther  <rguenther@suse.de>
7580
7581         PR lto/45957
7582         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
7583
7584 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
7585
7586         * ifcvt.c (find_active_insn_before): New function.
7587         (find_active_insn_after): New function.
7588         (cond_exec_process_if_block): Use new functions to replace
7589         prev_active_insn() and next_active_insn().
7590
7591 2010-10-14  Yao Qi  <yao@codesourcery.com>
7592
7593         PR target/45447
7594         * config/arm/arm.c (arm_build_builtin_va_list): Assign
7595         va_list_name to TYPE_STUB_DECL (va_list_type).
7596
7597 2010-10-14  Jan Hubicka  <jh@suse.cz>
7598
7599         PR middle-end/45621
7600         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
7601         redirected to clone, be happy.
7602         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
7603         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
7604         former_clone_of unconditionally.
7605
7606 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7607
7608         Merge from FSF apple 'trunk' branch.
7609         2006 Fariborz Jahanian  <fjahanian@apple.com>
7610
7611         Radars 4436866, 4505126, 4506903, 4517826
7612         * c-parser.c (c_parser, objc_property_attr_context) New flag.
7613         (c_lex_one_token): Handle property attributes.
7614         (c_parser_external_declaration): Handle @property.
7615         (c_parser_declaration_or_fndef): Warn on invalid attributes before
7616         @alias, @class, @end and @property objc keywords.
7617         (c_parser_objc_methodprotolist): Handle @property.
7618         (c_parser_objc_property_attrlist): New.
7619         (c_parser_objc_at_property): New.
7620         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
7621         (build_modify_expr): Likewise.
7622
7623 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7624
7625         PR tree-optimization/46008
7626         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
7627
7628 2010-10-14  Richard Guenther  <rguenther@suse.de>
7629
7630         PR tree-optimization/44913
7631         * tree-data-ref.c (disjoint_objects_p): Remove.
7632         (dr_may_alias_p): Simplify.  Only hand the base object to
7633         the alias-oracle.
7634         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
7635         some more trees, bail out instead of asserting.
7636         (ptr_derefs_may_alias_p): Likewise.  Export.
7637         (refs_may_alias_p_1): Handle STRING_CSTs.
7638         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
7639
7640 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7641
7642         PR c/45969
7643         * c-typeck.c (build_binary_op): Don't try to compute a semantic
7644         type with excess precision for boolean operations.
7645
7646 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
7647             Basile Starynkevitch  <basile@starynkevitch.net>
7648
7649         * gengtype.c:  Include getopt.h and version.h.
7650
7651         (lang_bitmap, struct outf, outf_p)
7652         (get_output_file_with_visibility, oprintf): Definitions moved to
7653         gengtype.h
7654         (output_files, header_file, srcdir, srcdir_len, this_file)
7655         (do_dump): No more static variables.
7656         (do_debug): New.
7657         (dbgprint_count_type_at): Added new function.
7658         (gengtype_long_options): New.
7659         (print_usage, print_version, parse_program_options): New.
7660         (main): Call parse_program_options, and removed old option
7661         handling code.  Added some debug output.
7662
7663         * gengtype.h:  Updated copyright year.
7664         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
7665         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
7666         Moved from gengtype.c to here.
7667         (do_debug, read_state_filename, write_state_filename): New variables.
7668         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
7669
7670         * Makefile.in:
7671         (REVISION): Always defined.
7672         (version.o): Removed ifdef REVISION_c.
7673         (s-gtype): Pass arguments to build/gengtype program.
7674         (build/version.o): Added building rule.
7675         (build/gengtype$(build_exeext)): Added build/version.o.
7676
7677 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7678
7679         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
7680         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
7681         __strong macros.
7682
7683 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
7684
7685         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
7686         may_trap_or_fault_p instead of may_trap_p predicate.
7687         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
7688         (substitute_placeholder_in_expr): Likewise.
7689         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
7690         flag on MEM_REF nodes.
7691         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
7692         flags on INDIRECT_REF nodes.
7693
7694 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
7695
7696         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
7697         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
7698         (arm*-*-eabi*) <tm_file>: Likewise.
7699         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
7700         (frv-*-*linux*) <tm_file>: Likewise.
7701         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
7702         and associated helper macros.
7703         * config/frv/frv-abi.h: Delete.
7704
7705 2010-10-14  Richard Guenther  <rguenther@suse.de>
7706
7707         PR lto/44561
7708         * tree.def (NULLPTR_TYPE): New tree code.
7709         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
7710         * dwarf2out.c (is_base_type): Likewise.
7711         (gen_type_die_with_usage): Likewise.
7712         * sdbout.c (plain_type_1): Likewise.
7713         * tree.c (build_int_cst_wide): Likewise.
7714         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
7715
7716 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7717
7718         * params.c (params_finished): New.
7719         (add_params): Assert !params_finished.
7720         (finish_params): New.
7721         (set_param_value_internal): Take params and params_set
7722         parameters.  Assert params_finished.
7723         (set_param_value, maybe_set_param_value): Take params and
7724         params_set parameters.  Update calls to set_param_value_internal.
7725         (set_default_param_value): Assert !params_finished.  Don't use
7726         set_param_value_internal.
7727         (default_param_value, init_param_values): New.
7728         * params.h (struct param_info): Change value to default_value.
7729         Remove set.
7730         (set_param_value, maybe_set_param_value): Add params and
7731         params_set parameters.
7732         (PARAM_VALUE): Get parameters from global_options.
7733         (PARAM_SET_P): Remove.
7734         (finish_params, default_param_value, init_param_values): New.
7735         * common.opt (param_values): New Variable.
7736         * config/arm/arm.c (arm_option_override): Pass extra arguments to
7737         maybe_set_param_value.
7738         * config/i386/i386.c (ix86_option_override_internal): Pass extra
7739         arguments to maybe_set_param_value.
7740         * config/picochip/picochip.c (picochip_option_override): Pass
7741         extra arguments to maybe_set_param_value.
7742         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
7743         extra arguments to maybe_set_param_value.
7744         * config/s390/s390.c (s390_option_override): Use
7745         maybe_set_param_value instead of set_param_value.  Pass extra
7746         arguments to maybe_set_param_value.
7747         * config/sparc/sparc.c (sparc_option_override): Pass extra
7748         arguments to maybe_set_param_value.
7749         * config/spu/spu.c (spu_option_override): Pass extra arguments to
7750         maybe_set_param_value.
7751         * opts.c (handle_param): Take opts and opts_set parameters.
7752         Update call to set_param_value.
7753         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
7754         initial_loop_invariant_max_bbs_in_loop): Remove.
7755         (init_options_once): Don't set them.
7756         (init_options_struct): Initialize parameters structures.
7757         (default_options_optimization): Use default_param_value when
7758         restoring defaults.  Update calls to maybe_set_param_value.
7759         (finish_options): Update calls to maybe_set_param_value.
7760         (common_handle_option): Update calls to handle_param and
7761         set_param_value.
7762         * toplev.c (DEFPARAM): Update definition for changes to param_info.
7763         (general_init): Call finish_params.
7764
7765 2010-10-14  Nick Clifton  <nickc@redhat.com>
7766
7767         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
7768         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
7769         (FIRST_PSEUDO_REGISTER): Increase by one.
7770         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
7771         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
7772         (MODES_TIEABLE): Call mn10300_modes_tieable.
7773         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
7774         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
7775         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
7776         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
7777         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
7778         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
7779         (mn10300_cc_status_mdep): Delete.
7780         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
7781         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
7782         the combine-stack-adjust pass.
7783         (print_operand): Use the mode of the comparison operation to
7784         select the comparison suffix.
7785         (notice_update_cc): Delete.
7786         (mn10300_secondary_reload_class): Remove test for stack pointer
7787         based arithmetic.
7788         (output_tst): Rename to mn10300_output_cmp.
7789         (impossible_plus_operand): Move into predicates.md.
7790         (mn10300_legitimize_address): Make static.
7791         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
7792         constant pic operands.
7793         (mn10300_legitimate_constant_p): New function.
7794         (mn10300_case_values_threshold): Make static.
7795         (mn10300_hard_regno_mode_ok): New function.
7796         (mn10300_modes_tieable): New function.
7797         (mn10300_select_cc_mode): New function.
7798         * config/mn10300/predicates.md (impossible_plus_operand): Define.
7799         * config/mn10300/mn10300-protos.h: Tidy.
7800         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
7801         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
7802         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
7803         with clobbers or sets of CC_REG.
7804         (CC_REG): Define.
7805         (mov*): Remove use of CLR instruction.
7806         (cbranch_si4_<code>): New pattern/split.
7807         (integer_conditional_branch): New pattern.
7808         (cbranch_sf4_<code>): New pattern/split.
7809         (float_conditional_branch): New pattern.
7810         (casesi): Use addsi3 pattern instead of movsi pattern to add and
7811         move a value at the same time.
7812         (cc0 peepholes): Remove.
7813
7814 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7815
7816         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
7817         on RTX_FRAME_RELATED_P insns and the insn to which
7818         NOTE_INSN_EPILOGUE_BEG is attached.
7819         * sched-vis.c (print_value): Allow NULL value.
7820
7821 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7822
7823         PR rtl-optimization/45570
7824         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
7825         assert that we are pipelining outer loops.  Allow returning
7826         zero predecessors.
7827
7828 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7829
7830         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
7831         (tidy_control_flow): Tidy vertical space.
7832         (sel_remove_bb): New variable idx.  Use it to remember the basic
7833         block index before deleting the block.
7834         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
7835         (sel_merge_blocks): ... here.
7836         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
7837
7838 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7839
7840         * cse.c (is_dead_reg): Change into inline function that is not
7841         called through for_each_rtx.
7842         (set_live_p): Adjust caller.
7843         (insn_live_p): Don't reset DEBUG_INSNs here.
7844         (struct dead_debug_insn_data): New data.
7845         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
7846         (delete_trivially_dead_insns): If there is just one setter for the
7847         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
7848         and add DEBUG_INSN for it right before the removed setter and
7849         use the DEBUG_EXPR instead of the dead pseudo.
7850
7851 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
7852
7853         * et-forest.c (et_nca): Return NULL immediately when
7854         the dominance forest has disjoint components.
7855
7856 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
7857
7858         * ira.c (setup_class_hard_regs): Fix typo in indexing
7859         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
7860
7861 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
7862
7863         * graph.c (inbb): New variable.
7864         (start_bb): Set inbb to 1 if output is inside of a building block.
7865         (end_bb): Check if output is inside of a building block.
7866
7867 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7868
7869         PR rtl-optimization/45912
7870         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
7871         regno of registers instead of their index to compute the alignment.
7872
7873 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
7874
7875         * config/i386/i386.c (ix86_build_const_vector): Check vector
7876         mode instead of scalar mode.
7877         (ix86_build_signbit_mask): Likewise.
7878         (ix86_expand_fp_absneg_operator): Updated.
7879         (ix86_expand_copysign): Likewise.
7880         (ix86_expand_int_vcond): Likewise.
7881         (ix86_emit_swdivsf): Likewise.
7882         (ix86_sse_copysign_to_positive): Likewise.
7883         (ix86_expand_sse_fabs): Likewise.
7884         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
7885         * config/i386/sse.md (copysign<mode>3): Likewise.
7886         (sse2_cvtudq2ps): Likewise.
7887         (vec_unpacku_float_hi_v4si): Likewise.
7888         (vec_unpacku_float_lo_v4si): Likewise.
7889
7890         * config/i386/i386.c (ix86_builtins): Add
7891         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
7892         (bdesc_args): Likewise.
7893         (ix86_builtin_vectorized_function): Support
7894         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
7895         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
7896         and IX86_BUILTIN_CVTPS2DQ256.
7897         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
7898
7899         * config/i386/sse.md (STORENT_MODE): New.
7900         (VEC_FLOAT_MODE): Likewise.
7901         (VEC_EXTRACT_MODE): Likewise.
7902         (*avx_cvtdq2pd256_2): Likewise.
7903         (vec_pack_trunc_v4df): Likewise.
7904         (vec_interleave_highv8sf): Likewise.
7905         (vec_interleave_lowv8sf): Likewise.
7906         (storent<mode>): Macroized.
7907         (<code><mode>2: absneg): Likewise.
7908         (copysign<mode>3): Likewise.
7909         (vec_extract<mode>): Likewise.
7910
7911         PR target/44180
7912         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
7913         for V8SFmode.
7914
7915 2010-10-13  Richard Guenther  <rguenther@suse.de>
7916             H.J. Lu  <hongjiu.lu@intel.com>
7917
7918         * config/i386/sse.md (reduc_splus_v8sf): Add.
7919         (reduc_splus_v4df): Likewise.
7920         (vec_unpacks_hi_v8sf): Likewise.
7921         (vec_unpacks_lo_v8sf): Likewise.
7922         (*avx_cvtps2pd256_2): Likewise.
7923         (vec_unpacks_float_hi_v8si): Likewise.
7924         (vec_unpacks_float_lo_v8si): Likewise.
7925         (vec_interleave_highv4df): Likewise.
7926         (vec_interleave_lowv4df): Likewise.
7927
7928 2010-10-13  Richard Guenther  <rguenther@suse.de>
7929
7930         PR objc/45878
7931         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
7932         alone if there are no virtual methods.
7933
7934 2010-10-13  Richard Henderson  <rth@redhat.com>
7935
7936         * expr.c (build_personality_function): Take parameter LANG instead
7937         of parameter NAME.  Build the name based on the lang prefix and the
7938         unwind method in use.
7939         * tree.c (lhd_gcc_personality): Update call to
7940         build_personality_function.
7941
7942 2010-10-13  Richard Guenther  <rguenther@suse.de>
7943
7944         PR objc/45878
7945         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
7946
7947 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7948
7949         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
7950         Canonicalize input operands of ASM_OPERANDS insns.
7951
7952 2010-10-13  Richard Guenther  <rguenther@suse.de>
7953
7954         PR tree-optimization/45788
7955         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
7956         EH update until fixup-cfg.
7957
7958 2010-10-13  Julian Brown  <julian@codesourcery.com>
7959
7960         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
7961         from CORE_REGS and GENERAL_REGS classes.
7962         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
7963         final constraint for register preferencing.
7964
7965 2010-10-13  Richard Guenther  <rguenther@suse.de>
7966
7967         PR tree-optimization/45970
7968         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
7969         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
7970         (stmt_kills_ref_p): Likewise.
7971         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
7972
7973 2010-10-13  Richard Guenther  <rguenther@suse.de>
7974
7975         PR tree-optimization/45982
7976         * tree-ssa-structalias.c (make_constraints_to): New function.
7977         (make_constraint_to): Implement in terms of make_constraints_to.
7978         (find_func_aliases): Properly make return values of pure/const
7979         functions escape if they assign to sth that is not a pointer.
7980
7981 2010-10-13  Richard Guenther  <rguenther@suse.de>
7982
7983         PR middle-end/45874
7984         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
7985         Fixup the CFG when EH was fixed up.
7986
7987 2010-10-13  Ira Rosen  <irar@il.ibm.com>
7988
7989         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
7990         Use operand's type for POINTER_PLUS_EXPR.
7991
7992 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
7993
7994         * c-parser.c (c_parser_for_statement): Initialize incr.
7995
7996 2010-10-12  Xinliang David Li  <davidxl@google.com>
7997
7998         PR tree-optimization/45972
7999         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
8000         with too many arguments.
8001
8002 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8003
8004         PR fortran/45636
8005         * tree-ssa-forwprop.c: Include expr.h.
8006         (constant_pointer_difference, simplify_builtin_call): New functions.
8007         (tree_ssa_forward_propagate_single_use_vars): Call
8008         simplify_builtin_call on builtin calls.
8009
8010 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
8011
8012         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
8013         (*adddi3_extend_sp32): Likewise.
8014         (*subdi3_insn_sp32): Likewise.
8015         (*subdi3_extend_sp32): Likewise.
8016         (*negdi2_sp32): Use negative test for consistency.
8017
8018 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
8019
8020         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
8021         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8022         * config/fixed-bit.h: Likewise.
8023         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8024         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8025         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
8026         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
8027         (DF_SIZE): Likewise.
8028         * doc/tm.texi: Regenerate.
8029
8030 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
8031
8032         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
8033         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
8034         (*isel_reversed_unsigned_<mode>): New.
8035         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
8036         as valid comparisons and adjust operands and output appropriately.
8037         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
8038
8039 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
8040
8041         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
8042         DATA_ALIGNMENT and add COND parameter. Update comments above.
8043         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
8044         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
8045
8046 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
8047
8048         PR bootstrap/45958
8049         * exec-tool.in: Support '-plugin' as the second option to the linker.
8050
8051 2010-10-12  Richard Henderson  <rth@redhat.com>
8052
8053         PR middle-end/45962
8054         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
8055         (expand_stack_vars): Assert large base allocated when used.
8056
8057 2010-10-12  Richard Guenther  <rguenther@suse.de>
8058
8059         * tree-ssa-structalias.c (get_constraint_for_1): Constants
8060         only point to nonlocal, not anything.
8061
8062 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8063
8064         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
8065         unwind info for exceptions.
8066
8067 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8068
8069         PR testsuite/45851
8070         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
8071         Document optional target selector.
8072
8073 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
8074
8075         * flag-types.h: New.
8076         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
8077         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
8078         options.h.
8079         (OPTIONS_H): Define.
8080         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
8081         of options.h.
8082         * configure.ac (tm_include_list): Include options.h not flags.h.
8083         * configure: Regenerate.
8084         * flags.h: Include flag-types.h.  Include options.h at top of file
8085         again.
8086         (enum debug_info_type, enum debug_info_level, enum
8087         debug_info_usage, enum symbol_visibility, struct visibility_flags,
8088         enum ira_algorithm, enum ira_region, enum excess_precision, enum
8089         graph_dump_types, enum stack_check_type,
8090         enum warn_strict_overflow_code): Move to flag-types.h
8091         * opth-gen.awk: Include flag-types.h in options.h.
8092
8093 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8094
8095         * expr.c (store_expr): Share code for STRING_CST and
8096         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
8097         check if target is a MEM.
8098
8099         * rtl.h: Include hashtab.h.
8100         (iterative_hash_rtx): New prototype.
8101         * rtl.c (iterative_hash_rtx): New function.
8102         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
8103         (output_loc_list): Return immediately if emitted is set, set it.
8104         (hash_loc_operands, hash_locs, hash_loc_list,
8105         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
8106         optimize_location_lists_1, optimize_location_lists): New function.
8107         (dwarf2out_finish): Call optimize_location_lists.
8108         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
8109
8110 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8111
8112         PR testsuite/45974
8113         Revert:
8114         * Makefile.in ($(lang_checks_parallel))
8115         ($(lang_checks_parallelized)): Use single quotes for
8116         $(RUNTESTFLAGS), to allow passing quoted content.
8117
8118 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8119
8120         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
8121         actual_oldval.  Use __builtin_expect.
8122         (SUBWORD_VAL_CAS): Likewise.
8123
8124 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8125
8126         * recog.c (nonmemory_operand): Call immediate_operand for
8127         CONSTANT_P operands.
8128
8129 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
8130
8131         * config/i386/i386.md (movmem<mode>): Macroize expander from
8132         movmem{si,di} using SWI48 mode iterator.
8133         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
8134         *strmovsi_rex_1 using P mode iterator.
8135         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
8136         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
8137         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
8138         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
8139         (setmem<mode>): Macroize expander from setmem{si,di} using
8140         SWI48 mode iterator.
8141         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
8142         *strsetsi_rex_1 using P mode iterator.
8143         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
8144         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
8145         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
8146         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
8147         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
8148         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
8149         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
8150         mode iterator.
8151         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
8152         *strlenqi_rex_1 using P mode iterator.
8153
8154 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
8155
8156         PR bootstrap/45445
8157         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
8158         static functions.
8159         (mark_ref_live, mark_ref_dead): Use them.
8160         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
8161         Save the original reg, and use the new functions.
8162         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
8163         changed.
8164         (check_and_make_def_conflict): Save the original reg.
8165
8166 2010-10-11  Martin Jambor  <mjambor@suse.cz>
8167
8168         PR middle-end/45699
8169         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
8170         thunks.
8171
8172 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8173
8174         * Makefile.in ($(lang_checks_parallel))
8175         ($(lang_checks_parallelized)): Use single quotes for
8176         $(RUNTESTFLAGS), to allow passing quoted content.
8177
8178         PR bootstrap/35855
8179         * opt-functions.awk (BEGIN): New section.
8180         (lower, upper, digit, alnum): New variables.
8181         (static_var, opt_sanitized_name): Use alnum instead of character
8182         classes, for non-C locale.
8183         * optc-gen.awk: Likewise.
8184         * opth-gen.awk: Likewise.
8185
8186 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
8187
8188         * target.def (preferred_reload_class): New hook.
8189         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
8190         * doc/tm.texi: Regenerate.
8191         * targhooks.c (default_preferred_reload_class): New function.
8192         * targhooks.h (default_preferred_reload_class): Declare.
8193         * reload.c (find_dummy_reload): Change preferred_class variable type
8194         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
8195         target hook.
8196         (find_reloads): Change goal_alternative array type from int to
8197         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
8198         (push_reload, find_reloads_address_part): Use
8199         TARGET_PREFERRED_RELOAD_CLASS target hook.
8200         * reload1.c (emit_input_reload_insns): Ditto.
8201         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
8202         hook. Change rclass argument and secondary_class variable types from
8203         'enum reg_class' to reg_class_t.
8204
8205         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
8206         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
8207         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
8208         Change regclass argument and result types from enum reg_class to
8209         reg_class_t.
8210         (TARGET_PREFERRED_RELOAD_CLASS): Define.
8211
8212 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
8213
8214         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
8215         in masking operations.
8216         (simplify_const_unary_operation): Likewise.
8217         (simplify_binary_operation_1): Likewise.
8218         (simplify_const_binary_operation): Likewise.
8219         (simplify_const_relational_operation): Likewise.
8220         (simplify_ternary_operation): Likewise.
8221         (simplify_immed_subreg): Likewise.
8222
8223 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8224
8225         PR middle-end/45862
8226         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
8227         (TARGET_SUPPORTS_WEAK): New.
8228         * doc/tm.texi: Regenerate.
8229         * defaults.h (SUPPORTS_WEAK): Update comment.
8230         (TARGET_SUPPORTS_WEAK): New.
8231         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
8232         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
8233         SUPPORTS_WEAK.
8234         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
8235         make_decl_one_only): Likewise.
8236         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
8237         TARGET_SUPPORTS_WEAK.
8238         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
8239         instead of SUPPORTS_WEAK.
8240
8241 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8242
8243         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
8244
8245 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8246
8247         * vec.h (VEC_qsort): Define.
8248         * dbxout.c (output_used_types): Use it.
8249         * df-scan.c (df_sort_and_compress_refs): Likewise.
8250         (df_sort_and_compress_mws): Likewise.
8251         * genautomata.c (uniq_sort_alt_states): Likewise.
8252         (evaluate_equiv_classes): Likewise.
8253         (output_trans_table): Likewise.
8254         (output_state): Likewise.
8255         * gimplify.c (compare_case_labels): Likewise.
8256         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
8257         * ipa.c (build_cdtor_fns): Likewise.
8258         * lto.c (lto_wpa_write_files): Likewise.
8259         * sel-sched.c (fill_vec_av_set): Likewise.
8260         * tree-predcom.c (determine_roots_comp): Likewise.
8261         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
8262         (splice_param_accesses): Likewise.
8263         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
8264         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
8265         (reassociate_bb): Likewise.
8266         * tree-ssa-sccvn.c (sort_scc): Likewise.
8267         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
8268
8269 2010-10-11  Ian Lance Taylor  <iant@google.com>
8270
8271         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
8272         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
8273         TREE_THIS_NOTRAP when appropriate.
8274         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
8275         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
8276         newly created MEM_REF.
8277
8278 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8279
8280         Nathan Froyds patch to hooks FUNCTION_ARG etc.
8281         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
8282         (picochip_incoming_function_arg): Delete.
8283         (picochip_arg_advance): Delete.
8284         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
8285         (FUNCTION_INCOMING_ARG): Delete.
8286         (FUNCTION_ARG_ADVANCE): Delete.
8287         * config/picochip/picochip.c (picochip_function_arg): Take a
8288         const_tree and a bool.
8289         (picochip_incoming_function_arg): Likewise.
8290         (picochip_arg_advance): Likewise.
8291         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8292         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8293
8294 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8295
8296         PR middle-end/45955
8297         * ipa.c (build_cdtor): Delete endless loop.
8298
8299 2010-10-07  Andi Kleen  <ak@linux.intel.com>
8300
8301         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
8302         checksum-options.
8303         (checksum-options): Add.
8304         (cc1-dummy): Remove.
8305         (cc1-checksum): Change to run checksum over object files
8306         and options only.
8307         * dummy-checksum.c: Remove.
8308         * genchecksum.c: Update copyright.
8309         (usage): Allow multiple arguments.
8310         (BLOCKSIZE): Add.
8311         (dosum): Change for incremental checksum. Remove C output.
8312         (main): Iterate over all argument files. Add C output.
8313
8314 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
8315
8316         * params.c (set_param_value_internal): New.
8317         (set_param_value): Use set_param_value_internal.
8318         (maybe_set_param_value, set_default_param_value): New.
8319         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
8320         (maybe_set_param_value, set_default_param_value): Declare.
8321         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
8322         * config/i386/i386.c (ix86_option_override_internal): Use
8323         maybe_set_param_value.
8324         * config/ia64/ia64.c (ia64_option_default_params,
8325         TARGET_OPTION_DEFAULT_PARAMS): New.
8326         (ia64_option_optimization): Move some code to
8327         ia64_option_default_params.
8328         * config/picochip/picochip.c (picochip_option_override): Use
8329         maybe_set_param_value.
8330         * config/rs6000/rs6000.c (rs6000_option_default_params,
8331         TARGET_OPTION_DEFAULT_PARAMS): New.
8332         (rs6000_option_override_internal): Use maybe_set_param_value.
8333         (rs6000_option_optimization): Move some code to
8334         rs6000_option_default_params.
8335         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
8336         * config/sh/sh.c (sh_option_default_params,
8337         TARGET_OPTION_DEFAULT_PARAMS): New.
8338         (sh_option_optimization): Move some code to sh_option_default_params.
8339         * config/sparc/sparc.c (sparc_option_override): Use
8340         maybe_set_param_value.
8341         * config/spu/spu.c (spu_option_default_params,
8342         TARGET_OPTION_DEFAULT_PARAMS): New.
8343         (spu_option_optimization): Move some code to spu_option_default_params.
8344         (spu_option_override): Use maybe_set_param_value.
8345         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
8346         * doc/tm.texi: Regenerate.
8347         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
8348         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
8349         compiler_params.
8350         (default_options_optimization): Use maybe_set_param_value.
8351         (finish_options): Use maybe_set_param_value.
8352         * target.def (target_option.default_params): New hook.
8353         * toplev.c (general_init): Call targetm.target_option.default_params.
8354
8355 2010-10-11  Ira Rosen  <irar@il.ibm.com>
8356
8357         PR tree-optimization/45902
8358         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
8359         vector type for constants, unless it's a pointer.
8360
8361 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8362
8363         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
8364
8365 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
8366
8367         PR target/45870
8368         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
8369         (ix86_delegitimize_address): Use it.
8370
8371 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
8372
8373         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
8374
8375 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
8376
8377         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
8378         to cum struct in the call to function_arg_advance.
8379         (alpha_function_arg_advance): Mark named as unused.
8380
8381 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
8382
8383         * config/mips/mips.c (mips_handle_option): Make "value" with
8384         ATTRIBUTE_UNUSED.
8385
8386 2010-10-09  Richard Henderson  <rth@redhat.com>
8387
8388         PR rtl-opt/33721
8389         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
8390         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
8391         required_align, tidy the code a bit.  Emit split_stack code in the
8392         right place.  Mark the return value with the alignment properly.
8393         * expr.h (allocate_dynamic_stack_space): Update decl.
8394         * builtins.c (expand_builtin_apply): Update call to
8395         allocate_dynamic_stack_space.
8396         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
8397         * calls.c (initialize_argument_information): Update call to
8398         allocate_dynamic_stack_space.
8399         (expand_call): Likewise.
8400
8401         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
8402         Don't update_stack_alignment here.
8403         (alloc_stack_frame_space): Make ALIGN unsigned.
8404         (stack_var_cmp): Sort by alignment too.
8405         (partition_stack_vars): Don't merge large and small alignment vars.
8406         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
8407         Take care when BASE is not virtual_stack_vars_rtx.
8408         (expand_stack_vars): Allocate dynamic stack space for large
8409         alignment variables.
8410         (expand_one_stack_var): Update all to expand_one_stack_var_at.
8411         (defer_stack_allocation): True for large alignment vars.
8412         (update_stack_alignment): Merge into ...
8413         (expand_one_var): ... here.
8414         (gimple_expand_cfg): Place code from expand_stack_vars.
8415
8416 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8417
8418         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8419         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
8420         (pdp11_function_arg_advance): New function.
8421         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8422
8423 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8424
8425         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
8426         * libgcc2.c: Likewise.
8427
8428 2010-10-09  Richard Guenther  <rguenther@suse.de>
8429
8430         PR lto/45956
8431         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
8432         Properly check if a decl is an automatic var.
8433
8434 2010-10-09  Richard Guenther  <rguenther@suse.de>
8435
8436         PR lto/45947
8437         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
8438
8439 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8440
8441         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
8442         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8443         * config/mmix/mmix.c (mmix_function_arg): Rename to...
8444         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
8445         bool arguments.
8446         (mmix_function_arg): New function.
8447         (mmix_function_incoming_arg): New function.
8448         (mmix_function_arg_advance): New function.
8449         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8450         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8451
8452 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8453
8454         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8455         * config/vax/vax.c (vax_function_arg): New function.
8456         (vax_function_arg_advance): New function.
8457         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8458
8459 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8460
8461         * config/pa/pa-protos.h (function_arg): Delete.
8462         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8463         * config/pa/pa.c (function_arg): Rename to...
8464         (pa_function_arg): ...this.  Make static.  Take a const_tree and
8465         a bool.
8466         (pa_function_arg_advance): New function.
8467         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8468
8469 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8470
8471         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8472         * config/m68k/m68k.c (m68k_function_arg): New function.
8473         (m68k_function_arg_advance): New function.
8474         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8475
8476 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8477
8478         * config/avr/avr-protos.h (function_arg): Delete.
8479         (function_arg_advance): Delete.
8480         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8481         * config/avr/avr.c (function_arg): Rename to...
8482         (avr_function_arg): ...this.  Make static.  Take a const_tree and
8483         a bool.
8484         (function_arg_advance): Rename to...
8485         (avr_function_arg_advance): ...this.  Make static.  Take a
8486         const_tree and a bool.
8487         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8488
8489 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8490
8491         * config/alpha/alpha-protos.h (function_arg): Delete.
8492         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8493         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
8494         * config/alpha/alpha.c (function_arg): Rename to...
8495         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
8496         a bool.  Delete TARGET_ABI_UNICOSMK code.
8497         (alpha_function_arg_advance): New function.
8498         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8499
8500 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8501
8502         * config/mep/mep-protos.h (mep_function_arg): Delete.
8503         (mep_function_arg_advance): Delete.
8504         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8505         * config/mep/mep.c (mep_function_arg): Make static.  Take a
8506         const_tree and a bool.
8507         (mep_function_arg_advance): Likewise.
8508         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8509
8510 2010-10-09  Richard Guenther  <rguenther@suse.de>
8511
8512         PR tree-optimization/45945
8513         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
8514
8515 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
8516
8517         PR tree-optimization/45612
8518         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
8519         Test LABEL_DECLs as well.  Fix formatting issues.
8520         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
8521         whose label is present in NON_SSA_VARS.
8522         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
8523         as well.  Fix formatting issues.
8524         (visit_bb): Fix typos and formatting issue.
8525
8526 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8527
8528         PR tree-optimization/45950
8529         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
8530         before initializing vno->op.
8531
8532 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
8533
8534         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
8535         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
8536
8537 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
8538
8539         PR target/45913
8540         * config/i386/i386.c (ix86_binary_operator_ok): Support
8541         "andhi/andsi/anddi" as a zero-extending move.
8542
8543 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8544
8545         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
8546         into a temporary array.
8547
8548 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
8549
8550         PR tree-optimization/45903
8551         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
8552         of {A,L}SHIFTRT of MEM.
8553
8554 2010-10-08  Richard Guenther  <rguenther@suse.de>
8555
8556         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
8557         Re-construct BLOCK_VARS.
8558         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
8559         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
8560         * tree.c (free_lang_data_in_block): Remove.
8561         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
8562         Do not touch the BLOCK tree.
8563         * expr.c (expand_expr_real_1): Allow externals.
8564
8565 2010-10-08  Richard Guenther  <rguenther@suse.de>
8566
8567         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
8568         Do not output BLOCK_SUBBLOCKS.
8569         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
8570         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
8571         Re-construct BLOCK_SUBBLOCKS of parent block.
8572         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
8573         for BINFO_BASE_ACCESSES.
8574
8575 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
8576
8577         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
8578         (TREE_H): Include $(FLAGS_H) instead of options.h.
8579         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
8580         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8581         * common.opt (flag_complex_method, flag_evaluation_order,
8582         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
8583         Variable declarations.
8584         * configure.ac (tm_include_list): Include flags.h instead of options.h.
8585         * configure: Regenerate.
8586         * flags.h: Condition out contents for target libraries.  Include
8587         options.h at end of file.
8588         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
8589         flag_evaluation_order, flag_warn_unused_result): Remove.
8590         * gcc.c (main): Intialize global_options with global_options_init.
8591         * langhooks-def.h (lhd_init_options_struct): Declare.
8592         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8593         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
8594         * langhooks.c (lhd_init_options_struct): New.
8595         * langhooks.h (struct lang_hooks): Add init_options_struct.
8596         Update comment on init_options.
8597         * optc-gen.awk: Generate initializer for global_options_init, not
8598         global_options.
8599         * opth-gen.awk: Condition out structure declarations for target
8600         libraries.  Declare global_options_init.
8601         * opts-common.c: Include flags.h instead of options.h.
8602         * opts.c (flag_warn_unused_result): Remove.
8603         (read_cmdline_options): Take gcc_options parameters.  Pass them to
8604         read_cmdline_option.
8605         (initial_lang_mask, initial_min_crossjump_insns,
8606         initial_max_fields_for_field_sensitive,
8607         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
8608         (init_options_once): New.  Split out of decode_options.
8609         (init_options_struct): New.  Split out of decode_options.
8610         (decode_cmdline_options_to_array_default_mask): New.
8611         (default_options_optimization): New.  Split out of decode_options.
8612         (decode_options): Move most code to other functions.  Update call
8613         to read_cmdline_options.
8614         (finish_options): New.  Split out of decode_options.
8615         * opts.h (decode_options): Add gcc_options parameters.
8616         (init_options_once, init_options_struct,
8617         decode_cmdline_options_to_array_default_mask): New.
8618         * toplev.c (flag_complex_method, flag_ira_algorithm,
8619         flag_ira_region, flag_evaluation_order): Remove.
8620         (general_init): Use global_options_init for initial flag values
8621         for global_dc.
8622         (toplev_main): Call init_options_once, init_options_struct,
8623         lang_hooks.init_options_struct,
8624         decode_cmdline_options_to_array_default_mask and
8625         lang_hooks.init_option before decode_options.  Update arguments to
8626         decode_options.
8627         * tree.h: Include flags.h instead of options.h.
8628
8629 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8630
8631         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8632
8633 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8634
8635         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
8636         Delete.
8637         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
8638         (FUNCTION_INCOMING_ARG): Delete.
8639         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
8640         (function_arg_slotno): Likewise.  Take bool arguments.
8641         (sparc_arg_partial_bytes): Update call to it.
8642         (function_arg): Rename to...
8643         (sparc_function_arg_1): ...this.  Take bool arguments.
8644         (sparc_function_arg, sparc_function_incoming_arg): New functions.
8645         (function_arg_advance): Rename to...
8646         (sparc_function_arg_advance): ...this.  Take bool argument.
8647         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
8648         (TARGET_FUNCTION_INCOMING_ARG): Define.
8649
8650 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8651
8652         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
8653         Delete.
8654         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8655         * config/bfin/bfin.c (function_arg_advance): Rename to...
8656         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
8657         and bool arguments.
8658         (function_arg): Rename to...
8659         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
8660         arguments.
8661         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8662
8663 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8664
8665         * config/score/score-protos.h (score_function_arg): Delete.
8666         (score_function_arg_advance): Delete.
8667         * config/score/score3.h (score3_function_arg_advance): Take a
8668         const_tree and a bool.
8669         (score3_function_arg): Likewise.
8670         * config/score/score7.h (score7_function_arg_advance): Likewise.
8671         (score7_function_arg): Likewise.
8672         * config/score/score3.c (score3_classify_arg): Likewise.
8673         (score3_function_arg_advance, score3_function_arg): Likewise.
8674         * config/score/score7.c (score7_classify_arg): Likewise.
8675         (score7_function_arg_advance, score7_function_arg): Likewise.
8676         * config/score/score.c (score_function_arg_advance): Likewise.
8677         (score_function_arg): Likewise.  De-const-ify `cum' argument.
8678         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8679
8680 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8681
8682         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
8683         (s390_function_arg): Delete.
8684         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8685         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
8686         (s390_function_arg_integer): Likewise.
8687         (s390_function_arg_advance): Make static.  Take a const_tree and
8688         a bool.
8689         (s390_function_arg): Likewise.
8690         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8691
8692 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8693
8694         * config/spu/spu-protos.h (spu_function_arg): Delete.
8695         * config/spu/spu.h (FUNCTION_ARG): Delete.
8696         (FUNCTION_ARG_ADVANCE): Move code to ...
8697         * config/spu/spu.c (spu_function_arg_advance): New function.
8698         (spu_function_arg): Make static.  Take a const_tree and a bool.
8699         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
8700         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8701
8702 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8703
8704         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8705
8706 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8707
8708         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
8709         (init_vn_nary_op_from_op): New function.
8710         (init_vn_nary_op_from_stmt): New function.
8711         (vn_nary_op_lookup_1): New function.
8712         (sizeof_vn_nary_op): New function.
8713         (alloc_vn_nary_op_noinit): New function.
8714         (alloc_vn_nary_op): New function.
8715         (vn_nary_op_insert_into): New function.
8716         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
8717         (vn_nary_op_lookup): Likewise.
8718         (vn_nary_op_lookup_stmt): Likewise.
8719         (vn_nary_op_insert_pieces): Likewise.
8720         (vn_nary_op_insert): Likewise.
8721         (vn_nary_op_insert_stmt): Likewise.
8722         (copy_nary): Likewise.
8723         (set_value_id_for_result): New function.
8724         (set_hashtable_value_ids): Call it.
8725
8726 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8727
8728         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8729         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
8730
8731 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8732
8733         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
8734         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8735
8736 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8737
8738         PR debug/45656
8739         * cse.c (cse_extended_basic_block): Preserve cc0 info across
8740         debug isnsn.  Skip them when searching for cc0 setter.
8741         (set_live_p): Skip debug insns when searching for cc0 user.
8742
8743 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8744
8745         PR debug/45673
8746         PR debug/45604
8747         PR debug/45419
8748         PR debug/45408
8749         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
8750         type of MEM_REFs to INTEGER_CSTs.
8751
8752 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8753
8754         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
8755         m68hc11_print_operand_address.
8756
8757 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8758
8759         * builtins.c (rewrite_call_expr): Move code to...
8760         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
8761         (rewrite_call_expr_array): New function.
8762         (fold_builtin_sprintf_chk_1): New function.
8763         (fold_builtin_sprintf_chk): Call it.
8764         (gimple_fold_builtin_sprintf_chk): Likewise.
8765         (fold_builtin_snprintf_chk_1): New function.
8766         (fold_builtin_snprintf_chk): Call it.
8767         (gimple_fold_builtin_snprintf_chk): Likewise.
8768         (gimple_rewrite_call_expr): Delete.
8769
8770 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8771
8772         * config.host: Update copyright year.
8773
8774 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8775
8776         * config.host (host_lto_plugin_soname): New shell variable.
8777         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
8778         * config.in: Regenerate.
8779         * configure: Regenerate.
8780         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
8781         LTO plugin shared library.
8782
8783 2010-10-07  Richard Henderson  <rth@redhat.com>
8784
8785         * target.h (enum unwind_info_type): Move ...
8786         * coretypes.h: ... here.
8787
8788 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
8789
8790         * doc/objc.texi (Fast enumeration protocol): Mention that
8791         'unsigned int' can also be used instead of 'unsigned long' in
8792         countByEnumeratingWithState:objects:count:.
8793
8794 2010-10-07  Martin Jambor  <mjambor@suse.cz>
8795
8796         * tree-sra.c (struct access): New field grp_assignment_write.
8797         (dump_access): Dump grp_assignment_write.
8798         (build_accesses_from_assign): Set grp_assignment_write.
8799         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
8800         (mark_read_status): Renamed to mark_rw_status, individual values
8801         renamed too.
8802         (analyze_access_subtree): Changed type of mark_write to
8803         mark_read_status.  Fixed propagating of mark_read and
8804         mark_write.  Changed benefit estimate.  Updated comment.
8805
8806 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8807
8808         PR Tree-Vect/45847
8809         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
8810         check for vectype_out returned by get_vectype_for_scalar_type().
8811
8812 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8813
8814         PR target/45805
8815         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
8816         constraint, add register specifier in instruction template.
8817         (neon_vec_pack_trunc_<mode>): Likewise.
8818         (neon_vec_<US>mult_<mode>): Add register specifier to
8819         instruction template.
8820
8821 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8822
8823         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
8824         cygwin2.o.
8825         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
8826         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
8827         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
8828         (cygwin2.o): Likewise.
8829         * config/i386/cygwin1.c: Delete file.
8830         * config/i386/cygwin2.c: Likewise.
8831         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
8832         make all {%!mno-cygwin} ones unconditional.
8833         (STARTFILE_SPEC): Likewise.
8834         (REAL_LIBGCC_SPEC): Likewise.
8835         (LIB_SPEC): Likewise.
8836         (CXX_WRAP_SPEC): Likewise.
8837         (LINK_SPEC): Likewise.
8838         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
8839         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
8840         (cygwin_gplusplus_include_dir): Delete now-unused array.
8841         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
8842         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
8843         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
8844         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
8845         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
8846         (cygwin_local_include_dir): Delete now-unused array.
8847         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
8848         (cygwin_cross_include_dir): Delete now-unused array.
8849         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
8850         (cygwin_tool_include_dir): Delete now-unused array.
8851         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
8852         (cygwin_standard_include_dir): Delete now-unused array.
8853         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
8854         (GEN_CVT_ARRAY): Delete now-unused macro definition.
8855         (cvt_to_mingw): Delete now-unused array.
8856         (mingw_scan): Remove prototype of deleted function.
8857         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
8858         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
8859         * doc/invoke.texi (-mcygwin): Don't document removed option.
8860         (-mno-cygwin): Likewise.
8861
8862 2010-10-07  Richard Guenther  <rguenther@suse.de>
8863
8864         * machmode.h (mode_for_vector): Declare.
8865         * stor-layout.c (mode_for_vector): New function, split out from ...
8866         (layout_type): ... here.
8867         * tree-vectorizer.h (current_vector_size): Declare.
8868         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
8869         mask vector type is available.
8870         (get_vectype_for_scalar_type): Rename to ...
8871         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
8872         size argument.
8873         (get_vectype_for_scalar_type): New wrapper around
8874         get_vectype_for_scalar_type_and_size using current_vector_size.
8875         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
8876         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
8877         of vect_analyze_loop here.
8878         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
8879         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
8880         to autodetect.
8881         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
8882         V8SF to V8SI conversion builtin.
8883
8884 2010-10-07  Richard Guenther  <rguenther@suse.de>
8885
8886         * target.def (autovectorize_vector_sizes): New target hook.
8887         * targhooks.c (default_autovectorize_vector_sizes): New function.
8888         * targhooks.h (default_autovectorize_vector_sizes): Declare.
8889         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
8890         Document.
8891         * doc/tm.texi: Update.
8892         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
8893         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8894
8895 2010-10-07  Richard Guenther  <rguenther@suse.de>
8896
8897         * target.def (units_per_simd_word): Rename to ...
8898         (preferred_simd_mode): ... this.  Return mode instead of size.
8899         * targhooks.c (default_units_per_simd_word): Rename to ...
8900         (default_preferred_simd_mode): ... this.  Return word_mode.
8901         * targhooks.h (default_preferred_simd_mode): Declare.
8902         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
8903         (arm_preferred_simd_mode): ... this.  Re-implement.
8904         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
8905         (ix86_preferred_simd_mode): ... this.  Re-implement.
8906         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
8907         (sparc_preferred_simd_mode): ... this.  Re-implement.
8908         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
8909         (mips_preferred_simd_mode): ... this.  Re-implement.
8910         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
8911         (rs6000_preferred_simd_mode): ... this.  Re-implement.
8912         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
8913         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
8914         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
8915         * doc/tm.texi: Update.
8916
8917 2010-10-07  Richard Guenther  <rguenther@suse.de>
8918
8919         PR middle-end/45869
8920         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
8921         of pointers.
8922
8923 2010-10-07  Alan Modra  <amodra@gmail.com>
8924
8925         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
8926         rather than sign extension by hand.
8927
8928 2010-10-07  Jan Hubicka  <jh@suse.cz>
8929
8930         PR middle-end/45926
8931         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
8932
8933 2010-10-07  Richard Guenther  <rguenther@suse.de>
8934
8935         PR bootstrap/45914
8936         * configure.ac: Fix typo.
8937         * configure: Regenerated.
8938
8939 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8940
8941         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
8942         define_builtin_std where it's unnecessary.
8943         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
8944
8945 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
8946
8947         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
8948         * doc/tm.texi.in: Regenerate.
8949         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
8950         * targhooks.c (default_class_likely_spilled_p): Don't use the
8951         CLASS_LIKELY_SPILLED_P macro.
8952
8953         * config/arm/arm.md: Update comment.
8954
8955 2010-10-06  Jan Hubicka  <jh@suse.cz>
8956
8957         * ipa.c (cgraph_remove_unreachable_nodes): External references can
8958         always be removed.
8959         (cgraph_externally_visible_p): We can not bring local comdats that
8960         are known to linker; fix handling of internal visibility.
8961         (function_and_variable_visibility): Likewise.
8962
8963 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
8964
8965         PR rtl-optimization/45394
8966         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
8967         (struct rtx_subst_pair): Remove AFTER field.
8968         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
8969         (propagate_for_debug): Remove MOVE parameter and adjust.
8970         (try_combine): In the special case where I2 is a PARALLEL, combine only
8971         destinations of SETs and set I2SRC to the I2 source.
8972         Adjust calls to propagate_for_debug throughout.
8973         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
8974         insns.
8975
8976 2010-10-06  Olivier Hainque  <hainque@adacore.com>
8977
8978         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
8979         switch on insn codes as sequence of ifs.
8980
8981 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
8982
8983         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
8984         be UI_NONE for picochip.
8985         (picochip_option_override): Do not disable exception flags.
8986         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
8987         Declare.
8988
8989 2010-10-06  Richard Guenther  <rguenther@suse.de>
8990
8991         * Makefile.in (regmove.o): Depend on $(TARGET_H).
8992
8993 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
8994
8995         Implemented fast enumeration for Objective-C.
8996         * c-parser.c (objc_could_be_foreach_context): New.
8997         (c_lex_one_token): Recognize RID_IN keyword in a potential
8998         Objective-C foreach context.
8999         (c_parser_declaration_or_fndef): Added parameter.  Accept
9000         Objective-C RID_IN keyword as terminating a declaration; in that
9001         case, return the declaration in the new parameter.
9002         (c_parser_extenral_declaration): Updated calls to
9003         c_parser_declaration_or_fndef.
9004         (c_parser_declaration_or_fndef): Same change.
9005         (c_parser_compound_statement_nostart): Same change.
9006         (c_parser_label): Same change.
9007         (c_parser_objc_methodprotolist): Same change.
9008         (c_parser_omp_for_loop): Same change.
9009         (c_parser_for_statement): Detect and parse Objective-C foreach
9010         statements.
9011         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
9012         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
9013         fast enumeration parsing code to turn off the c99 error but still
9014         perform checks on the loop declarations.
9015         * c-tree.h (check_for_loop_decls): Updated declaration.
9016         * doc/objc.texi: Document fast enumeration.
9017
9018 2010-10-06  Nick Clifton  <nickc@redhat.com>
9019
9020         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
9021         (MDR_REGNUM): Define.
9022         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
9023         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
9024         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
9025         (REGISTER_NAMES): Add MDR.
9026         (DWARF2_DEBUGGING_INFO): Define to 1.
9027         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9028         (F): New function.  Sets RTX_FRAME_RELATED_P.
9029         (mn10300_gen_multiple_store): Use F.
9030         (expand_prologue): Use F.  Use gen_movsf() to push floating
9031         point registers.
9032         (expand_epilogue): Use gen_movsf() to pop floating point registers.
9033         (mn10300_option_override): Disable combine stack adjust pass.
9034
9035 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
9036
9037         PR target/45901
9038         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
9039         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
9040
9041 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
9042
9043         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
9044         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
9045         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
9046         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
9047         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
9048         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
9049         BUILT_IN_TOUPPER): Mark as leaf.
9050
9051         PR middle-end/45838
9052         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
9053         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
9054         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
9055         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
9056         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
9057         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
9058         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
9059
9060 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
9061
9062         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
9063         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9064         (m68hc11_class_likely_spilled_p): New function.
9065
9066 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
9067
9068         * c-parser.c (c_parser_objc_method_definition): Updated comment.
9069
9070 2010-10-05  Jan Hubicka  <jh@suse.cz>
9071
9072         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
9073         Document.
9074         * opts.c (decode_options): Handle lto partitions.
9075         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
9076         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
9077
9078 2010-10-05  Jan Hubicka  <jh@suse.cz>
9079
9080         * cgraphunit.c (assemble_function): Output thunks and aliases before
9081         the function itself.
9082
9083 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
9084
9085         * config/picochip/picochip.c (picochip_option_override): Disable
9086         exception flags for picochip.
9087
9088 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
9089
9090         * opts-common.c (handle_option, handle_generated_option,
9091         read_cmdline_option, set_option): Add diagnostic_context
9092         parameter.  Update calls among these functions.
9093         (set_option): Don't use global_dc.
9094         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
9095         (decode_options): Pass global_dc to enable_warning_as_error.
9096         (common_handle_option): Pass global_dc to enable_warning_as_error.
9097         (enable_warning_as_error): Add diagnostic_context parameter.
9098         Document parameters.  Don't use global_dc.  Pass
9099         diagnostic_context parameter to handle_generated_option.
9100         * opts.h (set_option, handle_option, handle_generated_option,
9101         read_cmdline_option, enable_warning_as_error): Add
9102         diagnostic_context parameter.
9103         * Makefile.in (lto-opts.o): Update dependencies.
9104         * coretypes.h (struct diagnostic_context, diagnostic_context):
9105         Declare here.
9106         * diagnostic.h (diagnostic_context): Don't declare typedef here.
9107         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
9108         * langhooks-def.h (struct diagnostic_context): Don't declare here.
9109         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
9110         using diagnostic_context typedef.
9111         * langhooks.c (lhd_initialize_diagnostics): Declare using
9112         diagnostic_context typedef.
9113         * langhooks.h (struct diagnostic_context): Don't declare here.
9114         (initialize_diagnostics, print_error_function): Declare using
9115         diagnostic_context typedef.
9116         * lto-opts.c: Include diagnostic.h.
9117         (lto_reissue_options): Pass global_dc to set_option.  Pass
9118         DK_UNSPECIFIED not 0.
9119         * plugin.c (plugins_internal_error_function): Declare using
9120         diagnostic_context typedef.
9121         * plugin.h (struct diagnostic_context): Don't declare here.
9122         (plugins_internal_error_function): Declare using
9123         diagnostic_context typedef.
9124
9125 2010-10-05  Olivier Hainque  <hainque@adacore.com>
9126             Nicolas Roche  <roche@adacore.com>
9127
9128         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
9129         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
9130
9131 2010-10-05  Ira Rosen  <irar@il.ibm.com>
9132
9133         PR tree-optimization/45752
9134         * tree-vect-slp.c (vect_get_mask_element): Remove static
9135         variables, make them function arguments.
9136         (vect_transform_slp_perm_load): Pass new arguments to
9137         vect_get_mask_element.
9138
9139 2010-10-05  Richard Guenther  <rguenther@suse.de>
9140
9141         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
9142         (gimple_mod_pow2): Likewise.
9143         (gimple_mod_subtract): Likewise.
9144         (gimple_ic): Likewise.
9145         (gimple_stringop_fixed_value): Likewise.
9146         * tree-profile.c (tree_init_edge_profiler): Mark profile
9147         functions nothrow and leaf.
9148         (add_abnormal_goto_call_edges): Remove.
9149         (tree_gen_edge_profiler): Work on SSA form.
9150         (tree_gen_ic_profiler): Likewise.  Simplify.
9151         (do_tree_profiling): Update SSA form.
9152         (pass_tree_profile): Remove.
9153         (do_tree_profiling): Likewise.
9154         (gate_tree_profile_ipa): New function.
9155         (pass_ipa_tree_profile): New.
9156         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
9157         state of instrumented functions.
9158         * passes.c (init_optimization_passes): Remove early non-SSA
9159         inlining.  Move profiling after early optimizations.
9160         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
9161         (pass_ipa_early_inline): Likewise.
9162         * tree-pass.h (pass_ipa_early_inline): Remove.
9163         (pass_tree_profile): Likewise.
9164         (pass_ipa_tree_profile): Declare.
9165
9166 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9167             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
9168
9169         * config/s390/s390.c (z196_cost): New.
9170         (s390_handle_arch_option): Add -march=z196.
9171         (s390_option_override): Use the new cost function and use the z10
9172         defaults also for z196.
9173         (legitimate_reload_constant_p): Adjust comment.
9174         (legitimate_reload_fp_constant_p): New function.
9175         (s390_preferred_reload_class): Distingiush between FP and Int constants.
9176         (preferred_la_operand_p): Avoid la with index on z196.
9177         (s390_adjust_priority): Trigger also for z196.
9178         (s390_issue_rate): Issue rate for z196 is 3.
9179         (s390_z10_fix_long_loop_prediction): Rename to ...
9180         (s390_fix_long_loop_prediction): ... this.
9181         (s390_reorg): Apply the z10 adjustments also for z196.
9182         (s390_loop_unroll_adjust): Do this also for z196.
9183         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
9184         (enum processor_flags): Add PF_Z196.
9185         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
9186         (TARGET_CPU_Z196, TARGET_Z196): New macros.
9187         * config.gcc: Enable z196 for --with-arch.
9188         * config/s390/2817.md: New file.
9189         * config/s390/2084.md: New type for multiply and add.
9190         * config/s390/2097.md: Likewise.
9191         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
9192         (UNSPECV_ATOMIC_OP): New constants.
9193         (fmadddf, fmaddsf): New values for type attribute.
9194         (z196prop): New insn attribute.
9195         (cpu, cpu_facility): Add z196.
9196         (ATOMIC_Z196): New code iterator.
9197         (noxa): New code attribute.
9198         (gk): New mode attribute.
9199         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
9200         Support load zero for fp constants.
9201         (fixuns_truncdddi2, fixuns_trunctddi2)
9202         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
9203         for z196.
9204         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
9205         (popcounthi2, popcountqi2): New expander.
9206         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
9207         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
9208         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
9209         insn definition.
9210         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
9211         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
9212         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
9213         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
9214         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
9215         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
9216         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
9217         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
9218         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
9219         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
9220         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
9221         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
9222         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
9223         Support new z196 instructions.
9224
9225 2010-10-05  Richard Guenther  <rguenther@suse.de>
9226
9227         PR middle-end/45877
9228         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
9229         case where gimplification optimizes away the stmt.
9230
9231 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9232
9233         PR debug/45849
9234         * var-tracking.c (strip_pointer_flags): New function.
9235         (emit_note_insn_var_location): If rtx_equal_p check failed,
9236         retry on locations simplified with simplify_replace_fn_rtx
9237         and strip_pointer_flags as its callback.
9238
9239 2010-10-04  Jan Hubicka  <jh@suse.cz>
9240
9241         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
9242         (can_refer_decl_in_current_unit_p): ... this one; reverse return
9243         value; handle comdats too.
9244         (canonicalize_constructor_val): Use it; handle function_decls
9245         correctly.
9246         (gimple_fold_obj_type_ref_known_binfo): Likewise.
9247         * gimple.c (get_base_address): Accept all kinds of decls.
9248
9249 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9250
9251         * flags.h (g_switch_value, g_switch_set): Remove.
9252         * opts.c (g_switch_value, g_switch_set): Remove.
9253         * config/g.opt (G): Add Var(g_switch_value).
9254         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
9255         (alpha_option_override): Check global_options_set.x_g_switch_value
9256         instead of g_switch_set.
9257         (alpha_in_small_data_p): Remove cast in comparison with
9258         g_switch_value.
9259         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
9260         g_switch_value to unsigned HOST_WIDE_INT.
9261         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
9262         with g_switch_value.
9263         (frv_handle_option): Don't handle -G here.
9264         (frv_option_override): Check global_options_set.x_g_switch_value
9265         instead of g_switch_set.  Don't modify g_switch_set.
9266         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
9267         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
9268         g_switch_value to unsigned HOST_WIDE_INT.
9269         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
9270         (ia64_option_override): Check global_options_set.x_g_switch_value
9271         instead of g_switch_set.
9272         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
9273         Remove.
9274         (lm32_in_small_data_p): Remove cast in comparison with
9275         g_switch_value.
9276         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
9277         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
9278         HOST_WIDE_INT.
9279         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
9280         (m32r_init): Check global_options_set.x_g_switch_value instead of
9281         g_switch_set.
9282         (m32r_in_small_data_p): Remove cast in comparison with
9283         g_switch_value.
9284         (m32r_file_start): Format g_switch_value with %d.
9285         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
9286         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
9287         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
9288         handle -G here.
9289         (microblaze_option_override): Check
9290         global_options_set.x_g_switch_value instead of g_switch_set.
9291         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
9292         (mips_option_override): Check global_options_set.x_g_switch_value
9293         instead of g_switch_set.
9294         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
9295         (rs6000_file_start): Format g_switch_value with %d.
9296         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
9297         comparisons with g_switch_value.
9298         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
9299         global_options_set.x_g_switch_value instead of g_switch_set.
9300         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9301         global_options_set.x_g_switch_value instead of g_switch_set.
9302         * config/score/score.c (score_handle_option): Don't handle -G here.
9303         * config/score/score3.c (score3_option_override): Check
9304         global_options_set.x_g_switch_value instead of g_switch_set.
9305         * config/score/score7.c (score7_option_override): Check
9306         global_options_set.x_g_switch_value instead of g_switch_set.
9307
9308 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
9309
9310         * common.opt (fira-coalesce): Remove.
9311
9312         * doc/invoke.texi (flag_ira_coalesce): Remove.
9313
9314         * ira-color.c (allocno_coalesced_p): Move before
9315         copy_freq_compare_func.
9316         processed_coalesced_allocno_bitmap): Ditto.
9317         (update_conflict_hard_regno_costs): Don't use
9318         ALLOCNO_FIRST_COALESCED_ALLOCNO.
9319         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
9320         (assign_hard_reg): Assume no coalesced allocnos.
9321         (get_coalesced_allocnos_attributes): Remove.
9322         (bucket_allocno_compare_func): Assume no coalesced allocnos.
9323         (push_allocno_to_stack): Ditto.
9324         (remove_allocno_from_bucket_and_push): Use
9325         ira_print_expanded_allocno instead of print_coalesced_allocno.
9326         (push_allocnos_to_stack): Assume uncoalesced allocnos.
9327         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
9328         all_conflicting_hard_regs.
9329         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
9330         (setup_allocno_left_conflicts_size): Ditto.
9331         (put_allocno_into_bucket): Ditto.
9332         (copy_freq_compare_func): Remove.
9333         (copy_freq_compare_func, merge_allocnos): Move before
9334         coalesced_pseudo_reg_freq_compare.
9335         coalesced_allocno_conflict_p): Ditto.
9336         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
9337         parameter.  Assume it true.
9338         (color_allocnos): Assume uncoalesced allocnos.  Use
9339         ira_print_expanded_allocno instead of print_coalesced_allocno.
9340         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
9341         parameter.
9342
9343         * ira.c: Remove comment about coalescing.
9344
9345 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9346
9347         * config/mips/mips.h (target_flags_explicit): Declare for
9348         GENERATOR_FILE.
9349
9350 2010-10-04  Andi Kleen  <ak@linux.intel.com>
9351
9352         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
9353         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
9354
9355 2010-10-04  Matthias Klose  <doko@ubuntu.com>
9356
9357         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
9358         multilib osdirname if it exists.
9359         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
9360
9361 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9362
9363         PR middle-end/45876
9364         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
9365         arg0's type or its unsigned counterpart as utype.  Convert
9366         arg1 to utype unconditionally.
9367
9368 2010-10-04  Julian Brown  <julian@codesourcery.com>
9369
9370         * expr.c (expand_assignment): Add assertion to prevent emitting
9371         null rtx for movmisalign pattern.
9372         (expand_expr_real_1): Likewise.
9373         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
9374         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
9375         (arm_vector_alignment_reachable): New.
9376         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
9377         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
9378         (arm_print_operand): Include alignment qualifier in %A.
9379         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
9380         (movmisalign<mode>): New expander.
9381         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
9382         insn patterns.
9383
9384 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9385
9386         * optc-gen.awk: Define global_options_set.  Don't define
9387         target_flags_explicit.
9388         * opth-gen.awk: Declare global_options_set.  Define
9389         target_flags_explicit as macro.
9390         * opts-common.c (handle_option): Take opts_set and generated_p
9391         parameters.
9392         (handle_generated_option, read_cmdline_option, set_option): Take
9393         opts_set parameter.
9394         (set_option): Use opts_set instead of hardcoding target_flags and
9395         target_flags_explicit.
9396         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
9397         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
9398         flag_value_profile_transformations_set, flag_peel_loops_set,
9399         flag_branch_probabilities_set, flag_inline_functions_set,
9400         flag_ipa_cp_set, flag_ipa_cp_clone_set,
9401         flag_predictive_commoning_set, flag_unswitch_loops_set,
9402         flag_gcse_after_reload_set): Remove.
9403         (common_handle_option, lang_handle_option, target_handle_option):
9404         Take opts_set parameter.  Assert that it is &global_options_set.
9405         (common_handle_option): Don't set _set variables.  Check opts_set
9406         instead of such variables.
9407         (enable_warning_as_error): Pass &global_options_set to
9408         handle_generated_option.
9409         * opts.h (cl_option_handler_func.handler, set_option,
9410         handle_option, handle_generated_option, read_cmdline_option): Add
9411         opts_set parameters.
9412         (handle_option): Add generated_p parameter.
9413         * config/i386/i386.c (ix86_function_specific_save,
9414         ix86_function_specific_restore): Updat for renaming of
9415         target_flags_explicit field.
9416         * config/i386/i386.opt (target_flags_explicit): Rename to
9417         ix86_target_flags_explicit.
9418         * config/ia64/ia64.c (ia64_override_options_after_change): Check
9419         global_options_set.x_flag_selective_scheduling and
9420         global_options_set.x_flag_selective_scheduling2, not
9421         sel_sched_switch_set.
9422         * flags.h (sel_sched_switch_set,
9423         flag_speculative_prefetching_set): Remove.
9424         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
9425         that it is &global_options_set.
9426         (process_command): Pass &global_options_set to read_cmdline_option.
9427         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
9428         set_option.
9429         * toplev.c (target_flags_explicit): Remove.
9430
9431 2010-10-04  Jan Hubicka  <jh@suse.cz>
9432
9433         PR middle-end/45871
9434         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
9435         use get_ref_base_and_offset to handle references.
9436         (fold_const_aggregate_ref): Update.
9437
9438 2010-10-04  Martin Jambor  <mjambor@suse.cz>
9439
9440         PR tree-optimization/45572
9441         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
9442         ipa_check_create_node_params.
9443         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
9444
9445 2010-10-04  Yao Qi  <yao@codesourcery.com>
9446
9447         * doc/passes.texi: Clean up.
9448
9449 2010-10-03  Ian Lance Taylor  <iant@google.com>
9450
9451         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
9452         referring to a field using a typedef name.
9453         (find_anonymous_field_with_type): New static function.
9454         (convert_to_anonymous_field): New static function.
9455         (convert_for_assignment): If -fplan9-extensions, permit converting
9456         pointer to struct to pointer to anonymous field.
9457         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
9458         (is_duplicate_field): New static function.
9459         (detect_field_duplicates_hash): If -fplan9-extensions, check for
9460         typedef names duplicating field names.
9461         (detect_field_duplicates): Likewise.
9462         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
9463         (C Dialect Options): Document -fplan9-extensions.
9464         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
9465
9466 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
9467
9468         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
9469         revision 164914.
9470         (vect_create_data_ref_ptr): Likewise.
9471         * tree-vect-stmts.c (vectorizable_store): Likewise.
9472         (perm_mask_for_reverse): Likewise.
9473         (reverse_vec_elements): Likewise.
9474         (vectorizable_load): Likewise.
9475
9476 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9477
9478         * cppbuiltin.c: New file.
9479         * cppbuiltin.h: New file.
9480         * Makefile.in: Take into account cppbuiltin.{h,c}.
9481
9482 2010-10-03  Andi Kleen  <ak@linux.intel.com>
9483
9484         * lto-cgraph.c (input_cgraph): Check for missing sections.
9485
9486 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
9487
9488         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
9489         to nonimmediate_operand.  Force operand 2 to register when allowed.
9490         (*<shiftrt_insn><mode>3_mask): Ditto.
9491         (*<rotate_insn><mode>3_mask): Ditto.
9492
9493 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
9494
9495         PR tree-optimization/45720
9496         PR tree-optimization/45764
9497         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
9498         Don't accept backwards consecutive accesses.
9499         (vect_create_data_ref_ptr): Disallow negative steps.
9500
9501         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
9502         (perm_mask_for_reverse): Removed.
9503         (reverse_vec_elements): Likewise.
9504         (vectorizable_load): Don't handle negative steps.
9505
9506 2010-10-02  Jan Hubicka  <jh@suse.cz>
9507
9508         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
9509         call destination is known.
9510
9511 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9512
9513         PR target/45820
9514         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
9515         earlier.
9516
9517 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9518
9519         * doc/install.texi (Configuration): Document build_configargs,
9520         host_configargs, target_configargs.
9521
9522 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
9523
9524         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
9525         (*<shiftrt_insn><mode>3_mask): Ditto.
9526         (*<rotate_insn><mode>3_mask): Ditto.
9527
9528 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
9529
9530         PR tree-optimization/44716
9531         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
9532         (HOT_TEXT_SECTION_NAME): Define.
9533
9534 2010-10-01  Nick Clifton  <nickc@redhat.com>
9535
9536         * common.opt: Add -fcombine-stack-adjustments.
9537         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
9538         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
9539         flag_combine_stack_adjustments.
9540         * doc/invoke.texi: Document the new option.
9541
9542 2010-10-01  Richard Guenther  <rguenther@suse.de>
9543
9544         PR tree-optimization/45854
9545         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
9546
9547 2010-10-01  Anthony Green  <green@moxielogic.com>
9548
9549         * config.gcc: Fix moxie-*-rtems* configuration.
9550
9551 2010-10-01  Richard Guenther  <rguenther@suse.de>
9552
9553         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
9554         (gen_decl_die): Likewise.
9555
9556 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9557
9558         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
9559         to the function code for SPU MD builtins.
9560         (spu_expand_builtin): Update.
9561         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
9562
9563 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9564
9565         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
9566         sjlj_except_unwind_info.
9567
9568 2010-10-01  Tristan Gingold  <gingold@adacore.com>
9569
9570         * configure.ac: Define the nop insn for avr*-*-*
9571         * configure: Regenerate.
9572
9573 2010-10-01  Alan Modra  <amodra@gmail.com>
9574
9575         PR target/45807
9576         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
9577         extend toc_restore_insn.
9578
9579 2010-09-30  Richard Guenther  <rguenther@suse.de>
9580
9581         PR tree-optimization/43959
9582         * function.c (gimplify_parameters): Use create_tmp_reg instead of
9583         create_tmp_var.
9584
9585 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
9586
9587         * config/sh/sh.c (sh_expand_prologue): Set
9588         current_function_static_stack_size.
9589
9590 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9591
9592         * configure.ac: Check for Solaris 8 ld with .hidden support.
9593         * configure: Regenerate.
9594
9595 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9596
9597         PR middle-end/45758
9598         * graphite.c (graphite_initialize): Call scev_reset.
9599
9600 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9601
9602         * sese.h (scev_analyzable_p): Return false for real or floating
9603         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
9604
9605 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9606
9607         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
9608         and ps.
9609         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
9610         domain.
9611         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
9612         Do not allocate ub_expr, it is passed in initialized.
9613
9614 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9615
9616         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
9617         (build_cloog_prog): Dump CLooG input file when
9618         flag_graphite_dump_cloog is set.  This is disabled on trunk.
9619         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
9620
9621 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9622
9623         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
9624         verify_dominators for CDI_POST_DOMINATORS.
9625         * sese.h: Remove comment about CDI_POST_DOMINATORS.
9626         (recompute_all_dominators): Remove call to free_dominance_info
9627         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
9628         for CDI_POST_DOMINATORS.
9629
9630 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9631
9632         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
9633         over pbb_dim_iter_domain.
9634
9635 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9636
9637         * graphite-flattening.c: Fix comments.
9638
9639 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9640
9641         * Makefile.in (OBJS-common): Add graphite-flattening.o.
9642         (graphite-flattening.o): New rule.
9643         * common.opt (floop-flatten): New flag.
9644         * doc/invoke.texi (-floop-flatten): Documented.
9645         * graphite-flattening.c: New.
9646         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
9647         * graphite-poly.h (flatten_all_loops): Declared.
9648         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
9649         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
9650         is set, also set flag_graphite.
9651
9652 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9653
9654         * graphite-poly.c (cloog_checksum): New.
9655         * graphite-poly.h (cloog_checksum): Declared.
9656
9657 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9658
9659         * graphite-poly.c (pbb_number_of_iterations): Removed.
9660         (pbb_number_of_iterations_at_time): Correctly compute the number
9661         of iterations in the transformed loop.
9662         * graphite-poly.h (pbb_number_of_iterations): Removed.
9663
9664 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9665
9666         * graphite-poly.h (lst_update_scattering_seq): Removed.
9667         (lst_update_scattering): Correctly handle outermost loop dewey
9668         renumbering.
9669
9670 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9671
9672         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
9673         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
9674         * graphite-poly.h (lst_niter_for_loop): New.
9675
9676 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9677
9678         * graphite-poly.c (apply_poly_transforms): Do not abort when the
9679         transform read from disk is not legal.  Call fatal_error instead.
9680
9681 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9682
9683         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
9684         (print_scop_header): Removed.  Inlined in the only call place...
9685         (print_scop): ... here.
9686
9687 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9688
9689         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
9690
9691 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9692
9693         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
9694
9695 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9696
9697         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
9698         (dot_deps_stmt): Same.
9699         * graphite-poly.c (dot_lst): Same.
9700
9701 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9702
9703         * graphite-blocking.c (scop_do_strip_mine): Do not call
9704         graphite_legal_transform.
9705         (scop_do_block): Same.
9706
9707 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9708
9709         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
9710         description.
9711
9712 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9713
9714         * tree-scalar-evolution.c (instantiate_array_ref): New.
9715         (instantiate_scev_r): Also handle ARRAY_REFs.
9716
9717 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9718
9719         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
9720         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
9721         RESULT_DECL, and FIELD_DECL.  Return false for an
9722         SSA_NAME_IS_DEFAULT_DEF.
9723         (compute_scalar_evolution_in_loop): Do not further analyze the
9724         scalar evolution when no_evolution_in_loop_p returns true.
9725
9726 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9727
9728         * tree-chrec.h (evolution_function_is_affine_p): Do not check
9729         whether CHREC_LEFT is invariant.  A function is affine when
9730         CHREC_RIGHT is invariant.
9731
9732 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9733
9734         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
9735         is_gimple_reg.
9736         (rewrite_degenerate_phi): Same.
9737         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
9738
9739 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9740
9741         * graphite-scop-detection.c (graphite_can_represent_scev,
9742         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
9743         graphite_can_represent_loop): Remove outermost_loop.
9744
9745 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9746
9747         PR middle-end/45229
9748         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
9749         handle GIMPLE_CALLs with no LHS.
9750
9751 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9752
9753         * graphite-poly.c (init_graphite_out_file): New.
9754         (init_graphite_in_file): New.
9755         (apply_poly_transforms): Updated to enable reading and writing of
9756         multiple scop files.
9757
9758 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
9759
9760         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
9761         redundant checks.
9762
9763 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9764
9765         * graphite-clast-to-gimple.c (precision_for_value): Adjust
9766         computation of precision by 1.
9767
9768 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9769
9770         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
9771         (openscop_read_polyhedron_matrix): New.
9772         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
9773         (openscop_read_N_int): Same.
9774         * graphite-poly.c (openscop_read_N_int): New.
9775         (openscop_read_one_int): New.
9776         (openscop_read_N_string): New.
9777         (openscop_read_one_string): New.
9778         (openscop_read_powerset_matrix): New.
9779         (graphite_read_transforms): Remove.
9780         (graphite_read_scatt): New.
9781         (graphite_read_scop_file): New.
9782         (apply_poly_transforms): Updated to call graphite_read_scop_file.
9783
9784 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9785
9786         * graphite-poly.c: Change include order.
9787
9788 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9789
9790         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
9791         (cloog_matrix_nrows): New.
9792
9793 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9794
9795         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
9796         from matrix lines.
9797         * graphite-poly.c (openscop_print_scattering_function_1): Same.
9798         (print_scattering_function_1): Same.
9799         (openscop_print_pbb_domain): Same.
9800         (openscop_print_scop_context): Same.
9801         (print_scop_context): Same.
9802
9803 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
9804
9805         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
9806         (openscop_print_pdr_polyhedron): Print pph.
9807
9808 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9809
9810         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
9811         priority signed types.
9812
9813 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9814
9815         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
9816         the call to lang_hooks.types.type_for_size.  Call
9817         build_nonstandard_integer_type.
9818
9819 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9820
9821         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
9822         (openscop_print_polyhedron_matrix): New.
9823         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
9824         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
9825         (openscop_print_pdr_powerset): New.
9826         (openscop_print_powerset_matrix): New.
9827         (openscop_print_scattering_function_1): New.
9828         (print_scattering_function): Add support for scattering names and
9829         OpenScop format.
9830         (graphite_write_transforms): Remove.
9831         (print_pdr_access_layout): Updated to support OpenScop format.
9832         (print_pdr): Same.
9833         (openscop_print_pbb_domain): New.
9834         (print_pbb_body): Added a parameter to allow indicating that pbb_body
9835         is not provided.
9836         (print_pbb): Updated to call the new print_pbb_body.
9837         (openscop_print_scop_context): New.
9838         (print_scop_header): New.
9839         (print_scop): Updated to call print_scop_header.
9840         * graphite-poly.h: Document OpenScop format.
9841
9842 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
9843
9844         * config/cris/m32c.c (cris_memory_move_cost): New.
9845         (cris_register_move_cost): Make static. Change arguments type from
9846         enum reg_class to reg_class_t.
9847         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
9848         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9849         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
9850
9851 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9852
9853         PR target/45843
9854         * config/i386/i386.c (ix86_gimplify_va_arg): Use
9855         INTVAL (XEXP (slot, 1)) as prev_size.
9856
9857 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
9858
9859         PR target/45837
9860         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
9861         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
9862         defined.
9863         * config/rs6000/option-defaults.h (toplevel): Change #if
9864         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
9865         global option changes.
9866
9867 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9868
9869         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
9870
9871         PR tree-optimization/31261
9872         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
9873         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
9874
9875 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9876
9877         PR bootstrap/45796
9878         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
9879         special-casing for generators and turn into ...
9880         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
9881         rule, for better error messages in case of toplevel dependency errors.
9882         (genprog): Add hooks, rename to ...
9883         (genprogerr): ... this, and let genprog also contain check,
9884         checksum, condmd.
9885         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
9886         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
9887         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
9888
9889 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
9890             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9891
9892         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
9893         for GMP, MPFR and MPC.
9894
9895 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9896
9897         * config/sparc/sparc.opt (mimpure-text): Move ...
9898         * config/sol2.opt: ... here.  Correct description.
9899         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
9900         * doc/invoke.texi (Option Summary, SPARC Options): Move
9901         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
9902         (Option Summary, Solaris 2 Options): ... here.
9903         (Submodel Options, Solaris 2 Options): New menu entry.
9904         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
9905         (Solaris 2 Options): ... here.
9906
9907 2010-09-30  Michael Eager  <eager@eagercon.com>
9908
9909         * extend.texi (interrupt_handler): Add MicroBlaze to list.
9910         (save_volatiles): Describe option for MicroBlaze.
9911         * invoke.texi: Add MicroBlaze Options.
9912         * contrib.texi: Add acknowledgment.
9913         * md.texi: Add MicroBlaze d and z constraints.
9914         * install.texi: Add microblaze-*-elf.
9915         * configure.ac: Add microblaze-*-* to target list.
9916         * configure: Regenerate.
9917         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
9918         * config/microblaze/microblaze-protos.h: New.
9919         * config/microblaze/crti.s: New.
9920         * config/microblaze/predicates.md: New.
9921         * config/microblaze/linux.h: New.
9922         * config/microblaze/microblaze.md: New.
9923         * config/microblaze/constraints.md: New.
9924         * config/microblaze/crtn.s: New.
9925         * config/microblaze/microblaze.opt: New.
9926         * config/microblaze/microblaze-c.c: New.
9927         * config/microblaze/t-microblaze: New.
9928         * config/microblaze/microblaze.c: New.
9929         * config/microblaze/microblaze.h: New.
9930
9931 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
9932
9933         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
9934         parse @optional/@required and set the flags as appropriate.
9935
9936 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
9937
9938         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
9939
9940 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
9941
9942         * opt-functions.awk (static_var): Update comment.
9943         (var_ref): Return offsetof expression or -1, not variable address.
9944         * optc-gen.awk: Generate structure field initializers instead of
9945         static variables.  Expect -1 for missing variables instead of null
9946         pointer.  Add gcc_options parameters to generated functions.
9947         * opth-gen.awk: Generate structure fields for static variables.
9948         Add gcc_options parameters to generated functions.
9949         * common.opt (optimize, optimize_size): Add variables.
9950         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
9951         &global_options to cl_target_option_restore.
9952         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
9953         &global_options to cl_optimization_restore, cl_target_option_save
9954         and cl_target_option_restore.
9955         (ix86_set_current_function): Pass &global_options to
9956         cl_target_option_restore.
9957         * config/pdp11/pdp11.h (optimize): Remove.
9958         * config/rs6000/rs6000.h (optimize): Remove.
9959         * config/sh/sh.h (optimize): Remove.
9960         * config/xtensa/xtensa.h (optimize): Remove.
9961         * coretypes.h (struct gcc_options): Declare.
9962         * diagnostic.c (diagnostic_initialize): Initialize
9963         context->option_state.
9964         (diagnostic_report_diagnostic): Pass option_state to
9965         option_enabled hook.
9966         * diagnostic.h (diagnostic_context.option_enabled): Add void *
9967         parameter.
9968         (diagnostic_context.option_state): New field.
9969         * final.c (final_start_function, final, final_scan_insn): Rename
9970         optimize parameter to optimize_p.
9971         * flags.h (optimize, optimize_size): Remove.
9972         * function.c (invoke_set_current_function_hook): Pass
9973         &global_options to cl_optimization_restore.
9974         * gcc.c (driver_handle_option): Take gcc_options parameter.
9975         Assert that it is &global_options.
9976         (process_command): Pass &global_options to read_cmdline_option.
9977         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
9978         option_enabled.
9979         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
9980         &global_options to set_option.
9981         * opts-common.c (handle_option, handle_generated_option,
9982         read_cmdline_option, set_option): Take explicit gcc_options
9983         parameters.  Use option_flag_var.
9984         (option_flag_var): New.
9985         * opts.c (common_handle_option, lang_handle_option,
9986         target_handle_option): Take gcc_options parameter.  Assert that it
9987         is &global_options.
9988         (read_cmdline_options): Pass &global_options to read_cmdline_option.
9989         (print_filtered_help): Use option_flag_var.  Pass &global_options
9990         to option_enabled.
9991         (common_handle_option): Use option_flag_var.
9992         (option_enabled): Take opts parameter.  Use option_flag_var.
9993         (get_option_state): Take gcc_options parameter.  Use
9994         option_flag_var.  Pass gcc_options parameter to option_enabled.
9995         (enable_warning_as_error): Pass &global_options to
9996         handle_generated_option.
9997         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
9998         (cl_option_handler_func.handler): Take gcc_options parameter.
9999         (option_enabled, get_option_state, set_option, handle_option,
10000         handle_generated_option, read_cmdline_option): Take gcc_options
10001         parameters.
10002         * toplev.c (optimize, optimize_size): Remove.
10003         (print_switch_values): Pass &global_options to option_enabled.
10004         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
10005         to get_option_state.
10006         (general_init): Initialize global_dc->option_state.
10007         * tree.c (build_optimization_node): Pass &global_options to
10008         cl_optimization_save.
10009         (build_target_option_node): Pass &global_options to
10010         cl_target_option_save.
10011
10012 2010-09-30  Martin Jambor  <mjambor@suse.cz>
10013
10014         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
10015         zero sized bit-fields.
10016
10017 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
10018
10019         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
10020         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
10021         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
10022         (c_parser_objc_class_declaration): Same change.
10023         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
10024         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
10025         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
10026         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
10027         and RID_AT_PUBLIC instead of RID_PUBLIC.
10028         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
10029         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
10030
10031 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
10032
10033         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
10034         Add links to current providers of packages for Solaris and IRIX.
10035
10036 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10037
10038         Merge from 'apple/trunk' branch on FSF servers.
10039         * c-parser.c: Applied change originally in c-parse.in.
10040
10041         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
10042
10043         Radar 4281748
10044         * c-decl.c (start_decl): Check for redeclaration of class name.
10045         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
10046
10047 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
10048
10049         * config/ia64/ia64.c (ia64_builtin_decl): New.
10050         (TARGET_BUILTIN_DECL): Define.
10051         (ia64_builtins): New.
10052         (ia64_init_builtins): Save decls in ia64_builtins.
10053
10054 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
10055
10056         PR target/40457
10057         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
10058         (move2add_use_add3_insn): Likewise.
10059         (reload_cse_move2add): Likewise.
10060         * rtlanal.c (get_full_rtx_cost): New function.
10061         * rtl.h (struct full_rtx_costs): New.
10062         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
10063         costs_add_n_insns): New inline functions.
10064         (get_full_rtx_cost): Declare.
10065
10066         PR c/45054
10067         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
10068         invariants.  Check for reg_equiv_invariant.
10069         (reload): Assert that spilled_pseudos is empty when returning.
10070
10071 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
10072
10073         * config/i386/mingw32.h (TARGET_64BIT): replaced by
10074         TARGET_64BIT_DEFAULT in #if check.
10075
10076 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
10077
10078         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
10079
10080 2010-09-29  Mike Stump  <mikestump@comcast.net>
10081
10082         * config/darwin.h (flag_mkernel): Remove.
10083         (flag_apple_kext): Likewise.
10084
10085 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10086             Jack Howarth  <howarth@bromo.med.uc.edu>
10087
10088         * config/darwin.opt (undefined): Add.
10089
10090 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
10091
10092         PR testsuite/45664
10093         * configure.ac: Add --enable-indirect-function option.
10094         * config.gcc: Add default_gnu_indirect_function.
10095         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
10096         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
10097         * varasm.c (do_assemble_alias): Adjust for macro name change.
10098         * configure: Rebuilt.
10099         * doc/install.texi: Document --enable-indirect-function.
10100
10101 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10102
10103         * doc/options.texi (Variable, Var, Init): Update documentation
10104         without reference to VarExists.
10105         (VarExists): Remove.
10106         * common.opt, config/i386/i386.opt, config/linux.opt,
10107         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
10108         Don't use VarExists.
10109
10110 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10111
10112         * optc-gen.awk: Generate global_options initializer instead of
10113         individual variables.  Add x_ prefix to names of structure members.
10114         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
10115         names of structure members.
10116         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10117         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
10118         * doc/tm.texi: Regenerate.
10119         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10120         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10121         * c-parser.c (disable_extension_diagnostics,
10122         restore_extension_diagnostics): Update names of cpp_options members.
10123         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10124         * common.opt (fcompare-debug-second): Don't use Var.
10125         * config/alpha/alpha.h (target_flags): Remove.
10126         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10127         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10128         * config/bfin/bfin.h (target_flags): Remove.
10129         * config/cris/cris.h (target_flags): Remove.
10130         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
10131         cl_target_option members.
10132         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
10133         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
10134         ix86_can_inline_p): Update names of cl_target_option members.
10135         * config/i386/i386.h (ix86_isa_flags): Remove.
10136         * config/lm32/lm32.h (target_flags): Remove.
10137         * config/mcore/mcore.h (mcore_stack_increment): Remove.
10138         * config/mcore/mcore.md (addsi3): Remove extern declaration of
10139         flag_omit_frame_pointer.
10140         * config/mep/mep.h (target_flags): Remove.
10141         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10142         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10143         * config/mmix/mmix.h (target_flags): Remove.
10144         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
10145         flag_expensive_optimizations): Remove.
10146         * config/s390/s390.h (flag_pic): Remove.
10147         * config/score/score-conv.h (target_flags): Remove.
10148         * config/sh/sh.h (sh_fixed_range_str): Remove.
10149         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
10150         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10151         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10152         * diagnostic.c (diagnostic_initialize): Update names of
10153         diagnostic_context members.
10154         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
10155         warn_system_headers.
10156         (diagnostic_report_warnings_p): Update for new names.
10157         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10158         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
10159         HARD_FRAME_POINTER_IS_ARG_POINTER.
10160         * flags.h (flag_compare_debug): Declare.
10161         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10162         * opts.c (flag_compare_debug): Define.
10163         (common_handle_option): Update names of diagnostic_context
10164         members.  Handle -fcompare-debug-second.
10165         (fast_math_flags_struct_set_p): Update names of cl_optimization
10166         members.
10167         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10168         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10169         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10170         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10171         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10172         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10173         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
10174         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10175         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10176
10177 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
10178
10179         * config/picochip/picochip.c (picochip_output_internal_label):
10180         This function can now be called for debug CFI labels, which can come
10181         in the middle of a vliw instruction.  Postpone until end of vliw.
10182
10183 2010-09-29  Richard Guenther  <rguenther@suse.de>
10184
10185         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
10186         (DECL_FILE_SCOPE_P): Use it.
10187         (TYPE_FILE_SCOPE_P): New macro.
10188
10189 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10190
10191         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
10192         a CPP_NAME which is a reserved word, clearly separate cases for
10193         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
10194
10195 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10196
10197         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
10198         token->value with the canonical spelling.  Do exactly like C and
10199         C++ and leave it as it is.
10200
10201 2010-09-28  Richard Henderson  <rth@redhat.com>
10202
10203         * config/alpha/alpha.c (alpha_builtins): New.
10204         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
10205         (alpha_builtin_function): New.
10206         (alpha_add_builtins, alpha_init_builtins): Use it.
10207
10208 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
10209
10210         * doc/standards.texi (Standards): Expanded the section on
10211         Objective-C and Objective-C++.
10212
10213 2010-09-28  DJ Delorie  <dj@redhat.com>
10214
10215         PR target/45800
10216         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
10217         volatile MEMs.
10218
10219 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10220
10221         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
10222         attributes on methods.
10223          (c_parser_objc_method_definition): Handle attributes.
10224         (c_parser_objc_methodproto): Likewise.
10225         (c_parser_objc_maybe_method_attributes): New.
10226         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
10227         missing definition, similar to that in ObjC++.
10228
10229 2010-09-28  Richard Henderson  <rth@redhat.com>
10230
10231         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
10232         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10233         (CONFIG_SJLJ_EXCEPTIONS): Remove.
10234         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
10235         (STACK_CHECK_PROTECT): Likewise.
10236         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
10237         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
10238         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
10239         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
10240         (dwarf2out_assembly_start): Likewise.
10241         * except.c (init_eh): Use targetm.except_unwind_info.
10242         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
10243         (output_one_function_exception_table): Likewise.
10244         * final.c: Unconditionally include dwarf2out.h.
10245         (final_start_function): Unconditionally call dwarf2out routines.
10246         (final_end_function, final_scan_insn): Likewise.
10247         * function.c (expand_function_end): Use targetm.except_unwind_info.
10248         * opts.c (decode_options): Use targetm.except_unwind_info.
10249         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
10250         * target.def (debug_unwind_info, except_unwind_info): New.
10251         * target.h (enum unwind_info_type): New.
10252         * targhooks.c (default_debug_unwind_info): New.
10253         (default_except_unwind_info): New.
10254         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
10255         * targhooks.h: Declare them.
10256         * tree-tailcall.c: Include "target.h"
10257         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
10258         * Makefile.in (tree-tailcall.o): Update.
10259         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
10260         (lhd_gcc_personality): Likewise.
10261
10262         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
10263         (TARGET_EXCEPT_UNWIND_INFO): New.
10264         (DWARF2_UNWIND_INFO): Update.
10265         (TARGET_DEBUG_UNWIND_INFO): New.
10266         * doc/tm.texi: Rebuild.
10267
10268         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
10269         targetm.except_unwind_info.
10270
10271         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
10272         (arm_except_unwind_info): New.
10273         (arm_compute_func_type): Use it.
10274         (arm_expand_prologue, thumb_pushpop): Likewise.
10275         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
10276         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
10277         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
10278         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
10279         (DWARF2_UNWIND_INFO): Remove.
10280         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10281         (ARM_EABI_UNWIND_TABLES): Remove.
10282
10283         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
10284         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
10285         (ia64_except_unwind_info): New.
10286         (ia64_output_function_prologue): Use it.
10287         (ia64_add_bundle_selector_before): Likewise.
10288         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
10289         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
10290         (TARGET_UNWIND_INFO): Remove.
10291
10292         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
10293
10294 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10295
10296         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
10297         (c_parser_objc_protocol_definition): Likewise.
10298         (c_parser_external_declaration): Provide dummy attribute arguments.
10299         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
10300         (c_parser_objc_class_definition): Handle attributes.
10301         (c_parser_objc_protocol_definition): Likewise.
10302
10303 2010-09-28  Tobias Burnus  <burnus@net-b.de>
10304
10305         PR fortran/40569
10306         PR fortran/40568
10307         * toplev.h (save_decoded_options, save_decoded_options_count):
10308         New global variables.
10309         * toplev.c (save_decoded_options, save_decoded_options_count):
10310         Export variables.
10311
10312 2010-09-28  Ian Lance Taylor  <iant@google.com>
10313
10314         * config/i386/i386.c (ix86_supports_split_stack): Test
10315         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
10316
10317 2010-09-28  Ian Lance Taylor  <iant@google.com>
10318
10319         PR target/45815
10320         * opts.c (decode_options): Don't test whether the target supports
10321         split stack if flag_split_stack == 0.
10322
10323 2010-09-28  Jan Hubicka  <jh@suse.cz>
10324
10325         * builtin-attrs.def (ATTR_LEAF): New attribute.
10326         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
10327         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
10328         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
10329         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
10330         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
10331         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
10332         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
10333         * sync-builtins.def: Annotate all builtins by leaf.
10334         * omp-builtins.def: Annotate all builtins by leaf.
10335         * builtins.def: Annotate relevant builtins with leaf attribute.
10336         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
10337         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
10338         leaf.
10339
10340 2010-09-28  Jan Hubicka  <jh@suse.cz>
10341
10342         * tree-ssa-ccp.c (fold_ctor_reference): New function.
10343         (fold_const_aggregate_ref): Use it.
10344         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
10345         into external static.
10346
10347 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10348
10349         PR target/44452
10350         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
10351         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
10352         (ix86_solaris_return_in_memory): Remove.
10353         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
10354         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10355         (TARGET_SUBTARGET_DEFAULT): Redefine.
10356         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
10357         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10358         (TARGET_SUBTARGET_DEFAULT): Redefine.
10359         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
10360         -mvect8-ret-in-mem.
10361         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
10362
10363 2010-09-29  Alan Modra  <amodra@gmail.com>
10364
10365         PR target/45807
10366         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
10367         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
10368         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
10369         Delete.
10370         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
10371         (rs6000_emit_prologue): Don't just create frame save info for r2,
10372         actually save r2.
10373
10374 2010-09-28  Richard Henderson  <rth@redhat.com>
10375
10376         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
10377         when 8 bytes are requested.
10378
10379 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10380
10381         * config/avr/avr.c (expand_prologue): Set
10382         current_function_static_stack_size.
10383
10384 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10385
10386         * config/alpha/alpha.md: Change the initial condition of the
10387         probing loop.
10388
10389 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
10390
10391         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
10392         Split from *avx_<maxmin:code><mode>3.
10393         (*avx_<smaxmin:code><mode>3): Ditto.
10394         * config/i386/i386.md (maxmin): Remove code iterator.
10395
10396 2010-09-27  Ian Lance Taylor  <iant@google.com>
10397
10398         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
10399         requires assembler support for CFI directives.
10400
10401 2010-09-27  Richard Henderson  <rth@redhat.com>
10402
10403         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
10404
10405 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10406
10407         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
10408         that AFTER is not in the range FROM..TO, inclusive.
10409
10410 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10411             Bernd Schmidt  <bernds@codesourcery.com>
10412
10413         PR rtl-optimization/45792
10414         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
10415         If not all insns are to be merged, for each edge, stash the
10416         next candidate after the to-be-merged insns before doing the
10417         merge, and use them for the retry at the new insertion point.
10418         Handle CC0 targets when retrying.
10419
10420 2010-09-27  Ian Lance Taylor  <iant@google.com>
10421
10422         * common.opt (fsplit-stack): New option.
10423         * opts.c (decode_options): Set flag_split_stack to final value.
10424         * target.def (supports_split_stack): New hook.
10425         * gcc.c (STACK_SPLIT_SPEC): Define.
10426         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
10427         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
10428         (Code Gen Options): Document -fsplit-stack.
10429         * doc/extend.texi (Function Attributes): Mention no_split_stack.
10430         (Function Attributes): Document no_split_stack.
10431         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
10432         TARGET_SUPPORTS_SPLIT_STACK.
10433         * doc/tm.texi: Rebuild.
10434         * function.c (thread_prologue_and_epilogue_insns): If
10435         flag_split_stack, add split stack prologue.
10436         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
10437         * varasm.c (saw_no_split_stack): New static variable.
10438         (assemble_start_function): Set saw_no_split_stack if the function
10439         has the no_split_stack attribute.
10440         (file_end_indicate_split_stack): New function.
10441         * output.h (file_end_indicate_split_stack): Declare.
10442         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
10443         and function.
10444         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
10445         routines.
10446         * config/i386/i386.c (ix86_option_override_internal): Don't set
10447         expand_builtin_va_start to NULL if -fsplit-stack.
10448         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
10449         -fsplit-stack.
10450         (ix86_va_start): If -fsplit-stack, get overflow pointer from
10451         scratch register set by prologue.
10452         (ix86_code_end): If -fsplit-stack, call
10453         file_end_indicate_split_stack.
10454         (ix86_supports_split_stack): New static function.
10455         (SPLIT_STACK_AVAILABLE): Define.
10456         (split_stack_prologue_scratch_regno): New static function.
10457         (split_stack_fn): New static variable.
10458         (ix86_expand_split_stack_prologue): New function.
10459         (ix86_live_on_entry): New static function.
10460         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
10461         (output_pic_addr_const): Likewise.
10462         (i386_asm_output_addr_const_extra): Likewise.
10463         (ix86_expand_call): Change return type to rtx.  Return the new
10464         call instruction.
10465         (TARGET_SUPPORTS_SPLIT_STACK): Define.
10466         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
10467         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
10468         (split_stack_prologue, split_stack_return): New insns.
10469         (split_stack_space_check): New insn.
10470         * config/i386/i386.h (struct machine_function): Add
10471         split_stack_varargs_pointer field.
10472         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
10473         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10474         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
10475         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10476         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
10477         Declare.
10478         (ix86_expand_call): Update declaration.
10479
10480 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10481
10482         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
10483         code.  Added byref, which was missing in the list of codes.
10484         Explain that enumeration values are encoded as the integer type
10485         that the compiler uses to store them.  Explain and make examples
10486         of how 'const' interacts with pointers, and the complication of
10487         the encoding of 'const char *'.
10488         (Legacy type encoding): New subsection, explaining that GCC emits
10489         incorrect type encodings for the NeXT runtime for compatibility
10490         reasons.
10491         (@@encode): New subsection, explaining @encode and particularly
10492         that protocol qualifiers are not recognized inside an @encode()
10493         expression.
10494         (Method signatures): New subsection, explaining how method
10495         signatures are encoded.
10496
10497 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10498
10499         Merge from 'apple/trunk' branch on FSF servers.  Removed small
10500         change in build_conditional_expr that had been added when fixing
10501         PR objc/27377 and which did the same check in a less complete way.
10502
10503         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
10504
10505         Radar 4229905
10506         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
10507         looking for objective-c common pointer types.
10508
10509         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
10510
10511         Radar 4154928
10512         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
10513         use their ObjC common type.
10514
10515 2010-09-27  Richard Guenther  <rguenther@suse.de>
10516
10517         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
10518
10519 2010-09-27  Jie Zhang  <jie@codesourcery.com>
10520
10521         * print-tree.c (print_node): Print in-constant-pool.
10522
10523 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
10524
10525         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
10526         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
10527         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
10528         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
10529
10530 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10531
10532         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
10533         from pro_epilogue_adjust_stack_<mode>_{1,2}.
10534         (pro_epilogue_adjust_stack_<mode>_add): Rename from
10535         pro_epilogue_adjust_stack_<mode>_3.
10536         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
10537         renamed pro_epilogue_adjust_stack_{si,di}_add.
10538         (ix86_expand_prologue): Use indirect functions.  Update for renamed
10539         pro_epilogue_adjust_stack_{si,di}_sub.
10540
10541 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10542
10543         * config/i386/i386.md (movmsk_df): New insn.
10544         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
10545         sequence for TARGET_SSE_MATH.
10546
10547 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
10548
10549         * config/mips/mips.c (mips_builtin_decls): Declare.
10550         (mips_init_builtins): Store function declarations in
10551         mips_builtin_decls.
10552         (mips_builtin_decl): New function.
10553         (TARGET_BUILTIN_DECL): Define.
10554
10555 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
10556             Richard Henderson  <rth@redhat.com>
10557
10558         * config/i386/cygwin.asm: Include auto-host.h.
10559         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
10560         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
10561         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
10562         alignment code from the 64-bit path.  Use gas local labels.
10563         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
10564         from _di_2.  Remove the useless constant integer argument.
10565         (pro_epilogue_adjust_stack_<mode>_3): New.
10566         (allocate_stack_worker_probe_<mode>): Macroize from
10567         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
10568         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
10569         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
10570         (__chkstk_ms): New function.
10571         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
10572         * config/i386/t-interix: Likewise.
10573         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
10574         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
10575         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
10576         * configure, config.in: Rebuild.
10577
10578 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
10579
10580         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
10581         statements because of the return slot optimization.
10582
10583 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
10584
10585         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
10586         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
10587         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10588         (class_likely_spilled_p): Rename to...
10589         (avr_class_likely_spilled_p): ...this. Make static. Change argument
10590         type to reg_class_t.
10591
10592 2010-09-24  Jan Hubicka  <jh@suse.cz>
10593
10594         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
10595         (lto_symtab_resolve_symbols): Set it.
10596         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
10597         store resolution field in cgraph/varpool.
10598         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
10599         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
10600         (cgraph_dump_node): Drop used_from_object_file.
10601         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
10602         (cgraph_function_body_availability): Use decl_replaceable_p.
10603         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
10604         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
10605         cgraph_used_from_object_file_p.
10606         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
10607         cgraph_used_from_object_file_p.
10608         (resolution_used_from_other_file_p): New functoin.
10609         (cgraph_used_from_object_file_p): New predicate.
10610         * cgraph.h: Include plugin-api.h
10611         (struct cgraph_local_info): Remove used_from_object_file.
10612         (struct cgraph_node): Add resolution field.
10613         (struct varpool_node): Likewise; remove used_from_object_file;
10614         reove const_value_known.
10615         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
10616         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
10617         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
10618         varpool_used_from_object_file_p): Declare.
10619         (varpool_get_node, varpool_extra_name_alias): Update prototype.
10620         * tree.h (DECL_REPLACEABLE_P): Remove.
10621         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
10622         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
10623         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
10624         input_overwrite_node, input_node, input_varpool_node): Stream
10625         resolution.
10626         * expr.c (expand_expr_real_1): Use const_value_known_p
10627         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
10628         const_value_known.
10629         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
10630         (function_and_variable_visibility): Set resolution for local vars
10631         and functions; use varpool_used_from_object_file_p.
10632         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
10633         static functions.
10634         (default_binds_local_p_1): Use resolutoin info.
10635         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
10636         * varpool.c (varpool_get_node): Constify.
10637         (const_value_known_p): Do not use vnode->const_value_known;
10638         use decl_replaceable_p.
10639         (varpool_finalize_decl): Do not set const_value_known.
10640         (cgraph_variable_initializer_availability): Use decl_replaceable_p
10641         (varpool_extra_name_alias): Return new node.
10642         (varpool_used_from_object_file_p): New function.
10643
10644 2010-09-24  Richard Henderson  <rth@redhat.com>
10645
10646         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
10647         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
10648         (do_spill): Use REG_CFA_OFFSET.
10649         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
10650         as appropriate.
10651         (ia64_expand_epilogue): Likewise.
10652         (process_set): Split into ...
10653         (process_cfa_adjust_cfa): this,
10654         (process_cfa_register): this,
10655         (process_cfa_offset): and this new function.
10656         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
10657         instead of REG_FRAME_RELATED_EXPR.
10658
10659 2010-09-24  Olivier Hainque  <hainque@adacore.com>
10660
10661         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
10662
10663 2010-09-24  Jan Hubicka  <jh@suse.cz>
10664
10665         * doc/extend.texi: (attribute leaf): Document.
10666         * tree.c (local_define_builtin): Handle ECF_LEAF.
10667         (build_common_builtin_nodes): Set ECF_LEAF where needed.
10668         * tree.h (ECF_LEAF): New.
10669         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
10670         overwrittable and unavailable functions.
10671         (ipa_init): Put all_module_statics into optimization_summary_obstack.
10672         (copy_global_bitmap): Do not copy all_module_statics.
10673         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
10674         (propagate): Handle overwritable and unavailable leaf functions;
10675         initialize global info for overwritable and unavailable leaf functions;
10676         do not free all module statics.
10677         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
10678         local statics.
10679         * calls.c (flags_from_decl_or_type): Handle leaf.
10680         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
10681         abnormal gotos.
10682
10683 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
10684
10685         * gengtype.c: Reindented.
10686         * gengtype.h: Reindented.
10687         * gengtype-parse.c: Reindented.
10688
10689 2010-09-24  Jan Hubicka  <jh@suse.cz>
10690
10691         PR tree-optimization/45738
10692         PR tree-optimization/45741
10693         * expr.c (string_constant): Allow CONST_DECL too;
10694         check that DECL_INITIAL is set.
10695         * varpool.c (const_value_known_p): Only look into VAR_DECL
10696         and CONST_DECL.
10697
10698 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
10699
10700         * common.opt (undef): New.
10701
10702 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
10703
10704         PR middle-end/45234
10705         * rtl.h (enum global_rtl_index): Add
10706         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
10707         (LAST_VIRTUAL_POINTER_REGISTER): Define.
10708         (virtual_preferred_stack_boundary_rtx,
10709         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
10710         (LAST_VIRTUAL_REGISTER): Increase by one.
10711         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
10712         instead of LAST_VIRTUAL_REGISTER.
10713         * function.c (instantiate_new_reg): Handle
10714         virtual_preferred_stack_boundary_rtx.
10715         * emit-rtl.c (init_virtual_regs): Handle
10716         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10717         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
10718         * explow.c (round_push): If crtl->preferred_stack_boundary
10719         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
10720         virtual_preferred_stack_boundary_rtx alignment instead of
10721         crtl->preferred_stack_boundary alignment.
10722         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
10723         macros.  Never decrease crtl->preferred_stack_boundary,
10724         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
10725         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
10726         stack_pointer_delta in dynamic allocation, even when size
10727         is constant.
10728         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
10729         macro.
10730         * print-rtl.c (print_rtx): Handle
10731         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10732         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
10733         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
10734         * config/frv/frv.c (frv_emit_movsi): Likewise.
10735         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
10736         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
10737         Likewise.
10738
10739         Revert:
10740         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10741
10742         PR middle-end/45234
10743         * calls.c (expand_call): Make sure that all variable sized
10744         adjustments are multiple of preferred stack boundary after
10745         stack alignment.
10746
10747 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
10748             Dominique Dhumieres  <dominiq@lps.ens.fr>
10749
10750         PR bootstrap/45751
10751         * config/darwin-driver.c (darwin_default_min_version):
10752         Adjust size passed to memcpy in two places.
10753
10754 2010-09-24  Richard Guenther  <rguenther@suse.de>
10755
10756         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
10757         Make sure to not call set_type_context with error_mark_node.
10758         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
10759
10760 2010-09-24  Richard Guenther  <rguenther@suse.de>
10761
10762         * Makefile.in (OBJS-onestep): Remove.
10763         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
10764         (libbackend.a): Remove onestep support.
10765         (libbackend.o): Remove.
10766         * configure.ac (--enable-intermodule): Remove.
10767         * configure: Regenerate.
10768
10769 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
10770
10771         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
10772         reaching the end of a block if it occurs at a DEBUG_INSN.
10773
10774 2010-09-09  Tristan Gingold  <gingold@adacore.com>
10775
10776         PR target/44242
10777         * config/vms/vms-crt0-64.c: Removed.
10778         * config/vms/vms-crt0.c: Removed.
10779         * config/vms/vms-psxcrt0-64.c: Removed.
10780         * config/vms/vms-psxcrt0.c: Removed.
10781         * config/vms/vms-ucrt0.c: New file.
10782         * config/vms/t-vms64: Removed.
10783         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
10784         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
10785         * config.gcc (alpha-dec-vms): Use t-vms.
10786
10787 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10788
10789         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
10790         underfull hbox in DVI output.
10791         (-fobjc-class-cxx-cdtors): Same change.
10792         (-fobjc-exceptions): Tidied up documentation.  Explain what the
10793         option does, but moved the (lenghty) description of the exception
10794         syntax into objc.texi.
10795         (-fobjc-gc): Explain that the option is not useful with the GNU
10796         runtime.
10797         (-fzero-link): Explain that the GNU runtime always works in
10798         "zero-link" mode.
10799         * doc/objc.texi: All sections: simplified @node declarations
10800         removing specification of next, previous, up node.
10801         (Objective-C): Updated introduction.
10802         (Garbage Collection): Updated.  The bohem-gc library is now
10803         included in gcc itself.  Mention that this section only applies to
10804         the GNU Objective-C runtime.
10805         (compatibility_alias): Small tidy up.
10806         (Exceptions): New section mostly containing text previously in the
10807         description of the -fobjc-exception command-line option.
10808         (Synchronization): Same.
10809
10810 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
10811
10812         * config/i386/i386.md (ix86_code_end): Move the initialization of
10813         xops array near the consumer.  Use AX_REG and SP_REG instead of
10814         numerical constants.
10815
10816 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10817
10818         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
10819         method [methodname]' for an Objective-C method instead of the less
10820         satisfactory 'too many arguments to function' (with no method name).
10821
10822 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
10823
10824         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
10825         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
10826         (execute_update_addresses_taken): Remove parameter.  Execute the
10827         optimization unconditionally.
10828         * passes.c (execute_function_todo): Call execute_update_addresses_taken
10829         unconditionally if TODO_rebuild_alias is set, else only when optimizing
10830         if TODO_update_address_taken is set.
10831
10832 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
10833
10834         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10835         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
10836         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10837         (arm_output_addr_const_extra): Make static.
10838
10839 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
10840
10841         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
10842         define as unspec_volatile.
10843         ("nops"): Define as unspec_volatile. Use fputs to write to
10844         asm_out_file directly.  Output NOPs on separate lines using while loop.
10845         * config/i386/i386.c (ix86_code_end): Use fputs to write to
10846         asm_out_file directly.  Output NOPs on separate lines using while loop.
10847
10848 2010-09-23  Richard Guenther  <rguenther@suse.de>
10849
10850         PR tree-optimization/45565
10851         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
10852         Make sure to adjust the fndecl before replacing the stmt.
10853
10854 2010-09-23  Richard Guenther  <rguenther@suse.de>
10855
10856         PR middle-end/45750
10857         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
10858         gimplifying MEM_REF.
10859
10860 2010-09-23  Alan Modra  <amodra@gmail.com>
10861
10862         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
10863         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
10864
10865 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
10866
10867         PR rtl-optimization/44374
10868         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
10869         * df-core.c (df_set_bb_dirty): Set it.
10870         * ifcvt.c (find_memory): Remove function.
10871         (dead_or_predicable): Use can_move_insns_across.
10872         * df.h (can_move_insns_across): Declare function.
10873         * cfgcleanup.c (block_was_dirty): New static variable.
10874         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
10875         than df_get_bb_dirty.
10876         (try_head_merge_bb): New static function.
10877         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
10878         is set.
10879         * df-problems.c: Include "target.h"
10880         (df_simulate_find_uses): New static function.
10881         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
10882         (find_memory, find_memory_store): New static functions.
10883         (can_move_insns_across): New function.
10884         * Makefile.in (df-problems.o): Update dependencies.
10885
10886 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10887
10888         PR java/44095
10889         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
10890         is specified and the suffix of the file isn't ".c".
10891         * config/sparc/linux64.h (ASM_SPEC): Likewise.
10892
10893 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10894
10895         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
10896         * doc/cppopts.texi: Fix markup of index entry.
10897         * doc/extend.texi (Constructing Calls): Fix markup of
10898         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
10899         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
10900         (Vague Linkage, C++ Attributes): Fix markup of index entries and
10901         keywords.
10902         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
10903         avoid long lines.
10904         (C Dialect Options, C++ Dialect Options, Warning Options)
10905         (Debugging Options, Spec Files, Darwin Options)
10906         (i386 and x86-64 Options, MIPS Options)
10907         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
10908         index entries, avoid abbreviations, allow URLs to wrap, avoid
10909         long lines, avoid overlong pages from long @itemx lists.
10910         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
10911         * doc/standards.texi (Standards): Likewise.
10912         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
10913
10914 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10915
10916         * opts-common.c (prune_options): Make static.  Work with decoded
10917         options.
10918         (decode_cmdline_options_to_array): Call prune_options.  Don't
10919         resize option array here.
10920         * opts.h (prune_options): Remove prototype.
10921         * gcc.c (process_command): Take decoded options; don't call
10922         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
10923         (main): Call decode_cmdline_options_to_array here instead of
10924         prune_options.  Update call to process_command.
10925         * config/darwin-driver.c: Include opts.h.
10926         (darwin_default_min_version): Work with decoded options.  Don't
10927         handle -b or -V here.
10928         * config/darwin.h (darwin_default_min_version): Update prototype.
10929         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
10930         darwin_default_min_version.
10931         * config/i386/cygwin.h (mingw_scan): Update prototype.
10932         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
10933         * config/i386/cygwin1.c: Include opts.h.
10934         (mingw_scan): Work with decoded options.
10935         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
10936         * config/t-darwin (darwin-driver.o): Update dependencies.
10937
10938 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10939
10940         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
10941         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
10942         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
10943         -force-link, -force-link=, -language, -language=,
10944         -library-directory, -library-directory=, -no-canonical-prefixes,
10945         -no-standard-libraries, -no-warnings, -optimize, -output,
10946         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
10947         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
10948         -print-file-name=, -print-libgcc-file-name,
10949         -print-multi-directory, -print-multi-lib,
10950         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
10951         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
10952         -profile, -save-temps, -shared, -specs, -specs=, -static,
10953         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
10954         symbolic): New.
10955         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
10956         * gcc.c (A Short Introduction to Adding a Command-Line Option):
10957         Remove comment.
10958         (cc1_options): Correct specs for passing down --help,
10959         --target-help and --help=*.  Add spec for passing down --version.
10960         (struct option_map, option_map, target_option_translations,
10961         translate_options): Remove.
10962         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
10963         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
10964         OPT_fhelp_ and OPT_ftarget_help.
10965         (process_command): Don't call translate_options.  Call
10966         decode_cmdline_options_to_array before checking for
10967         -no-canonical-prefixes using decoded options.
10968         * opts-common.c (tm.h): Update comment on #include.
10969         (find_opt): Allow abbreviations of long options.
10970         (struct option_map, option_map): New.
10971         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
10972         and -mno handling.
10973         (target_option_translations): New.
10974         (decode_cmdline_options_to_array): Handle
10975         TARGET_OPTION_TRANSLATE_TABLE in driver.
10976         * opts.c (common_handle_option): Don't handle OPT_fhelp,
10977         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
10978
10979 2010-09-22  Richard Guenther  <rguenther@suse.de>
10980
10981         * tree-inline.c (optimize_inline_calls): Schedule cleanups
10982         only if we inlined something.  Block compaction and conditional
10983         folding are done by cfg cleanup.  Schedule update-address-taken.
10984         (tree_function_versioning): Remove redundant call to number_blocks.
10985         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
10986         folding is done by cfg cleanup.
10987         * passes.c (init_optimization_passes): Remove update-address-taken
10988         pass after IPA inlining.
10989
10990 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
10991
10992         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
10993         to update conditions. Fix reg_mode[] check.
10994
10995 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
10996
10997         * config/picochip/picochip.md (movhicc): Use expand to check whether
10998         movhicc is available and split it after reload.
10999
11000 2010-09-22  Richard Guenther  <rguenther@suse.de>
11001
11002         * tree-ssanames.c (release_dead_ssa_names): Do not remove
11003         callee edges here.
11004         * passes.c (init_optimization_passes): Remove early CFG cleanup.
11005         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
11006         (pass_cleanup_cfg): Likewise.
11007         (execute_fixup_cfg): Cleanup.
11008         * tree-pass.h (pass_cleanup_cfg): Remove.
11009
11010 2010-09-22  Martin Jambor  <mjambor@suse.cz>
11011
11012         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
11013         builtins if it is true.
11014         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
11015         parameter.
11016
11017 2010-09-22  Martin Jambor  <mjambor@suse.cz>
11018
11019         * tree-sra.c (struct access): New field grp_no_warning.
11020         (create_access_replacement): Set TREE_NO_WARNING according to
11021          grp_no_warning.
11022         (create_artificial_child_access): Use build_ref_for_model and set
11023         grp_no_warning if build_user_friendly_ref_for_offset fails.
11024         (propagate_subaccesses_across_link): Likewise.
11025
11026 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
11027
11028         PR target/35664
11029         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
11030         ('f'): Likewise.
11031
11032 2010-09-22  Tristan Gingold  <gingold@adacore.com>
11033
11034         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
11035
11036 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
11037
11038         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
11039         * config/i386/i386.c (decide_alg): Update for rename.
11040
11041 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
11042
11043         PR rtl-optimization/45739
11044         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
11045         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
11046
11047 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
11048
11049         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
11050         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
11051         Remove.
11052         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
11053         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11054
11055 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11056
11057         PR objc/23710
11058         * c-parser.c (c_parser_objc_method_definition): Check the return
11059         value of objc_start_method_definition and if false is returned,
11060         parse the method definition but emit no code.
11061
11062 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11063
11064         PR objc/25965
11065         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
11066         call objc_get_interface_ivars ().
11067
11068 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
11069
11070         PR target/45694
11071         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
11072         static chain-register is used for 64-bit.
11073
11074 2010-09-21  Richard Guenther  <rguenther@suse.de>
11075
11076         * dwarf2out.c (is_cu_die): New function.
11077         (add_pubtype): Use it.
11078         (gen_subprogram_die): Likewise.
11079         (gen_struct_or_union_type_die): Likewise.
11080         (dwarf2out_finish): Likewise.
11081         (comp_unit_die): Rename to ...
11082         (single_comp_unit_die): ... this.
11083         (comp_unit_die): New function lazily constructing and
11084         returning single_comp_unit_die.
11085         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
11086         base_type_die, subrange_type_die, modified_type_die,
11087         lower_bound_default, add_bound_info, add_prototyped_attribute,
11088         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
11089         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
11090         force_decl_die, gen_namespace_die, dwarf2out_decl,
11091         dwarf2out_start_source_file, dwarf2out_end_source_file,
11092         prune_unused_types, dwarf2out_finish): Use it.
11093         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
11094         the global list of translation-unit decls.
11095         (dwarf2out_init): Do not create single_comp_unit_die here.
11096         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
11097
11098 2010-09-21  Richard Guenther  <rguenther@suse.de>
11099
11100         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
11101         for bool for C++.
11102
11103 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
11104
11105         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
11106         (qhs_extenddi_cstr): Likewise.
11107         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
11108         them for the source operand.
11109
11110 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
11111
11112         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
11113         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
11114         (ix86_split_ashr): Ditto.
11115         (ix86_split_lshr): Ditto.
11116
11117 2010-09-21  Richard Guenther  <rguenther@suse.de>
11118
11119         PR tree-optimization/45580
11120         * tree-ssa-propagate.c (substitute_and_fold): Always replace
11121         regular uses.
11122         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
11123         virtuals fold the call into a regular indirect one.
11124
11125 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11126
11127         PR rtl-optimization/42775
11128         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
11129         scheduling is enabled.
11130
11131 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11132
11133         PR rtl-optimization/45728
11134         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
11135         gen_lowpart_common first and if that fails, force_reg first
11136         before calling gen_lowpart.
11137
11138         PR middle-end/45678
11139         * cfgexpand.c (expand_one_stack_var_at): Use
11140         crtl->max_used_stack_slot_alignment as max_align, instead
11141         of maximum of that and PREFERRED_STACK_BOUNDARY.
11142         Don't call update_stack_alignment.
11143
11144 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11145
11146         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
11147         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
11148         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
11149         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
11150         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
11151         (build_nonstandard_integer_type): Likewise.
11152         (build_range_type_1): New function, built from...
11153         (build_range_type): ...this.  Call build_range_type_1.
11154         (build_nonshared_range_type): New function.
11155         (build_array_type_1): New function, built from...
11156         (build_array_type: ...this.  Call build_array_type_1.
11157         (build_nonshared_array_type): New function.
11158         * tree.h (build_nonshared_range_type): Declare.
11159         (build_nonshared_array_type): Likewise.
11160
11161 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
11162
11163         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
11164         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11165         (arm_class_likely_spilled_p): New function.
11166
11167 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
11168
11169         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
11170         indirect functions.
11171         (ix86_split_ashl): Ditto.
11172         (ix86_split_ashr): Ditto.
11173         (ix86_split_lshr): Ditto.
11174         (ix86_adjust_counter): Ditto.
11175
11176 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
11177
11178         * c-family/c-common.h (constant_string_class): Documented with
11179         comment identical to the one already in c-common.c.
11180
11181 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11182
11183         * dwarf2out.c (any_cfis_emitted): New static variable.
11184         (add_fde_cfi): Set it.
11185         (dwarf2out_frame_debug): Clear it before processing,
11186         if it is set afterwards, flush any queued reg saves.
11187
11188         PR debug/45124
11189         * dwarf2out.c (add_accessibility_attribute): Assume
11190         DW_ACCESS_private as the default for dwarf_version > 2
11191         and DW_TAG_class_type parent.
11192         (gen_inheritance_die): Assume DW_ACCESS_public as the default
11193         for dwarf_version > 2 and parent other than DW_TAG_class_type.
11194
11195 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11196
11197         PR target/45726
11198         * arm.md (arm_movt): Only enable on machines with MOVT.
11199
11200 2010-09-20  Jie Zhang  <jie@codesourcery.com>
11201
11202         * config/arm/arm.c (arm_address_offset_is_imm): New.
11203         (arm_early_store_addr_dep): New.
11204         (arm_early_load_addr_dep): New.
11205         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
11206         (arm_early_load_addr_dep): Declare.
11207         (arm_address_offset_is_imm): Declare.
11208         * config/arm/cortex-m4.md: New file.
11209         * config/arm/cortex-m4-fpu.md: New file.
11210         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
11211         (attr generic_sched): Exclude cortexm4.
11212         (attr generic_vfp): Exclude cortexm4.
11213
11214 2010-09-20  Richard Guenther  <rguenther@suse.de>
11215
11216         PR middle-end/45704
11217         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
11218
11219 2010-09-20  Jan Hubicka  <jh@suse.cz>
11220
11221         PR tree-optimize/45605
11222         * cgraph.h (const_value_known_p): Declare.
11223         (varpool_decide_const_value_known): Remove.
11224         * tree-ssa-ccp.c (get_base_constructor): Use it.
11225         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
11226         * expr.c (string_constant): Likewise.
11227         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
11228         * ipa.c (ipa_discover_readonly_nonaddressable_var,
11229         function_and_variable_visibility): Likewise.
11230         * gimplify.c (gimplify_call_expr): Likewise.
11231         * gimple-fold.c (get_symbol_constant_value): Likewise.
11232         * varpool.c (varpool_decide_const_value_known): Replace by...
11233         (const_value_known_p): ... this one; handle other kinds of DECLs
11234         too and work for automatic vars.
11235         (varpool_finalize_decl): Use const_value_known_p.
11236
11237 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11238
11239         PR target/45726
11240         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
11241
11242 2010-09-20  Richard Guenther  <rguenther@suse.de>
11243
11244         PR tree-optimization/45705
11245         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
11246
11247 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11248
11249         PR rtl-optimization/45695
11250         * combine.c (try_combine): When splitting a two set pattern,
11251         make sure the pattern which will be put into i2 doesn't use REGs
11252         or MEMs set by insns in between i2 and i3.
11253
11254 2010-09-19  Jan Hubicka  <jh@suse.cz>
11255
11256         PR lto/44246
11257         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
11258         processing same node twice.
11259
11260 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
11261
11262         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
11263         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11264         (bfin_class_likely_spilled_p): New function
11265
11266 2010-09-19  Ira Rosen  <irar@il.ibm.com>
11267
11268         PR tree-optimization/45714
11269         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
11270         created in vectorizable_call instead of the original statement in
11271         def stmt updates.
11272
11273 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
11274
11275         * config/i386/i386-protos.h (split_double_mode): New prototype.
11276         (split_di, split_ti): Remove prototypes.
11277         * config/i386/i386.c (split_double_mode): New function.
11278         (split_di, split_ti): Remove.
11279         (ix86_expand_branch): Use split_double_mode.
11280         (ix86_split_to_parts): Ditto.
11281         (ix86_split_ashl): Ditto.
11282         (ix86_split_ashr): Ditto.
11283         (ix86_split_lshr): Ditto.
11284         (ix86_force_to_memory): Ditto.
11285         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
11286
11287 2010-09-18  Jan Hubicka  <jh@suse.cz>
11288
11289         PR tree-optimization/45453
11290         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
11291         virtual functions are reachable.
11292         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
11293         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
11294         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
11295         when modifying function.
11296
11297 2010-09-18  Jan Hubicka  <jh@suse.cz>
11298
11299         PR tree-optimization/45605
11300         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
11301         * gimple-fold.c (static_object_in_other_unit_p): New function.
11302         (canonicalize_constructor_val): Use it.
11303         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
11304         returning NULL.
11305         (gimple_fold_obj_type_ref_known_binfo): Use
11306         static_object_in_other_unit_p.
11307
11308 2010-09-18  Richard Guenther  <rguenther@suse.de>
11309
11310         PR tree-optimization/45709
11311         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
11312         insertions until after all PHI nodes of the block are processed.
11313
11314 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
11315
11316         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
11317
11318 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
11319
11320         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
11321
11322 2010-09-18  Richard Guenther  <rguenther@suse.de>
11323
11324         PR tree-optimization/45709
11325         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
11326
11327 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11328
11329         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
11330         (dot_deps_stmt): Same.
11331         * graphite-poly.c (dot_lst): Same.
11332         * graphite-scop-detection.c (dot_all_scops): Same.
11333         (dot_scop): Same.
11334
11335 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11336
11337         Revert:
11338         2009-12-16  Ben Elliston  <bje@au.ibm.com>
11339
11340         * tree-data-ref.c (dot_rdg_1): Added back.
11341         (dot_rdg): Same.  Added "#if 0" around system call.
11342
11343 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11344             Richard Henderson  <rth@redhat.com>
11345
11346         * config/i386/i386.c (initial_ix86_tune_features): Add
11347         X86_TUNE_PAD_SHORT_FUNCTION.
11348         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
11349         (ix86_count_insn): New.
11350         (ix86_pad_short_function): Likewise.
11351         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
11352
11353         * config/i386/i386.h (ix86_tune_indices): Add
11354         X86_TUNE_PAD_SHORT_FUNCTION.
11355         (TARGET_PAD_SHORT_FUNCTION): New.
11356
11357         * config/i386/i386.md (UNSPEC_NOPS): New.
11358         (nops): Likewise.
11359
11360 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11361
11362         PR middle-end/45234
11363         * calls.c (expand_call): Make sure that all variable sized
11364         adjustments are multiple of preferred stack boundary after
11365         stack alignment.
11366
11367 2010-09-17  DJ Delorie  <dj@redhat.com>
11368
11369         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
11370         passed an invalid value, print an error instead of ICEing.
11371         (valid_psw_flag): New.
11372         (rx_expand_builtin): Call it for setpsw/clrpsw.
11373         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
11374
11375         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
11376         (bitclr_in_memory): Likewise.
11377         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
11378
11379 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11380
11381         PR middle-end/45678
11382         * cfgexpand.c (update_stack_alignment): New.
11383         (get_decl_align_unit): Use it.
11384         (expand_one_stack_var_at): Call update_stack_alignment.
11385
11386 2010-09-17  Richard Guenther  <rguenther@suse.de>
11387
11388         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
11389         Properly copy the read string.
11390
11391 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
11392
11393         * doc/options.texi (Variable): Document.
11394         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
11395         generate target_flags declarations explicitly.  Don't define
11396         VarExists variables for the driver.
11397         * common.opt (target_flags): New Variable record.
11398         (flag_dump_unnumbered, flag_dump_unnumbered_links,
11399         flag_var_tracking, flag_var_tracking_assignments,
11400         flag_var_tracking_assignments_toggle): Don't mark variables with
11401         VarExists.
11402         * config/i386/i386.c (ix86_isa_flags): Don't define here.
11403         * config/i386/i386.opt (ix86_isa_flags): Define here.
11404         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
11405         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
11406         VarExists.
11407         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
11408         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
11409         Only define for generator programs.
11410         * rtlanal.c (target_flags): Remove.
11411         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
11412         flag_var_tracking_assignments_toggle): Remove.
11413
11414 2010-09-17  Michael Matz  <matz@suse.de>
11415
11416         PR tree-optimization/43432
11417         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
11418         Accept backwards consecutive accesses.
11419         (vect_create_data_ref_ptr): If step is negative generate
11420         decreasing IVs.
11421         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
11422         (perm_mask_for_reverse, reverse_vec_elements): New functions.
11423         (vectorizable_load): Handle loads with negative steps when easily
11424         possible.
11425
11426 2010-09-03  Jan Hubicka  <jh@suse.cz>
11427
11428         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
11429
11430 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
11431
11432         * config/v850/v850.c (v850_function_value_regno_p): Make static.
11433         Adjust comments. Declare.
11434         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
11435         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
11436
11437 2010-09-17  Richard Guenther  <rguenther@suse.de>
11438
11439         * common.opt (combine): Remove.
11440         * gcc.c (default_compilers): Remove specs testing combine.
11441         The C compilers no longer can combine.
11442         (option_map): Remove -combine.
11443         (display_help): Remove -combine.
11444         (driver_handle_option): Remove OPT_combine handling.
11445         (compile_input_file_p): Remove.
11446         (do_spec): Remove code concerning combine.
11447         (main): Likewise.
11448         * doc/invoke.texi: Remove traces of -combine.
11449         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
11450
11451 2010-09-17  Richard Guenther  <rguenther@suse.de>
11452
11453         PR middle-end/45678
11454         * builtins.c (fold_builtin_memory_op): Always properly adjust
11455         alignment of memory accesses.
11456
11457 2010-09-16  Jan Hubicka  <jh@suse.cz>
11458
11459         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
11460         processing clone.
11461
11462 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
11463
11464         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
11465
11466         * config/i386/i386.c (predict_jump): Add prototype.
11467         (flag_opts): Add -m8bit-idiv.
11468         (ix86_split_idivmod): New.
11469
11470         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
11471         Add 2 splitters for SI/DI mode divide.
11472         (divmod<mode>4_1): New pattern.
11473         (udivmod<mode>4_1): Likewise.
11474         (testdi_ccno_1): Likewise.
11475
11476         * config/i386/i386.opt (m8bit-idiv): New.
11477
11478         * doc/invoke.texi: Document -m8bit-idiv.
11479
11480 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
11481
11482         PR bootstrap/45680
11483         * config/i386/i386.c (min_insn_size): Moved out of the
11484         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
11485
11486 2010-09-16  Jan Hubicka  <jh@suse.cz>
11487
11488         * lto-cgraph.c (lto_output_node): Fix handling of clones.
11489         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
11490         unreachable clones with reachable clones.
11491         * tree-inline.c (copy_bb): Fix sanity checking when producing
11492         unreachable clone.
11493
11494 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
11495
11496         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
11497         (TARGET_MEMORY_MOVE_COST): Define.
11498         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
11499
11500 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
11501
11502         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
11503         maybe_tidy_empty_bb.
11504
11505         Revert:
11506         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
11507         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
11508
11509 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11510
11511         * target.def (target_option.optimization): New hook.
11512         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
11513         TARGET_OPTION_OPTIMIZATION hook.
11514         * doc/tm.texi: Regenerate.
11515         * hooks.c (hook_void_int_int): New.
11516         * hooks.h (hook_void_int_int): Declare.
11517         * opts.c: Don't include tm_p.h.
11518         (decode_options): Use targetm.target_option.optimization instead
11519         of OPTIMIZATION_OPTIONS.
11520         * system.h (OPTIMIZATION_OPTIONS): Poison.
11521         * config/arm/arm-protos.h (arm_optimization_options): Remove.
11522         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
11523         (arm_optimization_options): Rename to arm_option_optimization.
11524         Make static.
11525         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
11526         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
11527         (cris_option_optimization): New.
11528         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
11529         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
11530         (crx_option_optimization): New.
11531         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
11532         * config/frv/frv-protos.h (frv_optimization_options): Remove.
11533         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
11534         (frv_optimization_options): Rename to frv_option_optimization.
11535         Make static.
11536         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
11537         * config/h8300/h8300.c (h8300_option_optimization): New.
11538         (TARGET_OPTION_OPTIMIZATION): Define.
11539         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
11540         * config/i386/i386-protos.h (optimization_options): Remove.
11541         * config/i386/i386.c (optimization_options): Rename to
11542         ix86_option_optimization.  Make static.
11543         (TARGET_OPTION_OPTIMIZATION): Define.
11544         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
11545         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
11546         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
11547         (ia64_optimization_options): Rename to ia64_option_optimization.
11548         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
11549         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
11550         commented-out definition.
11551         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
11552         instead of OPTIMIZATION_OPTIONS.
11553         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
11554         (m32r_option_optimization): New.
11555         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
11556         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
11557         Remove.
11558         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
11559         (mcore_option_optimization): New.
11560         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
11561         * config/mep/mep-protos.h (mep_optimization_options): Remove.
11562         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
11563         (mep_optimization_options): Rename to mep_option_optimization.
11564         Make static.  Take unused level and size parameters.
11565         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
11566         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
11567         (mmix_option_optimization): New.
11568         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
11569         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
11570         (pdp11_option_optimization): New.
11571         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
11572         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
11573         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
11574         (optimization_options): Rename to rs6000_option_optimization.
11575         Make static.
11576         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
11577         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
11578         * config/rx/rx.c (rx_set_optimization_options): Rename to
11579         rx_option_optimization.  Make static.  Take unused level and size
11580         parameters.
11581         (TARGET_OPTION_OPTIMIZATION): Define.
11582         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
11583         * config/s390/s390-protos.h (optimization_options): Remove.
11584         * config/s390/s390.c (optimization_options): Rename to
11585         s390_option_optimization.  Make static.  Don't mark size parameter
11586         unused.
11587         (TARGET_OPTION_OPTIMIZATION): Define.
11588         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
11589         * config/sh/sh-protos.h (sh_optimization_options): Remove.
11590         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
11591         (sh_optimization_options): Rename to sh_option_optimization.  Make
11592         static.  Don't mark parameters unused.
11593         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
11594         * config/spu/spu-protos.h (spu_optimization_options): Remove.
11595         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
11596         (spu_optimization_options): Rename to spu_option_optimization.
11597         Make static.
11598         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
11599         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
11600         (v850_option_optimization): New.
11601         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
11602         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
11603         (xtensa_option_optimization): New.
11604         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
11605
11606 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11607
11608         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
11609         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
11610         * doc/tm.texi: Regenerate.
11611         * system.h (OVERRIDE_OPTIONS): Poison.
11612         * target.def (override): Default to hook_void_void.
11613         * targhooks.c (default_target_option_override): Remove.
11614         * genmodes.c, machmode.def: Update comments mentioning
11615         OVERRIDE_OPTIONS.
11616         * config/alpha/alpha-modes.def: Update comment mentioning
11617         alpha_override_options.
11618         * config/alpha/alpha-protos.h (override_options): Remove.
11619         * config/alpha/alpha.c (override_options): Rename to
11620         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
11621         (TARGET_OPTION_OVERRIDE): Define.
11622         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
11623         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
11624         of OVERRIDE_OPTIONS.
11625         * config/arc/arc-protos.h (arc_init): Remove.
11626         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
11627         (arc_init): Rename to arc_option_override.  Make static.
11628         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
11629         (OVERRIDE_OPTIONS): Remove.
11630         * config/arm/arm-protos.h (arm_override_options): Remove.
11631         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
11632         (arm_override_options): Rename to arm_option_override.  Make
11633         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11634         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
11635         * config/arm/arm.md: Update comment referring to arm_override_options.
11636         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11637         instead of OVERRIDE_OPTIONS.
11638         * config/avr/avr-protos.h (avr_override_options): Remove.
11639         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
11640         (avr_override_options): Rename to avr_option_override.  Make static.
11641         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
11642         * config/bfin/bfin-protos.h (override_options): Remove (twice).
11643         * config/bfin/bfin.c (override_options): Rename to
11644         bfin_option_override.  Make static.
11645         (TARGET_OPTION_OVERRIDE): Define.
11646         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
11647         * config/cris/cris-protos.h (cris_override_options): Remove.
11648         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
11649         (cris_override_options): Rename to cris_option_override.  Make static.
11650         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
11651         * config/frv/frv-protos.h (frv_override_options): Remove.
11652         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
11653         (frv_override_options): Rename to frv_option_override.  Make static.
11654         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
11655         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
11656         * config/h8300/h8300.c (h8300_init_once): Rename to
11657         h8300_option_override.  Make static.
11658         (TARGET_OPTION_OVERRIDE): Define.
11659         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
11660         * config/i386/i386-protos.h (override_options): Remove.
11661         * config/i386/i386.c (override_options): Rename to
11662         ix86_option_override_internal.  Make static.  Comments referring
11663         to this function and callers changed.
11664         (ix86_option_override): New.
11665         (TARGET_OPTION_OVERRIDE): Define.
11666         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
11667         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
11668         * config/ia64/ia64.c (ia64_file_start): Update comment referring
11669         to ia64_override_options.
11670         * config/iq2000/iq2000-protos.h (override_options): Remove.
11671         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
11672         (override_options): Rename to iq2000_option_override.  Make static.
11673         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
11674         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
11675         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
11676         (lm32_override_options): Rename to lm32_option_override.  Make static.
11677         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
11678         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
11679         (m32r_option_override): New.
11680         (m32r_init): Update comment.
11681         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
11682         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
11683         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
11684         (m68hc11_override_options): Rename to m68hc11_option_override.
11685         Make static.  Return void.
11686         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
11687         * config/m68k/m68k-protos.h (override_options): Remove.
11688         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
11689         (override_options): Rename to m68k_option_override.  Make static.
11690         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
11691         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
11692         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
11693         (mcore_override_options): Rename to mcore_option_override.  Make
11694         static.
11695         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
11696         * config/mep/mep-protos.h (mep_override_options): Remove.
11697         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
11698         (mep_override_options): Rename to mep_option_override.  Make static.
11699         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
11700         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
11701         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
11702         (mmix_override_options): Rename to mmix_option_override.  Make static.
11703         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
11704         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
11705         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
11706         (mn10300_override_options): Rename to mn10300_option_override.
11707         Make static.
11708         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
11709         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
11710         * config/moxie/moxie.c (moxie_override_options): Rename to
11711         moxie_option_override.  Make static.
11712         (TARGET_OPTION_OVERRIDE): Define.
11713         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
11714         * config/picochip/picochip-protos.h (picochip_override_options):
11715         Remove.  Update comment referring to picochip_override_options.
11716         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
11717         (picochip_override_options): Rename to picochip_option_override.
11718         Make static.  Update comment and definition of
11719         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
11720         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
11721         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11722         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11723         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11724         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11725         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11726         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
11727         instead of OVERRIDE_OPTIONS.
11728         * config/rs6000/rs6000-modes.def: Update comment referring to
11729         rs6000_override_options.
11730         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
11731         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
11732         (rs6000_override_options): Rename to
11733         rs6000_option_override_internal.  Make static.  Commented
11734         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
11735         (rs6000_option_override): New.
11736         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
11737         instead of OVERRIDE_OPTIONS.
11738         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11739         * config/s390/s390-protos.h (override_options): Remove.
11740         * config/s390/s390.c (override_options): Rename to
11741         s390_option_override.  Make static.
11742         (TARGET_OPTION_OVERRIDE): Define.
11743         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
11744         * config/score/score-protos.h (score_override_options): Remove.
11745         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
11746         (score_override_options): Rename to score_option_override.  Make
11747         static.
11748         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
11749         Update comment referring to override_options.
11750         * config/score/score3.c (score3_override_options): Rename to
11751         score3_option_override.
11752         * config/score/score3.h (score3_override_options): Rename to
11753         score3_option_override.
11754         * config/score/score7.c (score7_override_options): Rename to
11755         score7_option_override.
11756         * config/score/score7.h (score7_override_options): Rename to
11757         score7_option_override.
11758         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
11759         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
11760         (sparc_override_options): Rename to sparc_option_override.  Make
11761         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11762         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
11763         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11764         instead of OVERRIDE_OPTIONS.
11765         * config/spu/spu-protos.h (spu_override_options): Remove.
11766         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
11767         (spu_override_options): Rename to spu_option_override.  Make
11768         static.
11769         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
11770         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
11771         OVERRIDE_OPTIONS.
11772         * config/vax/vax-protos.h (override_options): Remove.
11773         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
11774         (override_options): Rename to vax_option_override.  Make static.
11775         Call SUBTARGET_OVERRIDE_OPTIONS.
11776         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
11777         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
11778         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
11779         * config/xtensa/xtensa-protos.h (override_options): Remove.
11780         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
11781         (override_options): Rename to xtensa_option_override.  Make static.
11782         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
11783
11784 2010-09-16  Richard Guenther  <rguenther@suse.de>
11785
11786         PR tree-optimization/45623
11787         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
11788         (get_constraint_for_component_ref): If computing a constraint
11789         for the rhs handle type punning through unions.
11790         (get_constraint_for_address_of): Adjust.
11791         (get_constraint_for_1): Likewise.
11792         (get_constraint_for): Likewise.
11793         (get_constraint_for_rhs): New function.
11794         (do_structure_copy): Adjust.
11795         (make_constraint_to): Likewise.
11796         (handle_const_call): Likewise.
11797         (find_func_aliases): Likewise.
11798         (process_ipa_clobber): Likewise.
11799         (create_variable_info_for): Likewise.
11800
11801 2010-09-16  Ira Rosen  <irar@il.ibm.com>
11802
11803         * tree-vectorizer.c: Fix documentation.
11804         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
11805         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
11806         is_pattern_stmt_p, is_loop_header_bb_p,
11807         stmt_vinfo_set_inside_of_loop_cost,
11808         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
11809         known_alignment_for_access_p): Likewise.
11810         * tree-vect-loop.c: Fix documentation.
11811         (vect_get_cost): Start function name from new line.
11812         * tree-vect-data-refs.c: Fix documentation.
11813         * tree-vect_stmts.c: Likewise.
11814         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
11815         (vectorizable_store): Free vec_oprnds if allocated.
11816         (vectorizable_condition): Initialize several variables to avoid
11817         warnings.
11818         * tree-vect-slp.c: Fix documentation.
11819
11820 2010-09-16  Richard Guenther  <rguenther@suse.de>
11821
11822         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
11823         is TS_TRANSLATION_UNIT_DECL.
11824         (initialize_tree_contains_struct): Adjust.
11825         (all_translation_units): New global vector.
11826         (build_translation_unit_decl): New function.
11827         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
11828         (struct tree_translation_unit_decl): New.
11829         (all_translation_units): Declare.
11830         (union tree_node): Add translation_unit_decl member.
11831         (build_translation_unit_decl): Declare.
11832         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
11833         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
11834         New function.
11835         (pack_value_fields): Call it.
11836         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
11837         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
11838         (lto_output_tree_pointers): Call it.
11839         * lto-streamer-in.c (lto_input_tree_ref): Handle references
11840         to TRANSLATION_UNIT_DECL.
11841         (unpack_ts_translation_unit_decl_value_fields): New function.
11842         (unpack_value_fields): Call it.
11843         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
11844         (lto_input_tree_pointers): Call it.
11845         * lto-streamer.c (check_handled_ts_structures): Adjust.
11846         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
11847         * c-decl.c (all_translation_units): Remove.
11848         (pop_scope): Use build_translation_unit_decl.
11849         (collect_all_refs): Adjust.
11850         (for_each_global_decl): Likewise.
11851         (c_write_global_declarations): Likewise.
11852
11853 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
11854
11855         PR bootstrap/45686
11856         * fold-const.c (fold_checksum_tree): Change slot from const void **
11857         to void **, use CONST_CAST_TREE to store into *slot.
11858
11859 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11860
11861         * config/i386/i386.md: Remove unneeded empty conditions and
11862         preparation statements from expanders.
11863         * config/i386/mmx.md: Ditto.
11864         * config/i386/sse.md: Ditto.
11865
11866 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11867
11868         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
11869
11870 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11871
11872         PR rtl-optimization/45593
11873         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
11874         insns that were in delay slots as stand-alone insns.
11875
11876 2010-09-15  Ian Lance Taylor  <iant@google.com>
11877
11878         * incpath.c (remove_duplicates): If name is not a directory, issue
11879         a warning rather than an error.
11880
11881 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11882
11883         PR middle-end/45644
11884         * tree-sra.c (create_access): Check for bit-fields directly.
11885
11886 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
11887
11888         PR tree-optimization/45633
11889         * tree-cfg.c (verify_gimple_assign_binary): Allow
11890         MINUS_EXPR with lhs and rhs1 pointer vector and
11891         rhs2 sizetype vector.
11892         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
11893         or vector pointer use TER to optimize pointer subtraction.
11894
11895 2010-09-15  Jie Zhang  <jie@codesourcery.com>
11896
11897         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
11898         fcmpd to fcmps.
11899
11900 2010-09-15  Ian Lance Taylor  <iant@google.com>
11901
11902         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
11903
11904 2010-09-15  Ian Lance Taylor  <iant@google.com>
11905
11906         * function.c (get_arg_pointer_save_area): Set
11907         arg_pointer_save_area_init to true.
11908
11909 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11910
11911         * tree-sra.c (generate_subtree_copies): Updated comment.
11912         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
11913         obtained from the statement iterator instead.
11914         (load_assign_lhs_subreplacements): Removed parameters lhs and
11915         right_offset, which is obtained from top_racc instead.  Parameter lacc
11916         is now expected to be the root of the processed tree rather than root's
11917         first child.  Updated all callers.
11918
11919 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
11920
11921         * config/pdp11/pdp11.c (register_move_cost): Rename to
11922         pdp11_register_move_cost.
11923         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
11924         pdp11_register_move_cost.
11925         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
11926         pdp11_register_move_cost instead of register_move_cost.
11927
11928 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
11929
11930         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
11931         pattern for vmovn. Expansion in case of non
11932         -mvectorize-with-neon-quad.
11933         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
11934         non- -mvectorize-with-neon-quad case.
11935         (move_lo_quad_<mode>): New expansion to vmov into low part.
11936         (move_hi_quad_<mode>): New expansion to vmov into high part.
11937         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
11938         (move_lo_quad_v4sf): Likewise.
11939         (move_lo_quad_v8hi): Likewise.
11940         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
11941         low part.
11942         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
11943         high part.
11944         * config/arm/iterators.md (ANY128): New mode iterator.
11945         (V_narrow_pack): New mode attribute.
11946         (V_HALF): Add attribute.
11947         (V_DOUBLE): Add attribute.
11948         (V_mode_nunits): Add attribute.
11949
11950 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11951
11952         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
11953         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
11954
11955 2010-09-15  Olivier Hainque  <hainque@adacore.com>
11956             Jose Ruiz  <ruiz@adacore.com>
11957
11958         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
11959         * config/alpha/osf5-unwind.h: New file.
11960
11961 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11962
11963         PR bootstrap/45672
11964         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
11965         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11966         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11967
11968 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11969
11970         * c-lang.h (struct lang_type): Add variable_size GTY option.
11971
11972 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11973
11974         PR bootstrap/45672
11975         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11976
11977 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11978
11979         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
11980         result isn't used in memory address.
11981
11982 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11983
11984         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
11985         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
11986         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
11987         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
11988         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
11989         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
11990
11991         * target.def: Add units_per_simd_word to vectorize.
11992
11993         * targhooks.c (default_units_per_simd_word): New.
11994         * targhooks.h (default_units_per_simd_word): Likewise.
11995         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
11996         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11997         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
11998         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11999         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
12000         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12001         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
12002         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12003
12004         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
12005         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
12006
12007         * tree-vect-stmts.c: Don't include "tm_p.h".
12008         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
12009         with targetm.vectorize.units_per_simd_word.
12010
12011         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
12012
12013         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
12014
12015         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
12016         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
12017
12018         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
12019         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
12020
12021         * doc/tm.texi: Regenerated.
12022
12023 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12024
12025         * tree-vect-stmts.c: Include "tm_p.h".
12026
12027         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
12028         out of RTX_CODE.
12029
12030 2010-09-14  Martin Jambor  <mjambor@suse.cz>
12031
12032         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
12033         location of generated statement.  Changed all callers.
12034         (build_ref_for_model): New parameter loc which used to set location of
12035         all generated expressions.  Changed all callers.
12036         (generate_subtree_copies): Likewise.
12037         (init_subtree_with_zero): Likewise.
12038         (sra_modify_expr): Set locations of all generated statements and
12039         expressions to the location the original statement.
12040         (handle_unscalarized_data_in_subtree): Likewise.
12041         (load_assign_lhs_subreplacements): Likewise.
12042         (sra_modify_constructor_assign): Likewise.
12043         (sra_modify_assign): Likewise.
12044
12045 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
12046
12047         PR target/45277
12048         PR target/45363
12049         PR target/45407
12050         * doc/install.texi (sparc*-*-*): New section.
12051         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
12052
12053 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
12054
12055         PR middle-end/45567
12056         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
12057         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
12058         (expand_builtin): Adjust caller.
12059         (expand_builtin_unop): Only use subtarget if it has the right mode.
12060
12061 2010-09-14  Tristan Gingold  <gingold@adacore.com>
12062
12063         * configure.ac (plugins): Fix typos.
12064         * configure: Regenerate.
12065
12066 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
12067
12068         PR debug/45660
12069         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
12070         gen_type_die for function/method return type.
12071
12072 2010-09-14  Ira Rosen  <irar@il.ibm.com>
12073
12074         PR tree-optimization/45470
12075         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12076         can throw an exception.
12077         * tree-vect-stmts.c (vectorizable_call): Likewise.
12078
12079 2010-09-14  DJ Delorie  <dj@redhat.com>
12080
12081         PR target/44749
12082         * config/mep/mep-protos.h (mep_save_register_info,
12083         mep_reinit_regs, mep_init_regs): Declare.
12084
12085         * config/mep/mep.c: Move all target definitions to the end of the
12086         file to avoid the need for duplicate declarations.
12087         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
12088         (mep_reorg_erepeat): Remove unused variables.
12089         (mep_expand_builtin): Likewise.
12090
12091         * config/mep/mep-pragma.c: Don't include rtl.h.
12092         (INVALID_REGNUM): New.
12093         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
12094         functions.
12095         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
12096         Avoid enum/integer math.
12097
12098 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
12099
12100         PR target/44749
12101         * config/mep/t-mep (GTM_H): Add insn-constants.h.
12102         * config/mep/mep.c (mep_conditional_register_usage): Take no
12103         parameters.
12104         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
12105         prototype.
12106         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
12107         call to mep_conditional_register_usage.
12108
12109 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
12110
12111         PR debug/43937
12112         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
12113         the DECL as well.
12114
12115 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
12116
12117         PR rtl-optimization/45617
12118         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
12119         even if low N bits of X aren't known to be zero.
12120
12121 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
12122
12123         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
12124
12125         * config/i386/i386.c (initial_ix86_tune_features): Add
12126         X86_TUNE_VECTORIZE_DOUBLE.
12127         (ix86_units_per_simd_word): New.
12128
12129         * config/i386/i386.h (ix86_tune_indices): Add
12130         X86_TUNE_VECTORIZE_DOUBLE.
12131         (TARGET_VECTORIZE_DOUBLE): New.
12132         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
12133
12134 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
12135
12136         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
12137         (new_temp_expr_table): Allocate call_cnt vector.
12138         (free_temp_expr_table): Free it.
12139         (process_replaceable): Add call_cnt parm and set in vector.
12140         (find_replaceable_in_bb): Skip replacement if def/use span a call.
12141         (debug_ter): Dump call_cnt value, remove stderr uses.
12142
12143 2010-09-13  Jan Hubicka  <jh@suse.cz>
12144
12145         * tree.c (build_zero_cst): New.
12146         * tree.h (build_zero_cst): Declare.
12147         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
12148         (get_base_constructor): Break out from ...
12149         (fold_const_aggregate_ref): Here; handle empty constructors.
12150
12151 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12152
12153         * config/arm/arm.md: (define_attr "conds"): Update comment.
12154         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
12155         conds attribute to clob.
12156         (arm_sync_compare_and_swapsi): Likewise.
12157         (arm_sync_compare_and_swap<mode>): Likewise.
12158         (arm_sync_lock_test_and_setsi): Likewise.
12159         (arm_sync_lock_test_and_set<mode>): Likewise.
12160         (arm_sync_new_<sync_optab>si): Likewise.
12161         (arm_sync_new_nandsi): Likewise.
12162         (arm_sync_new_<sync_optab><mode>): Likewise.
12163         (arm_sync_new_nand<mode>): Likewise.
12164         (arm_sync_old_<sync_optab>si): Likewise.
12165         (arm_sync_old_nandsi): Likewise.
12166         (arm_sync_old_<sync_optab><mode>): Likewise.
12167         (arm_sync_old_nand<mode>): Likewise.
12168
12169 2010-09-13  Olivier Hainque  <hainque@adacore.com>
12170
12171         * fwprop.c (forward_propagate_and_simplify): Only attach a
12172         REG_EQUAL note to an insn if the destination is a register.
12173         * gcse.c (try_replace_reg): Likewise.
12174
12175 2010-09-13  Richard Guenther  <rguenther@suse.de>
12176
12177         PR tree-optimization/45611
12178         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
12179         (copy_ref_info): Likewise.
12180
12181 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
12182
12183         PR debug/45604
12184         PR debug/45419
12185         PR debug/45408
12186         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12187         types of MEM_REF pointer types to the same type.
12188
12189 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
12190
12191         PR rtl-optimization/41087
12192         * ifcvt.c (noce_get_condition): Don't allow conditions with
12193         side-effects.
12194
12195 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
12196
12197         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12198         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
12199         * config/frv/frv.c (frv_register_move_cost): Make static. Change
12200         arguments type to reg_class_t. Add mode argument.
12201         (frv_memory_move_cost): New.
12202         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
12203
12204 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
12205
12206         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
12207         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
12208
12209 2010-09-10  Jan Hubicka  <jh@suse.cz>
12210
12211         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
12212
12213 2010-09-10  Richard Guenther  <rguenther@suse.de>
12214
12215         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
12216         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
12217         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
12218         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
12219         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
12220
12221 2010-09-10  Richard Guenther  <rguenther@suse.de>
12222
12223         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
12224         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
12225         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
12226         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
12227
12228 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
12229
12230         PR middle-end/45634
12231         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
12232         of string folding is of integral type.
12233
12234 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
12235
12236         * doc/invoke.texi (-x): Fix typo.
12237
12238 2010-09-10  Richard Guenther  <rguenther@suse.de>
12239
12240         PR debug/44115
12241         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
12242         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12243         Output DECL_DEBUG_EXPR.
12244         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12245         Input DECL_DEBUG_EXPR.
12246
12247 2010-09-10  Richard Guenther  <rguenther@suse.de>
12248
12249         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
12250         (build_index_type): Implement in terms of build_range_type.
12251         (build_range_type): Do not allow NULL_TREE type, improve
12252         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
12253         if we didn't hash.
12254         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
12255         create a distinct copy of the type.
12256
12257 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
12258
12259         * configure: Regenerated.
12260         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
12261
12262 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12263
12264         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
12265         * config/arm/cortex-a9-neon.md: New and partially generated.
12266         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
12267
12268 2010-09-10  Richard Guenther  <rguenther@suse.de>
12269
12270         * tree.h (build_index_2_type): Remove.
12271         * tree.c (build_index_2_type): Remove.
12272
12273 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
12274
12275         PR bootstrap/45630
12276         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
12277         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
12278         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
12279
12280 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12281
12282         PR tree-optimization/44972
12283         * tree-sra.c: Include toplev.h.
12284         (build_ref_for_offset): Entirely reimplemented.
12285         (build_ref_for_model): New function.
12286         (build_user_friendly_ref_for_offset): New function.
12287         (analyze_access_subtree): Removed build_ref_for_offset check.
12288         (propagate_subaccesses_across_link): Likewise.
12289         (create_artificial_child_access): Use
12290         build_user_friendly_ref_for_offset.
12291         (propagate_subaccesses_across_link): Likewise.
12292         (ref_expr_for_all_replacements_p): Removed.
12293         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
12294         (sra_modify_expr): Use build_ref_for_model.
12295         (load_assign_lhs_subreplacements): Likewise.
12296         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
12297         checks for return values of build_ref_for_offset.
12298         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
12299         build_ref_for_offset.
12300         * ipa-prop.h: Include gimple.h
12301         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
12302         (ipa_analyze_indirect_call_uses): Update comment.
12303         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
12304         (IPA_PROP_H): Likewise.
12305
12306 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12307
12308         PR tree-optimization/44972
12309         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
12310         calling build_ref_for_offset.
12311
12312 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12313
12314         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
12315         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
12316         * config/arm/arm-tune.md: Regenerate.
12317         * doc/invoke.texi (ARM Options): Document it.
12318
12319 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
12320
12321         * config/i386/i386.c: Include sched-int.h.
12322         (TARGET_SCHED_DISPATCH): Defined.
12323         (TARGET_SCHED_DISPATCH_DO): Defined.
12324         (DISPATCH_WINDOW_SIZE): Defined.
12325         (MAX_DISPATCH_WINDOWS): Defined.
12326         (MAX_INSN): Defined.
12327         (MAX_IMM): Defined.
12328         (MAX_IMM_SIZE): Defined.
12329         (MAX_IMM_32): Defined.
12330         (MAX_IMM_64): Defined.
12331         (MAX_LOAD): Defined.
12332         (MAX_STORE): Defined.
12333         (BIG): Defined.
12334         (dispatch_group): New.
12335         (num_allowable_groups): New.
12336         (group_name): New.
12337         (sched_insn_info_s): New.
12338         (dispatch_windows_s): New.
12339         (imm_info_s): New.
12340         (dispatch_window_list): New.
12341         (dispatch_window_list1): New.
12342         (get_mem_group): New.
12343         (is_cmp): New.
12344         (dispatch_violation): New.
12345         (is_branch): New.
12346         (is_prefetch): New.
12347         (init_window): New.
12348         (allocate_window): New.
12349         (init_dispatch_sched): New.
12350         (is_end_basic_block): New.
12351         (process_end_window): New.
12352         (allocate_next_window): New.
12353         (find_constant_1): New.
12354         (find_constant): New.
12355         (get_num_immediates): New.
12356         (has_immediate): New.
12357         (get_insn_path): New.
12358         (get_insn_group): New.
12359         (count_num_restricted): New.
12360         (fits_dispatch_window): New.
12361         (add_insn_window): New.
12362         (add_to_dispatch_window): New.
12363         (debug_dispatch_window_file): New.
12364         (debug_dispatch_window): New.
12365         (debug_insn_dispatch_info_file): New.
12366         (debug_ready_dispatch): New.
12367         (do_dispatch): New.
12368         (has_dispatch): New.
12369         * config/i386/i386.h (debug_ready_dispatch): Declared.
12370         (debug_dispatch_window): Declared.
12371         * config/i386/i386.opt (mdispatch-scheduler): New flag.
12372         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
12373         (TARGET_SCHED_DISPATCH_DO): New.
12374         * doc/tm.texi: Regererated.
12375         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
12376         ready_remove_first_dispatch
12377         (schedule_block): Call targetm.sched.dispatch and
12378         targetm.sched.dispatch_do.
12379         (sched_init): Call targetm.sched.dispatch and
12380         targetm.sched.dispatch_do.
12381         (ready_remove_first_dispatch): New.
12382         (number_in_ready): New.
12383         (get_ready_element): New.
12384         * hooks.c (hook_bool_rtx_int_false): New.
12385         (hook_void_rtx_int): New.
12386         * hooks.h (hook_bool_rtx_int_false): Declared.
12387         (hook_void_rtx_int): Declared.
12388         * sched-int.h (IS_DISPATCH_ON): Defined.
12389         (IS_CMP): Defined.
12390         (DISPATCH_VIOLATION): Defined.
12391         (FITS_DISPATCH_WINDOW): Defined.
12392         (DISPATCH_INIT): Defined.
12393         (ADD_TO_DISPATCH_WINDOW): Defined.
12394         (get_ready_element): Declared.
12395         (number_in_ready): Declared.
12396         * target.def (dispatch): Defined.
12397         (dispatch_do): Defined.
12398
12399 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12400
12401         PR middle-end/45312
12402         * reload1.c (merge_assigned_reloads): Remove.
12403         (reload_as_needed): Don't call it.
12404
12405 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
12406
12407         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
12408         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12409         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12410
12411 2010-09-09  Matthias Klose  <doko@ubuntu.com>
12412
12413         PR bootstrap/43847
12414         * configure.ac (--enable-plugin): Enhance for cross builds.
12415         * configure: Regenerate.
12416
12417 2010-09-09  Jan Hubicka  <jh@suse.cz>
12418
12419         PR tree-optimization/45598
12420         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
12421         string folding is of integral type.
12422
12423 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
12424
12425         * configure.ac (gnu_indirect_function): New test.
12426         * configure: Rebuilt.
12427         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
12428         * defaults.h (IFUNC_ASM_TYPE): Provide default.
12429
12430         * doc/extend.texi (Function Attributes): Document ifunc.
12431         * varasm.c (do_assemble_alias): Deal with ifuncs too.
12432
12433 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
12434
12435         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
12436         epilogue instruction move.
12437
12438 2010-09-09  Jan Hubicka  <jh@suse.cz>
12439
12440         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
12441         command line to allow more partitions than input files.
12442
12443 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12444
12445         PR middle-end/44554
12446         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
12447
12448 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12449
12450         PR middle-end/40386
12451         * ira.c (pseudo_for_reload_consideration_p): Don't use
12452         flag_ira_share_spill_slots.
12453
12454 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12455
12456         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
12457         point zero operands that fit into a single GPR.
12458         (s390_preferred_reload_class): Ensure we only return general-purpose
12459         register classes.
12460         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
12461         floating-point zero operands into GPRs.
12462         ("*mov<mode>_64"): Likewise.
12463         ("mov<mode>"): Likewise using lhi.
12464
12465 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12466
12467         * config/s390/s390.c (s390_symref_operand_p): Return false for
12468         literal pool references.
12469         (s390_check_qrst_address): Update caller.
12470
12471 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
12472
12473         * config/i386/predicates.md (ext_register_operand): Check that
12474         SUBREG_REG is really a register before looking for REGNO.
12475         (reg_not_xmm0_operand): Handle SUBREGs correctly.
12476         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
12477
12478 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
12479
12480         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
12481         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
12482         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
12483         * print-rtl.c (print_rtx): Likewise.
12484         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
12485         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
12486         for ADDR_EXPR with non-addressable object.
12487         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
12488         (struct dw_val_struct): Add v.val_decl_ref.
12489         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
12490         Handle DW_OP_GNU_implicit_pointer.
12491         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
12492         (get_ref_die_offset_label): New function.
12493         (implicit_ptr_descriptor): New function.
12494         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
12495         (loc_descriptor): Likewise.
12496         (gen_variable_die): Put even definitions into decl_die_table.
12497         (resolve_addr_in_expr): Resolve still unresolved
12498         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
12499         return false.
12500         (dwarf2out_finish): Call output_location_lists after outputting
12501         .debug_info and .debug_abbrev instead of before.
12502
12503 2010-09-09  Roland McGrath  <roland@redhat.com>
12504
12505         * dwarf2out.c (DWARF_REF_SIZE): Define.
12506         (size_of_loc_descr): Use it for DW_OP_call_ref.
12507
12508 2010-09-09  Alan Modra  <amodra@gmail.com>
12509
12510         * doc/invoke.text: Reinstate mcmodel=medium.
12511         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
12512         CMODEL_MEDIUM as default.
12513         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
12514         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
12515         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
12516         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
12517
12518 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12519
12520         PR target/45250
12521         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
12522         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
12523         (builtin_longjmp): Likewise.
12524         (allocate_stack): Use hard_frame_pointer_rtx instead of
12525         frame_pointer_rtx.
12526         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
12527         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
12528         (pa_can_eliminate): Likewise.
12529         (TARGET_INTERNAL_ARG_POINTER): Define.
12530         (TARGET_CAN_ELIMINATE): Define.
12531         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
12532         pointer.
12533         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
12534         (pa_internal_arg_pointer, pa_can_eliminate,
12535         pa_initial_elimination_offset): New.
12536         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
12537         (HARD_FRAME_POINTER_REGNUM): Set to register three.
12538         (INITIAL_FRAME_POINTER_OFFSET): Delete.
12539         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
12540         Define.
12541         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
12542         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
12543         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
12544         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
12545         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
12546         new soft frame pointer.
12547         * config/pa/pa64-regs.h: Likewise.
12548
12549 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12550
12551         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
12552         numerical constant.
12553         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
12554
12555 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12556
12557         PR debug/45531
12558         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
12559
12560 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12561
12562         PR debug/45419
12563         PR debug/45408
12564         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12565         qualifiers in otherwise equal MEM_REF pointer types.
12566         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
12567         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
12568
12569 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12570
12571         PR target/44392
12572         * config/arm/arm.md (bswapsi2): Handle condition correctly
12573         for armv6 and optimize_size.
12574
12575 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
12576
12577         PR other/18555
12578         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
12579
12580 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12581
12582         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
12583         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
12584         ix86_expand_strlen, legitimate_pic_address_disp_p,
12585         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
12586         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
12587         ix86_check_movabs, ix86_secondary_memory_needed): Change function
12588         prototype to bool.
12589         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
12590         return_in_memory_ms_64, ix86_check_movabs,
12591         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
12592         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
12593         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
12594         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
12595         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
12596         ix86_secondary_memory_needed): Change to bool.  Return
12597         "true" and "false" values.
12598         * config/i386/i386.md: Return "true" and "false" values.
12599
12600 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12601
12602         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12603         run_expensive_tests.
12604
12605 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12606
12607         * toplev.c (output_stack_usage): Use lbasename instead of basename.
12608
12609 2010-09-08  Martin Jambor  <mjambor@suse.cz>
12610
12611         PR other/45443
12612         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
12613         at -O3.
12614
12615 2010-09-08  Richard Guenther  <rguenther@suse.de>
12616
12617         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
12618         (visit): Adjust.
12619         (iterative_hash_gimple_type): Likewise.
12620         (gimple_type_hash): Likewise.
12621         (gimple_register_type): Likewise.
12622         (print_gimple_types_stats): Likewise.
12623         (free_gimple_type_tables): Likewise.
12624
12625 2010-09-08  Michael Matz  <matz@suse.de>
12626
12627         PR tree-optimization/43430
12628         * tree-vect-stmts.c (vectorizable_condition): Support multiple
12629         copies for conditional statements if it's not part of a reduction.
12630
12631 2010-09-08  Michael Matz  <matz@suse.de>
12632
12633         PR tree-optimization/33244
12634         * tree-ssa-sink.c (statement_sink_location): Don't sink into
12635         empty loop latches.
12636
12637 2010-09-08  Richard Guenther  <rguenther@suse.de>
12638
12639         PR tree-optimization/45578
12640         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
12641         Be more careful when transfering alignment information to
12642         the new induction variable.
12643         (copy_ref_info): Likewise.
12644
12645 2010-09-08  Richard Guenther  <rguenther@suse.de>
12646
12647         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
12648         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
12649
12650 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
12651
12652         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
12653         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
12654
12655 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
12656
12657         PR doc/45587
12658         * doc/md.texi: Fixed modes on several standard pattern names.
12659
12660 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
12661
12662         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
12663         (ashl<mode>3): ...this.
12664         (loongson_psra<V_suffix>): Rename to...
12665         (ashr<mode>3): ...this.
12666         (loongson_psrl<V_suffix>): Rename to...
12667         (lshr<mode>3): ...this.
12668         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
12669         (CODE_FOR_loongson_psllw): Define.
12670         (CODE_FOR_loongson_psrlh): Define.
12671         (CODE_FOR_loongson_psrlw): Define.
12672         (CODE_FOR_loongson_psrah): Define.
12673         (CODE_FOR_loongson_psraw): Define.
12674
12675 2010-09-07  Richard Henderson  <rth@redhat.com>
12676
12677         * tree-vect-data-refs.c: Include tm_p.h.
12678         * Makefile.in (tree-vect-data-refs.o): Update deps.
12679         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
12680         Move delarations outside #ifdef RTX_CODE.
12681
12682 2010-09-07  Richard Henderson  <rth@redhat.com>
12683
12684         * final.c (rest_of_handle_final): Unconditionally do
12685         output_function_exception_table before assemble_end_function.
12686
12687 2010-09-07  Jan Hubicka  <jh@suse.cz>
12688
12689         * tree-inline.c (tree_inlinable_function_p): Do not test
12690         DECL_REPLACEABLE_P.
12691         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
12692         update_callee_keys, cgraph_decide_inlining): Test function availability.
12693         * cif-code.def (OVERWRITABLE): New code.
12694
12695 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
12696             Jack Howarth  <howarth@bromo.med.uc.edu>
12697
12698         PR target/36502
12699         PR target/42313
12700         PR target/44651
12701         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
12702         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
12703         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
12704         MAX macro.
12705
12706 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12707
12708         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
12709         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
12710
12711 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12712
12713         * config.gcc: Don't append t-android for Android targets.
12714
12715         * config/t-android: Removed.
12716
12717 2010-09-07  Richard Henderson  <rth@redhat.com>
12718
12719         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
12720         * doc/tm.texi.in: Add doc marker.
12721         * doc/tm.texi: Rebuild.
12722         * except.c (switch_to_exception_section): Always build.
12723         (output_one_function_exception_table): Move section switch,
12724         personality output, and label output ...
12725         (output_function_exception_table): ... here.  Use the new
12726         personality hook.
12727
12728         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
12729         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
12730         TARGET_ASM_INIT_SECTIONS): New.
12731         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
12732         make static.
12733         (TARGET_ASM_UNWIND_EMIT): Update to match.
12734         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
12735
12736         * config/arm/arm.c (arm_asm_emit_except_personality): New.
12737         (arm_asm_init_sections): New.
12738         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
12739
12740 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12741
12742         * config/arm/arm.md: Remove unused variable.
12743
12744 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
12745
12746         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12747         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
12748         (m32r_memory_move_cost): New function.
12749
12750 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12751
12752         * config.gcc: Append t-android for Android targets.
12753
12754         * config/t-android: New.
12755
12756 2010-09-07  Richard Henderson  <rth@redhat.com>
12757
12758         * target.def (unwind_emit_before_insn): New hook.
12759         * doc/tm.texi.in: Add @hook marker for it.
12760         * doc/tm.texi: Rebuild.
12761         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
12762
12763 2010-09-07  Martin Jambor  <mjambor@suse.cz>
12764
12765         PR fortran/43665
12766         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
12767         are any type attributes.
12768
12769 2010-09-07  Jan Hubicka  <jh@suse.cz>
12770
12771         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
12772         array_ref_low_bound in string access folding.
12773
12774 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
12775
12776         PR target/45206
12777         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
12778         eh_return fixup sequence.
12779
12780 2010-09-07  Jan Hubicka  <jh@suse.cz>
12781
12782         * gimple-fold.c (maybe_fold_reference): Verify that operand is
12783         gimple_min_invariant.
12784
12785 2010-09-07  Richard Guenther  <rguenther@suse.de>
12786
12787         PR middle-end/45569
12788         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
12789         nor CONSTRUCTOR can trap.
12790         * tree-complex.c (update_complex_assignment): Update EH info.
12791
12792 2010-09-07  Richard Guenther  <rguenther@suse.de>
12793
12794         PR middle-end/45569
12795         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
12796         * passes.c (execute_function_todo): Do not verify anything if
12797         we saw errors.
12798
12799 2010-09-07  Richard Guenther  <rguenther@suse.de>
12800
12801         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
12802
12803 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
12804
12805         PR target/43137
12806         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
12807         New define_mode_attrs.
12808         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
12809         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
12810         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
12811         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
12812         Remove pool_range attribute.
12813         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
12814         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
12815         pool_range and neg_pool_range attributes.
12816         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
12817         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
12818         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
12819
12820 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12821
12822         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
12823         check glibc.
12824
12825 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12826
12827         PR target/22152
12828         * config/i386/mmx.md (*mov<mode>_internal_rex64,
12829         *mov<mode>_internal_avx, *mov<mode>_internal,
12830         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
12831         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
12832
12833 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
12834
12835         * c-typeck.c (do_warn_double_promotion): Remove.
12836         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
12837         Objective-C++ too.
12838
12839 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
12840
12841         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
12842         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
12843         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
12844         argument type to reg_class_t. Change result type to bool.
12845         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12846
12847 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
12848
12849         PR libobjc/19850
12850         * gthr-posix.h (__gthread_objc_thread_detach): Use
12851         _objc_thread_attribs when detaching a thread.
12852         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
12853
12854 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12855
12856         PR target/45524
12857         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
12858         * configure: Regenerated.
12859
12860 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12861
12862         * combine.c (try_combine): Set subst_low_luid to i0.
12863
12864 2010-09-06  Richard Guenther  <rguenther@suse.de>
12865
12866         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
12867         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
12868         (build_aligned_type): Declare.
12869         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
12870         (check_aligned_type): New function.
12871         (build_aligned_type): Likewise.
12872         * expr.c (expand_assignment): Handle misaligned stores via
12873         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
12874         (expand_expr_real_1): Likewise.
12875         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
12876         * tree-vect-stmts.c (vectorizable_store): Do not build
12877         MISALIGNED_INDIRECT_REF but initialize alignment information.
12878         (vectorizable_load): Likewise.
12879         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
12880         handling.
12881         * cfgexpand.c (expand_debug_expr): Likewise.
12882         * dwarf2out.c (loc_list_from_tree): Likewise.
12883         * fold-const.c (maybe_lvalue_p): Likewise.
12884         (operand_equal_p): Likewise.
12885         (build_fold_addr_expr_with_type_loc): Likewise.
12886         * gimplify.c (gimplify_addr_expr): Likewise.
12887         (gimplify_expr): Likewise.
12888         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
12889         (verify_gimple_assign_single): Likewise.
12890         * tree-dump.c (dequeue_and_dump): Likewise.
12891         (tree_could_trap_p): Likewise.
12892         * tree-predcom.c (ref_at_iteration): Likewise.
12893         * tree-pretty-print.c (dump_generic_node): Likewise.
12894         (op_code_prio): Likewise.
12895         (op_symbol_code): Likewise.
12896         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
12897         * tree-ssa-loop-im.c (for_each_index): Likewise.
12898         (gen_lsm_tmp_name): Likewise.
12899         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
12900         (find_interesting_uses_address): Likewise.
12901         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
12902         * tree-ssa-operands.c (get_expr_operands): Likewise.
12903         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
12904         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12905         (ao_ref_init_from_vn_reference): Likewise.
12906         * tree.c (staticp): Likewise.
12907         (build1_stat): Likewise.
12908         (reference_alias_ptr_type): Likewise.
12909         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
12910         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
12911         MISALIGNED_INDIRECT_REF handling.
12912
12913 2010-09-06  Richard Guenther  <rguenther@suse.de>
12914
12915         PR tree-optimization/45534
12916         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
12917         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
12918         on the target.
12919         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
12920         valid on the target.
12921
12922 2010-09-06  Andreas Schwab  <schwab@redhat.com>
12923
12924         * configure.ac: Quote argument of AC_MSG_WARN.
12925         * configure: Regenerate.
12926
12927 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
12928
12929         * sel-sched.c (move_cond_jump): Correct arguments to
12930         maybe_tidy_empty_bb.
12931         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
12932
12933 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
12934
12935         PR rtl-optimization/44919
12936         * sel-sched.c (move_cond_jump): Remove assert, check that
12937         the several blocks case can only happen with mutually exclusive
12938         insns instead.  Rewrite the movement code to support moving through
12939         several basic blocks.
12940
12941 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12942
12943         * config/i386/i386.md (iptrsize): New mode attribute.
12944         (tp_seg): Ditto.
12945         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
12946         mode iterator.
12947         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
12948         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
12949         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
12950         (stack_tls_protect_set_<mode>): Ditto from
12951         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
12952         of thread base pointer load.
12953         (stack_tls_protect_test_<mode>): Ditto from
12954         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
12955         of thread base pointer load.
12956         (stack_protect_set): Rewrite using indirect functions.
12957         (stack_protect_test): Ditto.
12958         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
12959         (ix86_print_operand): Handle '@'.
12960
12961 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
12962
12963         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
12964         MINUS_EXPR.
12965
12966 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
12967
12968         * doc/invoke.texi: Document -Wdouble-promotion.
12969         * c-typeck.c (convert_arguments): Check for implicit conversions
12970         from float to double.
12971         (do_warn_double_promotion): New function.
12972         (build_conditional_expr): Use it.
12973         (build_binary_op): Likewise.
12974
12975 2010-09-05  Richard Guenther  <rguenther@suse.de>
12976
12977         PR tree-optimization/45535
12978         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
12979         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
12980         dereferencing it.
12981         (indirect_refs_may_alias_p): Likewise.
12982
12983 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
12984
12985         * config/sh/sh.c (sh_option_override): Make static.
12986         Adjust comments.  Declare.
12987         (sh_function_value_regno_p): Likewise.
12988         (sh_register_move_cost): Modify the arguments, make static.
12989         Adjust comments.  Declare.
12990         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
12991         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12992         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
12993         REGISTER_MOVE_COST): Delete.
12994         * config/sh/sh-protos.h (sh_override_options): Delete.
12995         (sh_register_move_cost): Delete.
12996         (sh_function_value_regno_p): Delete.
12997
12998 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
12999
13000         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
13001         m32r_function_value_regno_p): New functions.
13002         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13003         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
13004         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
13005         FUNCTION_VALUE_REGNO_P): Remove.
13006
13007 2010-09-04  Jan Hubicka  <jh@suse.cz>
13008
13009         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
13010         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
13011         fold_read_from_constant_string.
13012
13013         * gimple.h (canonicalize_constructor_val): Declare.
13014         * gimple-fold.c (canonicalize_constructor_val): New function.
13015         (get_symbol_constant_value):Use it.
13016         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
13017
13018 2010-09-04  Jan Hubicka  <jh@suse.cz>
13019
13020         * tree-switch-conversion.c (build_one_array): Set constructor to be
13021         static.
13022         * varpool.c (varpool_finalize_decl): Compute const_value_known.
13023
13024 2010-09-04  Richard Guenther  <rguenther@suse.de>
13025
13026         PR bootstrap/45519
13027         * tree-flow.h (force_gimple_operand_1): Declare.
13028         (force_gimple_operand_gsi_1): Likewise.
13029         * gimplify.c (force_gimple_operand_1): New worker taking a
13030         gimple predicate for ...
13031         (force_gimple_operand): ... which now wraps it.
13032         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
13033         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
13034         last change.
13035         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
13036         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
13037         (create_mem_ref): Likewise.
13038
13039 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
13040
13041         * config/i386/predicates.md (sse_reg_operand): New predicate.
13042         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
13043         predicate for operand 1.
13044         (XFmode push splitter): Use fp_register_operand predicate
13045         for operand 1.
13046         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
13047         (SF-DF float_extend push splitter): Add reload_completed insn
13048         predicate.
13049         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
13050         MODEF mode macro.  Add reload_completed insn predicate.
13051
13052 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
13053
13054         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
13055         (struct df_extract_ref): Remove.
13056         (union df_ref_d): Remove extract_ref member.
13057         (df_ref_create): Remove last three arguments.
13058         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
13059         * df-scan.c (df_ref_record): Remove last three arguments, do not
13060         pass them to df_ref_create_structure.
13061         (df_uses_record): Remove first and last three arguments.  Replace
13062         first argument with DF_REF_REGULAR, adjust calls to remove the
13063         width, offset and mode.  Always call recursively on the second
13064         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
13065         (df_ref_create_structure): Remove first argument.
13066         (struct df_scan_problem_data): Remove ref_extract_pool.
13067         (df_scan_free_internal): Do not free it.
13068         (df_scan_alloc): Do not allocate it.
13069         (df_ref_create): Remove last three arguments, do not pass them to
13070         df_ref_create_structure.
13071         (df_free_ref): Remove DF_REF_EXTRACT case.
13072         (df_notes_rescan): Adjust call to df_uses_record.
13073         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
13074         Remove DF_REF_EXTRACT case.
13075         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
13076         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
13077         and SUBREG definitions.
13078         (df_get_conditional_uses): Remove references to width/offset/mode,
13079         adjust call to df_ref_create_structure.
13080         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
13081         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
13082         calls to df_uses_record and df_ref_record.
13083         * fwprop.c (update_df): Remove references to width/offset/mode,
13084         adjust call to df_ref_create.
13085
13086 2010-09-03  Jan Hubicka  <jh@suse.cz>
13087
13088         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
13089         (build_cdtor_fns): Update use of build_cdtor.
13090
13091 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
13092
13093         * doc/options.texi (SeparateAlias): Document.
13094         * opt-functions.awk (switch_flags): Handle SeparateAlias.
13095         * opth-gen.awk: Generate enumeration names for options marked
13096         SeparateAlias, but not for those marked Ignore.
13097         * opts-common.c (generate_canonical_option): Don't output separate
13098         argument for options marked CL_SEPARATE_ALIAS.
13099         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
13100         * opts.h (CL_SEPARATE_ALIAS): New.
13101         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
13102         CL_COMMON): Adjust definitions.
13103         * config/i386/darwin.opt, config/mips/sde.opt: New.
13104         * common.opt (fdump-final-insns): New.
13105         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
13106         i386/darwin.opt.
13107         (mips*-sde-elf*): Add mips/sde.opt.
13108         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
13109         -mno-data-in-code and -mcode-xonly here.
13110         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
13111         * gcc.c (option_map): Add "j" to --dump entry.
13112         (translate_options): Don't translate -d to -foutput-class-dir= here.
13113
13114 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
13115
13116         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
13117         DR_IS_WRITE.
13118         (compute_all_dependences): Same.
13119         (create_rdg_edge_for_ddr): Same.
13120         * tree-data-ref.h (DR_IS_WRITE): New.
13121         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
13122         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
13123         (write_memrefs_written_at_least_once): Same.
13124         * tree-predcom.c (suitable_component_p): Same.
13125         (determine_roots_comp): Same.
13126         (execute_load_motion): Same.
13127         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
13128         (vect_enhance_data_refs_alignment): Same.
13129         (vect_analyze_group_access): Same.
13130
13131 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
13132
13133         PR testsuite/42843
13134         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
13135         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
13136
13137 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
13138
13139         * dwarf2out.c (file scope): Remove #if0'd code.
13140         (gen_subprogram_die): Same.
13141
13142 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13143
13144         PR middle-end/45484
13145         * dwarf2out.c (flush_queued_reg_saves): Rename to...
13146         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
13147         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
13148         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
13149         * config/i386/i386.c (output_set_got): Call it.
13150
13151 2010-09-03  Michael Matz  <matz@suse.de>
13152
13153         PR middle-end/45415
13154         * tree-sra.c (sra_modify_assign): If we modify the statement,
13155         say so.
13156
13157         * tree-ssa.c (verify_ssa): Check number of operands and links
13158         per statement to agree.
13159
13160 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13161             Iain Sandoe  <iains@gcc.gnu.org>
13162
13163         PR target/45476
13164         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
13165         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
13166         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13167
13168 2010-09-03  Richard Guenther  <rguenther@suse.de>
13169
13170         * lto-streamer-out.c (output_function): Output function
13171         start and end loci.
13172         * lto-streamer-in.c (input_function): Input function start
13173         and end loci.
13174
13175 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13176
13177         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
13178         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
13179         * configure: Regenerate.
13180         * aclocal.m4: Regenerate.
13181
13182 2010-09-03  Jan Hubicka  <jh@suse.cz>
13183
13184         PR lto/44812
13185         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
13186         on functions/variables in other partition.
13187
13188 2010-09-03  Jan Hubicka  <jh@suse.cz>
13189
13190         * cgraph.h (struct varpool_node): Add const_value_known.
13191         (varpool_decide_const_value_known): Declare.
13192         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
13193         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
13194         (input_varpool_node): Restore const_value_known.
13195         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
13196         initializer folding.
13197         * ipa.c (ipa_discover_readonly_nonaddressable_var,
13198         function_and_variable_visibility): Compute const_value_known.
13199         * gimple-fold.c (get_symbol_constant_value): Use varpool for
13200         initializer folding.
13201         * varpool.c (varpool_decide_const_value_known): New function.
13202
13203 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13204
13205         * config/i386/i386.md: Remove empty preparation statements
13206         from splitters.
13207
13208 2010-09-03  Jan Hubicka  <jh@suse.cz>
13209
13210         * passes.c (rest_of_decl_compilation): Do not add local vars into
13211         varpool.
13212         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
13213         static or extern vars are in varpool.
13214         (varpool_finalize_decl): Sanity check that only static vars are
13215         finalized.
13216
13217 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13218
13219         PR debug/45500
13220         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
13221         not just generic vectors with BLKmode.
13222
13223 2010-09-03  Richard Guenther  <rguenther@suse.de>
13224
13225         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
13226         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
13227         * tree.h (TMR_SYMBOL): Remove.
13228         (TMR_BASE, TMR_OFFSET): Adjust.
13229         (TMR_INDEX2): New.
13230         * alias.c (ao_ref_from_mem): Use TMR_BASE.
13231         * builtins.c (get_object_alignment): Merge TMR_BASE and
13232         TMR_SYMBOL handling.
13233         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
13234         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
13235         handling.  Also allow TARGET_MEM_REF as base address.
13236         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
13237         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
13238         base.  Gimplify TMR_INDEX2.
13239         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
13240         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13241         (get_addr_base_and_unit_offset): Likewise.
13242         * tree-eh.c (tree_could_trap_p): Likewise.
13243         * tree-pretty-print.c (dump_generic_node): Likewise.
13244         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
13245         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
13246         base to index2.
13247         (get_address_description): Reconstruct addres description
13248         from merged TMR_BASE and TMR_INDEX2.
13249         (maybe_fold_tmr): Fold propagated addresses.
13250         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
13251         MEM_REF and TARGET_MEM_REF paths.
13252         (indirect_refs_may_alias_p): Likewise.
13253         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
13254         instead of TMR_SYMBOL.
13255         * tree-ssa-operands.c (get_tmr_operands): Simplify.
13256         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
13257         according to changes ...
13258         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
13259         Split TARGET_MEM_REF into two fields plus the base.
13260         * tree.c (mem_ref_offset): Simplify.
13261         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
13262         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
13263         Strip NOPs when folding MEM_REF addresses.
13264         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
13265         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
13266         (fold_gimple_assign): ... not here.
13267
13268 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
13269
13270         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
13271         * config/mips/mips.c (mips_shift_truncation_mask): New function.
13272         (TARGET_SHIFT_TRUNCATION_MASK): Define.
13273
13274 2010-09-02  Richard Henderson  <rth@redhat.com>
13275
13276         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
13277         instead of readelf in the test.
13278         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
13279         in the .debug_frame section for coff targets.
13280         * configure: Rebuild.
13281
13282 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13283
13284         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
13285         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
13286         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13287         (m32c_class_likely_spilled_p): Make static. Change argument type to
13288         reg_class_t. Change result type to bool.
13289
13290 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13291
13292         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
13293         to convert (double)(long) into a single FRIZ instruction or not
13294         when -ffast-math is used.
13295
13296         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
13297         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
13298         or FRIZ instruction if -ffast-math.
13299         * config/rs6000/rs6000.md (friz): Ditto.
13300
13301         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
13302
13303 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13304
13305         * opth-gen.awk (quote, comma): Remove unused variables.
13306
13307 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
13308
13309         * arm.c (arm_override_options): Correct fall-back code to use
13310         SUBTARGET_CPU_DEFAULT.
13311
13312 2010-09-02  Julian Brown  <julian@codesourcery.com>
13313
13314         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
13315         unspecs.
13316         (vcond<mode>, vcondu<mode>): New expanders.
13317         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
13318         comparisons with zero.
13319         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
13320         * config/arm/constraints.md (Dz): New constraint.
13321
13322 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13323
13324         * target.def (class_likely_spilled_p): New hook.
13325         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
13326         * doc/tm.texi: Regenerate.
13327         * targhooks.c (default_class_likely_spilled_p): New function.
13328         * targhooks.h (default_class_likely_spilled_p): Declare.
13329         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
13330         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
13331         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
13332         Use fixed_reg_set instead of fixed_regs.
13333         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13334         * calls.c (avoid_likely_spilled_reg): Ditto.
13335         * ira-conflicts.c (ira_build_conflicts): Ditto.
13336         * ira.c (update_equiv_regs): Ditto.
13337         * mode-switching.c (create_pre_exit): Ditto.
13338         * regmove.c (find_matches): Ditto.
13339         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13340         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
13341         (small_register_class_p): New inline function.
13342         (push_secondary_reload, find_reusable_reload, find_reloads): Use
13343         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
13344
13345         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
13346         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
13347         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13348
13349 2010-09-02  Richard Guenther  <rguenther@suse.de>
13350
13351         PR tree-optimization/44937
13352         PR tree-optimization/45412
13353         * ipa-split.c (split_function): Properly remove PHI nodes.
13354
13355 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13356
13357         * opts.h (struct cl_option): Add warn_message field.
13358         (struct cl_decoded_option): Add warn_message field.
13359         * doc/options.texi (Ignore, Warn): Document.
13360         * opt-functions.awk (needs_state_p): Don't consider aliases or
13361         ignored options to need state saved.
13362         * optc-gen.awk: Handle Warn and Ignore.
13363         * opth-gen.awk: Output OPT_SPECIAL_ignore.
13364         * opts-common.c (decode_cmdline_option): Set warn_message field.
13365         Handle ignored options.
13366         (decode_cmdline_options_to_array, generate_option,
13367         generate_option_input_file): Set warn_message field.
13368         (read_cmdline_option): Generate warnings from warn_message field.
13369         Handle ignored options.
13370         * common.opt (Wunreachable-code, fargument-alias,
13371         fargument-noalias, fargument-noalias-global,
13372         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
13373         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
13374         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
13375         ftree-salias): Mark Ignore.
13376         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
13377         -mintel-syntax and -mno-intel-syntax here.
13378         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
13379         using Warn.
13380         * opts.c (common_handle_option): Don't handle options marked as
13381         ignored.
13382         (enable_warning_as_error): Handle ignored options.
13383
13384 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13385
13386         PR driver/44076
13387         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
13388         alias_target fields.
13389         * opt-functions.awk (opt_sanitized_name): Don't handle
13390         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
13391         * optc-gen.awk: Generate alias fields.
13392         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
13393         Don't generate such constants for aliases.
13394         * opts-common.c (generate_canonical_option): New.
13395         (decode_cmdline_option): Handle aliases.  Use
13396         generate_canonical_option for known options instead of copying the
13397         input option text.
13398         * doc/options.texi (Alias): Document.
13399         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
13400         fstack-check, specs): Mark as aliases.
13401         * gcc.c (driver_handle_option): Canonicalize -L options to joined
13402         arguments.
13403         (driver_handle_option): Don't handle OPT_specs.
13404         * opts.c (common_handle_option): Don't handle options marked as
13405         aliases.
13406         (enable_warning_as_error): Handle aliases.
13407         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
13408         OPT_Wlarger_than_eq.
13409         * tree-optimize.c (tree_rest_of_compilation): Use
13410         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
13411
13412 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13413
13414         * config/i386/i386.md (nonmemory_operand): New mode attribute.
13415         (push memory peephole2): Macroize peepholes using SWI mode iterator.
13416         (move immediate to memory peephole2): Macroize peepholes using
13417         SWI124 mode iterator.
13418         (non-pairable NOT peephole2): Macroize peepholes using SWI124
13419         mode iterator.
13420         (simple lea add peephole2): Macroize peepholes using SWI48
13421         mode iterator.
13422         (simple lea mult peephole2): Ditto.
13423         (imul by 3,5,9 to lea peephole2): Ditto.
13424         (mov $-1, reg peephole2): Macroize peepholes using SWI248
13425         mode iterator.
13426         (imul $32bit_imm,mem,reg peephole2): Ditto.
13427         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
13428
13429 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
13430
13431         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
13432
13433 2010-09-02  Olivier Hainque  <hainque@adacore.com>
13434
13435         PR middle-end/44763
13436         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
13437         (allocno_priority_compare_func): Use it instead of a straight
13438         difference computation over priorities.
13439
13440 2010-09-02  Andi Kleen  <ak@linux.intel.com>
13441
13442         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
13443
13444 2010-09-02  Ira Rosen  <irar@il.ibm.com>
13445
13446         * tree-vectorizer.h (get_later_stmt): New function.
13447         (vect_analyze_data_ref_dependences): Add argument.
13448         * tree-vect-loop.c (vect_analyze_loop): Update call to
13449         vect_analyze_data_ref_dependences.
13450         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
13451         New function.
13452         (vect_analyze_data_ref_dependence): Add argument for basic block
13453         dependencies. Check dependencies in basic block vectorization.
13454         (vect_analyze_data_ref_dependences): Add argument and update call to
13455         vect_analyze_data_ref_dependences.
13456         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
13457         (vect_bb_vectorizable_with_dependencies): New.
13458         (vect_slp_analyze_bb): Check dependencies in basic block.
13459         (vect_schedule_slp_instance): Insert stores before the last store in
13460         SLP instance.
13461
13462 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13463
13464         PR target/45476
13465         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
13466         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13467
13468 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
13469
13470         PR middle-end/45458
13471         * bb-reorder.c (add_labels_and_missing_jumps): Treat
13472         bbs ending with throwing insns like blocks ending with a call.
13473         (fix_up_fall_thru_edges): Likewise.
13474
13475 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
13476
13477         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
13478         (m32c_function_arg_advance): Delete.
13479         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13480         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
13481         comments.  Take a const_tree and a bool.  Declare.
13482         (m32c_function_arg_advance): Likewise.
13483         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13484
13485 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13486
13487         PR target/45476
13488         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
13489         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
13490         * config/i386/mingw32.h: ... here.
13491
13492 2010-09-01  Andi Kleen  <ak@linux.intel.com>
13493
13494         PR lto/45475
13495         * lto-streamer-in.c (lto_input_ts_target_option): Add.
13496         (lto_input_tree_pointers): Call lto_input_ts_target_option.
13497         * lto-streamer-out (lto_output_ts_target_option): Add.
13498         (lto_output_tree_pointers): Call lto_output_ts_target_option.
13499
13500 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
13501
13502         PR/target 45452
13503         * config/i386/cygwin.h: Change order of specified import libraries.
13504         * config/i386/mingw32.h: Likewise.
13505         * config/i386/t-cygwin: Likewise.
13506         * config/i386/t-mingw32: Likewise.
13507         * config/i386/t-mingw-w32: Likewise.
13508         * config/i386/t-mingw-w64: Likewise.
13509
13510 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13511
13512         * config/arm/neon-schedgen.ml (core): New type.
13513         (allCores): List of supported cores.
13514         (availability_table): Add supported cores.
13515         (collate_bypasses): Accept core as a parameter.
13516         (worst_case_latencies_and_bypasses): Accept core as a parameter.
13517         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
13518         and coreStr to get tune attribute and prefix for functional units.
13519         (emit_bypasses): Accept core name and use it.
13520         (calculate_per_core_availability_table): New.
13521         (filter_core): New.
13522         (calculate_core_availability_table): New.
13523         (main): Use calculate_core_availablity_table.
13524         * config/arm/cortex-a8-neon.md: Update copyright year.
13525         Regenerated from ml file and merged in.
13526         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
13527         cortex_a8_neon_mrc.
13528
13529 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
13530
13531         * Makefile.in (tree-switch-conversion.o): Update dependencies.
13532
13533 2010-09-01  Richard Guenther  <rguenther@suse.de>
13534
13535         * alias.c (ao_ref_from_mem): Adjust.
13536         * builtins.c (get_object_alignment): Likewise.
13537         * cfgexpand.c (expand_debug_expr): Likewise.
13538         * gimple.c (get_base_address): Likewise.
13539         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13540         (get_addr_base_and_unit_offset): Likewise.  Fix for
13541         both TMR_SYMBOL and TMR_BASE being set.
13542         * tree-eh.c (tree_could_trap_p): Likewise.
13543         * gimplify.c (gimplify_expr): Do not attempt to gimplify
13544         TMR_SYMBOL.  Always gimplify TMR_BASE.
13545         * tree-cfg.c (verify_types_in_gimple_reference): Verify
13546         TMR_BASE if there is a TMR_SYMBOL.
13547         * tree-pretty-print.c (dump_generic_node): Adjust.
13548         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
13549         (tree_mem_ref_addr): Likewise.
13550         (create_mem_ref_raw): Likewise.
13551         (move_fixed_address_to_symbol): Likewise.
13552         (create_mem_ref): Likewise.
13553         (dump_mem_address): Likewise.
13554         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
13555         Fix for both TMR_SYMBOL and TMR_BASE being set.
13556         (indirect_refs_may_alias_p): Likewise.
13557         * tree-ssa-operands.c (get_tmr_operands): Adjust.
13558         * tree.def (TARGET_MEM_REF): Adjust documentation.
13559
13560 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13561
13562         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
13563         Rename from X86_TUNE_ADD_ESP_4.
13564         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
13565         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
13566         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
13567         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
13568         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
13569         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
13570         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
13571         * config/i386/i386.c (initial_ix86_tune_features)
13572         <X86_TUNE_SINGLE_POP>: Invert members.
13573         <X86_TUNE_DOUBLE_POP>: Ditto.
13574         <X86_TUNE_SINGLE_PUSH>: Ditto.
13575         <X86_TUNE_DOUBLE_PUSH>: Ditto.
13576         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
13577         No longer exported.
13578         (push peephole2 patterns): Macroize peepholes using P mode iterator.
13579         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
13580         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
13581         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
13582
13583 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
13584
13585         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
13586         a volatile LHS if the constructor has only one element.
13587
13588 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
13589
13590         PR bootstrap/45321
13591         * tree.c (stdarg_p): Make fntype parameter const.
13592         * tree.h (stdarg_p): Likewise.
13593         (function_args_iterator): Remove unused fntype field.
13594         (function_args_iter_init): Do not initialize fntype
13595         field.  Make fntype parameter const.
13596
13597 2010-09-01  Richard Guenther  <rguenther@suse.de>
13598
13599         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
13600         estimate.
13601         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
13602         (execute_vrp): Compute number of iteration estimates.
13603         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
13604         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
13605         * tree-data-ref.c (estimated_loop_iterations): Adjust.
13606         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
13607         Infer loop bounds from undefined behavior based on a new parameter.
13608         (estimate_numbers_of_iterations): Likewise.
13609         (scev_probably_wraps_p): Adjust.
13610         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
13611
13612 2010-09-01  Nick Clifton  <nickc@redhat.com>
13613
13614         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
13615         where appropriate.
13616         (xstormy16_legitimate_address_p): Use true and false instead of 1
13617         and 0.
13618         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
13619         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
13620         magic constant 2.
13621         (xstormy16_expand_call): Fix comment at start of function.
13622
13623 2010-09-01  Nick Clifton  <nickc@redhat.com>
13624
13625         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
13626         when pushing accumulator register.
13627         (rx_get_stack_layout): Always save call clobbered registers inside
13628         interrupt handlers.
13629         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
13630
13631 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13632
13633         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
13634         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
13635
13636         * libgcc-std.ver (GCC_4.6.0): Define version.
13637
13638 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13639
13640         * tree-nested.c (convert_all_function_calls): Iterate until after the
13641         sum of static chains in the nest doesn't change.
13642
13643 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
13644
13645         * config/m32c/m32c.c (classes_intersect): Remove.
13646         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
13647         reg_classes_intersect_p instead of classes_intersect.
13648         (class_can_hold_mode): Change arguments type from enum reg_class to
13649         reg_class_t.  Use reg_class_contents instead of class_contents.
13650         (m32c_register_move_cost): Make static. Change arguments type from
13651         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
13652         classes_intersect. Use reg_class_contents instead of class_contents.
13653         (m32c_memory_move_cost): Make static. Change arguments type from
13654         enum reg_class to reg_class_t.
13655         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13656         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13657         * config/m32c/m32c-protos.h (m32c_register_move_cost,
13658         m32c_memory_move_cost): Remove.
13659
13660 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13661
13662         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
13663         (arm_function_arg): Delete.
13664         (arm_needs_doubleword_align): Take a const_tree.
13665         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13666         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
13667         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
13668         (arm_function_arg): Make static.  Take a const_tree and a bool.
13669         (arm_function_arg_advance): Likewise.
13670         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13671
13672 2010-08-31  Andi Kleen  <ak@linux.intel.com>
13673
13674         * common.opt (fwhopr=): Update for -fwhopr=jobserver
13675         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
13676         * lto-wrapper.c (run_gcc): Add jobserver mode.
13677         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
13678         argument.
13679
13680 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
13681
13682         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
13683         (popsi1): Ditto.
13684         (*popdi1_epilogue): Ditto.
13685         (*popsi1_epilogue): Ditto.
13686         (popsi, popdi peephole2 patterns): Update peepholes for changed
13687         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
13688
13689         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
13690         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
13691
13692         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
13693         (override_options): Do not initialize removed ix86_gen_pop1.
13694         (gen_pop): New static function.
13695         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
13696         (release_scratch_register_on_entry): Ditto.
13697         (ix86_restore_reg_using_pop): Ditto.
13698         (ix86_expand_epilogue): Ditto.
13699
13700 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
13701
13702         PR middle-end/45461
13703         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
13704
13705 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13706
13707         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
13708         semicolons.
13709
13710 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13711
13712         * doc/extend.texi: Fix documentation of the return value of
13713         __builtin_choose_expr.
13714
13715 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13716
13717         * config/v850/v850-protos.h (function_arg): Delete.
13718         * config/v850/v850.h (FUNCTION_ARG): Delete.
13719         (FUNCTION_ARG_ADVANCE): Move code to...
13720         * config/v850/v850.c (v850_function_arg_advance): ...here.
13721         (v850_function_arg): Make static.  Take a const_tree and a bool.
13722         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13723
13724 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13725
13726         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
13727         these...
13728         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13729         ...and these...
13730         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
13731         ..to here..
13732         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13733         ...and here.
13734         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13735
13736 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13737
13738         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
13739         Delete.
13740         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13741         * config/rx/rx.c (rx_function_arg_size): Make static.
13742         (rx_function_arg): Likewise.
13743         (rx_function_arg_advance): New function.
13744         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13745
13746 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
13747
13748         * config/arm/arm.c (arm_override_options): Remove superfluous test.
13749         Fix indentation.
13750
13751 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13752
13753         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
13754         (dwarf2out_decl) <CONST_DECL>: Likewise.
13755
13756 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
13757
13758         Stack usage support
13759         * common.opt (-fstack-usage): New option.
13760         * doc/invoke.texi (Debugging options): Document it.
13761         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
13762         allocate_dynamic_stack_space.
13763         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
13764         and propagate it to allocate_dynamic_stack_space.
13765         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
13766         * calls.c (initialize_argument_information): Pass TRUE as 4th
13767         argument to allocate_dynamic_stack_space.
13768         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
13769         to 1 when pushing a variable-sized argument onto the stack.  Pass
13770         TRUE as 4th argument to allocate_dynamic_stack_space.
13771         Update current_function_pushed_stack_size.
13772         (emit_library_call_value_1): Likewise.
13773         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
13774         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
13775         attempt to find an upper bound.  Remove redundant code for the
13776         SETJMP_VIA_SAVE_AREA case.
13777         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
13778         * function.h (struct stack_usage): New structure.
13779         (current_function_static_stack_size): New macro.
13780         (current_function_dynamic_stack_size): Likewise.
13781         (current_function_pushed_stack_size): Likewise.
13782         (current_function_dynamic_alloc_count): Likewise.
13783         (current_function_has_unbounded_dynamic_stack_size): Likewise.
13784         (current_function_allocates_dynamic_stack_space): Likewise.
13785         (struct function): Add new field 'su'.
13786         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
13787         add the value of the dynamic offset to the dynamic stack usage.
13788         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
13789         for variable-sized objects.
13790         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
13791         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
13792         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
13793         BUILT_IN_ALLOCA for variable-sized objects.
13794         * output.h (output_stack_usage): Declare.
13795         * toplev.c (stack_usage_file): New file pointer.
13796         (output_stack_usage): New function.
13797         (open_auxiliary_file): Likewise.
13798         (lang_dependent_init): Open file if flag_stack_usage is set.
13799         (finalize): Close file if stack_usage_file is not null.
13800         * tree.h (ALLOCA_FOR_VAR_P): New macro.
13801         * config/alpha/alpha.c (compute_frame_size): New function.
13802         (alpha_expand_prologue): Use it.
13803         (alpha_start_function): Likewise.
13804         (alpha_expand_epilogue): Likewise.  Set stack usage info.
13805         * config/i386/i386.c (ix86_expand_prologue): Likewise.
13806         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
13807         * config/mips/mips.c (mips_expand_prologue): Likewise.
13808         * config/pa/pa.c (hppa_expand_prologue): Likewise.
13809         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
13810         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
13811
13812 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
13813
13814         PR tree-optimization/45427
13815         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
13816         Handle the case that the exit is never taken correctly.
13817         (number_of_iterations_ne): Pass exit_must_be_taken to
13818         number_of_iterations_ne_max.
13819
13820 2010-08-30  Catherine Moore  <clm@codesourcery.com>
13821
13822         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
13823         Infer -mdspr2 for the the 74K.
13824
13825 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
13826
13827         PR debug/45419
13828         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
13829
13830         PR middle-end/45423
13831         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
13832         and TRUTH_{AND,OR,XOR}_EXPR.
13833         * c-parser.c (c_parser_omp_atomic): Handle boolean
13834         {PRE,POST}_{INC,DEC}REMENT.
13835
13836 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
13837
13838         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
13839         (function_arg): Delete.
13840         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13841         (FUNCTION_INCOMING_ARG): Delete.
13842         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
13843         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
13844         and a bool.
13845         (function_arg): Rename to...
13846         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
13847         a bool.
13848         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
13849         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13850         (TARGET_FUNCTION_INCOMING_ARG): Define.
13851
13852 2010-08-30  Richard Guenther  <rguenther@suse.de>
13853
13854         PR tree-optimization/21602
13855         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
13856         using points-to information.
13857
13858 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
13859
13860         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
13861
13862 2010-08-30  Richard Guenther  <rguenther@suse.de>
13863
13864         PR tree-optimization/45449
13865         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
13866         variables.
13867
13868 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
13869
13870         * opts.h (CL_ERR_NEGATIVE): Define.
13871         * opts.c (unknown_option_callback): Don't postpone warnings for
13872         options marked with CL_ERR_NEGATIVE.
13873         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
13874         for negative versions of CL_REJECT_NEGATIVE options.
13875
13876 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
13877
13878         * config/i386/i386.md (zero_extendsidi2_1): Rename from
13879         zero_extendsidi2_32.
13880         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
13881         using SWI12 mode iterator.
13882         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
13883         to define_insn_and_split pattern.
13884         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
13885         using SWI24 mode iterator.
13886         (*zero_extendqi<mode>2_and): Macroize insn from
13887         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
13888         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
13889         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
13890         SWI24 mode iterator.
13891         (*zero_extendqi<mode>2_movzbl): Ditto from
13892         *zero_extendqi{hi,si}2_movzbl.
13893         (extendsidi2_1): Rename from extendsidi2_32.
13894         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
13895         SWI12 mode iterator.
13896
13897 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
13898
13899         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
13900         general purpose registers.
13901         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
13902         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
13903         with general purpose registers and memory operands.  Add associated
13904         CCImode post-reload splitter.
13905         * config/ia64/div.md: Change BImode to CCImode throughout.
13906
13907 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
13908
13909         * config/ia64/ia64.md (cstorebi4): Fix thinko.
13910
13911 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
13912
13913         * config/picochip/picochip.c (reorder_var_tracking_notes): This
13914         function was dropping debug insns which caused PR45299.
13915
13916 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
13917
13918         * config/i386/sse.md (extsuffix): New code attribute.
13919         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
13920         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
13921         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
13922         and sse4_1_zero_extendv4qiv4si2.
13923         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
13924         and sse4_1_zero_extendv2qiv2di2.
13925         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
13926         and sse4_1_zero_extendv4hiv4si2.
13927         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
13928         and sse4_1_zero_extendv2hiv2di2.
13929         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
13930         and sse4_1_zero_extendv2siv2di2
13931
13932         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
13933         using any_extend code iterator.
13934         (*avx_<s>mulv8hi3_highpart): Macroize insn from
13935         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
13936         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
13937
13938         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
13939         gen_sse4_1_sign_extend* functions.
13940         (struct builtin_description bdesc_args): Ditto.
13941
13942 2010-08-27  Xinliang David Li  <davidxl@google.com>
13943
13944         PR/45422
13945         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
13946         (iv_ca_set_no_cp): Update used inv expr count.
13947         (iv_ca_set_cp): Ditto.
13948         (iv_ca_new): Initialize new member.
13949         (iv_ca_free): Free memory.
13950
13951 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
13952
13953         * config/sh/sh-protos.h (sh_function_arg): Delete.
13954         (sh_function_arg_advance): Delete.
13955         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13956         (PASS_IN_REG_P): Eliminate cast.
13957         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
13958         const_tree and a bool.
13959         (sh_function_arg): Likewise.
13960         (sh_output_mi_thunk): Call sh_function_arg_advance) and
13961         sh_function_arg.
13962         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13963
13964 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
13965             Kaz Kojima  <kkojima@gcc.gnu.org>
13966
13967         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
13968         when possible.
13969         (sh_expand_epilogue): Likewise.
13970         * config/sh/sh.md (movml_push_banked): New insn.
13971         (movml_pop_banked): Likewise.
13972
13973 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
13974
13975         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
13976         gen_regexp_oneof, gen_regexp_sequence): Use the string found
13977         in vector element 0 rather than the original string when there's
13978         only one element.
13979         (gen_regexp): Remove extra semicolon.
13980
13981         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
13982         thumb2_movsf_vfp): Set attribute "insn".
13983         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
13984         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
13985         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
13986         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
13987         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
13988         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
13989         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
13990         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
13991         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
13992         if_not_arith, if_arith_not, cond_move_not): Likewise.
13993
13994 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
13995
13996         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
13997         New declaration.
13998         (rs6000_allocate_stack_temp): Ditto.
13999         (rs6000_expand_convert_si_to_sfdf): Ditto.
14000
14001         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
14002         line.  Update the options set if power6 or power7 server/embedded
14003         type options are used.  If we give a warning for no vsx under
14004         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
14005         (rs6000_allocate_stack_temp): New function to allocate a stack
14006         tempoary and adjust the address so it meets either REG+OFFSET or
14007         REG+REG addressing requirements.
14008         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
14009         that they can be used with the LFIWAX/LFIWZX instrucitons.
14010         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
14011         converting signed/unsigned SImode to either SFmode/DFmode.
14012
14013         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
14014         whether certain instructions can be generated.
14015         (TARGET_FCTIDZ): Ditto.
14016         (TARGET_STFIWX): Ditto.
14017         (TARGET_LFIWAX): Ditto.
14018         (TARGET_LFIWZX): Ditto.
14019         (TARGET_FCFIDS): Ditto.
14020         (TARGET_FCFIDU): Ditto.
14021         (TARGET_FCFIDUS): Ditto.
14022         (TARGET_FCTIDUZ): Ditto.
14023         (TARGET_FCTIWUZ): Ditto.
14024
14025         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
14026         (UNSPEC_FCTID): Ditto.
14027         (UNSPEC_LFIWAX): Ditto.
14028         (UNSPEC_LFIWZX): Ditto.
14029         (UNSPEC_FCTIWUZ): Ditto.
14030         (rreg): Use correct constraints.
14031         (SI_CONVERT_FP): New mode attribute for floating point conversion
14032         tests.
14033         (E500_CONVERT): Ditto.
14034         (lfiwax): New insns for converting from integer to floating point
14035         utilizing newer instructions.  Attempt to optimize conversions
14036         that come from memory so that we don't load the value into a GPR,
14037         spill it to the stack and reload it into a FPR.
14038         (floatsi<mode>2_lfiwax): Ditto.
14039         (floatsi<mode>2_lfiwax_mem): Ditto.
14040         (floatsi<mode>2_lfiwax_mem2): Ditto.
14041         (lfiwzx): Ditto.
14042         (floatunssi<mode>2_lfiwzx): Ditto.
14043         (floatunssi<mode>2_lfiwzx_mem): Ditto.
14044         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
14045         (floatdidf2_mem): Ditto.
14046         (floatunsdidf2_fcfidu): Ditto.
14047         (floatunsdidf2_mem): Ditto.
14048         (floatunsdisf2): Ditto.
14049         (floatunsdisf2_fcfidus): Ditto.
14050         (floatunsdisf2_mem): Ditto.
14051         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
14052         Use FCFID on 32-bit hosts that support it.
14053         (floatsidf2_internal): Ditto.
14054         (floatunssisf2): Ditto.
14055         (floatunssidf2): Ditto.
14056         (floatunssidf2_internal): Ditto.
14057         (floatsisf2): Ditto.
14058         (floatdidf2): Ditto.
14059         (floatdidf2_fpr): Ditto.
14060         (floatunsdidf2): Ditto.
14061         (floatdisf2): Ditto.
14062         (floatdisf2_fcfids): Ditto.
14063         (floatdisf2_internal1): Ditto.
14064         (fixuns_truncsfsi2): Delete, merge into common pattern for both
14065         SF/DF.  Add power7 support.
14066         (fix_truncsfsi2): Ditto.
14067         (fixuns_truncdfsi2): Ditto.
14068         (fixuns_truncdfdi2): Ditto.
14069         (fix_truncdfsi2): Ditto.
14070         (fix_truncdfsi2_internal): Ditto.
14071         (fix_truncdfsi2_internal_gfxopt): Ditto.
14072         (fix_truncdfsi2_mfpgpr): Ditto.
14073         (fctiwz): Ditto.
14074         (btruncdf2): Ditto.
14075         (btruncdf2_fpr): Ditto.
14076         (btructsf2): Ditto.
14077         (ceildf2): Ditto.
14078         (ceildf2_fpr): Ditto.
14079         (ceilsf2): Ditto.
14080         (floordf2): Ditto.
14081         (floordf2_fpr): Ditto.
14082         (floorsf2): Ditto.
14083         (rounddf2): Ditto.
14084         (rounddf2_fpr): Ditto.
14085         (roundsf2): Ditto.
14086         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
14087         (fix_trunc<mode>di2): Ditto.
14088         (fixuns_trunc<mode>si2): Ditto.
14089         (fixuns_trunc<mode>di2): Ditto.
14090         (fctiwz_<mode>): Ditto.
14091         (btrunc<mode>2): Ditto.
14092         (btrunc<mode>2_fpr): Ditto.
14093         (ceil<mode>2): Ditto.
14094         (ceil<mode>2_fpr): Ditto.
14095         (floor<mode>2): Ditto.
14096         (float<mode>2_fpr): Ditto.
14097         (round<mode>2): Ditto.
14098         (round<mode>2_fpr): Ditto.
14099         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
14100         (fixuns_trunc<mode>si2_stfiwx): Ditto.
14101         (fix_truncdfsi2_internal): Ditto.
14102         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
14103         converted value on stack, loaded into GPR, and then stored into
14104         the final destination.
14105         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
14106         FCTIDZ.
14107         (lrint<mode>di2): New insn, provide the lrint builtin functions.
14108         (ftruncdf2): Delete, unused.
14109         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
14110
14111         * config/rs6000/vsx.md (toplevel): Update copyright year.
14112         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
14113         (VSr3): Ditto.
14114
14115 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
14116             Jeremie Salvucci  <jeremie.salvucci@free.fr>
14117
14118         * gengtype.c (output_type_enum): Test the right union member.
14119
14120 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
14121
14122         PR target/41484
14123         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
14124         operands for operand 1.
14125         (sse4_1_extendv4qiv4si2): Ditto.
14126         (sse4_1_extendv2qiv2di2): Ditto.
14127         (sse4_1_extendv4hiv4si2): Ditto.
14128         (sse4_1_extendv2hiv2di2): Ditto.
14129         (sse4_1_extendv2siv2di2): Ditto.
14130         (sse4_1_zero_extendv8qiv8hi2): Ditto.
14131         (sse4_1_zero_extendv4qiv4si2): Ditto.
14132         (sse4_1_zero_extendv2qiv2di2): Ditto.
14133         (sse4_1_zero_extendv4hiv4si2): Ditto.
14134         (sse4_1_zero_extendv2hiv2di2): Ditto.
14135         (sse4_1_zero_extendv2siv2di2): Ditto.
14136         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
14137         (*sse4_1_extendv4qiv4si2): Ditto.
14138         (*sse4_1_extendv2qiv2di2): Ditto.
14139         (*sse4_1_extendv4hiv4si2): Ditto.
14140         (*sse4_1_extendv2hiv2di2): Ditto.
14141         (*sse4_1_extendv2siv2di2): Ditto.
14142         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
14143         (*sse4_1_zero_extendv4qiv4si2): Ditto.
14144         (*sse4_1_zero_extendv2qiv2di2): Ditto.
14145         (*sse4_1_zero_extendv4hiv4si2): Ditto.
14146         (*sse4_1_zero_extendv2hiv2di2): Ditto.
14147         (*sse4_1_zero_extendv2siv2di2): Ditto.
14148
14149 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14150
14151         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
14152         (mips_function_arg): Delete.
14153         (mips_function_arg_boundary): Take a const_tree.
14154         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
14155         (mips_arg_info): Likewise.
14156         (mips_setup_incoming_varargs): Call mips_function_arg_advance
14157         instead of FUNCTION_ARG_ADVANCE.
14158         (mips_function_arg_advance): Adjust prototype.  Make static.
14159         (mips_function_arg): Likewise.
14160         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14161         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
14162
14163 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14164
14165         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14166         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
14167         (function_arg): Delete.
14168         (function_arg_boundary): Take a const_tree.
14169         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
14170         (rs6000_spe_function_arg): Likewise.
14171         (rs6000_parm_start): Likewise.
14172         (rs6000_arg_size): Likewise.
14173         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
14174         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
14175         (rs6000_mixed_function_arg): Likewise.
14176         (function_arg): Rename to...
14177         (rs6000_function_arg): ...this.
14178         (function_arg_advance): Rename to...
14179         (rs6000_function_arg_advance_1): ...this
14180         (rs6000_function_arg_advance): New function.  Call it.
14181         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
14182         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
14183         (rs6000_function_value): Likewise.
14184         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14185
14186 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14187
14188         * config/arm/arm.md (enabled): Test the value of arch_enabled
14189         rather than just using it.
14190
14191 2010-08-27  Olivier Hainque  <hainque@adacore.com>
14192             Eric Botcazou  <ebotcazou@adacore.com>
14193
14194         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
14195         cover all the possible offsets from this base.
14196         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
14197
14198 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
14199
14200         PR tree-optimization/44485
14201         * calls.c (flags_from_decl_or_type): For const or pure
14202         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
14203         together with ECF_CONST resp. ECF_PURE.
14204         * builtins.c (expand_builtin): Use flags_from_decl_or_type
14205         instead of querying flags directly.
14206         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
14207         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
14208
14209 2010-08-26  Richard Guenther  <rguenther@suse.de>
14210
14211         PR tree-optimization/45255
14212         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
14213         and externals are also invariant.
14214
14215 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14216
14217         PR rtl-optimization/44858
14218         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
14219         newi2pat, make sure they don't affect newpat.
14220
14221         PR rtl-optimization/45400
14222         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
14223         SUBREG_REG if both modes are of MODE_INT class.
14224
14225 2010-08-25  Julian Brown  <julian@codesourcery.com>
14226
14227         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
14228         * config/arm/arm.md (generic_sched): No for Cortex-A5.
14229         (generic_vfp): Likewise.
14230         (cortex-a5.md): Include.
14231         * config/arm/cortex-a5.md: New.
14232
14233 2010-08-25  Richard Guenther  <rguenther@suse.de>
14234
14235         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
14236         * gimple.c (gimple_get_alias_set): Remove special handling
14237         for pointers.
14238
14239 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
14240
14241         PR middle-end/45355
14242         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
14243         dead_or_set_p when computing i0_feeds_i2_n.
14244
14245         * combine.c (find_split_point): Undo canonicalization of multiply-add
14246         to (minus x (mult)) when it seems likely that this will increase the
14247         chances of a split.
14248
14249 2010-08-25  Richard Guenther  <rguenther@suse.de>
14250
14251         PR lto/44562
14252         * lto-streamer.c (lto_record_common_node): Do not mess with
14253         TYPE_CANONICAL when not in lto.
14254         * gimple.c (gimple_register_type): Likewise.
14255
14256 2010-08-25  Richard Guenther  <rguenther@suse.de>
14257
14258         PR tree-optimization/45316
14259         * tree-ssa-pre.c (eliminate): Properly clean EH info.
14260
14261 2010-08-25  Richard Guenther  <rguenther@suse.de>
14262
14263         PR tree-optimization/45393
14264         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
14265         and clean EH info.  Avoid SSA update.
14266         (execute_cse_sincos): Cleanup the CFG if it has changed.
14267
14268 2010-08-25  Richard Guenther  <rguenther@suse.de>
14269
14270         PR middle-end/45379
14271         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
14272         TARGET_MEM_REF in alignment computation.
14273
14274 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14275
14276         PR tree-optimization/45059
14277         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
14278         type conversions from newop{1,2}.  Assert t is a comparison and
14279         newop{1,2} after the stripping are gimple vals.
14280
14281 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
14282
14283         * config/arm/iterators.md (VU, SE, V_widen_l): New.
14284         (V_unpack, US): New.
14285         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
14286         (vec_unpack<US>_lo_<mode>): Likewise.
14287         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
14288         (neon_vec_unpack<US>_lo_<mode>): Likewise.
14289         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
14290         (vec_widen_<US>mult_hi_<mode>): Likewise.
14291         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
14292         (neon_vec_<US>mult_hi_<mode>"): Likewise.
14293         (neon_unpack<US>_<mode>): Widening move intermediate step for
14294         vectorizing without -mvectorize-with-neon-quad.
14295         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
14296         for vectorizing without -mvectorize-with-neon-quad.
14297         * config/arm/predicates.md (vect_par_constant_high): Check for
14298         high-half lanes of a vector.
14299         (vect_par_constant_low): Check for low-half lanes of a vector.
14300
14301 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14302
14303         * tree-if-conv.c (struct ifc_dr): New.
14304         (IFC_DR): New.
14305         (DR_WRITTEN_AT_LEAST_ONCE): New.
14306         (DR_RW_UNCONDITIONALLY): New.
14307         (memref_read_or_written_unconditionally): Use the cached values
14308         when possible.
14309         (write_memref_written_at_least_once): Same.
14310         (if_convertible_loop_p): Initialize and free DR->aux fields.
14311
14312 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14313
14314         * gimple.c (gimple_could_trap_p_1): Not static anymore.
14315         Pass an extra bool parameter include_mem.
14316         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
14317         (gimple_assign_rhs_could_trap_p): Same.
14318         * gimple.h (gimple_could_trap_p_1): Declared.
14319         * tree-data-ref.h (same_data_refs_base_objects): New.
14320         (same_data_refs): New.
14321         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
14322         (write_memrefs_written_at_least_once): New.
14323         (ifcvt_memrefs_wont_trap): New.
14324         (operations_could_trap): New.
14325         (ifcvt_could_trap_p): New.
14326         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
14327         Gets a vector of data refs.
14328         (if_convertible_stmt_p): Same.
14329         (if_convertible_loop_p_1): New.
14330         (if_convertible_loop_p): Call if_convertible_loop_p_1.
14331
14332 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14333
14334         * common.opt (ftree-loop-if-convert-stores): New flag.
14335         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
14336         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
14337         the created statement before GSI.
14338         (if_convertible_phi_p): Allow virtual phi nodes when
14339         flag_loop_if_convert_stores is set.
14340         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
14341         Do not handle types that do not match is_gimple_reg_type.
14342         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
14343         when flag_loop_if_convert_stores is set, as LHS can contain
14344         memory refs.
14345         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
14346         to if_convertible_gimple_assign_stmt_p.
14347         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
14348         (replace_phi_with_cond_gimple_assign_stmt): Renamed
14349         predicate_scalar_phi.  Do not handle virtual phi nodes.
14350         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
14351         Call predicate_scalar_phi.
14352         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
14353         just after the labels for flag_loop_if_convert_stores, otherwise
14354         insert the predicate in the end of the BB.
14355         (predicate_mem_writes): New.
14356         (combine_blocks): Call predicate_all_scalar_phis.  When
14357         flag_loop_if_convert_stores is set, call predicate_mem_writes.
14358         (tree_if_conversion): Call mark_sym_for_renaming when
14359         flag_loop_if_convert_stores is set.
14360         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
14361         flag_loop_if_convert_stores is set.
14362
14363 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
14364
14365         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
14366         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
14367         (pa_function_value): Make static.
14368         (override_options): Rename to...
14369         (pa_option_override): ...this. Make static.
14370         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
14371         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
14372         TARGET_OPTION_OVERRIDE): Define.
14373         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
14374         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
14375         Remove.
14376         * config/pa/pa-protos.h (override_options): Remove.
14377
14378 2010-08-24  Richard Guenther  <rguenther@suse.de>
14379
14380         PR middle-end/45379
14381         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
14382         if addr->index is NULL or zero.
14383         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
14384         TARGET_MEM_REF more properly.
14385         (indirect_ref_may_alias_decl_p): Likewise.
14386         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
14387         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
14388
14389 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
14390
14391         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
14392         (m32c_override_options): Rename to...
14393         (m32c_option_override): ...this. Make static.
14394         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
14395         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
14396         Remove.
14397         * config/m32c/m32c-protos.h (m32c_override_options,
14398         m32c_function_value_regno_p): Remove.
14399
14400 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14401
14402         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
14403         Fix a typo in a previous commit.
14404
14405 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
14406
14407         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
14408         Pre-initialize innerloop_iters to one.
14409
14410 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14411
14412         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
14413         existing static function global.
14414
14415         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
14416         is changed to global.
14417
14418         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
14419         may_be_nonaddressable_p on base, and don't collect this reference
14420         if the address of the base could not be taken.
14421
14422 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
14423
14424         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
14425         enable the compiler to autovectorize mathmetical functions for
14426         power7 using the Mathematical Acceleration Subsystem library.
14427
14428         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
14429         handle which vector math library we have.
14430         (rs6000_override_options): Add -mveclibabi=mass support.
14431         (rs6000_builtin_vectorized_libmass): New function to handle auto
14432         vectorizing math functions that are in the MASS library.
14433         (rs6000_builtin_vectorized_function): Call it.
14434
14435         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
14436         -mveclibabi=mass.
14437
14438 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14439
14440         PR boehm-gc/34544
14441         * gthr-posix.h (__gthread_active_init): Delete.
14442         (__gthread_active_p): Do activity check here.
14443         Don't include errno.h on hppa-hpux.  Update comment.
14444         * gthr-posix95.h (__gthread_active_init): Delete.
14445         (__gthread_active_p): Do activity check here.
14446         Don't include errno.h on hppa-hpux.  Update comment.
14447         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
14448         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
14449         add -lpthread when -mt or -pthread is specified.
14450         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
14451         (LINK_GCC_C_SEQUENCE_SPEC): Define.
14452         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
14453         (stublib.c, pthread_default_stacksize_np-stub.o,
14454         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
14455         $(T)libgcc_stub.a): Add methods.
14456         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
14457         (stublib.c, pthread_default_stacksize_np-stub.o,
14458         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
14459         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
14460         pthread_mutex_unlock): New stubs.
14461
14462 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
14463
14464         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
14465         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
14466         options.
14467         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
14468         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
14469         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
14470         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
14471         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
14472         "-l".
14473         * cppspec.c: Include opts.h.
14474         (lang_specific_driver): Use cl_decoded_option structures.
14475         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
14476         * doc/tm.texi: Regenerate.
14477         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
14478         (driver_handle_option): Allow driver options needing no special
14479         processing.
14480         (process_command): Decode options before call to
14481         lang_specific_driver.  Pass decoded options to
14482         lang_specific_driver.
14483         * gcc.h (lang_specific_driver): Update prototype.
14484         * gccspec.c: Include opts.h.
14485         (lang_specific_driver): Use cl_decoded_option structures.
14486         * opts-common.c (option_ok_for_language, generate_option,
14487         generate_option_input_file): New.
14488         (decode_cmdline_option): Use option_ok_for_language.
14489         (decode_cmdline_options_to_array): Use generate_option_input_file.
14490         (handle_generated_option): Use generate_option.
14491         * opts.h (generate_option, generate_option_input_file): Declare.
14492
14493 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
14494
14495         * config/mips/mips.c (mips_override_options): Rename to...
14496         (mips_option_override): ...this. Make static.
14497         (TARGET_OPTION_OVERRIDE): Define.
14498         (mips_in_small_data_p): Update comment.
14499         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
14500         (FIXED_REGISTERS): Update comment.
14501         * config/mips/mips-protos.h (mips_override_options): Remove.
14502
14503 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14504
14505         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
14506
14507 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14508
14509         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
14510         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
14511
14512 2010-08-20  Jan Hubicka  <jh@suse.cz>
14513
14514         * tree-pass.h (pass_ipa_cdtor_merge): New function.
14515         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
14516         heap allocated.
14517         (record_cdtor_fn): Move to ipa.c; do not test for
14518         have_ctors_dtors.
14519         (build_cdtor): Move to ipa.c; add code avoiding construction
14520         when target have ctors/dtors and there is only one ctor/dtor at given
14521         priority.
14522         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
14523         sort; reverse order of constructors.
14524         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
14525         (cgraph_finalize_function): Do not call record_cdtor_fn.
14526         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
14527         (cgraph_build_static_cdtor): Move to ipa.c.
14528         * ipa.c: Include target.h and tree-iterator.h.
14529         (cgraph_build_static_cdtor, static_ctors, static_dtors,
14530         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
14531         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
14532         pass_ipa_cdtor_merge): New.
14533         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
14534         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
14535         bounds access.
14536
14537 2010-08-20  Jan Hubicka  <jh@suse.cz>
14538
14539         PR c++/45307
14540         PR c++/17736
14541         * cgraph.h (cgraph_only_called_directly_p,
14542         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
14543         static cdtors.
14544         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
14545         are not needed.
14546         (cgraph_finalize_function): Static cdtors are reachable.
14547         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
14548
14549 2010-08-20  Jan Hubicka  <jh@suse.cz>
14550
14551         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
14552         flag_wpa.
14553         * lto-streamer-out.c (lto_output): Likewise.
14554         * passes.c (ipa_write_optimization_summaries): Initialize statement
14555         uids.
14556
14557 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14558
14559         * tree.h (alias_diag_flags): New enum.
14560         (alias_pair): Add an 'emitted_diags' field.
14561         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
14562         (assemble_alias): Initialize emitted_diags of new pairs.
14563
14564 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
14565
14566         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
14567         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14568         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14569         (STACK_CHECK_PROTECT): Define.
14570         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
14571         (output_probe_stack_range): Likewise.
14572         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
14573         builtin stack checking is enabled.
14574         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
14575         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
14576         (probe_stack_range): New insn.
14577
14578 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
14579
14580         PR target/45336
14581         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
14582         short first.
14583
14584         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
14585         char first.
14586
14587 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14588
14589         PR target/45336
14590         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
14591         to cover zero extension into 64-bit register.
14592         (*sse2_pextrw): Likewise.
14593         (*sse4_1_pextrd_zext): New insn.
14594
14595 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14596
14597         revert r163410, partially revert r163267.
14598         * config/rs6000/darwin.h (LIB_SPEC): Remove.
14599         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
14600         Darwin versions.
14601
14602 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14603
14604         PR middle-end/44974
14605         * builtins.c (expand_builtin): Don't optimize away
14606         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
14607
14608 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
14609
14610         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
14611         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
14612         alternative 1 of operand 2.
14613
14614 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14615             Paolo Bonzini  <bonzini@gnu.org>
14616
14617         * simplify-rtx.c (simplify_unary_operation_1): Optimize
14618         (sign_extend (zero_extend (...)) and
14619         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
14620
14621 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14622
14623         PR rtl-optimization/45353
14624         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
14625         after bb_note is a BARRIER.
14626
14627 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14628
14629         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
14630         linking libgcc.a.
14631
14632 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14633             Michael Matz  <matz@suse.de>
14634
14635         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
14636
14637 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14638
14639         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
14640         (ggc_mark_roots): ...here.
14641
14642 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14643
14644         * vec.h (FOR_EACH_VEC_ELT): Define.
14645         * c-decl.c: Use it.
14646         * cfgloop.c: Likewise.
14647         * cfgloopmanip.c: Likewise.
14648         * cgraph.c: Likewise.
14649         * cgraphunit.c: Likewise.
14650         * combine.c: Likewise.
14651         * config/bfin/bfin.c: Likewise.
14652         * config/mips/mips.c: Likewise.
14653         * config/rs6000/rs6000.c: Likewise.
14654         * dbxout.c: Likewise.
14655         * df-scan.c: Likewise.
14656         * dominance.c: Likewise.
14657         * dse.c: Likewise.
14658         * dwarf2out.c: Likewise.
14659         * except.c: Likewise.
14660         * expr.c: Likewise.
14661         * function.c: Likewise.
14662         * gcse.c: Likewise.
14663         * genattr.c: Likewise.
14664         * ggc-common.c: Likewise.
14665         * gimplify.c: Likewise.
14666         * graphite-blocking.c: Likewise.
14667         * graphite-clast-to-gimple.c: Likewise.
14668         * graphite-dependences.c: Likewise.
14669         * graphite-interchange.c: Likewise.
14670         * graphite-poly.c: Likewise.
14671         * graphite-scop-detection.c: Likewise.
14672         * graphite-sese-to-poly.c: Likewise.
14673         * graphite.c: Likewise.
14674         * haifa-sched.c: Likewise.
14675         * ifcvt.c: Likewise.
14676         * implicit-zee.c: Likewise.
14677         * ipa-prop.c: Likewise.
14678         * ipa-struct-reorg.c: Likewise.
14679         * ipa.c: Likewise.
14680         * ira-build.c: Likewise.
14681         * ira-color.c: Likewise.
14682         * ira-emit.c: Likewise.
14683         * lambda-code.c: Likewise.
14684         * loop-invariant.c: Likewise.
14685         * loop-unroll.c: Likewise.
14686         * lower-subreg.c: Likewise.
14687         * lto-cgraph.c: Likewise.
14688         * lto-opts.c: Likewise.
14689         * lto-streamer-in.c: Likewise.
14690         * lto-streamer-out.c: Likewise.
14691         * lto-streamer.c: Likewise.
14692         * lto-symtab.c: Likewise.
14693         * matrix-reorg.c: Likewise.
14694         * opts.c: Likewise.
14695         * predict.c: Likewise.
14696         * print-tree.c: Likewise.
14697         * sdbout.c: Likewise.
14698         * sel-sched-dump.c: Likewise.
14699         * sel-sched-ir.c: Likewise.
14700         * sel-sched.c: Likewise.
14701         * sese.c: Likewise.
14702         * stor-layout.c: Likewise.
14703         * tree-cfg.c: Likewise.
14704         * tree-cfgcleanup.c: Likewise.
14705         * tree-chrec.c: Likewise.
14706         * tree-data-ref.c: Likewise.
14707         * tree-emutls.c: Likewise.
14708         * tree-inline.c: Likewise.
14709         * tree-into-ssa.c: Likewise.
14710         * tree-loop-distribution.c: Likewise.
14711         * tree-loop-linear.c: Likewise.
14712         * tree-mudflap.c: Likewise.
14713         * tree-outof-ssa.c: Likewise.
14714         * tree-parloops.c: Likewise.
14715         * tree-predcom.c: Likewise.
14716         * tree-pretty-print.c: Likewise.
14717         * tree-scalar-evolution.c: Likewise.
14718         * tree-ssa-live.c: Likewise.
14719         * tree-ssa-loop-im.c: Likewise.
14720         * tree-ssa-loop-ivcanon.c: Likewise.
14721         * tree-ssa-loop-ivopts.c: Likewise.
14722         * tree-ssa-loop-manip.c: Likewise.
14723         * tree-ssa-loop-niter.c: Likewise.
14724         * tree-ssa-loop-prefetch.c: Likewise.
14725         * tree-ssa-phiprop.c: Likewise.
14726         * tree-ssa-pre.c: Likewise.
14727         * tree-ssa-reassoc.c: Likewise.
14728         * tree-ssa-sccvn.c: Likewise.
14729         * tree-ssa-structalias.c: Likewise.
14730         * tree-ssa.c: Likewise.
14731         * tree-vect-data-refs.c: Likewise.
14732         * tree-vect-loop-manip.c: Likewise.
14733         * tree-vect-loop.c: Likewise.
14734         * tree-vect-patterns.c: Likewise.
14735         * tree-vect-slp.c: Likewise.
14736         * tree-vect-stmts.c: Likewise.
14737         * tree-vrp.c: Likewise.
14738         * tree.c: Likewise.
14739         * value-prof.c: Likewise.
14740         * var-tracking.c: Likewise.
14741         * varasm.c: Likewise.
14742         * vmsdbgout.c: Likewise.
14743
14744 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
14745             Richard Guenther  <richard.guenther@gmail.com>
14746
14747         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
14748         copy the src value and return a copy.
14749         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
14750         (C++ Volatiles): Adjust to describe C++ semantics only.
14751
14752 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
14753
14754         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
14755         be zero or nonzero.
14756         * doc/tm.texi: Regenerate.
14757         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
14758         * df-scan.c (df_get_exit_block_use_set), reginfo.c
14759         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
14760         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
14761         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
14762         to 1.
14763
14764 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14765
14766         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
14767         an extra nop past a sibling call at the very end.
14768
14769 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14770
14771         PR bootstrap/45350
14772         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
14773         a comment.
14774
14775 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14776
14777         * target.def (function_arg, function_incoming_arg): Remove const
14778         qualifier on CUMULATIVE_ARGS parameter.
14779         * targhooks.h (default_function_arg, default_function_incoming_arg):
14780         Likewise.
14781         * targhooks.c (default_function_arg, default_function_incoming_arg):
14782         Likewise.
14783         * config/i386/i386.c (ix86_function_arg): Likewise.
14784
14785 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
14786
14787         PR target/45336
14788         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
14789         SIGN_EXTENDs or ZERO_EXTENDs.
14790
14791 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14792
14793         PR target/42172
14794         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
14795         Take its cost into account if nonnull.
14796         (insn_a_feeds_b): New static function.
14797         (combine_instructions): Look for four-insn combinations.
14798         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
14799         them into account when computing all_adjacent and looking for other
14800         uses.
14801         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
14802         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
14803         (try_combine): New arg I0.  Handle four-insn combinations.
14804         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
14805         like ELIM_I1.
14806
14807 2010-08-19  Jason Merrill  <jason@redhat.com>
14808
14809         PR c++/45307
14810         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
14811         if ctor is empty.
14812         (gimplify_modify_expr_rhs): Adjust.
14813
14814 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14815
14816         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
14817         bitmap_bit_p.
14818         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
14819         * dominance.c (iterate_fix_dominators): Likewise.
14820         * dse.c (set_usage_bits): Likewise.
14821         (set_position_unneeded, record_store): Likewise.
14822         * gimple-fold.c (get_maxval_strlen): Likewise.
14823         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
14824         * ipa-inline.c (update_caller_keys): Likewise.
14825         * ipa-split.c (verify_non_ssa_vars): Likewise.
14826         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
14827         (close_type_exposed_parameter, close_type_full_escape): Likewise.
14828         (close_addressof_down): Likewise.
14829         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
14830         (setup_allocno_left_conflicts_size): Likewise.
14831         (ira_reassign_conflict_allocnos): Likewise.
14832         (ira_reassign_pseudos): Likewise.
14833         * ira-emit.c (change_loop): Likewise.
14834         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
14835         * lto-streamer-out.c (write_symbol): Likewise.
14836         * predict.c (expr_expected_value_1): Likewise.
14837         * regstat.c (regstat_bb_compute_ri): Likewise.
14838         * sel-sched.c (create_block_for_bookkeeping): Likewise.
14839         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
14840         * stmt.c (expand_case): Likewise.
14841         * tree-eh.c (emit_eh_dispatch): Likewise.
14842         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
14843         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
14844         Likewise.
14845         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
14846         (rdg_build_components): Likewise.
14847         * tree-object-size.c (collect_object_sizes_for): Likewise.
14848         * tree-sra.c (convert_callers): Likewise.
14849         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
14850         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
14851         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
14852
14853 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14854
14855         * config/i386/i386.md (*lea_1): Use P mode iterator.
14856         (lea add splitter): Also handle DImode operands.
14857         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
14858         predicate.  Do not use ix86_lea_for_add_ok.
14859         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
14860         (lea ashift splitter): Also handle DImode operands.
14861         (DImode lea ashift splitter): Remove splitter.
14862
14863 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14864
14865         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
14866         ix86_binary_operator_ok.
14867
14868 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
14869
14870         PR rtl-optimization/44691
14871         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
14872         is not a register.
14873
14874 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14875
14876         PR target/45070
14877         * config/arm/arm.c (arm_output_epilogue): Ensure that return
14878          value of size 1-3 is handled correctly.
14879
14880 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14881
14882         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
14883         type for the conditional has wide enough range.
14884
14885 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14886
14887         PR target/45327
14888         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
14889         ix86_binary_operator_ok.
14890
14891 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14892
14893         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
14894         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
14895         code to output insn mnemonic.  Fix comment.
14896         (*addsi_1_zext): Add r-r-0 alternative 1.
14897         <TYPE_LEA>: Split insn to lea.
14898         <default>: Handle alternative 1.
14899         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
14900         multi-level if_then_else RTX to set "type" attribute.
14901         <default>: Handle alternative 2.
14902         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
14903         Use cond RTX instead of multi-level if_then_else RTX to set
14904         "type" attribute.
14905         <default>: Handle alternatives 2 and 4.
14906         (lea splitters): Update calls to ix86_lea_for_add_ok.
14907
14908         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
14909         argument.
14910         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
14911
14912 2010-08-18  Richard Guenther  <rguenther@suse.de>
14913
14914         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
14915         use operand helpers.
14916
14917 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
14918
14919         PR middle-end/45292
14920         * optabs.c (expand_bool_compare_and_swap): Expand pending
14921         pops before trying the optab.
14922
14923 2010-08-18  Yao Qi  <yao@codesourcery.com>
14924
14925         PR target/45094
14926         * config/arm/arm.c (output_move_double): Fix typo generating
14927         instructions ('ldr'->'str').
14928
14929 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
14930
14931         PR rtl-optimization/42575
14932         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
14933         live ranges.
14934
14935 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14936
14937         * config/arm/arm-protos.h (arm_expand_sync): New.
14938         (arm_output_memory_barrier, arm_output_sync_insn): New.
14939         (arm_sync_loop_insns): New.
14940         * config/arm/arm.c (FL_ARCH7): New.
14941         (FL_FOR_ARCH7): Include FL_ARCH7.
14942         (arm_arch7): New.
14943         (arm_print_operand): Support %C markup.
14944         (arm_legitimize_sync_memory): New.
14945         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
14946         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
14947         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
14948         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
14949         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
14950         (arm_process_output_sync_insn, arm_output_sync_insn): New.
14951         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
14952         * config/arm/arm.h (struct arm_sync_generator): New.
14953         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
14954         (TARGET_HAVE_MEMORY_BARRIER): New.
14955         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
14956         * config/arm/arm.md: Include sync.md.
14957         (UNSPEC_MEMORY_BARRIER): New.
14958         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
14959         (VUNSPEC_SYNC_OP):New.
14960         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
14961         (sync_result, sync_memory, sync_required_value): New attributes.
14962         (sync_new_value, sync_t1, sync_t2): Likewise.
14963         (sync_release_barrier, sync_op): Likewise.
14964         (length): Add logic to length attribute defintion to call
14965         arm_sync_loop_insns when appropriate.
14966         * config/arm/sync.md: New file.
14967
14968 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14969
14970         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
14971         ENABLE_TREE_CHECKING.
14972         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
14973         and GCC >= 4.3.
14974
14975 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
14976
14977         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
14978         or optimizing for size, always avoid lea if possible.
14979
14980         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
14981
14982 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
14983
14984         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
14985         Dunmmy function with NULL return unless the target is
14986         OSX >= 10.6 (Darwin10).
14987
14988 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
14989
14990         * gcc.c (spec_function): Add remove-outfile.
14991         (remove_outfile_spec_function): New function.
14992         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
14993         * invoke.texi (replace-outfile): Document.
14994
14995 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
14996
14997         PR target/45296
14998         * reginfo.c (globalize_reg): Reject stack registers.
14999
15000 2010-08-17  Richard Guenther  <rguenther@suse.de>
15001
15002         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
15003         list of conditional equivalences.
15004         (free_all_edge_infos): Adjust.
15005         (record_equivalences_from_incoming_edge): Likewise.
15006         (record_cond): Likewise.
15007         (build_and_record_new_cond): Likewise.
15008         (record_conditions): Likewise.
15009         (dom_opt_leave_block): Likewise.
15010
15011 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
15012
15013         * doc/invoke.texi (ms-extension): Add documentation.
15014
15015 2010-08-17  Richard Guenther  <rguenther@suse.de>
15016
15017         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
15018
15019 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
15020
15021         PR c/40563
15022         * c-decl.c (diagnose_uninitialized_cst_member): New function.
15023         (finish_decl): Use it to issue a -Wc++-compat warning about
15024         uninitialized const field in struct or union.
15025
15026         (finish_struct): Use strip_array_types.
15027
15028 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
15029
15030         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
15031         functions.
15032         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
15033         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
15034         call block_nreverse here.
15035         (blocks_nreverse): Rename decl temporary to block.
15036
15037 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
15038
15039         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
15040         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
15041         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
15042         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
15043         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
15044         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
15045         thumb2_iorsi3): Delete.
15046         (orsi_notsi_si): No longer a named pattern.
15047         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
15048         * config/arm/predicates.md (shift_amount_operand): New.
15049         (mult_operator): New.
15050         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
15051         attr enabled): New.
15052         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
15053         arch matches t2.
15054         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
15055         (not_shiftsi_compare0): Likewise, renamed from
15056         arm_notsi_shiftsi_compare0.
15057         (not_shiftsi_compare0_scratch): Likweise, renamed from
15058         arm_notsi_shiftsi_compare0_scratch.
15059         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
15060         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
15061         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
15062         so that the register alternative is disabled when the shift_operator
15063         is MULT.  Use "M" as the constraint for constants.
15064         (arith_shiftsi splitter): Enable for TARGET_32BIT.
15065         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
15066         constraint for constants.
15067         (arith_shiftsi_compare0_scratch): Likewise.
15068         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
15069         Handle Thumb2 alternative.
15070
15071 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15072
15073         * doc/options.texi (NoDriverArg): Document.
15074         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
15075         -MDX and -MMDX.
15076         * opt-functions.awk (switch_flags): Handle NoDriverArg.
15077         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
15078         marking for CL_NO_DRIVER_ARG options when in the driver.
15079         * opts.h (CL_NO_DRIVER_ARG): Define.
15080         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
15081         CL_COMMON): Update values.
15082
15083 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15084
15085         * common.opt: Add driver options.
15086         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
15087         * doc/options.texi (Driver, RejectDriver): Document.
15088         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
15089         print_prog_name, print_multi_directory, print_sysroot,
15090         print_multi_os_directory, print_multi_lib,
15091         print_sysroot_headers_suffix, report_times, combine_flag,
15092         use_pipes, wrapper_string): Remove.
15093         (save_switch, driver_unknown_option_callback,
15094         driver_wrong_lang_callback, driver_post_handling_callback,
15095         driver_handle_option): New.
15096         (spec_lang, last_language_n_infiles): Make file-scope static
15097         instead of local to process_command.
15098         (process_command): Use decode_cmdline_options_to_array and
15099         read_cmdline_option for option processing.  Compute have_c in
15100         prescan of decoded options.
15101         * opt-functions.awk (switch_flags): Handle Driver and
15102         RejectDriver.
15103         (var_type, var_type_struct): Handle Separate options as generating
15104         const char * variables.
15105         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
15106         CL_TARGET to be passed by caller if required.
15107         (decode_cmdline_options_to_array): Update comment.
15108         * opts.c (complain_wrong_lang): Handle options only valid for the
15109         driver.
15110         (decode_options): Update call to decode_cmdline_options_to_array.
15111         (print_filtered_help): Ignore driver-only options.
15112         (print_specific_help): Ignore CL_DRIVER.
15113         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
15114         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
15115         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
15116         Update values.
15117
15118 2010-08-16  Richard Guenther  <rguenther@suse.de>
15119
15120         * tree-cfg.c (verify_types_in_gimple_reference): Verify
15121         TARGET_MEM_REF a bit.
15122         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
15123         (create_mem_ref_raw): Always create TMR_OFFSET, store the
15124         alias pointer type via it.
15125         (copy_mem_ref_info): Adjust.
15126         (maybe_fold_tmr): Likewise.
15127         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
15128         (reference_alias_ptr_type): Likewise.
15129         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
15130         adjust documentation of TMR_OFFSET operand.
15131         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
15132         use the alias pointer type.
15133         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
15134         initialize mem attrs but the TMR itself.
15135         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
15136         similar to MEM_REF.
15137         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
15138         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
15139         (unshare_and_remove_ssa_names): Likewise.
15140         (copy_ref_info): Adjust.
15141         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
15142         TARGET_MEM_REF case.
15143         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
15144         at TMR_ORIGINAL.
15145         * tree.h (TMR_ORIGINAL): Remove.
15146         * gimple.c (get_base_address): For TARGET_MEM_REF with a
15147         symbol return that.
15148         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
15149         with a symbol.
15150         (get_addr_base_and_unit_offset): Likewise.
15151         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
15152         TARGET_MEM_REFs.
15153         (indirect_ref_may_alias_decl_p): Likewise.
15154         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
15155
15156 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
15157
15158         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
15159         with GCC version 4.6, the default setting (when not optimizing
15160         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
15161         been changed to -fomit-frame-pointer.
15162
15163 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
15164
15165         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
15166         Darwin10.  Do not link libgcc.a for Darwin >= 9.
15167
15168 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
15169
15170         * doc/invoke.texi (Warning Options): Fix terminology and markup
15171         in the description of how unknown warning options are handled.
15172
15173 2010-08-15  Ira Rosen  <irar@il.ibm.com>
15174
15175         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
15176         in basic blocks.
15177         (vect_supportable_dr_alignment): Check alignment for basic blocks.
15178         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
15179         data references.
15180         (vect_bb_vectorization_profitable_p): New function.
15181         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
15182         check if it's worthwhile to vectorize the basic block.
15183
15184 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
15185
15186         * reload.h (register_move_cost, memory_move_secondary_cost,
15187         secondary_reload_class): Adjust prototype.
15188         * rtl.h (reg_class_subset_p): Adjust prototype.
15189         * reload.c (secondary_reload_class): Change arguments type from
15190         enum reg_class to reg_class_t. Change result type to reg_class_t.
15191         * reginfo.c (register_move_cost, reg_class_subset_p): Change
15192         arguments type from enum reg_class to reg_class_t.
15193         (memory_move_secondary_cost): Change arguments type from
15194         enum reg_class to reg_class_t. Change type of saved_flags to
15195         reg_class_t.
15196
15197         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
15198         Remove macros.
15199         (mips_cost): Remove.
15200         (struct mips_rtx_cost_data): Moved to mips.c.
15201         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
15202         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
15203         (mips_cost): Make static.
15204         (mips_canonicalize_move_class): Change argument type to reg_class_t.
15205         Change result type to reg_class_t.
15206         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
15207         type from enum reg_class to reg_class_t.
15208         (mips_register_move_cost): Make static. Change arguments
15209         type from enum reg_class to reg_class_t.
15210         (mips_memory_move_cost): New function.
15211         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15212
15213 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
15214
15215         PR rtl-optimization/43358
15216         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
15217         of a single hard register, using simplify_subreg_regno to decide
15218         what that register should be.
15219
15220 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
15221
15222         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
15223         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
15224         (loongson_pmull<V_suffix>): Rename to...
15225         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
15226
15227 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
15228
15229         * configure.ac: Enable -fomit-frame-pointer on darwin
15230         which support dwarf2.
15231         * config/i386/i386.c (override_options): Same.
15232
15233 2010-08-13  Jie Zhang  <jie@codesourcery.com>
15234
15235         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
15236
15237 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
15238
15239         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
15240         -MMD.
15241
15242 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
15243
15244         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
15245         up dot_prod pattern searching if a stmt is outside the loop.
15246
15247 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
15248             Uros Bizjak  <ubizjak@gmail.com>
15249
15250         * config.gcc: Handle --enable-frame-pointer.
15251
15252         * configure.ac: Add --enable-frame-pointer.
15253         * configure: Regenerated.
15254
15255         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
15256         (override_options): If not configured with --enable-frame-pointer,
15257         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
15258         optimizing for size), -fasynchronous-unwind-tables and
15259         -maccumulate-outgoing-args by default.
15260
15261 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15262
15263         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
15264
15265         PR middle-end/45262
15266         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
15267         -a overflows.  Normalize the range.
15268
15269 2010-08-12  Richard Guenther  <rguenther@suse.de>
15270
15271         PR tree-optimization/45232
15272         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
15273         for types with undefined overflow.
15274         (reassociate_bb): Allow re-associating of bit and min/max
15275         operations for types with undefined overflow.
15276         * tree-ssa-forwprop.c (associate_plusminus): New function.
15277         (tree_ssa_forward_propagate_single_use_vars): Call it.
15278
15279 2010-08-12  Richard Guenther  <rguenther@suse.de>
15280
15281         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
15282         * tree-ssa-alias.c (get_ptr_info): Move ...
15283         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
15284         align and misalign fields conservatively.
15285         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
15286         derive alignment information.
15287         (evaluate_stmt): Derive alignment information from memory
15288         allocation functions.
15289         * tree.h (get_pointer_alignment): Make unsigned.
15290         * builtins.c (get_object_alignment): Use alignment information we
15291         have computed for pointers.
15292         (get_pointer_alignment): Likewise.  Make conservative, return
15293         and unsigned value.
15294         (expand_builtin_strlen): Adjust.
15295         (expand_builtin_memcmp): Likewise.
15296         (expand_builtin_strcmp): Likewise.
15297         (expand_builtin_strncmp): Likewise.
15298         (get_builtin_sync_mem): Use at least mode alignment.
15299         (fold_builtin_memset): Adjust.
15300         (fold_builtin_memory_op): Likewise.
15301         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
15302         information also dump pointer alignment knowledge.
15303         (dump_gimple_stmt): Likewise.
15304
15305 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
15306
15307         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
15308         (EMPTY_FIELD_BOUNDARY): Remove.
15309         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
15310
15311 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15312
15313         PR debug/45259
15314         * caller-save.c (save_call_clobbered_regs): Only swap notes with
15315         DEBUG_INSNs if n_regs_saved.
15316
15317 2010-08-12  Wei Guozhi  <carrot@google.com>
15318
15319         PR target/44999
15320         * config/arm/arm.md (andsi3): Change to zero extension if possible.
15321         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
15322
15323 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
15324
15325         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
15326
15327         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
15328
15329 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15330
15331         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
15332         the case removed in the previous patch, when the only phi argument
15333         is defined in the same loop as the phi node itself.  Handle it
15334         separately from the invariant case by both propagating it outside
15335         the region and replacing the phi node with an assign.
15336
15337 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15338
15339         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
15340         constant phi nodes with one argument are is_gimple_min_invariant
15341         and SSA_NAME_IS_DEFAULT_DEF.
15342
15343 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15344
15345         * graphite-cloog-util.c (oppose_constraint):
15346         Extend loop counter's value range (CLOOG_ORG).
15347         (cloog_matrix_to_ppl_constraint): Same.
15348         (new_Constraint_System_from_Cloog_matrix): Same.
15349         * graphite-cloog-compat.h (matrix_num_type): New.
15350
15351 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15352
15353         * graphite.c (graphite_initialize): Do not initialize
15354         CLooG and initialize the Parma Polyhedra Library
15355         manually when using CLOOG_ORG.
15356         (graphite_finalize): Do not finalize CLooG and finalize
15357         the Parma Polyhedra Library manually when using CLOOG_ORG.
15358         * graphite-cloog-compat.h (cloog_initialize): Hide function
15359         when using CLOOG_ORG.
15360         (cloog_finalize): Same.
15361
15362 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15363
15364         * graphite-clast-to-gimple.c (free_scattering): Change
15365         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
15366         (CLOOG_ORG).
15367         (build_cloog_prog): Same.
15368         * graphite-cloog-compat.h (cloog_domain): Removed.
15369         (cloog_scattering): New.
15370         (cloog_set_domain): Removed.
15371         (cloog_set_scattering): New.
15372         (cloog_next_domain): Removed.
15373         (cloog_next_scattering): New.
15374         (cloog_set_next_domain): Removed.
15375         (cloog_set_next_scattering): New.
15376         (CloogScatteringList): New.
15377         (CloogScattering): New.
15378         (cloog_scattering_free): New.
15379         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
15380         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
15381         New.
15382
15383 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15384
15385         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
15386         CloogState.
15387         (set_cloog_options): Same.
15388         (print_clast_stmt): Same.
15389         (scop_to_clast): Same.
15390         (print_generated_program): Same.
15391         (gloog): Same.
15392         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
15393         (scop_to_clast): Extend with CloogState.
15394         * graphite-cloog-util.c: Include graphite-cloog-compat.h
15395         (new_Cloog_Domain_from_ppl_Polyhedron):
15396         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
15397         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
15398         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15399         * graphite-cloog-util.h (build_cloog_prog): Same.
15400         * graphite-cloog-copat.h (build_cloog_prog): New.
15401         (CloogState): New.
15402         (cloog_state_malloc): New.
15403         (cloog_state_free): New.
15404         (cloog_loop_malloc): New.
15405         (cloog_options_malloc): New.
15406         (cloog_statement_alloc): New.
15407         (cloog_domain_from_cloog_matrix): New.
15408         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
15409         (new_Cloog_Domain_from_ppl_Polyhedron): New.
15410
15411 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15412
15413         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
15414         type of NAME now depends on used CLooG version.
15415         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
15416         (gcc_type_for_clast_expr): Same.
15417         (print_clast_stmt): Replace pprint with clast_pprint.
15418         * graphite-cloog-compat.h: Provide compatibility macros for
15419         CLooG Legacy.
15420         (clast_name_p): New.
15421         (clast_expr_term): New.
15422         (clast_expr_red): New.
15423         (clast_expr_bin): New.
15424         (clast_pprint): New.
15425
15426 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15427
15428         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
15429         compatible to newer CLooG releases (CLOOG_ORG).
15430         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
15431         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
15432         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
15433         (build_cloog_prog) : New.
15434         (cloog_program_extract_scalars): New.
15435         (cloog_program_scatter): New.
15436
15437 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15438
15439         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
15440         conditionally (CLOOG_ORG).
15441         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
15442         (cloog_statement_usr): New.
15443         (cloog_domain): Same.
15444         (cloog_set_domain): Same.
15445         (cloog_next_domain): Same.
15446         (cloog_set_next_domain): Same.
15447         (cloog_program_nb_scattdims): Same.
15448         (cloog_program_set_nb_scattdims): Same.
15449         (cloog_program_names): Same.
15450         (cloog_program_set_names): Same.
15451         (cloog_program_set_context): Same.
15452         (cloog_program_set_loop): Same.
15453         (cloog_program_blocklist): Same.
15454         (cloog_program_set_blocklist): Same.
15455         (cloog_program_scaldims): Same.
15456         (cloog_program_set_scaldims): Same.
15457         (cloog_names_nb_parameters): Same.
15458         (cloog_names_set_nb_parameters): Same.
15459         (cloog_names_parameters): Same.
15460         (cloog_names_set_parameters): Same.
15461         (cloog_names_set_nb_iterators): Same.
15462         (cloog_names_set_iterators): Same.
15463         (cloog_names_set_nb_scattering): Same.
15464         (cloog_names_set_scattering): Same.
15465         (cloog_statement_set_usr): Same.
15466         (cloog_loop_set_next): Same.
15467         (cloog_loop_set_domain): Same.
15468         (cloog_loop_set_block): Same.
15469         (cloog_block_list_next): Same.
15470         (cloog_block_list_set_next):
15471         (cloog_block_list_set_block): Same.
15472
15473 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15474
15475         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
15476         a bool.
15477         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
15478         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
15479         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
15480         when something has been changed.
15481         (rewrite_commutative_reductions_out_of_ssa): Same.
15482
15483 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15484
15485         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
15486         handle the case when def is in the sese region.
15487         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
15488         for invariant expressions.
15489         (rewrite_cross_bb_phi_deps): Removed.
15490         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
15491         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
15492         rewrite_cross_bb_phi_deps.
15493
15494 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15495
15496         * graphite-sese-to-poly.c
15497         (rewrite_commutative_reductions_out_of_ssa_loop): Call
15498         scev_analyzable_p only on is_gimple_reg
15499
15500 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15501
15502         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
15503         (rewrite_close_phi_out_of_ssa): Propagate constant values or
15504         parametric expressions outside the scop region.
15505         (rewrite_cross_bb_scalar_deps): Same.
15506         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
15507
15508 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15509
15510         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
15511         SSA_NAME_DEF_STMT only on SSA_NAMEs.
15512
15513 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15514
15515         * tree-scalar-evolution.c (instantiate_scev_name): Do not
15516         instantiate default definitions.
15517
15518 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
15519             Sebastian Pop  <sebastian.pop@amd.com>
15520
15521         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
15522         (loop_exits_from_bb_p): New.
15523         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
15524         (loop_exits_from_bb_p): Declared.
15525         * graphite-scop-detection.c (scopdet_basic_block_info): Call
15526         loop_exits_to_bb_p.
15527
15528 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15529
15530         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
15531         extra parameter for the region.  Call scev_analyzable_p.
15532         (rewrite_reductions_out_of_ssa): Update call to
15533         rewrite_close_phi_out_of_ssa.
15534         (rewrite_cross_bb_phi_deps): Same.
15535         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
15536         parameter for the region.  Call scev_analyzable_p.
15537         (rewrite_commutative_reductions_out_of_ssa): Update call to
15538         rewrite_commutative_reductions_out_of_ssa_loop.
15539
15540 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15541
15542         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
15543
15544 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15545
15546         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
15547         SSA scalar phi nodes that can be scev_analyzable_p.
15548
15549 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15550
15551         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
15552         handle SSA_NAME_IS_DEFAULT_DEF.
15553
15554 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15555
15556         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
15557
15558 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15559
15560         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
15561         case non close-phi nodes with one argument.
15562
15563 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15564
15565         * sese.h (scev_analyzable_p): Scevs could be expressions without
15566         chrecs and still be scev_analyzable_p.
15567
15568 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15569
15570         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
15571
15572 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15573
15574         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
15575         * cfgloop.h (struct loop): Remove single_iv field.
15576         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
15577         (scop_canonicalize_loops): Removed.
15578         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
15579         over all the loop phi nodes in loop->header.
15580         (build_poly_scop): Remove use of scop_canonicalize_loops.
15581
15582 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15583
15584         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
15585         handle GIMPLE_CALL.
15586
15587 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15588
15589         * tree-chrec.c (chrec_apply): Should only apply to the specified
15590         variable.  Also handle multivariate chains of recurrences that
15591         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
15592
15593 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15594
15595         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
15596         (debug_clast_name_indexes_1): Removed.
15597         (debug_clast_name_indexes): Removed.
15598         (pbb_to_depth_to_oldiv): Removed.
15599         (build_iv_mapping): Replace the use of rename_map with iv_map.
15600         (translate_clast_user): Remove uses of rename_map.  Allocate and
15601         free iv_map.
15602         (translate_clast_for_loop): Remove uses of rename_map.
15603         (translate_clast_for): Same.
15604         (translate_clast_guard): Same.
15605         (translate_clast): Same.
15606         (gloog): Same.
15607         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
15608         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
15609         * sese.c (set_rename): Now static.
15610         (rename_variables_in_stmt): Removed.
15611         (rename_uses): New.
15612         (is_parameter): Removed.
15613         (is_iv): Removed.
15614         (expand_scalar_variables_call): Removed.
15615         (expand_scalar_variables_ssa_name): Removed.
15616         (expand_scalar_variables_expr): Removed.
15617         (expand_scalar_variables_stmt): Removed.
15618         (expand_scalar_variables): Removed.
15619         (rename_variables): Removed.
15620         (remove_condition): Removed.
15621         (get_true_edge_from_guard_bb): Removed.
15622         (get_false_edge_from_guard_bb): Removed.
15623         (struct igp): Removed.
15624         (default_before_guard): Removed.
15625         (convert_for_phi_arg): Removed.
15626         (add_guard_exit_phis): Removed.
15627         (insert_guard_phis): Removed.
15628         (graphite_copy_stmts_from_block): Now also uses iv_map and a
15629         region.  Do not copy conditions.  Do not copy induction variables.
15630         Call rename_uses.
15631         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
15632         the translated statement.  Use the iv_map for the induction
15633         variable renaming.
15634         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
15635         (set_rename): Removed declaration.
15636         (scev_analyzable_p): ...here.
15637         * tree-chrec.c (chrec_apply_map): New.
15638         * tree-chrec.h (chrec_apply_map): Declared.
15639
15640 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15641
15642         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
15643         insert_loop_close_phis.
15644         * sese.c (name_defined_in_loop_p): Removed.
15645         (expr_defined_in_loop_p): Removed.
15646         (alive_after_loop): Removed.
15647         (close_phi_not_yet_inserted_p): Removed.
15648         (struct alep): Removed.
15649         (add_loop_exit_phis): Removed.
15650         (insert_loop_close_phis): Removed.
15651
15652 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15653
15654         * graphite-cloog-util.c
15655         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
15656         * graphite-poly.c
15657         (psct_scattering_dim_for_loop_depth): Same.
15658
15659 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15660
15661         * graphite-cloog-util.h: Added cloog.h.
15662         * graphite-blocking.c: Removed cloog.h.
15663         * graphite-dependences.c: Same.
15664         * graphite-interchange.c: Same.
15665         * graphite-poly.c: Same.
15666         * graphite-ppl.c: Same.
15667         * graphite-scop-detection.c: Same.
15668         * graphite-sese-to-poly.c:
15669         Removed cloog.h.
15670         Removed graphite-clast-to-gimple.h.
15671         (check_poly_representation): Removed (unused).
15672         * graphite-sese-to-poly.h
15673         (check_poly_representation): Removed (unused).
15674
15675 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15676
15677         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
15678         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
15679         (graphite-cloog-util.o): New.
15680         (graphite-ppl.o): Added graphite-cloog-util.h.
15681         * graphite-clast-to-gimple.c:
15682         Added graphite-cloog-util.h to include statements.
15683         * graphite-cloog-util.c: New.
15684         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
15685         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15686         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15687         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15688         (insert_constraint_into_matrix): Same.
15689         (ppl_Constrain_System_number_of_constraints): Same.
15690         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15691         (oppose_constraint): Same.
15692         (cloog_matrix_to_ppl_constraint): Same.
15693         (new_Constraint_System_from_Cloog_Matrix): Same.
15694         * graphite-cloog-util.h: New.
15695         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
15696         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15697         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15698         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15699         (insert_constraint_into_matrix): Same.
15700         * graphite-ppl.c:
15701         Added graphite-cloog-util.h to include statements.
15702         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
15703         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15704         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15705         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15706         (insert_constraint_into_matrix): Same.
15707         (ppl_Constrain_System_number_of_constraints): Same.
15708         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15709         (oppose_constraint): Same.
15710         (cloog_matrix_to_ppl_constraint): Same.
15711         (new_Constraint_System_from_Cloog_Matrix): Same.
15712         * graphite-ppl.h:
15713         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
15714         graphite-cloog-util.h.
15715         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15716         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15717         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15718         (insert_constraint_into_matrix): Same.
15719
15720 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15721
15722         * graphite-clast-to-gimple.c
15723         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
15724         (precision_for_interval): Same.
15725         (gcc_type_for_interval): Same.
15726         (compute_type_for_level): Same.
15727         * graphite-interchange.c
15728         (lst_interchange_profitable_p): Same.
15729         * graphite-poly.c
15730         (psct_scattering_dim_for_loop_depth): Same.
15731         * graphite-ppl.c
15732         (ppl_max_for_le_pointset): Same.
15733         (ppl_min_for_le_pointset): Same.
15734
15735 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15736
15737         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
15738         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
15739
15740 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15741
15742         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
15743         rewrite_close_phi_out_of_ssa.
15744
15745 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15746
15747         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
15748
15749 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15750
15751         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
15752         rename_map.
15753         * sese.c (debug_rename_map): Same.
15754         (get_rename): Same.
15755         (set_rename): Same.
15756         (rename_variables_in_stmt): Same.
15757         (expand_scalar_variables_call): Same.
15758         (expand_scalar_variables_ssa_name): Same.
15759         (expand_scalar_variables_expr): Same.
15760         (expand_scalar_variables_stmt): Same.
15761         (expand_scalar_variables): Same.
15762         (rename_variables): Same.
15763         (graphite_copy_stmts_from_block): Same.
15764         (copy_bb_and_scalar_dependences): Same.
15765
15766 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15767
15768         * graphite-clast-to-gimple.c (copy_renames): Removed.
15769         (translate_clast_for): Do not call copy_renames.
15770         (translate_clast_guard): Same.
15771
15772 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15773
15774         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
15775         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
15776         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
15777         before rewrite_cross_bb_scalar_deps.
15778
15779 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15780
15781         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
15782         Early return in when flag_associative_math is not set.
15783
15784 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15785
15786         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
15787         of SSA copies on edges except for loop->latch.
15788
15789 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15790
15791         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
15792         Split out of rewrite_reductions_out_of_ssa.
15793         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
15794         Declared.
15795         * graphite.c (graphite_transform_loops): Call it.
15796
15797 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15798
15799         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
15800
15801 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
15802
15803         * dbgcnt.def (graphite_scop): New counter.
15804         * graphite.c: Include dbgcnt.h.
15805         (graphite_transform_loops): Use new counter to limit transformations.
15806         * Makefile.in (graphite.o): Depend on DBGCNT_H.
15807
15808 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15809
15810         * passes.c (init_optimization_passes): Add pass_graphite.
15811         Schedule a pass_copy_prop before pass_graphite_transforms.
15812         * timevar.def (TV_GRAPHITE): Declared.
15813         * tree-pass.h (pass_graphite): Declared.
15814         * tree-ssa-loop.c (pass_graphite): New.
15815
15816 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15817
15818         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
15819         Remove calls to rename_nb_iterations and rename_sese_parameters.
15820         * graphite-clast-to-gimple.h (gloog): Update declaration.
15821         * graphite.c (graphite_transform_loops): Update call to gloog.
15822         * sese.c (rename_variables_in_expr): Removed.
15823         (rename_nb_iterations): Removed.
15824         (rename_sese_parameters): Removed.
15825         * sese.h (rename_nb_iterations): Removed.
15826         (rename_sese_parameters): Removed.
15827
15828 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15829
15830         * graphite-clast-to-gimple.c (gloog): Remove call to
15831         sese_adjust_liveout_phis.
15832         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
15833         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
15834         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
15835         rewrite_phi_out_of_ssa.
15836         * sese.c (get_vdef_before_sese): Removed.
15837         (sese_adjust_vphi): Removed.
15838         (sese_adjust_liveout_phis): Removed.
15839         * sese.h (sese_adjust_liveout_phis): Removed.
15840
15841 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15842
15843         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
15844         argument for the place after which to insert the out of SSA copy.
15845         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
15846         (rewrite_phi_out_of_ssa): Same.
15847         (rewrite_cross_bb_scalar_deps): Same.
15848         (insert_copyout): Removed.
15849         (insert_copyin): Removed.
15850         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
15851         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
15852         insert_copyin.
15853
15854 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15855
15856         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
15857         (rewrite_reductions_out_of_ssa): Same.
15858         (rewrite_commutative_reductions_out_of_ssa): Same.
15859         (build_poly_scop): Do not call these functions.
15860         * graphite-sese-to-poly.h (build_poly_scop): Declared.
15861         (rewrite_reductions_out_of_ssa): Declared.
15862         (rewrite_commutative_reductions_out_of_ssa): Declared.
15863         * graphite.c (graphite_transform_loops): Call on every scop
15864         rewrite_commutative_reductions_out_of_ssa before calling
15865         rewrite_reductions_out_of_ssa and build_scop_bbs.
15866
15867 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15868
15869         * graphite-dependences.c (dot_deps): Make system call to dotty run
15870         in background.
15871         (dot_deps_stmt): Same.
15872         * graphite-poly.c (dot_lst): Same.
15873
15874 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15875
15876         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
15877         phi_arg_in_outermost_loop.
15878         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
15879         (remove_invariant_phi): Same.
15880
15881 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
15882
15883         * target.def (output_addr_const_extra): New hook.
15884         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
15885         * doc/tm.texi: Regenerate.
15886         * targhooks.c (default_asm_output_addr_const_extra): New function.
15887         * targhooks.h (default_asm_output_addr_const_extra): Declare.
15888         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
15889         target hook.
15890
15891         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15892         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
15893         * config/i386/i386.h (output_addr_const_extra): Rename to...
15894         (i386_asm_output_addr_const_extra): ...this. Make static.
15895         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15896
15897 2010-08-11  Richard Henderson  <rth@redhat.com>
15898
15899         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
15900
15901 2010-08-11  Nick Clifton  <nickc@redhat.com>
15902
15903         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
15904         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
15905         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
15906         stormy16-lib2-cmpsi.c.
15907
15908         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
15909         -O2.
15910
15911 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
15912
15913         * opts.h (struct cl_option_handler_func): Make handler take
15914         cl_decoded_option structure as parameter, not individual elements.
15915         (struct cl_option_handlers): Make callbacks take cl_decoded_option
15916         structure as parameter, not individual elements.
15917         (handle_option): Take cl_decoded_option structure as parameter,
15918         not individual elements.
15919         (handle_generated_option): Declare.
15920         * opts-common.c (handle_option): Take cl_decoded_option structure
15921         as parameter, not individual elements.  Update calls to callback
15922         and handler functions.
15923         (handle_generated_option): New.
15924         (read_cmdline_option): Update calls to callback functions and
15925         handle_option.
15926         * opts.c (common_handle_option, complain_wrong_lang,
15927         unknown_option_callback, post_handling_callback,
15928         lang_handle_option, target_handle_option): Take cl_decoded_option
15929         structure as parameter, not individual elements.
15930         (lang_handle_option, target_handle_option, common_handle_option):
15931         Assert option has at most one argument.
15932         (enable_warning_as_error): Call handle_generated_option instead of
15933         handle_option.  Do not pass -Werror argument as argument of
15934         generated option.
15935
15936 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15937
15938         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
15939         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
15940         (SUBWORD_BOOL_CAS): Likewise.
15941         (SUBWORD_SYNC_OP): Likewise.
15942         (SUBWORD_TEST_AND_SET): Likewise.
15943         (FETCH_AND_OP_WORD): Parenthesise INF_OP
15944         (SUBWORD_SYNC_OP): Likewise.
15945         (OP_AND_FETCH_WORD): Likewise.
15946
15947 2010-08-10  Xinliang David Li  <davidxl@google.com>
15948
15949         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
15950         compute max/min offset in address.
15951
15952 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
15953
15954         * ira-live.c: Include sbitmap.h.
15955         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
15956         Compress live ranges even more.
15957
15958 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15959
15960         * coverage.c (ctr_labels): Delete.
15961
15962 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15963
15964         PR bootstrap/45177
15965         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
15966         test here from arm_gen_load_multiple_1.
15967         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
15968         multiple_operation_profitable_p.
15969
15970 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15971
15972         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
15973         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
15974
15975 2010-08-10  Richard Henderson  <rth@redhat.com>
15976
15977         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
15978         after saving registers.  Assert that SSE registers are only saved
15979         with a sufficiently aligned frame.
15980         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
15981         remove stack_realign_fp handling.
15982         (ix86_expand_prologue): Save int registers before stack_realign_fp,
15983         and do not mark the stack alignment as frame related.
15984         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
15985
15986         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
15987         saves when re-aligning the stack.
15988
15989 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15990
15991         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
15992         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
15993         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
15994
15995 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15996
15997         * dwarf2out.c (struct die_struct): Move die_tag to the end.
15998
15999 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
16000
16001         * config/arm/iterators.md: New file.
16002         * config/arm/arm.md: Include iterators.md.
16003         (QHSI): Move to new file.
16004         (LTUGEU, cnb, optab, ior_xor): Likewise.
16005         * config/arm/iwmmxt.md (VMMX): Move to new file.
16006         (VSHFT, MMX_char): Likewise.
16007         * config/arm/neon.md (VD): Move to new file.
16008         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
16009         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
16010         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
16011         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
16012         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
16013         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
16014         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
16015         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
16016         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
16017         (Is_d_reg, V_mode_nunits): Likewise.
16018         * config/arm/vec-common.md (VALL): Move to new file.
16019         (VALLW, VINT, VINTW): Likewise.
16020
16021 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
16022
16023         PR middle-end/45182
16024         * combine.c (make_compound_operation): Don't try to convert
16025         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
16026
16027 2010-08-10  Richard Guenther  <rguenther@suse.de>
16028
16029         * tree.h (get_object_alignment): Adjust prototype.
16030         * builtins.c (get_object_alignment): Return unsigned int,
16031         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
16032         and TARGET_MEM_REF properly.
16033         (get_pointer_alignment): Adjust.
16034         * emit-rtl.c (get_mem_align_offset): Adjust comment.
16035         (set_mem_attributes_minus_bitpos): Adjust.
16036         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
16037
16038 2010-08-10  Richard Guenther  <rguenther@suse.de>
16039
16040         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
16041         (copy_prop_visit_assignment): Simplify.
16042         (copy_prop_visit_stmt): Also visit assignments from
16043         constants.
16044         (copy_prop_visit_phi_node): Use operand_equal_p.
16045
16046 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16047
16048         * ipa-split.c (find_split_points): Free stack.
16049
16050 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16051
16052         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
16053         * tree.c (tree_node_kind): Delete corresponding entries.
16054
16055 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
16056
16057         * alias.c (may_alias_p): Remove unused ret.
16058
16059 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
16060
16061         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
16062         alias_sets_conflict_p.
16063         (walk_mems_1): Moved from alias.c.
16064         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
16065         in alias.c.
16066         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
16067         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
16068         * alias.c (walk_mems_2): Moved to ddg.c.
16069         (walk_mems_1): Ditto.
16070         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
16071         to ddg.c.
16072         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
16073         disambiguation.
16074         *(may_alias_p): New function to check whether two memory expression
16075         may alias or not. Currently used in buidling inter-iteration memory
16076         dependence.
16077         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
16078         (insn_alias_sets_conflict_p): Removed
16079         *rtl.h (may_alias_p): New function prototype.
16080
16081 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16082
16083         * tree.c (nreverse): Assert that we don't have a BLOCK.
16084
16085 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16086
16087         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
16088         * config/arm/arm.c (arm_get_pcs_model): Likewise.
16089         * config/avr/avr.c (init_cumulative_args): Likewise.
16090         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
16091         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
16092         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
16093         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
16094         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
16095         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
16096         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
16097         * dwarf2out.c (gen_subprogram_die): Likewise.
16098         * function.c (allocate_struct_function): Likewise.
16099         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
16100         (deserves_ellipsis): Delete.
16101
16102 2010-08-09  Richard Guenther  <rguenther@suse.de>
16103
16104         * tree-ssa-copy.c (cached_last_copy_of): Remove.
16105         (valueize_val): New function.
16106         (get_last_copy_of): Remove.
16107         (set_copy_of_val): Simplify.
16108         (dump_copy_of): Likewise.
16109         (copy_prop_visit_cond_stmt): Use valueize_val.
16110         (copy_prop_visit_phi_node): Properly handle unvisited names.
16111         Drop code managing copy-of chains.
16112         (init_copy_prop): Adjust.
16113         (fini_copy_prop): Likewise.
16114         (execute_copy_prop): Remove obsolete comment.
16115
16116 2010-08-09  Richard Guenther  <rguenther@suse.de>
16117
16118         PR middle-end/44632
16119         * function.c (gimplify_parameters): Do not clear addressable
16120         bit of the original parameter.
16121
16122 2010-08-09  Richard Guenther  <rguenther@suse.de>
16123
16124         PR middle-end/45212
16125         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
16126         alignment from MEM_REF offset only if we took it from the
16127         base object.
16128
16129 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
16130
16131         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
16132
16133 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16134
16135         * c-tree.h (build_arg_info): Declare.
16136         * c-decl.c (build_arg_info): Define.
16137         (get_parm_info): Call it.  Delete initialization code.
16138         * c-parser.c (c_parser_parms_declarator): Likewise.
16139         (c_parser_parms_list_declaractor): Likewise.
16140
16141 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16142
16143         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
16144         (struct c_arg_info): Change type of tags field.
16145         * c-decl.c (grokdeclarator): Update for changed type of tags field.
16146         (get_parm_info): Likewise.
16147         (store_parm_decls_newstyle): Likewise.
16148
16149 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16150
16151         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
16152         (branch_island_list): Delete.
16153         (branch_islands): Declare.
16154         (add_compiler_branch_island): Adjust for branch_islands instead of
16155         branch_island_list.
16156         (macho_branch_islands): Likewise.
16157         (no_previous_def): Likewise.
16158         (get_prev_label): Likewise.
16159
16160 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16161
16162         PR boehm-gc/34544
16163         * gthr-posix.h (__gthread_start): Delete.
16164         (__gthread_active_init): Use pthread_default_stacksize_np instead of
16165         pthread_create to determine if hpux pthreads are active.
16166         * gthr-posix95.h (__gthread_start): Delete.
16167         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
16168
16169 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
16170
16171         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
16172         _WIN64 not expanded.
16173
16174 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
16175             H.J. Lu  <hongjiu.lu@intel.com>
16176
16177         PR target/45213
16178         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
16179         to output 32bit SFmode immediate as 8 byte sign extended value.
16180
16181 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16182
16183         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
16184         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
16185         (SUBWORD_BOOL_CAS): Likewise.
16186         (SUBWORD_SYNC_OP): Likewise.
16187         (SUBWORD_TEST_AND_SET): Likewise.
16188         (FETCH_AND_OP_WORD): Parenthesise INF_OP
16189         (SUBWORD_SYNC_OP): Likewise.
16190         (OP_AND_FETCH_WORD): Likewise.
16191
16192 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16193
16194         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
16195         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
16196         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
16197         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
16198         generic part.
16199         (cortex_a9_sched_adjust_cost): New function.
16200         (xscale_sched_adjust_cost): New function.
16201         * config/arm/arm-protos.h (struct tune_params): New field
16202         sched_adjust_cost.
16203         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
16204
16205 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
16206
16207         PR target/44942
16208         * config/sparc/sparc.c (function_arg_advance): Always take into account
16209         the padding, if any.
16210
16211 2010-08-06  Richard Guenther  <rguenther@suse.de>
16212
16213         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
16214         (dump_lattice_value): Dump it.
16215         (get_default_value): Adjust.
16216         (get_constant_value): Likewise.
16217         (set_value_varying): Likewise.
16218         (set_lattice_value): Make sure to not go up the lattice
16219         with bitwise constant values.
16220         (get_value_for_expr): Handle ADDR_EXPRs.
16221         (value_to_double_int): New function.
16222         (get_value_from_alignment): Likewise.
16223         (do_dbg_cnt): Adjust.
16224         (ccp_lattice_meet): Handle partially constant values.
16225         (bit_value_unop_1): New function.
16226         (bit_value_binop_1): Likewise.
16227         (bit_value_unop): Likewise.
16228         (bit_value_binop): Likewise.
16229         (evaluate_stmt): Track partially constant values if
16230         flag_tree_bit_ccp is set.
16231         (ccp_fold_stmt): Dump if we folded a predicate.
16232         (ccp_visit_stmt): Adjust.
16233         * common.opt (ftree-bit-ccp): New flag.
16234         * doc/invoke.texi (ftree-bit-ccp): Document.
16235         * opts.c (decode_options): Enable bit-CCP at -O1.
16236
16237 2010-08-06  Alan Modra  <amodra@gmail.com>
16238
16239         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
16240         and -mrelocatable-lib description.
16241
16242 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
16243
16244         From Martin Thuresson  <martint@google.com>
16245         * postreload.c (reload_cse_simplify_operands): Use
16246         SET_REGNO_RAW instead of SET_REGNO.
16247         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
16248         SET_REGNO.
16249         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
16250         instead of SET_REGNO.
16251         * rtl.h (SET_REGNO_RAW): New macro.
16252
16253 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
16254
16255         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
16256         computations.  Fix formatting issues.
16257         (num_sign_bit_copies1): Likewise.
16258         (canonicalize_condition): Likewise.
16259
16260 2010-08-05  Richard Henderson  <rth@redhat.com>
16261
16262         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
16263         (floor_log2): Use clz_hwi.
16264         (exact_log2): Use ctz_hwi.
16265         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
16266         * builtins.c (fold_builtin_bitop): Use them.
16267         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
16268         * combine.c (get_pos_from_mask): Use ctz_hwi.
16269         * double-int.c (double_int_ctz): Likewise.
16270         * explow.c (force_reg): Likewise.
16271         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
16272
16273 2010-08-05  Richard Henderson  <rth@redhat.com>
16274
16275         PR target/45189
16276         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
16277         the alignment constant is properly sign-extended.
16278
16279 2010-08-05  Richard Guenther  <rguenther@suse.de>
16280
16281         * expr.c (store_expr): Use emit_block_move only if both
16282         source and target are MEMs.  Use store_bit_field if only
16283         the target is a MEM.
16284
16285 2010-08-05  Richard Henderson  <rth@redhat.com>
16286
16287         PR debug/45188
16288         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
16289         (INCOMING_RETURN_ADDR_RTX): Likewise.
16290         (dwarf2out_do_frame): Remove conditional compilation.
16291         (dwarf2out_frame_init): Likewise.
16292
16293 2010-08-05  Nicolas Setton  <setton@adacore.com>
16294
16295         * gcov.c (flag_display_progress): New static variable.
16296         (main): Display progress info on standard output if requested.
16297         (options): Add -d/--display-progress.
16298         (print_usage): Print them.
16299         (process_args): Handle them.
16300         * doc/gcov.texi: Document them.
16301
16302 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16303
16304         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
16305         (ipcp_insert_stage): Redirect only edges not flagged with
16306         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
16307         discovered constants.
16308
16309 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16310
16311         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
16312         (struct ipa_param_descriptor): New fields types and
16313         cannot_devirtualize.
16314         (ipa_param_cannot_devirtualize_p): New function.
16315         (ipa_param_types_vec_empty): Likewise.
16316         (ipa_make_edge_direct_to_target): Declare.
16317         * ipa-cp.c: Fixed first stage driver name in initial comment,
16318         described devirtualization there too.
16319         (ipcp_analyze_node): Call ipa_analyze_params_uses.
16320         (ipcp_print_all_lattices): Print devirtualization info.
16321         (ipa_set_param_cannot_devirtualize): New function.
16322         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
16323         lattice to BOTTOM.
16324         (ipcp_init_stage): Merged into...
16325         (ipcp_generate_summary): ...its caller.
16326         (ipcp_change_tops_to_bottom): Also process type lists.
16327         (ipcp_add_param_type): New function.
16328         (ipcp_copy_types): Likewise.
16329         (ipcp_propagate_types): Likewise.
16330         (ipcp_propagate_stage): Also propagate types.
16331         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
16332         Also return true if propagated types require it.
16333         (ipcp_update_callgraph): Dump redirection info.
16334         (ipcp_process_devirtualization_opportunities): New function.
16335         (ipcp_const_param_count): Include known type information.
16336         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
16337         on new node.  Fixed formatting.
16338         * ipa-prop.c (make_edge_direct_to_target): Renamed to
16339         ipa_make_edge_direct_to_target and changed all callers.  Made
16340         externally visible.
16341         (ipa_node_duplication_hook): Duplicate types vector.
16342         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
16343         redirect outgoing calls for which we can't get a decl from the
16344         statement.  Check that we can get a decl from the call statement.
16345         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
16346         ipa_analyze_params_uses only when ipa-cp is disabled.
16347         * tree-inline.c (get_indirect_callee_fndecl): Removed.
16348         (expand_call_inline): Do not call get_indirect_callee_fndecl.
16349         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
16350         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
16351
16352 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16353
16354         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
16355         temporary. Emit move from temporary to accum, so REG_EQUAL note will
16356         be attached to this insn in correct mode.
16357
16358 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16359
16360         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
16361         using REGNO of base_reg directly.
16362
16363 2010-08-05  Jie Zhang  <jie@codesourcery.com>
16364
16365         PR tree-optimization/45144
16366         * tree-sra.c (type_consists_of_records_p): Return false
16367         if the record contains bit-field.
16368
16369 2010-08-04  Richard Henderson  <rth@redhat.com>
16370
16371         * config/i386/i386.c (struct ix86_frame): Remove padding and
16372         to_allocate members.
16373         (ix86_compute_frame_layout): Don't store them.
16374         (ix86_can_use_return_insn_p): Use a more direct and more obviously
16375         correct condition for the position of the stack pointer.
16376         (ix86_expand_prologue): Compute remaining stack allocation based
16377         on the ultimate stack pointer offset.
16378         (ix86_expand_epilogue): Use more obvious expressions testing for
16379         the stack pointer already pointing to the saved registers.
16380
16381         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
16382         duplication deconstructing the frame pointer.  Simplify
16383         deallocation of the local stack frame.
16384
16385         * reg-notes.def (CFA_EXPRESSION): New.
16386         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
16387         (dwarf2out_frame_debug_cfa_expression): New.
16388         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
16389
16390         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
16391         * config/i386/i386.c (ix86_expand_prologue): Set it.
16392         (ix86_expand_epilogue): Clear it.
16393         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
16394         context, add REG_CFA_EXPRESSION notes.
16395
16396         * config/i386/i386.h (struct machine_frame_state): Rename from
16397         machine_cfa_state.  Add members tracking SP and FP regardless
16398         of the current CFA register.
16399         (ix86_cfa_state): Remove.
16400         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
16401         and sse_reg_save_offset members.
16402         (ix86_compute_frame_layout): Set them.
16403         (gen_push): Increment sp_offset too.
16404         (choose_baseaddr_len, choose_baseaddr): New.
16405         (ix86_emit_save_reg_using_mov): New.
16406         (ix86_emit_save_regs_using_mov): Use it.
16407         (ix86_emit_save_sse_regs_using_mov): Likewise.
16408         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
16409         compare vs the saved red_zone_offset.
16410         (pro_epilogue_adjust_stack): Adjust sp_offset.
16411         (ix86_adjust_stack_and_probe): Likewise.
16412         (ix86_expand_prologue): Set up, use, and validate the new
16413         frame_state_info members.  Use gen_frame_mem.
16414         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
16415         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
16416         new frame_state_info members.
16417         (ix86_emit_leave): Likewise.
16418         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
16419         out-of-range stack pointer offsets here.
16420         (ix86_emit_restore_sse_regs_using_mov): Likewise.
16421         (ix86_expand_epilogue): Use and validate the new frame_state_info
16422         members.  Break up and simplify the logic selecting the
16423         restore_regs_via_mov code path.  Ensure that there will be no
16424         out-of-range stack pointer offsets.
16425
16426         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
16427
16428         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
16429         argument name to reflect the expected tree; fix indentation.
16430         (ix86_asm_output_function_label): Output the entire 32-bit
16431         ms_hook here as bytes ...
16432         (ix86_expand_prologue): ... not here as insns.  Attach the
16433         unwind info for the ms_hook to a blockage insn.
16434         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
16435         (ix86_ms_bitfield_layout_p): Fix indentation.
16436         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
16437
16438         * config/i386/i386.c (ix86_using_red_zone): New.
16439         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
16440         ix86_expand_prologue, ix86_force_to_memory): Use it.
16441
16442         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
16443         saving the int registers.
16444
16445         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
16446         and DWARF2_UNWIND_INFO conditional compilation.
16447
16448 2010-08-04  Richard Henderson  <rth@redhat.com>
16449
16450         PR debug/45171
16451         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
16452         an is_naming_typedef_decl.
16453
16454 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
16455
16456         PR rtl-optimization/45162
16457         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
16458         * dce.c (word_dce_process_block): Likewise.
16459
16460 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
16461
16462         PR target/44583
16463         * config/ia64/constraints.md (Z): New.
16464         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
16465         (xfreg_or_signed_fp01_operand): New.
16466         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
16467         with fr_reg_or_signed_fp01_operand and constraint G with Z.
16468         (subsf3): Ditto.
16469         (*maddsf4): Ditto.
16470         (*msubsf4): Ditto.
16471         (adddf3): Ditto.
16472         (adddf3_trunc): Ditto.
16473         (subdf3): Ditto.
16474         (*subdf3_trunc): Ditto.
16475         (*madddf4): Ditto.
16476         (*madddf4_trunc): Ditto.
16477         (*msubdf4): Ditto.
16478         (*msubdf4_trunc): Ditto.
16479         (addxf3): Replace xfreg_or_fp01_operand with
16480         xfreg_or_signed_fp01_operand and constraint G with Z.
16481         (*addxf3_truncsf): Ditto.
16482         (*addxf3_truncdf): Ditto.
16483         (subxf3): Ditto.
16484         (*subxf3_truncsf): Ditto.
16485         (*subxf3_truncdf): Ditto.
16486         (*maddxf4): Ditto.
16487         (*maddxf4_truncsf): Ditto.
16488         (*maddxf4_truncdf): Ditto.
16489         (*msubxf4): Ditto.
16490         (*msubxf4_truncsf): Ditto.
16491         (*msubxf4_truncdf): Ditto.
16492
16493 2010-08-04  Richard Guenther  <rguenther@suse.de>
16494
16495         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
16496         if either alias-set is zero.
16497
16498 2010-08-04  Richard Guenther  <rguenther@suse.de>
16499
16500         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
16501         * tree-ssa-ccp.c: ... here.
16502         * tree-ssa-copy.c: ... and here.
16503         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
16504         value_range_t): Move ...
16505         * tree-vrp.c: ... here.
16506         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
16507         (substitute_and_fold): Adjust prototype.
16508         * tree-ssa-propagate.c (replace_uses_in): Adjust.
16509         (replace_phi_args_in): Likewise.
16510         (substitute_and_fold): Take callback to query lattice instead
16511         of pointer to lattice.  Replace SSA name defs with lattice
16512         values first.
16513         * tree-ssa-ccp.c (ccp_finalize): Adjust.
16514         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
16515         (get_value): New function.
16516         (fini_copy_prop): Adjust.
16517         * tree-vrp.c (vrp_finalize): Adjust.
16518
16519 2010-08-04  Richard Guenther  <rguenther@suse.de>
16520
16521         PR middle-end/45176
16522         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
16523         points-to set for original MEM_REF.
16524
16525 2010-08-04  Richard Guenther  <rguenther@suse.de>
16526
16527         * tree-ssa-ccp.c (get_constant_value): New function.
16528         (get_rhs_assign_op_for_ccp): Remove.
16529         (valueize_op): New function.
16530         (ccp_fold): Use get_constant_value and valueize_op.
16531         (fold_const_aggregate_ref): Likewise.
16532         (ccp_fold_stmt): Likewise.
16533         (visit_assignment): Simplify.
16534
16535 2010-08-04  Richard Guenther  <rguenther@suse.de>
16536
16537         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
16538         * double-int.h (double_int_ctz): Declare.
16539         * double-int.c (double_int_ctz): New function.
16540
16541 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
16542
16543         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
16544         Define.
16545         picochip_expand_movmemhi : Expand movmem pattern.
16546         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
16547         Declare.
16548         * config/picochip/picochip.md (movmemhi) : New pattern.
16549
16550 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16551
16552         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
16553
16554 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
16555
16556         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
16557         NEG as operand of a MULT by merging it with the other operand.
16558         * combine.c (make_compound_operation): Use trunc_int_for_mode when
16559         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
16560         MULT.
16561         * config/arm/constraints.md (M): Examine only 32 bits of a
16562         HOST_WIDE_INT.
16563         * config/arm/predicates.md (power_of_two_operand): Likewise.
16564
16565 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16566
16567         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
16568         non-NOTE insns.
16569
16570 2010-08-03  Jan Hubicka  <jh@suse.cz>
16571
16572         * ipa-split.c (struct split_point): Add split_part_set_retval.
16573         (find_retval): Forward declare.
16574         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
16575         (consider_split): Compute current->split_part_set_retval.
16576         (visit_bb): Do not look into return value.
16577         (split_function): Handle !split_part_set_retval
16578
16579 2010-08-03  Martin Jambor  <mjambor@suse.cz>
16580
16581         * tree-sra.c (completely_scalarize_record): New parameter REF, create
16582         its own access->expr intead of using build_ref_for_offset.
16583
16584 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
16585
16586         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
16587         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
16588         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
16589         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
16590         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
16591         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
16592         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
16593         DEFAULT_SWITCH_TAKES_ARG.
16594         * config/rx/rx.opt (-patch=): Remove option.
16595         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
16596         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
16597         * doc/invoke.texi (RX Options): Remove -patch=.
16598         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
16599         (option_map): Remove --profile-blocks, --quiet and --silent.
16600
16601 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16602
16603         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
16604         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
16605         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
16606         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16607         Update calls to ix86_expand_compare and ix86_expand_branch.
16608         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
16609         ix86_expand_compare.
16610         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
16611         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16612         Make static.
16613         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
16614         and ix86_compare_op1.  Update calls to ix86_expand_compare.
16615         (ix86_expand_int_movcc): Ditto.
16616         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
16617         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
16618         (ix86_expand_setcc): Ditto.
16619         (ix86_expand_compare): Remove prototype.
16620         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
16621         ix86_compare_op0 and ix86_compare_op1.  Update calls
16622         to ix86_expand_branch to directly pass operands[1] and operands[2].
16623         (cbranchxf4): Ditto.
16624         (cbranch<MODEF:mode>4): Ditto.
16625         (cbranchcc4): Ditto.
16626         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
16627         Update calls to ix86_expand_setcc to directly pass operands[2] and
16628         operands[3].
16629         (cstorexf4): Ditto.
16630         (cstore<MODEF:mode>4): Ditto.
16631         (cstorecc4): Ditto.
16632
16633 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16634
16635         PR target/45063
16636         * caller-save.c (save_call_clobbered_regs): Remove regs from
16637         hard_regs_saved when they are set.
16638
16639 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
16640
16641         PR target/41089
16642         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
16643         as volatile.
16644
16645 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
16646
16647         * common.opt (ftree-loop-distribute-patterns): New.
16648         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
16649         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
16650         at -O3.
16651         * tree-data-ref.c (stores_zero_from_loop): New.
16652         * tree-data-ref.h (stores_zero_from_loop): Declared.
16653         * tree-loop-distribution.c (tree_loop_distribution): Call
16654         stores_zero_from_loop.
16655         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
16656
16657 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16658
16659         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
16660         into account.
16661
16662         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
16663         * config/arm/arm.c (thumb1_code): New variable.
16664         (arm_override_options): Set it.
16665         (thumb1_final_prescan_insn): Keep track of condition code status.
16666         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
16667         jumps that depend on them.
16668         * config/arm/arm.h (thumb1_code): Declare variable.
16669         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
16670         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
16671         thumb1_cc_mode.
16672         (CC_STATUS_INIT): New macro.
16673         * config/arm/constraints.md (Pd): New constraint.
16674         * config/arm/predicates.md (noov_comparison_operator): New predicate.
16675         * config/arm/arm.md (is_thumb1): New define_attr.
16676         (conds): Set default to "clob" when generating Thumb1 code.
16677         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
16678         code are set.  Use two-operand assembly syntax.
16679         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
16680         pattern.
16681         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
16682         codes are set.  Use two-operand assembly syntax.
16683         (zero_extendhisi splitter): Remove constraints.
16684         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
16685         thumb1_movsf_insn): Set conds attribute as appropriate.
16686         (cbranchsi4_insn): Use condition code status from struct
16687         machine_function to determine whether the comparison can be eliminated.
16688         Discourage the alternative using high registers.
16689         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
16690         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
16691         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
16692         subsi3_cbranch): Delete.
16693         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
16694         one subtract and one cbranch insn.
16695
16696         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
16697         thumb2_movdf_soft_insn): Delete patterns.
16698         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
16699         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
16700         (pool_range, neg_pool_range): Use them to define defaults.
16701         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
16702         and allow for TARGET_32BIT.
16703
16704         PR target/40457
16705         * config/arm/arm.h (arm_regs_in_sequence): Declare.
16706         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
16707         load_multiple_sequence, store_multiple_sequence): Delete
16708         declarations.
16709         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
16710         declarations.
16711         * config/arm/ldmstm.md: New file.
16712         * config/arm/arm.c (arm_regs_in_sequence): New array.
16713         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
16714         CHECK_REGS.  All callers changed.
16715         If SAVED_ORDER is nonnull, copy the computed order into it.
16716         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
16717         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
16718         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
16719         If SAVED_ORDER is nonnull, copy the computed order into it.
16720         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
16721         like REGS.  Handle Thumb mode.
16722         (arm_gen_load_multiple_1): New function, broken out of
16723         arm_gen_load_multiple.
16724         (arm_gen_store_multiple_1): New function, broken out of
16725         arm_gen_store_multiple.
16726         (arm_gen_multiple_op): New function, with code from
16727         arm_gen_load_multiple and arm_gen_store_multiple moved here.
16728         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
16729         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
16730         changed.
16731         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
16732         * config/arm/predicates.md (commutative_binary_operator): New.
16733         (load_multiple_operation, store_multiple_operation): Handle more
16734         variants of these patterns with different starting offsets.  Handle
16735         Thumb-1.
16736         * config/arm/arm.md: Include "ldmstm.md".
16737         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
16738         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
16739         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
16740         peepholes): Delete.
16741         * config/arm/ldmstm.md: New file.
16742         * config/arm/arm-ldmstm.ml: New file.
16743
16744         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
16745         if statement which adds extra costs to frame-related expressions.
16746
16747 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16748
16749         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
16750
16751 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
16752
16753         PR target/45142
16754         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
16755         alternative 2.
16756         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
16757         split V4SI operands.
16758
16759 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
16760
16761         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16762         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
16763         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
16764         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
16765
16766 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
16767
16768         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
16769         LOCAL_INCLUDE_DIR.
16770
16771 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
16772
16773         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
16774         used in the call to optab_for_tree_code.  Fix the second
16775         is_widening_mult_p call.  Check that both unwidened operands
16776         have the same sign.
16777
16778 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
16779
16780         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
16781
16782 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
16783
16784         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16785
16786 2010-07-30  DJ Delorie  <dj@redhat.com>
16787
16788         * config/rx/predicates.md (rx_constshift_operand): New.
16789         * config/rx/rx.md (zs_cond): New.
16790         (cbranchsi4): Remove mode.
16791         (*cbranchsi4_<code>): Likewise.
16792         (*tstbranchsi4_<code>): New.
16793         (*tstbranchsi4r_<code>): New.
16794         (*tstbranchsi4m_eq): New.
16795         (*tstbranchsi4m_ne): New.
16796         (cbranchsf4): Remove mode.
16797         (*cbranchsf4_<code>): Likewise.
16798
16799 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
16800
16801         * rtlanal.c (simplify_subreg_regno): Don't treat
16802         HARD_FRAME_POINTER_REGNUM specially.
16803
16804 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
16805
16806         * common.opt (-G): Don't define option here.
16807         * config/g.opt: New.
16808         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
16809         rs6000/powerpc and score targets.
16810         * opts.c (common_handle_option): Don't handle -G here.
16811         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
16812         * config/frv/frv.c (frv_handle_option): Handle -G.
16813         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
16814         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
16815         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
16816         * config/mips/mips.c (mips_handle_option): Handle -G.
16817         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
16818         * config/score/score.c (score_handle_option): Handle -G.
16819
16820 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
16821
16822         * config/mmix/mmix.c: Include basic-block.h.
16823
16824 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
16825
16826         PR debug/45055
16827         PR rtl-optimization/45137
16828         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
16829         prototypes.
16830         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
16831         New functions.
16832         * combine.c (next_nonnote_nondebug_insn): Removed.
16833         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
16834         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
16835         * sched-deps.c (sched_analyze_insn): Likewise.
16836         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
16837         * rtlanal.c (canonicalize_condition): Likewise.
16838         * postreload.c (reload_combine_recognize_pattern): Likewise.
16839         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
16840
16841 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
16842
16843         * config/i386/i386.md (int_cond): Remove code iterator.
16844         (fp_cond): Ditto.
16845         (cbranch<mode>4): Use ordered_comparison_operator predicate
16846         for operator0.
16847         (cstore<mode>4): Ditto for operator1.
16848         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
16849         (add<mode>cc): ditto.
16850
16851 2010-07-30  Richard Guenther  <rguenther@suse.de>
16852
16853         PR middle-end/45141
16854         * expr.c (expand_expr_real_1): Check for not handled base address.
16855
16856 2010-07-30  Richard Guenther  <rguenther@suse.de>
16857
16858         * ipa-prop.c (ipa_modify_formal_parameters): Use
16859         build_distinct_type_copy.
16860
16861 2010-07-30  Anthony Green  <green@moxielogic.com>
16862
16863         * config/moxie/rtems.h: New file.
16864         * config.gcc: Add moxie-rtems support.
16865
16866 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16867
16868         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
16869         df flags as in run_fast_df_dce.
16870
16871 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16872
16873         Revert:
16874         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16875
16876         * rtl.def (NOTE): Swap operands 4 and 5.
16877         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
16878         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
16879         Adjust accordingly.
16880         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
16881
16882 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16883
16884         PR debug/45110
16885         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
16886         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
16887         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
16888         formal parameters.
16889         (gen_decl_die): Change return type to dw_die_ref, return what
16890         gen_formal_parameter_die returned.
16891
16892 2010-07-29  Martin Jambor  <mjambor@suse.cz>
16893
16894         * dbgcnt.def (eipa_sra): New counter.
16895         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
16896
16897 2010-07-29  Xinliang David Li  <davidxl@google.com>
16898
16899         PR bootstrap/45119
16900         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
16901         in revision 162652.
16902
16903 2010-07-29  Richard Guenther  <rguenther@suse.de>
16904
16905         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
16906         (TV_TREE_STORE_CCP): Likewise.
16907         (TV_TREE_REDPHI): Likewise.
16908
16909 2010-07-29  Richard Guenther  <rguenther@suse.de>
16910
16911         * double-int.h (double_int_and_not): New function.
16912         * combine.c (try_combine): Use it.
16913         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
16914
16915 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16916
16917         PR rtl-optimization/42575
16918         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
16919         Argument AU removed.  All callers changed.  Ignore artificial refs.
16920         Use return value of df_word_lr_simulate_defs to decide whether an insn
16921         is necessary.
16922         (fast_dce): Rename arg to WORD_LEVEL.
16923         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
16924         static.
16925         (pass_fast_rtl_byte_dce): Delete.
16926         * dce.h (run_word_dce): Declare.
16927         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
16928         All callers changed.  Simplify code to only deal with two-word regs.
16929         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
16930         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
16931         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
16932         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
16933         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
16934         (df_word_lr_mark_ref): Declare.
16935         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
16936         df_word_lr_simulate_uses): Declare or rename from byte variants.
16937         (df_byte_lr_simulate_artificial_refs_at_top,
16938         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16939         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
16940         declarations.
16941         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
16942         (enum df_mm): Delete.
16943         * df-byte-scan.c: Delete file.
16944         * df-problems.c (df_word_lr_problem_data): Renamed from
16945         df_byte_lr_problem_data, all members deleted except for
16946         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
16947         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
16948         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16949         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
16950         df_byte_lr_confluence_0): Delete functions.
16951         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
16952         callers changed.
16953         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
16954         Don't initialize members that were deleted, don't try to discover data
16955         about registers.  Ignore hard regs.
16956         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
16957         (df_word_lr_mark_ref): New function.
16958         (df_word_lr_bb_local_compute): Renamed from
16959         df_byte_bb_lr_local_compute; all callers changed.  Use
16960         df_word_lr_mark_ref.  Assert that artificial refs don't include
16961         pseudos.  Ignore hard registers.
16962         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
16963         Assert that exit block uses don't contain pseudos.
16964         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
16965         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
16966         callers changed.  Ignore hard regs.
16967         (df_word_lr_transfer_function): Renamed from
16968         df_byte_lr_transfer_function; all callers changed.
16969         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
16970         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
16971         changed.
16972         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
16973         callers changed.
16974         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
16975         confluence operator 0 set to NULL.
16976         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
16977         callers changed.
16978         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
16979         Return bool, true if bitmap changed or insn otherwise necessary.
16980         All callers changed.  Simplify using df_word_lr_mark_ref.
16981         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
16982         all callers changed.  Simplify using df_word_lr_mark_ref.
16983         * lower-subreg.c: Include "dce.h"
16984         (decompose_multiword_subregs): Call run_word_dce if df available.
16985         * Makefile.in (lower-subreg.o): Adjust dependencies.
16986         (df-byte-scan.o): Delete.
16987         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
16988
16989 2010-07-29  Richard Guenther  <rguenther@suse.de>
16990
16991         * tree.c (build_vector): Assert that the vector constant
16992         has enough elements.
16993         (build_vector_from_ctor): Pad with trailing zeros.
16994
16995 2010-07-29  Richard Guenther  <rguenther@suse.de>
16996
16997         PR tree-optimization/45120
16998         * tree-ssa-structalias.c (get_constraint_for_component_ref):
16999         Handle offset in DEREFs properly.
17000         (get_constraint_for_1): Handle MEM_REF offset properly.
17001
17002 2010-07-29  Richard Guenther  <rguenther@suse.de>
17003
17004         PR middle-end/45034
17005         * convert.c (convert_to_integer): Always use an unsigned
17006         type for narrowed negate and bitwise not.
17007
17008 2010-07-29  Ira Rosen  <irar@il.ibm.com>
17009
17010         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
17011         to outer loop when creating reduction epilogue for double reduction,
17012         and switch back to the inner loop when updating the phi nodes.
17013         Update uses of outer loop exit phi nodes in double reduction (instead
17014         of uses of reduction).
17015
17016 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
17017
17018         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
17019         popcount on power7 and parity on power6 systems.
17020         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
17021         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
17022         instructions.
17023
17024         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
17025         (UNSPEC_PARITY): Ditto.
17026         (SFDF): New iterator for SF/DF.
17027         (rreg2): New mode attribute for floating register constraint.
17028         (TARGET_FLOAT): New mode attribute for whether single/double float
17029         is supported.
17030         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
17031         pattern.
17032         (parity<mode>2_cmpb): New insn for parity on power6 and newer
17033         machines.
17034         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
17035         pattern.  Add support for fcpsgn instruction added in power6.
17036         (copysignsf3): Delete.
17037         (copysigndf3): Delete.
17038         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
17039         instead of if_then_else in RTL to avoid problems with -0.
17040
17041         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
17042         of if_then_else to mirror scalar code.
17043         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
17044         rs6000.md.
17045
17046         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
17047         instead of if_then_else.
17048
17049 2010-07-28  Xinliang David Li  <davidxl@google.com>
17050
17051         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
17052         (dump_cand): Dump var_before/after.
17053         (htab_inv_expr_eq): New function.
17054         (htab_inv_expr_hash): New function.
17055         (tree_ssa_iv_optimize_init): Support pseudo invariants.
17056         (add_candidate_1): consider base type precision.
17057         (set_use_iv_cost): New parameter.
17058         (adjust_setup_cost): Use profile information.
17059         (get_address_cost): Do not hard code width in computing address
17060         offset limits.
17061         (compare_aff_trees): New function.
17062         (get_loop_invariant_expr_id): New function.
17063         (get_computation_cost_at): New parameter and use profile information.
17064         (get_computation_cost): New parameter.
17065         (determine_use_iv_cost_generic): Pass new parameter.
17066         (determine_use_iv_cost_address): Ditto.
17067         (determine_use_iv_cost_condition): Ditto.
17068         (autoinc_possible_for_pair): Ditto.
17069         (determine_use_iv_costs): More dumps.
17070         (iv_ca_get_num_inv_exprs): New function.
17071         (iv_ca_recount_cost): Consider loop invariants in register pressure
17072         cost.
17073         (iv_ca_add_use): New parameter.
17074         (iv_ca_dump): Better dumping.
17075         (iv_ca_extend): New parameter.
17076         (try_add_cand_for): Attempt to get better partial solution.
17077         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
17078         (create_new-ivs): More dumps.
17079         (rewrite_use_compare): Ditto.
17080         (free_loop_data): More cleanup.
17081         (treee_ssa_iv_optimize_finalize): Ditto.
17082
17083 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
17084
17085         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
17086         * config/i386/i386.c (ix86_profile_before_prologue): New.
17087         (override_options): Add special handling for -mfentry.
17088         (ix86_function_regparm): Likewise.
17089         (ix86_function_sseregparm): Likewise.
17090         (ix86_frame_pointer_required): Likewise.
17091         (ix86_expand_prologue): Check for ms_hook_prologue.
17092         (x86_function_profiler): Adjust mcount output.
17093         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
17094         * config/i386/i386.opt (mfentry): New.
17095         * doc/invoke.texi (mfentry): Add documentation.
17096         * doc/tm.texi: Regenerated..
17097         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
17098         * final.c (final_start_function): Replace macro
17099         PROFILE_BEFORE_PROLOGUE by target hook.
17100         * function.c (thread_prologue_and_epilogue_insns): Likewise.
17101         * target.def (profile_before_prologue): New hook.
17102         * targhooks.c (default_profile_before_prologue): New.
17103         * targhooks.h (default_profile_before_prologue): New.
17104
17105 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
17106
17107         PR debug/45105
17108         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
17109
17110         PR debug/45103
17111         * dwarf2out.c (dwarf2out_var_location): Always consider
17112         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
17113
17114 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17115
17116         PR rtl-optimization/45107
17117         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
17118
17119 2010-07-28  Richard Guenther  <rguenther@suse.de>
17120
17121         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
17122         (set_lattice_value): Do not query an old default value.
17123         (get_value_for_expr): New function.  Properly canonicalize
17124         float values.
17125         (ccp_visit_phi_node): Use it.
17126
17127 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
17128
17129         * config/arm/arm.c (arm_pcs_default): Remove static.
17130         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
17131         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
17132         (arm_pcs_default): Declare.
17133
17134 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
17135
17136         * config/rs6000/rs6000.c (rs6000_override_options):
17137         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
17138         ... to darwin_rs6000_override_options.
17139         (rs6000_return_in_memory): Update preceding comment for darwin
17140         64 bit ABI.  Use TARGET_MACHO inline.
17141         (rs6000_darwin64_struct_check_p): New.
17142         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
17143         (function_arg): Likewise.
17144         (rs6000_arg_partial_bytes): Likewise.
17145         (rs6000_function_value): Likewise.
17146
17147 2010-07-28  Andi Kleen  <ak@linux.intel.com>
17148
17149         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
17150
17151 2010-07-28  Richard Guenther  <rguenther@suse.de>
17152
17153         PR middle-end/44903
17154         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
17155         targets try harder to not generate unaligned accesses.
17156
17157 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17158
17159         PR rtl-optimization/45101
17160         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
17161         for gcse-las.
17162
17163 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17164
17165         PR tree-optimization/44885
17166         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
17167         with non-aliased component.
17168
17169 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
17170
17171         * config/darwin-driver.c (SWITCH_TAKES_ARG,
17172         WORD_SWITCH_TAKES_ARG): Remove.
17173         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
17174         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
17175         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
17176         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
17177         definitions from gcc.c.
17178         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
17179         defaults.h.
17180         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
17181         Move to defaults.h.
17182         * opts-common.c: Include tm.h.
17183         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
17184         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
17185         Handle more than one argument.  Set canonical_option_num_elements.
17186         (decode_cmdline_options_to_array): Set
17187         canonical_option_num_elements and trailing elements of
17188         canonical_option.
17189         * opts.h (struct cl_decoded_option): Allow four elements in
17190         canonical_option.  Add field canonical_option_num_elements.
17191         * Makefile.in (opts-common.o): Update dependencies.
17192
17193 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17194
17195         PR middle-end/44790
17196         PR middle-end/44993
17197         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
17198         sure the base has address_mode before adding the offset.
17199
17200 2010-07-27  Xinliang David Li  <davidxl@google.com>
17201
17202         * tree-flow.h (create_mem_ref): Add one new parameter.
17203         * tree-ssa-address.c (create_mem_ref): New parameter.
17204         (addr_to_parts): Ditto.
17205         (move_variant_to_index): New function.
17206         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
17207
17208 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17209
17210         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
17211         4 and 5.
17212         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
17213         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
17214         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
17215         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
17216         CODE_LABELs and NOTEs.
17217         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
17218         * combine.c (try_combine): Likewise.
17219         * ira.c (setup_prohibited_mode_move_regs): Likewise.
17220         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
17221
17222 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17223
17224         * coretypes.h (struct cl_option_handlers): Declare.
17225         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
17226         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
17227         * langhooks-def.h (lhd_handle_option): Declare.
17228         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
17229         * langhooks.c (lhd_handle_option): New.
17230         * langhooks.h (struct lang_hooks): Update prototype and return
17231         value type of handle_option hook.
17232         * optc-gen.awk: Generate target_flags_explicit definition for the
17233         driver.
17234         * opts-common.c: Include diagnostic.h.
17235         (handle_option): Move from opts.c.  Update prototype and return
17236         value type.  Use handlers structure.
17237         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
17238         handlers structure.
17239         (set_option): Move from opts.c.
17240         * opts.c (common_handle_option): Update prototype and return value
17241         type.  Update calls to handle_option and enable_warning_as_error.
17242         (unknown_option_callback, post_handling_callback,
17243         lang_handle_option, target_handle_option): New.
17244         (handle_option, read_cmdline_option): Move to opts-common.c.
17245         (read_cmdline_options): Update prototype.  Update call to
17246         read_cmdline_option.
17247         (decode_options): Initialize and use handlers structure.
17248         (set_option): Move to opts-common.c.
17249         (enable_warning_as_error): Update prototype.  Update call to
17250         handle_option.
17251         * opts.h (struct cl_option_handler_func, struct
17252         cl_option_handlers): New.
17253         (handle_option, enable_warning_as_error): Update prototypes.
17254         (read_cmdline_option): Declare.
17255         * Makefile.in (opts-common.o): Update dependencies.
17256
17257 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17258
17259         * config/arm/arm.c (params.h): Include.
17260         (arm_override_options): Tune gcse-unrestricted-cost.
17261         * config/arm/t-arm (arm.o): Define dependencies.
17262
17263 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17264
17265         PR target/42495
17266         PR middle-end/42574
17267         * basic-block.h (get_dominated_to_depth): Declare.
17268         * dominance.c (get_dominated_to_depth): New function, use
17269         get_all_dominated_blocks as a base.
17270         (get_all_dominated_blocks): Use get_dominated_to_depth.
17271
17272         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
17273         (hoist_exprs): Remove.
17274         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
17275         (compute_code_hoist_vbeinout): Add debug print outs.
17276         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
17277
17278         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
17279         quadratic behavior.
17280         * params.h (MAX_HOIST_DEPTH): New macro.
17281         * doc/invoke.texi (max-hoist-depth): Document.
17282
17283 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17284
17285         PR rtl-optimization/40956
17286         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
17287         constants.
17288
17289 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17290
17291         PR target/42495
17292         PR middle-end/42574
17293         * config/arm/arm.c (legitimize_pic_address): Use
17294         gen_calculate_pic_address pattern to emit calculation of PIC address.
17295         (will_be_in_index_register): New function.
17296         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
17297         (thumb1_legitimate_address_p): Use it provided !strict_p.
17298         * config/arm/arm.md (calculate_pic_address): New expand and split.
17299
17300 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17301
17302         PR target/42495
17303         PR middle-end/42574
17304         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
17305         * config/arm/arm.md (define_split "J", define_split "K"): Make
17306         IRA/reload friendly.
17307
17308 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17309
17310         * gcse.c (insert_insn_end_basic_block): Update signature, remove
17311         unused checks.
17312         (pre_edge_insert, hoist_code): Update.
17313
17314 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17315
17316         PR target/42495
17317         PR middle-end/42574
17318         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
17319
17320 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17321
17322         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
17323
17324 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17325
17326         PR rtl-optimization/40956
17327         PR target/42495
17328         PR middle-end/42574
17329         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
17330         for hoisting.
17331         (hoist_code): Count occurences in current block too.
17332
17333 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17334
17335         * gcse.c (struct expr:max_distance): New field.
17336         (doing_code_hoisting_p): New static variable.
17337         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
17338         simple expressions, don't change behavior for PRE.  Set max_distance.
17339         (insert_expr_in_table): Set new max_distance field.
17340         (hash_scan_set): Update.
17341         (hoist_expr_reaches_here_p): Stop search after max_distance
17342         instructions.
17343         (find_occr_in_bb): New static function.  Use it in ...
17344         (hoist_code): Calculate sizes of basic block before any changes are
17345         done.  Pass max_distance to hoist_expr_reaches_here_p.
17346         (one_code_hoisting_pass): Set doing_code_hoisting_p.
17347
17348         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
17349         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
17350         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
17351         macros.
17352         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
17353         Document.
17354
17355 2010-07-27  Jeff Law  <law@redhat.com>
17356             Maxim Kuvyrkov  <maxim@codesourcery.com>
17357
17358         * gcse.c (compute_transpout, transpout): Remove, move logic
17359         to prune_expressions.
17360         (compute_pre_data): Move pruning of trapping expressions ...
17361         (prune_expressions): ... here.  New static function.
17362         (compute_code_hoist_data): Use it.
17363         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
17364
17365 2010-07-27  Xinliang David Li  <davidxl@google.com>
17366
17367         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
17368         (rewrite_use_address): Adjust iv update position when needed.
17369
17370 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17371
17372         * dbgcnt.def (hoist_insn): New debug counter.
17373         * gcse.c (hoist_code): Use it.
17374
17375 2010-07-27  Xinliang David Li  <davidxl@google.com>
17376
17377         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
17378         (niter_for_single_dom_exit): Passes additional parameter.
17379         (iv_period): Fix comments.
17380         (may_eliminate_iv): Handles multiple exit loops properly.
17381         (free_tree_niter_desc): New function.
17382         (free_loop_data): Frees up loop iteration descriptors.
17383
17384 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17385
17386         PR target/44542
17387         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
17388         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
17389         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
17390         (expand_one_var): Don't consider DECL_ALIGN for variables for
17391         which expand_one_stack_var_at has been already called.
17392
17393         PR testsuite/44701
17394         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
17395         constraints on IA-64.
17396
17397 2010-07-27  Jie Zhang  <jie@codesourcery.com>
17398
17399         PR target/44290
17400         Revert:
17401         2010-07-23  Jie Zhang  <jie@codesourcery.com>
17402
17403         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17404         false if ! tree_versionable_function_p.
17405
17406 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17407
17408         * dwarf2out.c (add_data_member_location_attribute): Use
17409         add_AT_unsigned instead of add_AT_int if offset is non-negative.
17410
17411 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17412
17413         * postreload.c (try_replace_in_use): New static function.
17414         (reload_combine_recognize_const_pattern): Use it here.  Allow
17415         substituting into a final add insn, and substituting into a memory
17416         reference in an insn that sets the reg.
17417
17418 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17419
17420         * common.opt (o): Add MissingArgError.
17421         * doc/options.texi (MissingArgError): Document.
17422         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
17423         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
17424         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
17425         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
17426         * langhooks.h (struct lang_hooks): Remove missing_argument.
17427         * optc-gen.awk: Handle MissingArgError and output new structure
17428         field initializers.
17429         * opts.c (read_cmdline_option): Use missing_argument_error field
17430         instead of missing_argument langhook.
17431         * opts.h (struct cl_option): Add missing_argument_error field.
17432         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
17433
17434 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17435
17436         PR target/29090
17437         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
17438         Darwin64 ABI, for zero-sized objects.
17439
17440 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17441
17442         PR target/35491
17443         PR target/29090
17444
17445         Merge from Apple local 4.2.1.
17446         2005-05-11  Stan Shebs  <shebs@apple.com>
17447         Fix 64-bit varargs for Darwin (Radar 4028089).
17448         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
17449         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
17450         Add argument, add case for 8-byte register half-filled with a float.
17451         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
17452         single-precision floats specially.
17453
17454 2010-07-27  Ira Rosen  <irar@il.ibm.com>
17455
17456         PR tree-optimization/44152
17457         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
17458         complex numbers for further check.
17459         (vect_supported_load_permutation_p): Check nodes with
17460         complex numbers.
17461
17462 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17463
17464         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
17465         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
17466         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
17467         (LANG_HOOKS_INITIALIZER): Add new hooks.
17468         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
17469         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
17470         and complain_wrong_lang_p.  Update init_options prototype.
17471         * c-objc-common.c (c_initialize_diagnostics): First call
17472         c_common_initialize_diagnostics.
17473         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
17474         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
17475         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
17476         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
17477         (hook_uint_void_0): New.
17478         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
17479         (hook_uint_void_0): New.
17480         * opts-common.c (decode_cmdline_option,
17481         decode_cmdline_options_to_array): Also fill in canonical_option field.
17482         * opts.c (complain_wrong_lang): Use langhook to determine whether
17483         to complain instead of special-casing LTO.
17484         (decode_options): Separate lang_mask determination with
17485         option_lang_mask hook from call of init_options hook.
17486         * opts.h (struct cl_decoded_option): Add canonical_option.
17487
17488 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17489
17490         PR tree-optimization/45083
17491         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
17492
17493 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17494
17495         * postreload.c (reload_combine_recognize_const_pattern): Move test
17496         for limiting the insn movement to the right scope.
17497
17498         PR rtl-optimization/45051
17499         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
17500         than reg_mentioned_p.
17501
17502 2010-07-26  Richard Henderson  <rth@redhat.com>
17503
17504         PR target/44132
17505         * tree-emutls.c: New file.
17506         * Makefile.in (OBJS-common): Add it.
17507         * tree-pass.h (pass_ipa_lower_emutls): Declare.
17508         * passes.c (init_optimization_passes): Add it.
17509
17510         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
17511         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
17512         * expr.c (emutls_var_address): Delete.
17513         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
17514         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
17515         (emutls_finish): Delete.
17516         * toplev.c (compile_file): Don't call it.
17517         * tree.h (emutls_decl): Delete.
17518         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
17519         (emutls_finish, emutls_finalize_control_var): Delete.
17520         (emutls_object_type): Move to tree-emutls.c.
17521         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
17522         default_emutls_var_fields, get_emutls_object_type,
17523         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
17524         default_emutls_var_init): Likewise.
17525         (get_variable_section): Don't special case emutls.
17526         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
17527         default_elf_select_section, default_unique_section,
17528         default_encode_section_info): Likewise.
17529         * varpool.c (decide_is_variable_needed): Likewise.
17530         * gimple-iterator.c (update_call_edge_frequencies): New
17531         (gsi_insert_on_edge_immediate): Use it.
17532         (gsi_insert_seq_on_edge_immediate): Likewise.
17533         (gsi_commit_one_edge_insert): Likewise.
17534
17535         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
17536         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
17537         (x86_64_elf_unique_section): Likewise.
17538
17539 2010-07-26  Jan Hubicka  <jh@suse.cz>
17540
17541         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
17542         GTY((skip)).
17543
17544 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
17545
17546         * target.def (output_source_filename): New hook.
17547         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
17548         * doc/tm.texi: Regenerate.
17549         * toplev.c (output_file_directive) Remove function.
17550         * toplev.h (output_file_directive) Remove.
17551         * output.h (default_asm_output_source_filename,
17552         output_file_directive): Declare.
17553         * varasm.h (default_asm_output_source_filename,
17554         output_file_directive): New functions.
17555
17556         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17557         * config/mips/mips-protos.h (mips_output_filename): Remove.
17558         * config/mips/mips.c (mips_output_filename): Make Static.
17559         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
17560
17561 2010-07-26  Richard Guenther  <rguenther@suse.de>
17562
17563         PR tree-optimization/43784
17564         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
17565         if the destination is used by the call.
17566
17567 2010-07-26  Richard Guenther  <rguenther@suse.de>
17568
17569         PR middle-end/45073
17570         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
17571         SSA updating on being in SSA form.
17572
17573 2010-07-26  Richard Guenther  <rguenther@suse.de>
17574
17575         PR middle-end/45056
17576         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
17577
17578 2010-07-26  Richard Guenther  <rguenther@suse.de>
17579
17580         PR tree-optimization/45071
17581         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
17582         adjust op->opcode.
17583
17584 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
17585
17586         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
17587         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
17588         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
17589         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
17590         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
17591         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
17592         save_r31, return_r31, save_interrupt, return_interrupt,
17593         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
17594         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
17595         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
17596         new ABI requirements.
17597         (save_r6_r9, L_callt_save_r6_r9): Remove.
17598         * config/v850/predicates.md (even_reg_operand, disp23_operand,
17599         const_float_1_operand const_float_0_operand): New Predicates.
17600         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
17601         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
17602         * config/v850/t-v850: Update multilibs for new target variants.
17603         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
17604         * config/v850/t-v850e: Likewise.
17605         * config/v850/v850.c (v850_issue_rate): New.
17606         (v850_strict_argument_naming): New.
17607         (function_arg): Modify to generate a different ABI.
17608         (print_operand): Update case 'z' to support float modes.
17609         (output_move_single): Modify to generate appropriate and better
17610         assembly.
17611         (v850_float_z_comparison_operator, v850_select_cc_mode,
17612         v850_float_nz_comparison_operator,  v850_gen_float_compare,
17613         v850_gen_compare): New functions to support comparison of float values.
17614         (ep_memory_offset): Add support for V850E2 targets.
17615         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
17616         (INTERRUPT_REGPARM_NUM): Remove.
17617         (compute_register_save_size): Add extra case to save/restore long call.
17618         (use_prolog_function): New function to support prologue.
17619         (expand_prologue): Add support for V850E2 targets and modified
17620         as per the current ABI requirements.
17621         (expand_epilogue): Likewise.
17622         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
17623         (construct_save_jarl): Likewise.
17624         (construct_dispose_instruction): Update as per the current ABI
17625         requirements.
17626         (construct_prepare_instruction): Likewise.
17627         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
17628         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
17629         (CPP_SPEC): Updated to support v850e2 targets.
17630         (STRICT_ALIGNMENT): Modified.
17631         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
17632         (FIXED_REGISTERS): Likewise.
17633         (CALL_USED_REGISTERS): Likewise.
17634         (CONDITIONAL_REGISTER_USAGE): Updated.
17635         (HARD_REGNO_MODE_OK): Updated.
17636         (reg_class): Updated to add even registers.
17637         (REG_CLASS_NAMES): Likewise.
17638         (REG_CLASS_CONTENTS): Likewise.
17639         (REGNO_REG_CLASS): Updated for CC registers.
17640         (REG_CLASS_FROM_LETTER): Added support for even registers.
17641         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
17642         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
17643         ARG_POINTER_REGNUM): Updated.
17644         (FUNCTION_ARG_ADVANCE): Define.
17645         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
17646         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
17647         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
17648         (GO_IF_LEGITIMATE_ADDRESS): Updated.
17649         (SELECT_CC_MODE): Define.
17650         (REGISTER_NAMES): Updated to add psw and fcc registers.
17651         (ADDITIONAL_REGISTER_NAMES): Updated.
17652         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
17653         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
17654         * config/v850/v850.md (define_constants): Define new constants.
17655         (type): Update store,bit1,macc,div,fpu and single attributes.
17656         (cpu): New attribute.
17657         (cc): Add set_z attribute.
17658         (unsign23byte_load, sign23byte_load, unsign23hword_load,
17659         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
17660         23word_store): New instructions for 23-bit displacement load and store.
17661         (movqi_internal, movhi_internal): Update the attributes.
17662         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
17663         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
17664         the attributes.
17665         (v850_tst1): Modified using CC_REGNUM.
17666         (tstsi): Remove.
17667         (cmpsi): Modified as define_expand from define_insn.
17668         (cmpsi_insn, cmpsf, cmpdf): New instructions.
17669         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
17670         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
17671         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
17672         one_cmplsi2): Clobber the CC_REGNUM register.
17673         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
17674         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
17675         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
17676         (setf_insn, set_z_insn, set_nz_insn): New instructions for
17677         v850e2v3 target.
17678         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
17679         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
17680         targets.
17681         (sasf_1, sasf_2): Remove.
17682         (sasf): New instruction.
17683         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
17684         targets. CC_REGNUM register is clobbered and attributes are
17685         updated.
17686         (branch_z_normal, branch_z_invert, branch_nz_normal,
17687         branch_nz_invert): New branch related instructions.
17688         (jump): Updated the attributes.
17689         (switch): Update to support new targets. CC_REGNUM register is
17690         clobbered and attributes are updated.
17691         (call_internal_short, call_internal_long, call_value_internal_short,
17692         call_value_internal_long): Updated the attributes.
17693         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
17694         clobbered and attributes are updated.
17695         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
17696         Update to support new targets. CC_REGNUM register is clobbered.
17697         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
17698         instructions.
17699         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
17700         are updated.
17701         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
17702         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
17703         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
17704         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
17705         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
17706         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
17707         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
17708         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
17709         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
17710         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
17711         point instructions defined for V850e2v3 target.
17712         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
17713         Add support for V850E2 targets and CC_REGNUM register is clobbered.
17714         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
17715         support for new targets.
17716         * config/v850/v850-modes.def: New file.
17717         * config/v850/v850.opt(mstrict-align): Remove.
17718         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
17719         mv850e2v3): New command line options for V850.
17720         * config.gcc: Update the newly added files.
17721         * doc/invoke.texi: Update the newly added command line options for
17722         V850 target.
17723
17724 2010-07-26  Richard Guenther  <rguenther@suse.de>
17725
17726         PR tree-optimization/45052
17727         * ipa-pure-const.c (check_stmt): Check volatileness.
17728
17729 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17730
17731         PR target/44707
17732         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
17733         * config/sparc/sparc.c: Include reload.h.
17734         (legitimize_tls_address): Rename into...
17735         (sparc_legitimize_tls_address): ...this.
17736         (legitimize_pic_address): Rename into...
17737         (sparc_legitimize_pic_address): ...this.
17738         (sparc_expand_move): Adjust to above renaming.
17739         (sparc_tls_referenced_p): Likewise.
17740         (sparc_legitimize_tls_address): Likewise.
17741         (sparc_legitimize_pic_address): Likewise.
17742         (sparc_legitimize_address): Likewise.
17743         (sparc_output_mi_thunk): Likewise.
17744         (sparc_legitimize_reload_address): New global function.  Recognize
17745         (lo_sum (high ...) ...) patterns generated by earlier passes.
17746         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
17747
17748 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17749
17750         PR target/44484
17751         * config/sparc/predicates.md (memory_reg_operand): Delete.
17752         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
17753         (*sync_compare_and_swap): Encode the address form in the pattern.
17754         (*sync_compare_and_swapdi_v8plus): Likewise.
17755
17756 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
17757
17758         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
17759         Streamline paragraph on compatibility with the system compiler.
17760
17761 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
17762
17763         PR middle-end/45035
17764         * alias.c (true_dependence_1): Fix thinko in merge of old
17765         true_dependence and canon_true_dependence.
17766
17767 2010-07-23  Jan Hubicka  <jh@suse.cz>
17768
17769         * lto-streamer-out.c (write_symbol): Fix visibilities of external
17770         references.
17771
17772 2010-07-23  Le-Chun Wu  <lcwu@google.com>
17773
17774         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
17775         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
17776         and an unnecessary assignment.
17777         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
17778         self-assign warning.
17779         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
17780         unnecessary self-init.
17781
17782 2010-07-23  Richard Guenther  <rguenther@suse.de>
17783
17784         PR lto/43071
17785         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
17786         for -flto and -fwhopr.
17787
17788 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
17789
17790         PR target/41943
17791         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
17792         (stmp-int-hdrs): Prefix/postfix headers by include_next.
17793         * config.gcc (user_headers_inc_next_pre): New.
17794         (user_headers_inc_next_post): Likewise.
17795         (*-w64-mingw*): Use for float.h post-fixing, and for
17796         stddef.h/stdarg.h pre-fixing by include_next.
17797         * configure.ac (user_headers_inc_next_post): New.
17798         (user_headers_inc_next_pre): New.
17799         * configure: Regenerated.
17800
17801 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17802
17803         * configure.ac: Don't disable TLS on Solaris 8/9 by default
17804         Set tga_func for Solaris 2/x86 resp. SPARC.
17805         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
17806         (LIB_THREAD_LDFLAGS_SPEC): Define.
17807         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
17808         * configure: Regenerate.
17809         * config.in: Regenerate.
17810         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
17811         -pthread, -threads, LIB_TLS_SPEC with -pthread.
17812         * doc/install.texi (Specific, *-*-solaris2*): Document use of
17813         alternate thread libraries on Solaris 8.
17814         Document TLS patch requirements.
17815         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
17816         Document tls.
17817
17818         PR target/18788
17819         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
17820         -shared.
17821
17822 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
17823
17824         * tree.h (struct tree_base): Add nameless_flag bitfield.
17825         (TYPE_NAMELESS, DECL_NAMELESS): Define.
17826         * omp-low.c (create_omp_child_function, scan_omp_parallel,
17827         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
17828         DECL_ARTIFICIAL where needed.
17829         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
17830         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
17831         has DECL_NAMELESS set.
17832
17833 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17834
17835         PR tree-optimization/44915
17836         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
17837         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
17838         (analyze_function): Likewise.
17839
17840 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17841
17842         PR tree-optimization/44914
17843         * tree-sra.c (sra_modify_function_body): Return true if CFG was
17844         changed, add purging dead eh edges.
17845         (ipa_sra_modify_function_body): Return true if CFG was changed,
17846         simplify purging dead eh edges.
17847         (modify_function): Return true if CFG was changed.
17848         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
17849         was changed.
17850         (ipa_early_sra): Likewise.
17851
17852 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17853
17854         PR target/44290
17855         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
17856         if "naked".
17857         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17858         false if ! tree_versionable_function_p.
17859
17860 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
17861
17862         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
17863         * ipa-pure-const.c (special_builtlin_state): Remove
17864         BUILT_IN_ARGS_INFO case.
17865         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
17866         * builtins.c (expand_builtin): Likewise.
17867         (expand_builtin_args_info): Remove.
17868         * doc/tm.texi (__builtin_args_info): Remove.
17869         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
17870         * doc/tm.text.in: Likewise.
17871
17872 2010-07-23  Richard Guenther  <rguenther@suse.de>
17873
17874         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
17875         (lto_symtab_merge_decls_2): Likewise.
17876         * tree-ssa.c (useless_type_conversion_p): Likewise.
17877         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17878         * gimple.c (gtc_visited2, gtc_ob2): Remove.
17879         (struct type_pair_d): Make same_p an array indexed by mode.
17880         Update comment.
17881         (lookup_type_pair): Update initialization.
17882         (struct sccs): Adjust same_p type.
17883         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
17884         Adjust.
17885         (print_gimple_types_stats): Likewise.
17886         * gimple.h (enum gtc_mode): New.
17887         (gimple_types_compatible_p): Adjust prototype.
17888
17889 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
17890
17891         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
17892         again after processing insn.
17893
17894 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17895
17896         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
17897         proper words when !tree_versionable_function_p.
17898
17899 2010-07-23  Richard Guenther  <rguenther@suse.de>
17900
17901         PR tree-optimization/45037
17902         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
17903
17904 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17905
17906         * doc/extend.texi: Remove IP2K from the description of naked attribute.
17907         Add MCORE instead.
17908
17909 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17910
17911         PR lto/44992
17912         * lto-opts.c (lto_write_options): Add NULL file_data argument to
17913         lto_get_section_name.
17914         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
17915         * lto-streamer-out.c (produce_asm): Likewise.
17916         (copy_function): Likewise.
17917         (produce_symtab): Likewise.
17918         (produce_asm_for_decls): Likewise.
17919         * lto-streamer.c (lto_get_section_name): Add file_data argument.
17920         Rewrite to add random postfix to LTO sections.
17921         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
17922         (lto_get_section_name): Add file_data argument to prototype.
17923
17924 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17925
17926         * lto-section-in.c (lto_section_name): Synchronize names
17927         with lto_get_section_name.
17928
17929 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17930
17931         * lto-opts.c (lto_read_file_options): Check for missing section.
17932
17933 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17934
17935         * ira.c (check_allocation): Correctly handle the case where an allocno
17936         with two objects was allocated to a single reg.
17937
17938 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
17939
17940         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
17941         (is_widening_mult_p): Likewise.
17942         (convert_to_widen): Use them.
17943         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
17944         well as integer ones.
17945
17946 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
17947
17948         * alias.c (true_dependence_1): New function, merged version of
17949         true_dependence and canon_true_dependence.
17950         (true_dependence): Simplify.
17951         (canon_true_dependence): Simplify.
17952
17953 2010-07-22  Richard Henderson  <rth@redhat.com>
17954
17955         PR target/45027
17956         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
17957         of V4SFmode for the SSE saves; increase stack alignment if needed.
17958         (ix86_gimplify_va_arg): Don't increase stack alignment here.
17959
17960 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
17961
17962         PR bootstrap/45028
17963         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
17964         call cprop_find_used_regs again via note_uses.
17965
17966 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
17967
17968         * alias.c (get_alias_set): Fix formatting issues.
17969
17970 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
17971
17972         PR middle-end/44878
17973         * stmt.c (expand_value_return):  Call promote_function_mode with
17974         a for_return argument of 2 when returning by reference.
17975
17976 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
17977
17978         PR debug/45024
17979         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
17980         unit DIE if we can find the scope DIE.
17981
17982 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17983
17984         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
17985         changed.  Initialize OBJECT_SUBWORD.
17986         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
17987         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
17988         all callers changed.
17989         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
17990         (finish_allocno): Likewise.
17991         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
17992         (remove_low_level_allocnos): Likewise.
17993         (update_bad_spill_attribute): Likewise.
17994         (setup_min_max_allocno_live_range_point): Likewise.
17995         (sort_conflict_id_map): Likewise.
17996         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
17997         (ior_hard_reg_conflicts): New function.
17998         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
17999         (compress_conflict_vecs): Iterate over objects, not allocnos.
18000         (ira_add_live_range_to_object): New function.
18001         (object_range_compare_func): Renamed from allocno_range_compare_func.
18002         All callers changed.
18003         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
18004         subobjects, widen the min/max range of the lowest-order object to
18005         potentially include all other such low-order objects.
18006         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
18007         (check_allocation): Likewise.  Use more fine-grained tests for register
18008         conflicts.
18009         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
18010         allocno subobjects.
18011         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
18012         choices about which bits to set in each set.  Don't use
18013         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
18014         using the multiple sets we computed.
18015         (push_allocno_to_stack): Iterate over allocno subobjects.
18016         (all_conflicting_hard_regs_coalesced): New static function.
18017         (setup_allocno_available_regs_num): Use it.
18018         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
18019         subobjects.
18020         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
18021         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
18022         by ALLOCNO_NUM_OBJECTS.
18023         (calculate_spill_cost): Likewise.
18024         (color_pass): Express if statement in a more normal way.
18025         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
18026         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
18027         (setup_slot_coalesced_allocno_live_ranges): Likewise.
18028         (allocno_reload_assign): Likewise.
18029         (ira_reassign_pseudos): Likewise.
18030         (fast_allocation): Likewise.
18031         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18032         (print_allocno_conflicts): Likewise.
18033         (ira_build_conflicts): Likewise.
18034         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
18035         callers changed.  Test subword 0 of each allocno for conflicts.
18036         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
18037         callers changed.  Iterate over allocno subobjects.
18038         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
18039         * ira-int.h (struct ira_allocno): New member: num_objects.
18040         Rename object to objects and change it into an array.
18041         (ALLOCNO_OBJECT): Add new argument N.
18042         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
18043         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
18044         (ior_hard_reg_conflicts): Declare.
18045         (ira_add_live_range_to_object): Declare.
18046         (ira_allocno_object_iterator): New.
18047         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
18048         (FOR_EACH_ALLOCNO_OBJECT): New macro.
18049         * ira-lives.c (objects_live): Renamed from allocnos_live; all
18050         uses changed.
18051         (allocnos_processed): New sparseset.
18052         (make_object_born): Renamed from make_allocno_born; take an
18053         ira_object_t argument.  All callers changed.
18054         (make_object_dead): Renamed from make_allocno_dead; take an
18055         ira_object_t argument.  All callers changed.
18056         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
18057         All callers changed.
18058         (mark_pseudo_regno_live): Iterate over allocno subobjects.
18059         (mark_pseudo_regno_dead): Likewise.
18060         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
18061         functions.
18062         (mark_ref_live): Detect subword accesses and call
18063         mark_pseudo_regno_subword_live as appropriate.
18064         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
18065         (process_bb_nodes_live): Deal with object-related updates first; set
18066         and test bits in allocnos_processed to avoid computing allocno
18067         statistics more than once.
18068         (create_start_finish_chains): Iterate over objects, not allocnos.
18069         (print_object_live_ranges): New function.
18070         (print_allocno_live_ranges): Use it.
18071         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
18072         and objects_live.
18073
18074 2010-07-22  Richard Guenther  <rguenther@suse.de>
18075
18076         PR lto/42451
18077         * gimple.c (gtc_next_dfs_num): New global.
18078         (struct sccs): Make value a union, add integer same_p member.
18079         (gtc_visit): New function.
18080         (gimple_types_compatible_p_1): New function, split out from ...
18081         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
18082         (iterative_hash_gimple_type): Adjust for sccs change.
18083
18084 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18085
18086         PR tree-optimization/44891
18087         * tree-sra.c: Include gimple-pretty-print.h.
18088         (replace_uses_with_default_def_ssa_name): Renamed to
18089         get_repl_default_def_ssa_name, return the new SSA name instead of
18090         replacing the old one.
18091         (sra_modify_assign): Dump a message when removing a load, if the LHS
18092         is an SSA_NAME, do not do any propagation, just set the RHS to a
18093         default definition SSA NAME, type convert if necessary.
18094         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
18095
18096 2010-07-22  Richard Guenther  <rguenther@suse.de>
18097
18098         PR tree-optimization/45017
18099         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
18100         TYPE_PRECISION of integral types in addition to size.
18101
18102 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
18103
18104         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
18105         when no C library is specified.
18106
18107 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18108
18109         * ipa-prop.h (struct ipa_node_params): Updated comment.
18110         (struct ipa_edge_args): Likewise.
18111         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
18112
18113 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18114
18115         * cgraphunit.c (verify_edge_count_and_frequency): New function.
18116         (verify_cgraph_node): Verify frequencies of indirect edges.
18117         * tree-inline.c (tree_function_versioning): Update frequencies of
18118         indirect edges.
18119
18120 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18121
18122         PR target/43698
18123         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
18124         Set *arm_rev to be predicable.
18125
18126 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18127
18128         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
18129         (LINK_COMMAND_SPEC_A): New.
18130         (DSYMUTIL): New.
18131         (DSYMUTIL_SPEC): New.
18132         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
18133         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
18134
18135 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18136
18137         * calls.c (load_register_parameters): Move check for zero
18138         sized items so that only the call to
18139         mem_overlaps_already_clobbered_arg_p () is protected.
18140
18141 2010-07-22  Jan Hubicka  <jh@suse.cz>
18142
18143         * ipa-pure-const.c (varying_state): Break out from ...
18144         (get_function_state): ... here; always return varying_state
18145         when state would be NULL otherwise.
18146         (remove_node_data): Do not free varying state.
18147
18148 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18149
18150         PR bootstrap/44970
18151         PR middle-end/45009
18152         * postreload.c: Include "target.h".
18153         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
18154         into account.
18155         (fixup_debug_insns): Don't copy the rtx.
18156         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
18157         Don't copy when replacing.  Call fixup_debug_insns in the case where
18158         we merged one add with another.
18159         (reload_combine_recognize_pattern): Fail if there aren't any uses.
18160         Try harder to determine whether we're picking a valid index register.
18161         Don't set store_ruid for an insn we're going to scan in the
18162         next iteration.
18163         (reload_combine): Remove unused code.
18164         (reload_combine_note_use): When updating use information for
18165         an old insn, ignore a use that occurs after store_ruid.
18166         * Makefile.in (postreload.o): Update dependencies.
18167
18168         * function.c (record_hard_reg_sets): Restrict the previous change
18169         to cases where the incoming nominal mode is the same as the
18170         incoming promoted mode and everything happens in MODE_INT.
18171
18172 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18173
18174         PR debug/45015
18175         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
18176         ASM_OPERANDS_OUTPUT_IDX.
18177         (adjust_insn): For inline asm with multiple sets ensure first
18178         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
18179         the insn.
18180
18181 2010-07-21  Richard Henderson  <rth@redhat.com>
18182
18183         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
18184         comparison for avoiding xmm register saves.  Emit the xmm register
18185         saves explicitly.
18186         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
18187         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
18188         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
18189         Remove patterns and the associated splitters.
18190
18191 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
18192
18193         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
18194         and imagine parts of a complex, so that they can have the same
18195         base and fall into the same group.
18196
18197 2010-07-21  Richard Guenther  <rguenther@suse.de>
18198
18199         PR lto/45018
18200         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
18201         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
18202         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
18203
18204 2010-07-21  Martin Jambor  <mjambor@suse.cz>
18205
18206         PR tree-optimization/44900
18207         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
18208         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
18209
18210 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
18211
18212         PR middle-end/44738
18213         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
18214
18215 2010-07-21  Richard Guenther  <rguenther@suse.de>
18216
18217         PR middle-end/45013
18218         * tree-ssa.c (useless_type_conversion_p): Dispatch to
18219         gimple_types_compatible_p only when in lto.
18220         * gimple.c (gimple_types_compatible_p): Use canonical types
18221         to speed up comparison.
18222
18223 2010-07-21  Richard Guenther  <rguenther@suse.de>
18224
18225         * tree-flow.h (referenced_var): Move define ...
18226         * tree-flow-inline.h (referenced_var): ... here as an inline
18227         function.  Assert here ...
18228         * tree-dfa.c (referenced_var_lookup): ... instead of here.
18229         * tree-ssa.c (maybe_optimize_var): Check if the variable
18230         is in referenced vars.
18231         (execute_update_addresses_taken): Remove old broken check.
18232         * gimple-pretty-print.c (pp_points_to_solution): Use
18233         referenced_var_lookup.
18234         * tree-into-ssa.c (dump_decl_set): Likewise.
18235
18236 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18237
18238         PR debug/45003
18239         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
18240         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
18241         ZERO_EXTEND here.
18242
18243 2010-07-20  Richard Henderson  <rth@redhat.com>
18244
18245         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
18246
18247 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18248
18249         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
18250         computing the sum of the stack pointer and a large constant.
18251         * config/arm/constraints.md (M): Remove superfluous parentheses.
18252         (Pc): New constraint.
18253
18254 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18255
18256         PR debug/45006
18257         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
18258         operand's type if exp is tcc_unary class tree.
18259
18260 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18261
18262         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
18263         Reverse sense of if_then_else condition.
18264
18265 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18266
18267         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
18268         * config/rs6000/rs6000.c (rs6000_override_options): Set
18269         rs6000_block_move_inline_limit appropriately.
18270         (expand_block_move): Use rs6000_block_move_inline_limit.
18271         * doc/invoke.texi (mblock-move-inline-limit): Document.
18272
18273 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18274
18275         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
18276         FROM and TO.  All callers changed.  Don't look for tracked uses,
18277         just scan the RTL for DEBUG_INSNs and substitute.
18278         (reload_combine_recognize_pattern): Call fixup_debug_insns.
18279         (reload_combine): Ignore DEBUG_INSNs.
18280
18281 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18282
18283         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
18284         depth to 8 from 5.
18285
18286         PR debug/45003
18287         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
18288         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
18289         instead of the result's type.
18290
18291 2010-07-20  Richard Guenther  <rguenther@suse.de>
18292
18293         PR tree-optimization/44977
18294         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
18295         SSA form.
18296
18297 2010-07-20  Richard Guenther  <rguenther@suse.de>
18298
18299         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
18300         (lto_symtab_merge_decls_2): Likewise.
18301         * gimple.h (gimple_types_compatible_p): Declare.
18302         * gimple.c (gimple_queue_type_fixup): Remove.
18303         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
18304         (gimple_compatible_complete_and_incomplete_type_p): New function.
18305         (gimple_types_compatible_p): Adjust.
18306         (gimple_register_type): Remove type fixup code.
18307         (print_gimple_types_stats): Adjust.
18308         (free_gimple_type_tables): Likewise.
18309         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
18310         * tree-ssa.c (useless_type_conversion_p): Likewise.
18311
18312 2010-07-20  Richard Guenther  <rguenther@suse.de>
18313
18314         PR middle-end/44971
18315         PR middle-end/44988
18316         * tree-ssa.c (maybe_optimize_var): New function split out from ...
18317         (execute_update_addresses_taken): ... here.
18318         (non_rewritable_mem_ref_base): Likewise.
18319         (execute_update_addresses_taken): Do not iterate over all referenced
18320         vars but just all local decls and parms.
18321         Properly check call and asm arguments and rewrite call arguments.
18322
18323 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
18324
18325         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
18326         to top level.
18327         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
18328         definitions ...
18329         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
18330         New macro.
18331         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
18332
18333 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
18334
18335         * gengtype.c (start_root_entry): New function, split out from
18336         write_root.  Check whether V is null and raise an error if so.
18337         (write_field_root): Check for V being null.  Don't raise an error here;
18338         set V to null instead.
18339         (write_root): Update comment above function.  Use start_root_entry.
18340
18341 2010-07-19  Xinliang David Li  <davidxl@google.com>
18342
18343         PR testsuite/44932
18344         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
18345         def edges.
18346         (find_uninit_use): Add dump.
18347         (is_use_properly_guarded): Ditto.
18348         (warn_uninitialized_phi): Ditto.
18349         (execute_late_warn_uninitialized): Ditto.
18350
18351 2010-07-19  Richard Guenther  <rguenther@suse.de>
18352
18353         PR middle-end/44941
18354         * expr.c (emit_block_move_hints): Move zero size check first.
18355         Move asserts to more useful places.
18356         * calls.c (load_register_parameters): Check for zero size.
18357
18358 2010-07-19  Richard Henderson  <rth@redhat.com>
18359
18360         * tree-optimize.c (execute_all_early_local_passes): New.  Change
18361         cgraph_state here ...
18362         (execute_early_local_optimizations): ... not here.  Remove.
18363         (pass_early_local_passes, pass_all_early_optimizations): Update.
18364
18365 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
18366
18367         * postreload.c (reload_combine_closest_single_use): Ignore the
18368         number of uses for DEBUG_INSNs.
18369         (fixup_debug_insns): New static function.
18370         (reload_combine_recognize_const_pattern): Use it.  Don't let the
18371         main loop be affected by DEBUG_INSNs.
18372         Really disallow moving adds past a jump insn.
18373         (reload_combine_recognize_pattern): Don't update use_ruid here.
18374         (reload_combine_note_use): Do it here.
18375         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
18376
18377 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
18378
18379         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
18380         of a loop.
18381         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
18382
18383 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
18384
18385         * config/i386/darwin.h: Define darwin_emit_branch_islands.
18386         (TARGET_MACHO_BRANCH_ISLANDS): New.
18387         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
18388         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
18389         default value.
18390         * config/i386/i386.c (output_pic_addr_const): Do not emit
18391         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
18392         (x86_output_mi_thunk): Adjust symbol creation.
18393         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
18394         Remove out of date comment.
18395         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
18396         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18397         (DARWIN_GENERATE_ISLANDS): Ditto.
18398         (output_call):  Do not emit branch islands unless
18399         darwin_emit_branch_islands is set.
18400         * config/darwin.c: Declare darwin_emit_branch_islands.
18401         (machopic_indirect_data_reference): Do not emit unless
18402         darwin_emit_branch_islands is set.
18403         (darwin_override_options): Set darwin_emit_branch_islands
18404         where it is needed.
18405         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18406
18407 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18408
18409         * doc/sourcebuild.texi (Effective-Target Keywords): Document
18410         sse_runtime, sse2_runtime.
18411
18412 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
18413
18414         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
18415         low half of a single-register SCmode return value before ORing
18416         it with the high half.
18417         * config/mips/mips16.S (MERGE_GPRf): Likewise.
18418
18419 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18420
18421         PR target/44805
18422         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
18423         on all targets.
18424
18425 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
18426
18427         PR target/42235
18428         * postreload.c (reload_cse_move2add): Return bool, true if anything.
18429         changed.  All callers changed.
18430         (move2add_use_add2_insn): Likewise.
18431         (move2add_use_add3_insn): Likewise.
18432         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
18433         reload_combine.
18434         (RELOAD_COMBINE_MAX_USES): Bump to 16.
18435         (last_jump_ruid): New static variable.
18436         (struct reg_use): New members CONTAINING_MEM and RUID.
18437         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
18438         (reload_combine_split_one_ruid, reload_combine_split_ruids,
18439         reload_combine_purge_insn_uses, reload_combine_closest_single_use
18440         reload_combine_purge_reg_uses_after_ruid,
18441         reload_combine_recognize_const_pattern): New static functions.
18442         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
18443         is true for our reg and that we have available index regs.
18444         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
18445         callers changed.  Use them to initialize fields in struct reg_use.
18446         (reload_combine): Initialize last_jump_ruid.  Be careful when to
18447         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
18448         Call reload_combine_recognize_const_pattern.
18449         (reload_combine_note_store): Update REAL_STORE_RUID field.
18450
18451 2010-07-16  Jason Merrill  <jason@redhat.com>
18452
18453         * Makefile.in (opts-common.o): Depend on options.h.
18454
18455 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18456
18457         * tree.c (build_common_builtin_nodes): Use build_function_type_list
18458         instead of build_function_type.
18459         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
18460         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
18461
18462 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18463
18464         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
18465         do all the work.
18466         (rs6000_emit_int_cmove): Use function pointers for insn generation.
18467         Don't force values into registers unnecessarily.
18468         (output_isel): Assert that we're not given conditions we can't handle.
18469         Delete corresponding code.
18470         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
18471         scc_comparison_operator constraint.  Permit 0 for the consequent
18472         operand.  Permit any GPR for the alternative operand.
18473         (isel_unsigned_<mode>): Likewise.
18474
18475 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
18476
18477         PR target/44942
18478         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
18479         argument to const_tree.
18480         * config/i386/i386.c (function_arg_advance): If padding needs to be
18481         inserted before argument, increment cum->words by number of padding
18482         words as well.
18483         (contains_aligned_value_p): Change argument to const_tree.
18484         (ix86_function_arg_boundary): Change second argument to const_tree.
18485
18486 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
18487
18488         PR target/42235
18489         * function.c (record_hard_reg_sets): New static function.
18490         (assign_parm_setup_reg): If an optab for extending exists and the
18491         generated code clobbbers no hard regs, emit the insn directly and
18492         create a REG_EQUIV note.
18493
18494 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18495
18496         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
18497         TREE_CHAIN.
18498         * c-typeck.c (push_init_level): Likewise.
18499         (process_init_element): Likewise.
18500
18501 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
18502
18503         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
18504         (integer_three_node): Add.
18505         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
18506         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
18507         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
18508         of call build_int_cst.
18509         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
18510         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
18511         (find_interesting_uses_address): Ditto.
18512         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
18513         * tree-eh.c (lower_eh_constructs_2): Ditto.
18514         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
18515         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
18516         * expmed.c (expand_divmod): Ditto.
18517         * tree-mudflap.c (mx_register_decls): Ditto.
18518         * varasm.c (array_size_for_constructor): Ditto.
18519         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
18520         * c-parser.c (c_parser_postfix_expression): Ditto.
18521
18522 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18523
18524         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
18525         New static variables.
18526         (reload_combine_recognize_pattern): New static function, broken out
18527         of reload_combine.
18528         (reload_combine): Use it.  Only initialize first_index_reg and
18529         last_index_reg once.
18530
18531 2010-07-15  Richard Henderson  <rth@redhat.com>
18532
18533         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
18534         when done.
18535
18536 2010-07-15  Jan Hubicka  <jh@suse.cz>
18537
18538         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
18539         comdats for broken gold.
18540         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
18541
18542 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18543
18544         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
18545
18546 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18547
18548         * tree.h (DECL_CHAIN): Define.
18549         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
18550         * c-decl.c: Likewise.
18551         * c-parser.c: Likewise.
18552         * c-typeck.c: Likewise.
18553         * cfgexpand.c: Likewise.
18554         * cgraph.c: Likewise.
18555         * cgraphunit.c: Likewise.
18556         * combine.c: Likewise.
18557         * config/alpha/alpha.c: Likewise.
18558         * config/arm/arm.c: Likewise.
18559         * config/frv/frv.c: Likewise.
18560         * config/i386/i386.c: Likewise.
18561         * config/i386/winnt-cxx.c: Likewise.
18562         * config/ia64/ia64.c: Likewise.
18563         * config/iq2000/iq2000.c: Likewise.
18564         * config/mep/mep.c: Likewise.
18565         * config/mips/mips.c: Likewise.
18566         * config/pa/som.h: Likewise.
18567         * config/rs6000/rs6000.c: Likewise.
18568         * config/s390/s390.c: Likewise.
18569         * config/sh/sh.c: Likewise.
18570         * config/sh/symbian-cxx.c: Likewise.
18571         * config/sparc/sparc.c: Likewise.
18572         * config/spu/spu.c: Likewise.
18573         * config/stormy16/stormy16.c: Likewise.
18574         * config/vxworks.c: Likewise.
18575         * config/xtensa/xtensa.c: Likewise.
18576         * coverage.c: Likewise.
18577         * dbxout.c: Likewise.
18578         * dwarf2out.c: Likewise.
18579         * emit-rtl.c: Likewise.
18580         * expr.c: Likewise.
18581         * function.c: Likewise.
18582         * gimple-low.c: Likewise.
18583         * gimple-pretty-print.c: Likewise.
18584         * gimplify.c: Likewise.
18585         * integrate.c: Likewise.
18586         * ipa-inline.c: Likewise.
18587         * ipa-prop.c: Likewise.
18588         * ipa-split.c: Likewise.
18589         * ipa-struct-reorg.c: Likewise.
18590         * ipa-type-escape.c: Likewise.
18591         * langhooks.c: Likewise.
18592         * lto-cgraph.c: Likewise.
18593         * omp-low.c: Likewise.
18594         * stor-layout.c: Likewise.
18595         * tree-cfg.c: Likewise.
18596         * tree-complex.c: Likewise.
18597         * tree-dfa.c: Likewise.
18598         * tree-dump.c: Likewise.
18599         * tree-inline.c: Likewise.
18600         * tree-mudflap.c: Likewise.
18601         * tree-nested.c: Likewise.
18602         * tree-object-size.c: Likewise.
18603         * tree-pretty-print.c: Likewise.
18604         * tree-sra.c: Likewise.
18605         * tree-ssa-live.c: Likewise.
18606         * tree-ssa-loop-niter.c: Likewise.
18607         * tree-ssa-math-opts.c: Likewise.
18608         * tree-ssa-reassoc.c: Likewise.
18609         * tree-ssa-sccvn.c: Likewise.
18610         * tree-ssa-structalias.c: Likewise.
18611         * tree-tailcall.c: Likewise.
18612         * tree-vrp.c: Likewise.
18613         * tree.c: Likewise.
18614         * var-tracking.c: Likewise.
18615         * varasm.c: Likewise.
18616
18617 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18618
18619         PR target/44877
18620         * config/spu/spu.c (spu_expand_builtin_1): Allow references
18621         (as well as pointers) as argument to mask_for_load builtins.
18622
18623 2010-07-15  Richard Guenther  <rguenther@suse.de>
18624
18625         PR tree-optimization/44946
18626         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
18627         with accessing only padding properly.
18628
18629 2010-07-15  Jan Hubicka  <jh@suse.cz>
18630
18631         * ipa.c (function_and_variable_visibility): Variables marked as used
18632         should not be localized.
18633
18634 2010-07-15  Jan Hubicka  <jh@suse.cz>
18635
18636         * cgraph.c: Include lto-streamer.h
18637         (change_decl_assembler_name): Work when assembler name hash is at place.
18638         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
18639         be sure to rename it to avoid name clash.
18640         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
18641         Localize hidden symbols only when locally defined.
18642
18643 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
18644
18645         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
18646
18647 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
18648             Kevin F. Quinn  <kevquinn@gentoo.org>
18649
18650         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
18651         * common.opt: Add -Wtrampolines.
18652         * doc/invoke.texi: Add -Wtrampolines.
18653
18654 2010-07-15  Jie Zhang  <jie@codesourcery.com>
18655
18656         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
18657         cortex_a8_issue_ls.
18658
18659 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
18660
18661         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
18662         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
18663
18664 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18665
18666         * config/spu/spu.c (reg_names): Remove prototype.
18667         (call_used_regs): Likewise.
18668
18669 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
18670
18671         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
18672         "unused" with attribute "used".
18673         (__JCR_END__): Likewise.
18674         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
18675         "used" attribute.
18676         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
18677
18678 2010-07-14  Richard Guenther  <rguenther@suse.de>
18679
18680         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
18681         (maybe_fixup_decls): Likewise.
18682         (input_gimple_stmt): Do not fixup anything.
18683         * lto-streamer-out.c (output_gimple_stmt): Make sure all
18684         non-automatic variable uses are wrapped inside a MEM_REF.
18685
18686 2010-07-14  Richard Henderson  <rth@redhat.com>
18687
18688         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
18689         for functions.
18690         * varasm.c (assemble_variable): Remove early exit for functions;
18691         assert that we're given a variable.
18692
18693 2010-07-14  Jie Zhang  <jie@codesourcery.com>
18694
18695         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
18696         cortex_a8_default when neon_type is not none.
18697
18698 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18699
18700         * lower-subreg.c (subreg_context): New static bitmap.
18701         (decompose_multiword_subregs): Allocate and free it.
18702         (find_decomposable_subregs): Set a bit in it for a register that
18703         occurs in a subreg that changes mode but not size.
18704         (can_decompose_p): Test it instead of non_decomposable_context.
18705
18706 2010-07-14  Richard Guenther  <rguenther@suse.de>
18707
18708         PR tree-optimization/44824
18709         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
18710         is_gimple_mem_ref_addr.
18711         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
18712         non-decl_address_invariant_p addresses.
18713
18714 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18715
18716         * reload.c (find_reloads): Revert code to penalize small register
18717         classes that was brought in with the IRA merge.
18718
18719 2010-07-14  Richard Guenther  <rguenther@suse.de>
18720
18721         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
18722         as base of ARRAY_REFs.
18723
18724 2010-07-14  Richard Guenther  <rguenther@suse.de>
18725
18726         PR middle-end/44930
18727         * tree-pretty-print.c (do_niy): Do not print a newline.
18728
18729 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18730
18731         * ira-int.h (struct ira_object): New.
18732         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
18733         (struct ira_allocno): Remove members min, max,
18734         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
18735         conflict_allocnos_num and conflict_vec_p.  Add new member object.
18736         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
18737         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
18738         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
18739         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
18740         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
18741         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
18742         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
18743         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
18744         an ira_object_t rather than ira_allocno_t.  All uses changed.
18745         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18746         contains a vector of ira_object_t; all uses changed.
18747         (ira_objects_num): Declare variable.
18748         (ira_create_allocno_object): Declare function.
18749         (ira_conflict_vector_profitable_p): Adjust prototype.
18750         (ira_allocate_conflict_vec): Renamed from
18751         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
18752         (ira_allocate_object_conflicts): Renamed from
18753         ira_allocate_allocno_conflicts; first arg now ira_object_t.
18754         (struct ira_object_iterator): New.
18755         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
18756         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
18757         to conflict_vec_p.  All uses changed.
18758         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
18759         Changed to take into account that conflicts are now tracked for
18760         objects.
18761         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
18762         Args changed to accept ira_object_t.  All uses changed.
18763         (allocnos_conflict_p): New static function.
18764         (collected_conflict_objects): Renamed from collected_allocno_objects;
18765         now a vector of ira_object_t.  All uses changed.
18766         (build_conflict_bit_table): Changed to take into account that
18767         conflicts are now tracked for objects.
18768         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
18769         (print_allocno_conflicts, ira_build_conflicts): Likewise.
18770         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
18771         setup_allocno_left_conflicts_size, allocno_reload_assign,
18772         fast_allocation): Likewise.
18773         * ira-lives.c (make_hard_regno_born, make_allocno_born)
18774         process_single_reg_class_operands, process_bb_node_lives): Likewise.
18775         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
18776         Likewise.
18777         * ira-build.c (ira_objects_num): New variable.
18778         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18779         contains a vector of ira_object_t; all uses changed.
18780         (ira_object_id_map_vec): Corresponding change.
18781         (object_pool): New static variable.
18782         (initiate_allocnos): Initialize it.
18783         (finish_allocnos): Free it.
18784         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
18785         New functions.
18786         (ira_create_allocno): Don't set members that were removed.
18787         (ira_set_allocno_cover_class): Don't change conflict hard regs.
18788         (merge_hard_reg_conflicts): Changed to take into account that
18789         conflicts are now tracked for objects.
18790         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
18791         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
18792         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
18793         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
18794         setup_min_max_conflict_allocno_ids, ):  Likewise.
18795         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
18796         to ira_object_t; all callers changed.
18797         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
18798         to ira_object_t, all callers changed.
18799         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
18800         to ira_object_t, all callers changed.
18801         (conflict_check, curr_conflict_check_tick): Renamed from
18802         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
18803         changed.
18804         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
18805         arg changed to ira_object_t, all callers changed.
18806         (create_cap_allocno): Call ira_create_allocno_object.
18807         (finish_allocno): Free the corresponding object.
18808         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
18809         callers changed.  Adjusted for dealing with objects.
18810         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
18811         dealing with objects.
18812         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
18813
18814         * ira-int.h (struct live_range): Rename allocno member to object
18815         and change type to ira_object_t.
18816         (struct ira_object): New member live_ranges.
18817         (struct ira_allocno): Remove member live_ranges.
18818         (ALLOCNO_LIVE_RANGES): Remove.
18819         (OBJECT_LIVE_RANGES): New macro.
18820         (ira_create_live_range, ira_copy_live_range_list,
18821         ira_merge_live_range_list, ira_live_ranges_intersect_p,
18822         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
18823         * ira-build.c (ira_create_object): Initialize live ranges here.
18824         (ira_create_allocno): Not here.
18825         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
18826         changed to ira_object_t, all callers changed.
18827         (copy_live_range): Rename from copy_allocno_live_range, all callers
18828         changed.
18829         (ira_copy_live_range_list): Rename from
18830         ira_copy_allocno_live_range_list, all callers changed.
18831         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
18832         all callers changed.
18833         (ira_live_ranges_intersect_p): Rename from
18834         ira_allocno_live_ranges_intersect_p, all callers changed.
18835         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
18836         callers changed.
18837         (ira_finish_live_range_list): Rename from
18838         ira_finish_allocno_live_range_list, all callers changed.
18839         (change_object_in_range_list): Rename from change_allocno_in_range_list,
18840         last arg changed to ira_object_t, all callers changed.
18841         (finish_allocno): Changed to expect live ranges in the allocno's object.
18842         (move_allocno_live_ranges, copy_allocno_live_ranges,
18843         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
18844         ira_flattening, ira_build): Likewise.
18845         * ira-color.c (allocnos_have_intersected_live_ranges_p,
18846         slot_coalesced_allocno_live_ranges_intersect,
18847         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
18848         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18849         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
18850         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
18851         make_allocno_dead, create_start_finish_chains,
18852         remove_some_program_points_and_update_live_ranges,
18853         ira_debug_live_range_list): Likewise.
18854
18855         * ira-int.h (ira_object_conflict_iterator): Rename from
18856         ira_allocno_conflict_iterator.
18857         (ira_object_conflict_iter_init): Rename from
18858         ira_allocno_conflict_iter_init, second arg changed to
18859         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
18860         FOR_EACH_ALLOCNO_CONFLICT.
18861         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
18862         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
18863         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
18864         * ira-conflicts.c (print_allocno_conflicts): Likewise.
18865
18866 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
18867
18868         PR other/44874
18869         * tree-dump.c (dump_options): Add enumerate_locals entry.
18870         Add TDF_NOID exclusion to all entry.
18871         * tree-dump.h (dump_enumerated_decls): Declare.
18872         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
18873         Don't display type uid.
18874         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
18875         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
18876         * tree-ssa-live.c: Include gimple.h.
18877         (numbered_tree_d): New struct.
18878         (numbered_tree): New typedef.
18879         (DEF_VEC_O (numbered_tree): New.
18880         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
18881         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
18882         (dump_enumerated_decls): Likewise.
18883         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
18884         debug info and flag_dump_final_insns, call dump_enumerated_decls.
18885         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
18886         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
18887
18888 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
18889
18890         * expmed.h (MAX_BITS_PER_WORD): Move to...
18891         * defaults.h (MAX_BITS_PER_WORD): ...here.
18892
18893 2010-07-13  DJ Delorie  <dj@redhat.com>
18894
18895         * config/h8300/h8300.c (h8300_init_once): Default to
18896         -fstrict_volatile_bitfields.
18897
18898         * config/sh/sh.c (sh_override_options): Default to
18899         -fstrict_volatile_bitfields.
18900
18901         * config/rx/rx.c (rx_option_override): New.
18902
18903         * config/m32c/m32c.c (m32c_override_options): Default to
18904         -fstrict_volatile_bitfields.
18905
18906 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
18907
18908         * tree.h (build_function_call_expr): Delete.
18909         (build_call_expr_loc_array): New function.
18910         (build_call_expr_loc_vec): New function.
18911         * tree-flow.h (struct omp_region): Change type of ws_args field
18912         to a VEC.
18913         * builtins.c (build_function_call_expr): Delete.
18914         (build_call_expr_loc_array): New function.
18915         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
18916         (build_call_expr): Likewise.
18917         (build_call_expr_loc_vec): New function.
18918         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
18919         build_function_call_expr.
18920         * expr.c (emutls_var_address): Likewise.
18921         * varasm.c (emutls_common_1): Likewise.
18922         * omp-low.c (expand_omp_atomic_mutex): Likewise.
18923         (expand_omp_taskreg): Adjust for new type of region->ws_args.
18924         (get_ws_args_for): Return a VEC instead of a tree.
18925         (expand_parallel_call): Call build_call_expr_loc_vec instead of
18926         build_function_call_expr.
18927         * stor-layout.c (self_referential_size): Likewise.
18928
18929 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18930
18931         PR testsuite/44701
18932         * recog.c (constrain_operands): Allow side-effects in memory
18933         operands if either < or > constraint is used, rather than if
18934         both < and > is used.
18935
18936 2010-07-13  Richard Guenther  <rguenther@suse.de>
18937
18938         PR middle-end/44911
18939         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
18940         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
18941         without name.
18942
18943 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
18944
18945         PR target/44761
18946         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
18947         to variable emited.
18948         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
18949         * config/sh/sh.md (symGOT_load): Likewise.
18950         (symDTPOFF2reg): Likewise.
18951         (symTPOFF2reg): Likewise.
18952
18953 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18954
18955         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
18956         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
18957
18958 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18959
18960         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
18961         explanation.
18962         Find ucontext_t * on Solaris 11.
18963         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
18964         Handle new Solaris 11 __sighndlr patterns.
18965
18966 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18967
18968         PR debug/44901
18969         * vec.h (VEC_block_remove): Fix comment.
18970         * tree-ssa-live.c (remove_unused_locals): Don't use
18971         VEC_unordered_remove on local_decls, instead replace a single
18972         vector element in each iteration if at least one element had
18973         to be removed and VEC_truncate at the end.
18974         * omp-low.c (expand_omp_taskreg): Likewise.
18975
18976 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18977
18978         * c-decl.c (finish_function): Fix typo in comment.
18979
18980 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
18981
18982         PR bootstrap/44921
18983         * postreload.c (move2add_use_add3_insn): Silence gcc warning
18984         on min_regno.
18985
18986 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
18987
18988         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
18989         (simplify_stmt_using_ranges): Use it.
18990
18991 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18992
18993         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
18994         member.  Do not mark as GTY(()).
18995         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
18996         (spu_builtin_decls): New static variable.
18997         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
18998         (spu_init_builtins): Likewise.
18999         (spu_builtin_mul_widen_even): Likewise.
19000         (spu_builtin_mul_widen_odd): Likewise.
19001         (spu_builtin_mask_for_load): Likewise.
19002         (spu_builtin_vec_perm): Likewise.
19003         * config/spu/spu-c.c: Include "target.h".
19004         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
19005         of using spu_builtins[].fndecl.
19006
19007 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19008
19009         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
19010         imply -minterlink-mips16.
19011
19012 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19013
19014         * config/mips/mips.h (mips16_globals): Declare.
19015         (SWITCHABLE_TARGET): Define.
19016         * config/mips/mips.c: Include target-globals.h.
19017         (mips16_globals): New variable.
19018         (mips_set_mips16_mode): Use save_target_globals and
19019         restore_target_globals instead of target_reinit.
19020
19021 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19022
19023         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
19024         to say that the function can be called more than once.
19025         * target-globals.c (save_target_globals): Call init_reg_sets.
19026
19027 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19028
19029         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
19030         * bb-reorder.h: New file.
19031         * bb-reorder.c (default_target_bb_reorder): New variable.
19032         (this_target_bb_reorder): New conditional variable.
19033         (uncond_jump_length): Redefine as a macro.
19034         * target-globals.h (this_target_bb_reorder): Declare.
19035         (target_globals): Add a bb_reorder field.
19036         (restore_target_globals): Copy the bb_reorder field to
19037         this_target_bb-reorder.
19038         * target-globals.c: Include bb-reorder.h.
19039         (default_target_globals): Initialize the bb_reorder field.
19040         (save_target_globals): Likewise.
19041
19042 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19043
19044         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
19045         * gcse.h: New file.
19046         * gcse.c: Include gcse.h.
19047         (default_target_gcse): New variable.
19048         (this_target_gcse): New conditional variable.
19049         (can_copy): Redefine as a macro.
19050         (can_copy_init_p): New macro.
19051         (can_copy_p): Remove can_copy_init_p.
19052         * target-globals.h (this_target_gcse): Declare.
19053         (target_globals): Add a gcse field.
19054         (restore_target_globals): Copy the gcse field to this_target_gcse.
19055         * target-globals.c: Include gcse.h.
19056         (default_target_globals): Initialize the gcse field.
19057         (save_target_globals): Likewise.
19058
19059 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19060
19061         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
19062         and x_ira_prohibited_mode_move_regs_initialized_p.
19063         (ira_prohibited_mode_move_regs): Redefine as a macro.
19064         * ira.c (ira_prohibited_mode_move_regs): Delete.
19065         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
19066
19067 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19068
19069         * reload.h (target_reload): Add x_cached_reg_save_code and
19070         x_cached_reg_restore_code.
19071         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
19072         Redefine as macros.
19073
19074 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19075
19076         * Makefile.in (target-globals.o): Depend on builtins.h.
19077         * builtins.h: New file.
19078         * builtins.c: Include builtins.h.
19079         (default_target_builtins): New variable.
19080         (this_target_builtins): New conditional variable.
19081         (apply_args_mode, apply_result_mode): Redefine as macros.
19082         * target-globals.h (this_target_builtins): Declare.
19083         (target_globals): Add a builtins field.
19084         (restore_target_globals): Copy the builtins field to
19085         this_target_builtins.
19086         * target-globals.c: Include builtins.h.
19087         (default_target_globals): Initialize the builtins field.
19088         (save_target_globals): Likewise.
19089
19090 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19091
19092         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
19093         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
19094         from expmed.c.
19095         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
19096         (alg_hash, alg_hash_used_p): New macros.
19097         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
19098         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
19099         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
19100
19101 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19102
19103         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
19104         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
19105         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
19106         (this_op_costs, costs_classes): Redefine as macros.
19107         (record_reg_classes): Don't take op_costs as a parameter.
19108         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
19109         (scan_one_insn): Update call to record_operand_costs.
19110
19111 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19112
19113         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
19114         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
19115         (target_ira_int): New structure.
19116         (default_target_ira_int): Declare.
19117         (this_target_ira_int): Declare as a variable or define as a macro.
19118         (ira_reg_mode_hard_regset, ira_register_move_cost)
19119         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
19120         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
19121         (prohibited_class_mode_regs, ira_important_classes_num)
19122         (ira_important_classes, ira_reg_class_intersect)
19123         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
19124         (ira_reg_class_union): Redefine as macros.
19125         * ira.h (target_ira): New structure.
19126         (default_target_ira): Declare.
19127         (this_target_ira): Declare as a variable or define as a macro.
19128         (ira_available_class_regs, ira_hard_regno_cover_class)
19129         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
19130         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
19131         (ira_class_hard_regs_num): Redefine as macros.
19132         * ira.c (default_target_ira, default_target_ira_int): New variables.
19133         (this_target_ira, this_target_ira_int): New conditional variables.
19134         (ira_reg_mode_hard_regset, ira_memory_move_cost)
19135         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
19136         (ira_class_subset_p): Delete.
19137         (no_unit_alloc_regs): Redefine as a macro.
19138         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
19139         (ira_class_hard_regs_num, ira_class_hard_reg_index)
19140         (ira_available_class_regs): Delete.
19141         (alloc_reg_class_subclasses): Redefine as a macro.
19142         (ira_reg_class_cover_size, ira_reg_class_cover)
19143         (ira_important_classes_num, ira_important_classes)
19144         (ira_important_class_nums, ira_class_translate): Delete.
19145         (cover_class_order): Document the variable's lifetime.
19146         (reorder_important_classes): Don't set ira_important_class_nums.
19147         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
19148         (ira_reg_class_super_classes, ira_reg_class_union)
19149         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
19150         Delete.
19151         (setup_reg_class_nregs): Don't set ira_max_regs.
19152         (prohibited_class_mode_regs): Delete.
19153         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
19154         (target_globals): Add ira and ira_int fields.
19155         (restore_target_globals): Copy the ira field to this_target_ira
19156         and the ira_int field to this_target_ira_int.
19157         * target-globals.c: Include ira-int.h.
19158         (default_target_globals): Initialize the ira and ira_int fields.
19159         (save_target_globals): Likewise.
19160
19161 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19162
19163         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
19164         * cfgloop.h (target_cfgloop): New structure.
19165         (default_target_cfgloop): Declare.
19166         (this_target_cfgloop): Declare as a variable or define as a macro.
19167         (target_avail_regs, target_clobbered_regs, target_res_regs)
19168         (target_reg_cost, target_spill_cost): Redefine as macros.
19169         * cfgloopanal.c (default_target_cfgloop): New variable.
19170         (this_target_cfgloop): New conditional variable.
19171         (target_avail_regs, target_clobbered_regs, target_res_regs)
19172         (target_reg_cost, target_spill_cost): Delete.
19173         * target-globals.h (this_target_cfgloop): Declare.
19174         (target_globals): Add a cfgloop field.
19175         (restore_target_globals): Copy the cfgloop field to
19176         this_target_cfgloop.
19177         * target-globals.c: Include cfgloop.h.
19178         (default_target_globals): Initialize the cfgloop field.
19179         (save_target_globals): Likewise.
19180
19181 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19182
19183         * regs.h (target_regs): Add x_direct_load, x_direct_store and
19184         x_float_extend_from_mem.
19185         (direct_load, direct_store, float_extend_from_mem): New macros.
19186         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
19187
19188 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19189
19190         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
19191         (target-globals.o): Depend on $(LIBFUNCS_H).
19192         * libfuncs.h: Include hashtab.h.
19193         (libfunc_entry): Moved from optabs.c.
19194         (target_libfuncs): New structure.
19195         (default_target_libfuncs): Declare.
19196         (this_target_libfuncs): Declare as a variable or define as a macro.
19197         (libfunc_table): Redefine as a macro.
19198         * optabs.c (default_target_libfuncs): New variable.
19199         (this_target_libfuncs): New conditional variable.
19200         (libfunc_table): Delete.
19201         (libfunc_entry): Moved to optabs.h.
19202         (libfunc_hash): Redefine as a macro.
19203         (hash_libfunc, eq_libfunc): Fix comments.
19204         (init_optabs): Use libfunc_hash to detect cases where the function
19205         has already been called.  Clear the hash table instead of
19206         recreating it.
19207         * target-globals.h (this_target_libfuncs): Declare.
19208         (target_globals): Add a libfuncs field.
19209         (restore_target_globals): Copy the libfuncs field to
19210         this_target_libfuncs.
19211         * target-globals.c: Include libfuncs.h.
19212         (default_target_globals): Initialize the libfuncs field.
19213         (save_target_globals): Likewise.
19214
19215 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19216
19217         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
19218         in all dependency lists.
19219
19220 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19221
19222         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
19223         * optabs.h (target_optabs): New structure.
19224         (default_target_optabs): Declare.
19225         (this_target_optabs): Declare as a variable or define as a macro.
19226         (optab_table, convert_optab_table, direct_optab_table): Redefine
19227         as macros.
19228         * optabs.c (default_target_optabs): New variable.
19229         (this_target_optabs): New conditional variable.
19230         (optab_table, convert_optab_table, direct_optab_table): Delete.
19231         * target-globals.h (this_target_optabs): Declare.
19232         (target_globals): Add a optabs field.
19233         (restore_target_globals): Copy the optabs field to
19234         this_target_optabs.
19235         * target-globals.c: Include expr.h and optabs.h.
19236         (default_target_globals): Initialize the optabs field.
19237         (save_target_globals): Likewise.
19238
19239 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19240
19241         * flags.h (target_flagstate): Add x_flag_excess_precision.
19242         (flag_excess_precision): Redefine as a macro.
19243         * toplev.c (flag_excess_precision): Delete.
19244
19245 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19246
19247         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
19248         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
19249         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
19250         (no_caller_save_reg_set): Redefine as a macro.
19251         * reload.h (target_reload): Add x_caller_save_initialized_p and
19252         x_regno_save_mode.
19253         (caller_save_initialized_p): Redefine as a macro.
19254         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
19255         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
19256         (regno_save_mode): Redefine as a macro.
19257
19258 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19259
19260         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
19261         * expmed.h: New file.
19262         * expmed.c (default_target_costs): New variable.
19263         (this_target_costs): New conditional variable.
19264         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
19265         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
19266         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
19267         * target-globals.h (this_target_expmed): Declare.
19268         (target_globals): Add a expmed field.
19269         (restore_target_globals): Copy the expmed field to
19270         this_target_expmed.
19271         * target-globals.c: Include expmed.h.
19272         (default_target_globals): Initialize the expmed field.
19273         (save_target_globals): Likewise.
19274
19275 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19276
19277         * Makefile.in (target-globals.o): Depend on reload.h.
19278         * reload.h (target_reload): New structure.
19279         (default_target_reload): Declare.
19280         (this_target_reload): Declare as a variable or define as a macro.
19281         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
19282         * reload1.c (default_target_reload): New variable
19283         (this_target_reload): New conditional variable.
19284         (indirect_symref_ok, double_reg_address_ok): Delete.
19285         (spill_indirect_levels): Redefine as a macro.
19286         * target-globals.h (this_target_reload): Declare.
19287         (target_globals): Add a reload field.
19288         (restore_target_globals): Copy the reload field to
19289         this_target_reload.
19290         * target-globals.c: Include hard-reg-set.h.
19291         (default_target_globals): Initialize the reload field.
19292         (save_target_globals): Likewise.
19293
19294 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19295
19296         * rtl.h (target_rtl): Add x_static_reg_base_value.
19297         * alias.c (static_reg_base_value): Redefine as a macro.
19298
19299 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19300
19301         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
19302         (GTFILES): Remove reginfo.c.
19303         * rtl.h (target_rtl): Add x_top_of_stack.
19304         (top_of_stack): New macro.
19305         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
19306         (top_of_stack): Delete.
19307
19308 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19309
19310         * regs.h (target_regs): Add x_hard_regs_of_mode,
19311         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
19312         x_may_move_out_cost and x_last_mode_for_init_move_cost.
19313         (have_regs_of_mode, contains_reg_of_mode, move_cost)
19314         (may_move_in_cost, may_move_out_cost): Redefine as macros.
19315         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
19316         (may_move_in_cost, may_move_out_cost): Delete.
19317         (last_mode_for_init_move_cost): Redefine as a macro.
19318
19319 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19320
19321         * hard-reg-set.h (target_hard_regs): New structure.
19322         (default_target_hard_regs): Declare.
19323         (this_target_hard_regs): Declare as a variable or define as a macro.
19324         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
19325         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
19326         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
19327         (reg_class_size, reg_class_subclasses, reg_class_subunion)
19328         (reg_class_superunion, reg_names): Redefine as macros.
19329         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
19330         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
19331         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
19332         (reg_class_contents, reg_class_size, reg_class_subclasses)
19333         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
19334         (default_target_hard_regs): New variable
19335         (this_target_hard_regs, initial_call_really_used_regs)
19336         (initial_reg_alloc_order): New conditional variables.
19337         (initial_reg_names): New variable.
19338         (init_reg_sets): Assert that initial_call_really_used_regs,
19339         initial_reg_alloc_order and initial_reg_names
19340         are all the same size as their variable counterparts.  Use them to
19341         initialize those counterparts.
19342         * target-globals.h (this_target_hard_regs): Declare.
19343         (target_globals): Add a hard_regs field.
19344         (restore_target_globals): Copy the hard_regs field to
19345         this_target_hard_regs.
19346         * target-globals.c: Include hard-reg-set.h.
19347         (default_target_globals): Initialize the hard_regs field.
19348         (save_target_globals): Likewise.
19349
19350 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19351
19352         * Makefile.in (target-globals.o): Depend on $(RTL_H).
19353         * rtl.h (target_rtl): New structure.
19354         (default_target_rtl): Declare.
19355         (this_target_rtl): Declare as a variable or define as a macro.
19356         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
19357         Redefine as macros.
19358         * emit-rtl.c (default_target_rtl): New variable.
19359         (this_target_rtl): New conditional variable.
19360         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
19361         (return_address_pointer_rtx): Delete.
19362         (initial_regno_reg_rtx): New macro.
19363         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
19364         (init_emit_regs): Likewise.
19365         * target-globals.h (this_target_rtl): Declare.
19366         (target_globals): Add a rtl field.
19367         (restore_target_globals): Copy the rtl field to this_target_rtl.
19368         * target-globals.c: Include rtl.h.
19369         (default_target_globals): Initialize the rtl field.
19370         (save_target_globals): Likewise.
19371
19372 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19373
19374         * Makefile.in (target-globals.o): Depend on $(REGS_H).
19375         * regs.h (target_reg_modes): New structure.
19376         (default_target_reg_modes): Declare.
19377         (this_target_reg_modes): Declare as a variable or define as a macro.
19378         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
19379         * reginfo.c (default_target_reg_modes): New variable.
19380         (this_target_reg_modes): New conditional variable.
19381         (hard_regno_nregs, reg_raw_mode): Delete.
19382         * target-globals.h (this_target_regs): Declare.
19383         (target_globals): Add a regs field.
19384         (restore_target_globals): Copy the regs field to this_target_regs.
19385         * target-globals.c: Include regs.h.
19386         (default_target_globals): Initialize the regs field.
19387         (save_target_globals): Likewise.
19388
19389 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19390
19391         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
19392         * doc/tm.texi: Regenerate.
19393         * Makefile.in (OBJS-common): Add target-globals.o.
19394         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
19395         and target-globals.h.
19396         (target-globals.o): New rule.
19397         (GTFILES): Include $(srcdir)/target-globals.h.
19398         * defaults.h (SWITCHABLE_TARGET): Define.
19399         * gengtype.c (open_base_files): Add target-globals.h to the
19400         list of includes.
19401         * target-globals.h: New file.
19402         * target-globals.c: Likewise.
19403
19404         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
19405         * flags.h (target_flag_state): New structure.
19406         (default_target_flag_state): Declare.
19407         (this_target_flag_state): Declare as a variable or define as a macro.
19408         (align_loops_log): Redefine as a macro.
19409         (align_loops_max_skip, align_jumps_log): Likewise.
19410         (align_jumps_max_skip, align_labels_log): Likewise.
19411         (align_labels_max_skip, align_functions_log): Likewise.
19412         * toplev.c (default_target_flag_state): New variable.
19413         (this_target_flag_state): New conditional variable.
19414         (align_loops_log): Delete.
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         * target-globals.h (this_target_flag_state): Declare.
19419         (target_globals): Add a flag_state field.
19420         (restore_target_globals): Copy the flag_state field to
19421         this_target_flag_state.
19422         * target-globals.c: Include flags.h.
19423         (default_target_globals): Initialize the flag_state field.
19424         (save_target_globals): Likewise.
19425
19426 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19427
19428         * postreload.c (reg_symbol_ref[]): New.
19429         (move2add_use_add2_insn): New.
19430         (move2add_use_add3_insn): New.
19431         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
19432         (move2add_note_store): Likewise.
19433
19434 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
19435
19436         PR rtl-optimization/44752
19437         * genautomata.c (main): Don't emit an empty file even if there
19438         is no automaton.
19439
19440 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19441
19442         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
19443         ix86_solaris_return_in_memory.
19444         * config/i386-protos.h: Reflect this.
19445         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19446         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19447         Move ...
19448         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
19449
19450 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19451
19452         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
19453         align the stack when it's going to be saved.
19454
19455 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19456
19457         PR pch/14940
19458         * config/host-solaris.c (mmap_fixed): New function.
19459         (sol_gt_pch_get_address): Use it.
19460         (sol_gt_pch_use_address): Likewise.
19461
19462 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19463
19464         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
19465         pentiumpro on Solaris 8 and 9/x86.
19466         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
19467         Document SSE/SSE2 support.
19468         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
19469
19470 2010-07-12  Andi Kleen  <ak@linux.intel.com>
19471
19472         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
19473         instead of gcc_assert to print better error message for multiple
19474         prevailing defs.
19475
19476 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
19477
19478         * config/i386/i386.c (ix86_asm_output_function_label): Change format
19479         string placeholder from 0x%x to %#x.
19480         (ix86_code_end): Use putc to output '\n'.
19481         (ix86_print_operand) <case ';'>: Use putc to output ';'.
19482
19483 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
19484
19485         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
19486         in directive -export.
19487
19488 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
19489
19490         * reginfo.h (reg_classes_intersect_p): Change arguments type to
19491         reg_class_t.
19492         * rtl.h (reg_classes_intersect_p): Adjust prototype.
19493
19494         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19495         Remove macros.
19496         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
19497         rs6000_memory_move_cost): Remove
19498         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
19499         TARGET_MEMORY_MOVE_COST): Define.
19500         (rs6000_register_move_cost): Make static. Change arguments type from
19501         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
19502         (rs6000_memory_move_cost): Make static. Change arguments type from
19503         'enum reg_class' to reg_class_t.
19504
19505 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
19506
19507         PR middle-end/42505
19508         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
19509         lookup code into....
19510         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
19511         new functions.
19512         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
19513         * cfgloopanal.c (target_clobbered_regs): Define.
19514         (init_set_costs): Initialize target_clobbered_regs.
19515         (estimate_reg_pressure_cost): Add call_p argument.  When true,
19516         adjust the number of available registers to exclude the
19517         call-clobbered registers.
19518         * cfgloop.h (target_clobbered_regs): Declare.
19519         (estimate_reg_pressure_cost): Adjust declaration.
19520         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
19521         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
19522         (determine_set_costs): Dump target_clobbered_regs.
19523         (loop_body_includes_call): New function.
19524         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
19525         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
19526         call_p flag through.
19527         (best_gain_for_invariant): Likewise.
19528         (find_invariants_to_move): Likewise.
19529         (move_single_loop_invariants): Likewise, using already-computed
19530         has_call field.
19531
19532 2010-07-10  Richard Guenther  <rguenther@suse.de>
19533             Joern Rennecke  <joern.rennecke@embecosm.com>
19534
19535         PR debug/44832
19536         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
19537         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
19538         unless they have DECL_IGNORED_P set.
19539
19540 2010-07-10  Richard Guenther  <rguenther@suse.de>
19541
19542         PR lto/44889
19543         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
19544         helper function.
19545         (gimple_types_compatible_p): Similar to pointed-to
19546         types allow and merge a mix of complete and incomplete aggregate.
19547         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
19548         (iterative_hash_gimple_type): Adjust for that.
19549
19550 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
19551
19552         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
19553
19554 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
19555
19556         PR objc/44140
19557         * config/darwin.c (output_objc_section_asm_op): Save and restore
19558         section when outputting ObjC section list.
19559
19560 2010-07-09  Jan Hubicka  <jh@suse.cz>
19561
19562         * lto-streamer-out.c (produce_symtab): Do not write alias
19563         cgraph/varpool nodes.
19564
19565 2010-07-09  Jan Hubicka  <jh@suse.cz>
19566
19567         * tree-inline.c (declare_return_variable): Fix ICE while
19568         inlining DECL_BY_VALUE function not in SSA form
19569
19570 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
19571
19572         PR tree-optimization/44576
19573         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
19574         New.  Pull out from is_loop_prefetching_profitable to implement
19575         the trip count to ahead ratio heuristic.
19576         (mem_ref_count_reasonable_p): New.  Pull out from
19577         is_loop_prefetching_profitable to implement the instruction to
19578         memory reference ratio heuristic.  Also consider not reasonable if
19579         the memory reference count is above a threshold (to avoid
19580         explosive compilation time.
19581         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
19582         is_loop_prefetching_profitable to implement the instruction to
19583         prefetch ratio heuristic.
19584         (is_loop_prefetching_profitable): Removed.
19585         (loop_prefetch_arrays): Distribute the cost analysis across the
19586         function to allow early exit of the prefetch analysis.
19587         is_loop_prefetching_profitable is splitted into three functions,
19588         with each one called as early as possible.
19589         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
19590         number of memory references in a loop is considered too many.
19591
19592 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19593
19594         * reload.c (find_reloads): Don't clear badop if we have a winreg
19595         alternative, but not win, and the class only has fixed regs.
19596         * hard-reg-set.h (class_only_fixed_regs): Declare.
19597         * reginfo.c (class_only_fixed_regs): New array.
19598         (init_reg_sets_1): Initialize it.
19599         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
19600         discourage alternatives using the stack pointer.
19601
19602         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
19603
19604         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
19605
19606         * config/arm/arm.md (cbranchqi4): Fix array size.
19607         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
19608         calculating length.
19609
19610 2010-07-09  Richard Guenther  <rguenther@suse.de>
19611
19612         * gimple.c (struct type_fixup_s): New struct and VEC type.
19613         (gimple_register_type_fixups): New static global.
19614         (gimple_queue_type_fixup): New function.
19615         (gimple_types_compatible_p): Queue type fixups instead of
19616         applying them here.
19617         (gimple_register_type): Apply queued fixups for the
19618         canonical type.  Empty the type fixup queue.
19619
19620 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19621
19622         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
19623         * configure: Regenerate.
19624         * config.in: Ditto.
19625
19626 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19627             Denys Vlasenko  <dvlasenk@redhat.com>
19628             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19629
19630         PR tree-optimization/28632
19631         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
19632         (extract_range_from_binary_expr): Further optimize
19633         BIT_AND_EXPR and BIT_IOR_EXPR.
19634
19635 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
19636
19637         * tree-if-conv.c (fold_or_predicates): New.
19638         (add_to_predicate_list): Call it.
19639
19640 2010-07-09  Richard Guenther  <rguenther@suse.de>
19641
19642         PR middle-end/44890
19643         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
19644         if base is a pointer.
19645         * tree-cfg.c (verify_expr): Update MEM_REF checking.
19646
19647 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
19648
19649         PR target/44877
19650         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
19651         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
19652         builtin mask for load/store builtins.
19653
19654 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19655
19656         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
19657         for "lock addl".
19658         * configure: Regenerate.
19659         * config/i386/i386.c (ix86_print_operand) <case ';'>:
19660         Remove TARGET_MACHO.
19661
19662 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
19663
19664         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
19665         default ISA flags.
19666         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
19667
19668 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
19669
19670         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
19671
19672 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
19673
19674         * config/picochip/picochip.md (commsTestPort): Emit more
19675         efficient sequence for tstport instruction.
19676
19677 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19678
19679         * config/i386/i386.c (ix86_veclib_handler): Make static.
19680
19681 2010-07-09  Richard Guenther  <rguenther@suse.de>
19682
19683         PR tree-optimization/44852
19684         * tree-ssa-alias.c: Include toplev.h for exact_log2.
19685         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
19686         in MEM_REF.
19687         (indirect_refs_may_alias_p): Likewise.
19688         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
19689
19690 2010-07-09  Richard Guenther  <rguenther@suse.de>
19691
19692         PR tree-optimization/44882
19693         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
19694         sets do conflict.
19695         (vectorizable_load): Likewise.
19696
19697 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19698
19699         PR target/40657
19700         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
19701         All callers changed.
19702         Handle the case when we're called for the epilogue.
19703         (thumb_unexpanded_epilogue): Use it.
19704         (thumb1_expand_epilogue): Likewise.
19705
19706 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19707
19708         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
19709         both ranges are range_int_cst_p with non-negative minimum,
19710         try harder to derive smaller range.
19711
19712 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19713
19714         * genrecog.c: Include diagnostic-core.h before toplev.h.
19715         * genoutput.c: Likewise.
19716         * genextract.c: Likewise.
19717         * genautomata.c: Likewise.
19718         * genemit.c: Likewise.
19719         * genpeep.c: Likewise.
19720         * genattrtab.c: Likewise.
19721         * genconditions.c: Likewise.
19722         * genpreds.c: Likewise.
19723
19724 2010-07-08  Andi Kleen  <ak@linux.intel.com>
19725
19726         * lto-section-in.c (lto_section_name): Add missing comma.
19727
19728 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
19729
19730         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
19731         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
19732         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
19733         (ia64_override_options): Rename to...
19734         (ia64_option_override): ... this one. Make static.
19735
19736 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19737
19738         PR middle-end/44843
19739         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
19740         pointed-to type of the offset in a MEM_REF to compute the alignment.
19741
19742 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
19743
19744         * final.c (final_scan_insn): Replace
19745         TARGET_UNWIND_INFO macro check by unwind_emit
19746         hook NULL check.
19747         * targhooks.c (default_unwind_emit): Removed.
19748         * targhooks.h (default_unwind_emit): Likewise.
19749         * target.def (unwind_emit): Set default value to NULL.
19750
19751         * config/i386/i386-protos.h (ix86_asm_output_function_label):
19752         New prototype.
19753         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
19754         for NULL fntype argument and allow 64-bit targets.
19755         (ix86_asm_output_function_label): New function.
19756         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
19757         (ix86_handle_fndecl_attribute): Likewise.
19758         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
19759         * doc/doc/tm.texi: Regenerated.
19760         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
19761         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
19762         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
19763         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
19764         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19765         * config/elfos.h: Likewise.
19766         * config/i386/cygming.h: Likewise.
19767         * config/netbsd-aout.h: Likewise.
19768         * config/openbsd.h: Likewise.
19769         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
19770         by ix86_asm_output_function_label function call.
19771         * varasm.c (assemble_start_function): Use
19772         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19773
19774 2010-07-08  Jan Hubicka  <jh@suse.cz>
19775
19776         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
19777         New function.
19778         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
19779         Declare.
19780         * ipa-cp.c (ipcp_estimate_growth): Use it.
19781         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
19782         Likewise.
19783
19784 2010-07-08  Jan Hubicka  <jh@suse.cz>
19785
19786         * tree-inline.c (declare_return_variable): Allocate annotation for new
19787         temporary.
19788
19789 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19790
19791         PR tree-optimization/44710
19792         * tree-if-conv.c (parse_predicate): New.
19793         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
19794         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
19795
19796 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19797
19798         * common.opt (ftree-loop-if-convert): New flag.
19799         * doc/invoke.texi (ftree-loop-if-convert): Documented.
19800         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
19801         when flag_tree_loop_if_convert is set.
19802
19803 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
19804
19805         * config/i386/i386.c: Use short syntax for function calls
19806         through function pointers.
19807         * config/i386/i386.md: Ditto.
19808
19809 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19810
19811         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
19812
19813 2010-07-08  Richard Guenther  <rguenther@suse.de>
19814
19815         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
19816         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
19817
19818 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
19819
19820         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
19821         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
19822         (loc_list_from_tree): Likewise.
19823         (output_loc_operands): Handle outputting DW_OP_const[48]u
19824         with loc->dtprel set.
19825         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
19826
19827 2010-07-08  Jan Hubicka  <jh@suse.cz>
19828
19829         * ipa.c: Include pointer-set.h
19830         (cgraph_externally_visible_p): New attribute ALIASED;
19831         when in LTO, hidden symbols are local unless they are aliased.
19832         (function_and_variable_visibility): Compute aliased nodes;
19833         handle LTO and hidden symbol on functions and vars.
19834         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
19835         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
19836
19837 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19838
19839         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
19840         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19841         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19842         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19843         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19844         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
19845         (ix86_gen_probe_stack_range): Likewise.
19846         (override_options): Set them.
19847         (ix86_target_stack_probe): New function.
19848         (ix86_compute_frame_layout): Force use of push instructions to
19849         save registers if stack checking with probes is enabled.
19850         (get_scratch_register_on_entry): New function.
19851         (release_scratch_register_on_entry): Likewise.
19852         (ix86_adjust_stack_and_probe): Likewise.
19853         (output_adjust_stack_and_probe): Likewise.
19854         (ix86_emit_probe_stack_range): Likewise.
19855         (output_probe_stack_range): Likewise.
19856         (ix86_expand_prologue): Emit stack checking code if static built-in
19857         stack checking is enabled.
19858         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
19859         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
19860         (output_adjust_stack_and_probe): Likewise.
19861         (output_probe_stack_range): Likewise.
19862         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
19863         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
19864         TARGET_STACK_PROBE.
19865         (allocate_stack_worker_64): Likewise.
19866         (allocate_stack): Likewise.
19867         (adjust_stack_and_probe): New insn.
19868         (probe_stack_range): Likewise.
19869
19870 2010-07-08  Richard Guenther  <rguenther@suse.de>
19871
19872         PR tree-optimization/44831
19873         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
19874         a MEM_REF preserving TBAA info of the original dereference.
19875         Dereference the original pointer if the address is not invariant.
19876         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
19877         at least one invariant address that we are going to dereference.
19878
19879 2010-07-08  Richard Guenther  <rguenther@suse.de>
19880
19881         PR tree-optimization/44861
19882         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
19883         information when building MEM_REFs.
19884         (vectorizable_load): Likewise.
19885         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
19886
19887 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19888
19889         * config/sol2-c.c: Do not include diagnostic-core.h.
19890
19891 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19892
19893         PR bootstrap/44768
19894         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
19895         with respect to current_function_decl. Pass decl of the function.
19896         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
19897         * ipa-inline.c (compute_inline_parameters): Pass decl to
19898         estimated_stack_frame_size.
19899
19900 2010-07-08  Richard Guenther  <rguenther@suse.de>
19901
19902         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
19903         New function.
19904         (valueize_refs): Call it.
19905
19906 2010-07-08  Richard Guenther  <rguenther@suse.de>
19907
19908         PR rtl-optimization/44838
19909         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
19910         SSA form do not use pointer equivalence.
19911
19912 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19913
19914         * dwarf2out.c (AT_linkage_name): Delete.
19915         (add_linkage_attr): New function.
19916         (add_linkage_name): Call it to emit the linkage attribute.
19917         (dwarf2out_finish): Likewise.
19918         (move_linkage_attr): Explicitly accept both attribute variants.
19919
19920 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19921
19922         * toplev.h: Do not include diagnostic-core.h.
19923         Include diagnostic-core.h in every file that includes toplev.h.
19924         * c-tree.h: Do not include toplev.h.
19925         * pretty-print.h: Update comment.
19926         * Makefile.in: Update dependencies.
19927         * alias.c: Include diagnostic-core.h in every file that includes
19928         toplev.h.
19929         * attribs.c: Likewise.
19930         * auto-inc-dec.c: Likewise.
19931         * bb-reorder.c: Likewise.
19932         * bt-load.c: Likewise.
19933         * caller-save.c: Likewise.
19934         * calls.c: Likewise.
19935         * cfg.c: Likewise.
19936         * cfganal.c: Likewise.
19937         * cfgbuild.c: Likewise.
19938         * cfgcleanup.c: Likewise.
19939         * cfghooks.c: Likewise.
19940         * cfgloop.c: Likewise.
19941         * combine.c: Likewise.
19942         * config/alpha/alpha.c: Likewise.
19943         * config/arc/arc.c: Likewise.
19944         * config/arm/arm.c: Likewise.
19945         * config/arm/pe.c: Likewise.
19946         * config/avr/avr.c: Likewise.
19947         * config/bfin/bfin.c: Likewise.
19948         * config/cris/cris.c: Likewise.
19949         * config/crx/crx.c: Likewise.
19950         * config/darwin-c.c: Likewise.
19951         * config/darwin.c: Likewise.
19952         * config/fr30/fr30.c: Likewise.
19953         * config/frv/frv.c: Likewise.
19954         * config/h8300/h8300.c: Likewise.
19955         * config/host-darwin.c: Likewise.
19956         * config/i386/i386.c: Likewise.
19957         * config/i386/netware.c: Likewise.
19958         * config/i386/nwld.c: Likewise.
19959         * config/i386/winnt-cxx.c: Likewise.
19960         * config/i386/winnt-stubs.c: Likewise.
19961         * config/i386/winnt.c: Likewise.
19962         * config/ia64/ia64-c.c: Likewise.
19963         * config/ia64/ia64.c: Likewise.
19964         * config/iq2000/iq2000.c: Likewise.
19965         * config/lm32/lm32.c: Likewise.
19966         * config/m32c/m32c-pragma.c: Likewise.
19967         * config/m32c/m32c.c: Likewise.
19968         * config/m32r/m32r.c: Likewise.
19969         * config/m68hc11/m68hc11.c: Likewise.
19970         * config/m68k/m68k.c: Likewise.
19971         * config/mcore/mcore.c: Likewise.
19972         * config/mep/mep-pragma.c: Likewise.
19973         * config/mep/mep.c: Likewise.
19974         * config/mmix/mmix.c: Likewise.
19975         * config/mn10300/mn10300.c: Likewise.
19976         * config/moxie/moxie.c: Likewise.
19977         * config/pa/pa.c: Likewise.
19978         * config/pdp11/pdp11.c: Likewise.
19979         * config/picochip/picochip.c: Likewise.
19980         * config/rs6000/rs6000-c.c: Likewise.
19981         * config/rs6000/rs6000.c: Likewise.
19982         * config/rx/rx.c: Likewise.
19983         * config/s390/s390.c: Likewise.
19984         * config/score/score.c: Likewise.
19985         * config/score/score3.c: Likewise.
19986         * config/score/score7.c: Likewise.
19987         * config/sh/sh.c: Likewise.
19988         * config/sh/symbian-base.c: Likewise.
19989         * config/sh/symbian-c.c: Likewise.
19990         * config/sh/symbian-cxx.c: Likewise.
19991         * config/sol2-c.c: Likewise.
19992         * config/sol2.c: Likewise.
19993         * config/sparc/sparc.c: Likewise.
19994         * config/spu/spu.c: Likewise.
19995         * config/stormy16/stormy16.c: Likewise.
19996         * config/v850/v850-c.c: Likewise.
19997         * config/v850/v850.c: Likewise.
19998         * config/vax/vax.c: Likewise.
19999         * config/vxworks.c: Likewise.
20000         * config/xtensa/xtensa.c: Likewise.
20001         * convert.c: Likewise.
20002         * cse.c: Likewise.
20003         * cselib.c: Likewise.
20004         * dbgcnt.c: Likewise.
20005         * dbxout.c: Likewise.
20006         * ddg.c: Likewise.
20007         * dominance.c: Likewise.
20008         * emit-rtl.c: Likewise.
20009         * explow.c: Likewise.
20010         * expmed.c: Likewise.
20011         * fixed-value.c: Likewise.
20012         * fold-const.c: Likewise.
20013         * fwprop.c: Likewise.
20014         * gcse.c: Likewise.
20015         * ggc-common.c: Likewise.
20016         * ggc-page.c: Likewise.
20017         * ggc-zone.c: Likewise.
20018         * gimple-low.c: Likewise.
20019         * gimplify.c: Likewise.
20020         * graph.c: Likewise.
20021         * haifa-sched.c: Likewise.
20022         * ifcvt.c: Likewise.
20023         * implicit-zee.c: Likewise.
20024         * integrate.c: Likewise.
20025         * ira-build.c: Likewise.
20026         * ira-color.c: Likewise.
20027         * ira-conflicts.c: Likewise.
20028         * ira-costs.c: Likewise.
20029         * ira-lives.c: Likewise.
20030         * ira.c: Likewise.
20031         * lists.c: Likewise.
20032         * loop-doloop.c: Likewise.
20033         * loop-iv.c: Likewise.
20034         * lto-opts.c: Likewise.
20035         * lto-symtab.c: Likewise.
20036         * main.c: Likewise.
20037         * modulo-sched.c: Likewise.
20038         * optabs.c: Likewise.
20039         * params.c: Likewise.
20040         * plugin.c: Likewise.
20041         * postreload-gcse.c: Likewise.
20042         * postreload.c: Likewise.
20043         * predict.c: Likewise.
20044         * profile.c: Likewise.
20045         * real.c: Likewise.
20046         * regcprop.c: Likewise.
20047         * reginfo.c: Likewise.
20048         * regmove.c: Likewise.
20049         * reorg.c: Likewise.
20050         * resource.c: Likewise.
20051         * rtl.c: Likewise.
20052         * rtlanal.c: Likewise.
20053         * sched-deps.c: Likewise.
20054         * sched-ebb.c: Likewise.
20055         * sched-rgn.c: Likewise.
20056         * sdbout.c: Likewise.
20057         * sel-sched-dump.c: Likewise.
20058         * sel-sched-ir.c: Likewise.
20059         * simplify-rtx.c: Likewise.
20060         * stmt.c: Likewise.
20061         * stor-layout.c: Likewise.
20062         * store-motion.c: Likewise.
20063         * targhooks.c: Likewise.
20064         * tree-cfg.c: Likewise.
20065         * tree-cfgcleanup.c: Likewise.
20066         * tree-dump.c: Likewise.
20067         * tree-eh.c: Likewise.
20068         * tree-inline.c: Likewise.
20069         * tree-nomudflap.c: Likewise.
20070         * tree-object-size.c: Likewise.
20071         * tree-optimize.c: Likewise.
20072         * tree-outof-ssa.c: Likewise.
20073         * tree-phinodes.c: Likewise.
20074         * tree-profile.c: Likewise.
20075         * tree-ssa-ccp.c: Likewise.
20076         * tree-ssa-coalesce.c: Likewise.
20077         * tree-ssa-live.c: Likewise.
20078         * tree-ssa-loop-niter.c: Likewise.
20079         * tree-ssa-loop-prefetch.c: Likewise.
20080         * tree-ssa-loop.c: Likewise.
20081         * tree-ssa-structalias.c: Likewise.
20082         * tree-ssa-uninit.c: Likewise.
20083         * tree-ssa.c: Likewise.
20084         * tree-vect-data-refs.c: Likewise.
20085         * tree-vect-loop-manip.c: Likewise.
20086         * tree-vect-loop.c: Likewise.
20087         * tree-vect-patterns.c: Likewise.
20088         * tree-vect-stmts.c: Likewise.
20089         * tree-vrp.c: Likewise.
20090         * varasm.c: Likewise.
20091         * vec.c: Likewise.
20092         * web.c: Likewise.
20093         * xcoffout.c: Likewise.
20094
20095 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
20096
20097         * gengtype.c (write_field_root): New function.
20098         (write_root): Use it.
20099
20100 2010-07-07  Wei Guozhi  <carrot@google.com>
20101
20102         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20103         of lowest bits to lshift/compare): Add a missing line.
20104
20105 2010-07-07  Wei Guozhi  <carrot@google.com>
20106
20107         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20108         of lowest bits to lshift/compare): New.
20109
20110 2010-07-07  Tom Tromey  <tromey@redhat.com>
20111
20112         * doc/tm.texi: Update.
20113         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
20114         Add @hook.
20115         * target.def (want_debug_pub_sections): New hook.
20116         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
20117         * dwarf2out.c (add_pubname_string): Check
20118         targetm.want_debug_pub_sections.
20119         (add_pubname): Likewise.
20120         (add_pubtype): Likewise.
20121
20122 2010-07-07  Jie Zhang  <jie@codesourcery.com>
20123
20124         * genautomata.c (output_automata_list_min_issue_delay_code):
20125         Correctly decompress min_issue_delay.
20126
20127 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20128
20129         PR rtl-optimization/44404
20130         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
20131         possible, use reg_overlap_mentioned_p instead.
20132
20133 2010-07-07  Duncan Sands  <baldrick@free.fr>
20134
20135         PR middle-end/41355
20136         * tree.c (build_function_type_skip_args): Copy the original type using
20137         build_distinct_type_copy rather than copy_node.
20138
20139 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20140
20141         PR target/44850
20142         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
20143         revision 161876.
20144         (ix86_expand_prologue): Likewise.
20145         (ix86_handle_fndecl_attribute): Likewise.
20146         (ix86_asm_declare_function_name): Likewise.
20147         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20148         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20149         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
20150         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
20151         * doc/extend.texi: Likewise.
20152
20153 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20154
20155         PR target/44844
20156         * config/i386/i386.md (rdrand<mode>): Changed to expand to
20157         retry if the carry flag isn't valid.
20158         (rdrand<mode>_1): New.
20159
20160 2010-07-07  Richard Guenther  <rguenther@suse.de>
20161
20162         PR middle-end/44790
20163         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
20164         for expanding the constant offset for MEM_REFs.
20165
20166 2010-07-07  Richard Guenther  <rguenther@suse.de>
20167
20168         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
20169         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
20170         * gimple.h (is_gimple_operand): Remove.
20171         * gimple.c (is_gimple_operand): Likewise.
20172         (walk_gimple_op): Fix wi->val_only setting for calls.
20173         * tree-cfg.c (verify_gimple_call): Fix argument validation.
20174         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
20175         invalid gimple calls.
20176
20177 2010-07-06  Jan Hubicka  <jh@suse.cz>
20178
20179         * lto-cgraph.c (output_cgraph): Add missing declaration.
20180
20181 2010-07-06  Jan Hubicka  <jh@suse.cz>
20182
20183         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
20184         partition.
20185
20186 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
20187
20188         * doc/gimple.texi (GIMPLE_DEBUG): Document.
20189         * doc/rtl.texi (Debug Information): New node.
20190         (NOTE_INSN_VAR_LOCATION): Document.
20191         (debug_insn): Likewise.
20192         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
20193
20194 2010-07-07  Jan Hubicka  <jh@suse.cz>
20195
20196         With parts by Richard Guenther.
20197
20198         PR middle-end/44813
20199         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
20200         for functions passed by reference.
20201         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
20202         in memory when passed by reference.
20203         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
20204         beggining.
20205         * ipa-split.c (split_function): Cleanup way return value is passed;
20206         handle SSA DECL_BY_REFERENCE retvals.
20207         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
20208         DECL_BY_REFERENCE is set.
20209         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
20210         find_what_p_points_to): Handle RESULT_DECL.
20211         * tree-inline.c (declare_return_variable): Get new entry_block argument;
20212         when passing by reference ensure that RESULT_DECL is gimple_val.
20213         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
20214         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
20215
20216 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20217
20218         PR rtl-optimization/44787
20219         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
20220         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
20221
20222 2010-07-06  Jan Hubicka  <jh@suse.cz>
20223
20224         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
20225         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
20226         with body can prevail.
20227         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
20228         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
20229         * cgraph.c (cgraph_get_node_or_alias): New function.
20230         * cgraph.h (cgraph_get_node_or_alias): Declare.
20231
20232 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
20233
20234         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
20235         support.
20236         (ix86_expand_prologue): Likewise.
20237         (ix86_handle_fndecl_attribute): Likewise.
20238         (ix86_asm_declare_function_name): New function for
20239         ASM_DECLARE_FUNCTION_NAME.
20240         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
20241         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
20242         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
20243         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
20244         * doc/extend.texi: Adjust documentation about ms_hook_prologue
20245         attribute.
20246
20247 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20248
20249         * config/i386/i386.md (immediate_operand): New mode attribute.
20250
20251         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
20252         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
20253         using P mode iterator.
20254         (pro_epilogue_adjust_stack_di_2): Rename from
20255         pro_epilogue_adjust_stack_rex64_2.
20256
20257         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
20258
20259 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20260
20261         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
20262         through gen_mov_insv_1 function pointer.
20263         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
20264         gen_truncxf<mode>2 through gen_truncxf function pointer.
20265         (remainder<mode>3): Ditto.
20266         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
20267         (allocate_stack): Call gen_allocate_stack_worker_64 or
20268         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
20269         function pointer.
20270         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
20271         function pointer.
20272
20273 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20274
20275         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
20276         operand constraint instead of <r><i>m.
20277
20278 2010-07-06  Richard Guenther  <rguenther@suse.de>
20279
20280         PR middle-end/44828
20281         * convert.c (convert_to_integer): Watch out for overflowing
20282         MULT_EXPR as well.
20283
20284 2010-07-05  Jan Hubicka  <jh@suse.cz>
20285
20286         * lto-streamer.c (write_symbol_vec): Rename to ...
20287         (write_symbol) ... this one; write only symbol given and when
20288         present in cache. Sanity check that what is defined is present
20289         in cgraph/varpool with body/finalized decl.
20290         (write_symbols_of_kind): Remove.
20291         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
20292         pairs to produce symtab.
20293         (produce_asm_for_decls): Update call of produce_symtab; don't do so
20294         when doing WPA streaming.
20295
20296 2010-07-05  Jan Hubicka  <jh@suse.cz>
20297
20298         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
20299         function is still available to fold into.
20300
20301 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20302
20303         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
20304         * function.h (struct_function): Change type of local_decls field
20305         to a VEC.
20306         (add_local_decl): New function.
20307         (FOR_EACH_LOCAL_DECL): New macro.
20308         * cfgexpand.c (init_vars_expansion): Adjust for new type of
20309         cfun->local_decls.
20310         (estimated_stack_frame_size): Likewise.
20311         (expand_used_vars): Likewise.
20312         * cgraphbuild.c (build_cgraph_edges): Likewise.
20313         * function.c (instantiate_decls_1): Likewise.
20314         * ipa-struct-reorg.c (build_data_structure): Likewise.
20315         * ipa-type-escape.c (analyze_function): Likewise.
20316         * lto-streamer-in.c (input_function): Likewise.
20317         * lto-streamer-out.c (output_function): Likewise.
20318         * tree-ssa-live.c (remove_unused_locals): Likewise.
20319         * tree.c (free_lang_data_in_decl): Likewise.
20320         (find_decls_types_in_node): Likewise.
20321         * omp-low.c (remove_exit_barrier): Likewise.
20322         (expand_omp_taskreg): Likewise.
20323         (list2chain): Rename to...
20324         (vec2chain): ...this.  Adjust.
20325         * cgraphunit.c (assemble_thunk): Call add_local_decl.
20326         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
20327         * gimple-low.c (record_vars_into): Likewise.
20328         * tree-inline.c (remap_decls): Likewise.
20329         (declare_return_variable): Likewise.
20330         (declare_inline_vars): Likewise.
20331         (copy_forbidden): Adjust for new type of cfun->local_decls.
20332         (add_local_variables): New function.
20333         (expand_call_inline): Call it.
20334         (tree_function_versioning): Likewise.
20335
20336 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
20337
20338         AVX Programming Reference (June, 2010)
20339         * config/i386/cpuid.h (bit_F16C): New.
20340         (bit_RDRND): Likewise.
20341         (bit_FSGSBASE): Likewise.
20342
20343         * config/i386/i386-builtin-types.def: Add
20344         "DEF_FUNCTION_TYPE (UINT16)", function types for
20345         float16 <-> float conversions and
20346         "DEF_FUNCTION_TYPE (VOID, UINT64)".
20347
20348         * config/i386/i386-c.c (ix86_target_macros_internal): Support
20349         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
20350         OPTION_MASK_ISA_F16C.
20351
20352         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
20353         (OPTION_MASK_ISA_RDRND_SET): Likewise.
20354         (OPTION_MASK_ISA_F16C_SET): Likewise.
20355         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
20356         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
20357         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
20358         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
20359         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
20360         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
20361         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
20362         (override_options): Handle them.
20363         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
20364         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
20365         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
20366         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
20367         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
20368         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
20369         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
20370         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
20371         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
20372         (bdesc_args): Likewise.
20373         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
20374         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
20375         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
20376         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
20377         Handle non-memory store.
20378
20379         * config/i386/i386.h (TARGET_FSGSBASE): New.
20380         (TARGET_RDRND): Likewise.
20381         (TARGET_F12C): Likewise.
20382
20383         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
20384         (UNSPEC_VCVTPS2PH): Likewise.
20385         (UNSPECV_RDFSBASE): Likewise.
20386         (UNSPECV_RDGSBASE): Likewise.
20387         (UNSPECV_WRFSBASE): Likewise.
20388         (UNSPECV_WRGSBASE): Likewise.
20389         (UNSPECV_RDRAND): Likewise.
20390         (rdfsbase<mode>): Likewise.
20391         (rdgsbase<mode>): Likewise.
20392         (wrfsbase<mode>): Likewise.
20393         (wrgsbase<mode>): Likewise.
20394         (rdrand<mode>): Likewise.
20395
20396         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
20397
20398         * config/i386/immintrin.h (_rdrand_u16): New.
20399         (_rdrand_u32): Likewise.
20400         (_readfsbase_u32): Likewise.
20401         (_readfsbase_u64): Likewise.
20402         (_readgsbase_u32): Likewise.
20403         (_readgsbase_u64): Likewise.
20404         (_writefsbase_u32): Likewise.
20405         (_writefsbase_u64): Likewise.
20406         (_writegsbase_u32): Likewise.
20407         (_writegsbase_u64): Likewise.
20408         (_rdrand_u64): Likewise.
20409         (_cvtsh_ss): Likewise.
20410         (_mm_cvtph_ps): Likewise.
20411         (_mm256_cvtph_ps): Likewise.
20412         (_cvtss_sh): Likewise.
20413         (_mm_cvtps_ph): Likewise.
20414         (_mm256_cvtps_ph): Likewise.
20415
20416         * config/i386/sse.md (vcvtph2ps): New.
20417         (*vcvtph2ps_load): Likewise.
20418         (vcvtph2ps256): Likewise.
20419         (vcvtps2ph): Likewise.
20420         (*vcvtps2ph): Likewise.
20421         (*vcvtps2ph_store): Likewise.
20422         (vcvtps2ph256): Likewise.
20423
20424         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
20425
20426         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
20427
20428 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
20429
20430         PR bootstrap/44512
20431         * genenums.c (main): Output include of insn-constants.h
20432         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
20433
20434 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
20435
20436         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
20437         (override_options): Initialize it.
20438         (ix86_expand_prologue): Use it.
20439
20440 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20441
20442         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
20443
20444 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20445
20446         * double-int.h (fit_double_type): Remove declaration.
20447         * double-int.c (fit_double_type): Remove function.
20448         * tree.h (int_fits_type_p): Adjust prototype.
20449         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
20450         instead of fit_double_type.
20451         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
20452         instead of fit_double_type and build_int_cst_wide.
20453         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
20454         instead of fit_double_type and build_int_cst_wide.
20455         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
20456         of fit_double_type.
20457
20458 2010-07-05  Jan Hubicka  <jh@suse.cz>
20459
20460         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
20461         in_other_partition.
20462         * lto-cgraph.c (referenced_from_other_partition_p,
20463         reachable_from_other_partition_p): Use in_other_partition flags.
20464         (output_node, output_varpool_node): COMDAT nodes always have private
20465         copies and thus are never used from other partition.
20466
20467 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20468
20469         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
20470         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
20471         * config/ia64/ia64.c Include reload.h.
20472         (ia64_memory_move_cost): New function.
20473         (TARGET_MEMORY_MOVE_COST): Define.
20474         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
20475         memory_move_cost.
20476
20477 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
20478
20479         PR middle-end/42505
20480         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
20481         comments about cost model.
20482         (try_add_cand_for):  Add second strategy for choosing initial set
20483         based on original IVs, controlled by ORIGINALP argument.
20484         (get_initial_solution): Add ORIGINALP argument.
20485         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
20486         (find_optimal_iv_set): Try two different strategies for choosing
20487         the IV set, and return the one with lower cost.
20488
20489 2010-07-05  Richard Guenther  <rguenther@suse.de>
20490
20491         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
20492
20493 2010-07-05  Richard Guenther  <rguenther@suse.de>
20494
20495         * tree.c (reference_alias_ptr_type): New function.
20496         * tree.h (reference_alias_ptr_type): Declare.
20497         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
20498         allow non-TARGET_MEM_REF new refs.
20499         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
20500         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
20501         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
20502         (create_mem_ref): Get alias pointer type.  Adjust calls to
20503         create_mem_ref_raw.
20504         (maybe_fold_tmr): Likewise.
20505         * tree-flow.h (create_mem_ref): Adjust prototype.
20506
20507 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20508
20509         PR c++/44808
20510         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
20511         *from_p is VAR_DECL.
20512
20513 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20514
20515         * tree.h (build_call_list): Remove.
20516         * tree.c (build_call_list): Remove.
20517
20518 2010-07-05  Richard Guenther  <rguenther@suse.de>
20519
20520         * double-int.h (double_int_sub): Declare.
20521         * double-int.c (double_int_sub): New function.
20522         * dwarf2out.c (field_byte_offset): Use it.
20523         * fixed-value.c (do_fixed_add): Likewise.
20524         (do_fixed_multiply): Likewise.
20525         (do_fixed_divide): Likewise.
20526         * tree-predcom.c (add_ref_to_chain): Likewise.
20527         (determine_roots_comp): Likewise.
20528         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
20529
20530 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20531
20532         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
20533         implementations.
20534
20535 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
20536
20537         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
20538         * arm-modes.def (CC_NOTB): Don't define.
20539         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
20540         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
20541         (LTUGEU): New code_iterator.
20542         (cnb, optab): New corresponding code_attrs.
20543         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
20544         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
20545         using LTUGEU.
20546         (addsi3_carryin_shift_<optab>): Likewise.
20547         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
20548         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
20549         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
20550         (subsi3_compare): Renamed from subsi3_compare0_c.
20551         Change CC_NOTB to CC.
20552         (arm_subsi3_insn): Allow constants for operand 0.
20553         (compare_scc peephole for eq case): New.
20554         (compare_scc splitters): Change CC_NOTB to CC.
20555
20556 2010-07-05  Richard Guenther  <rguenther@suse.de>
20557
20558         * tree-ssa-loop-im.c (for_each_index): Do not handle
20559         ALIGN_INDIRECT_REF.
20560         (gen_lsm_tmp_name): Likewise.
20561         * tree-dump.c (dequeue_and_dump): Likewise.
20562         * tree-pretty-print.c (dump_generic_node): Likewise.
20563         (op_code_prio): Likewise.
20564         (op_symbol_code): Likewise.
20565         * tree.c (staticp): Likewise.
20566         (build1_stat): Likewise.
20567         * tree.h (INDIRECT_REF_P): Likewise.
20568         * fold-const.c (maybe_lvalue_p): Likewise.
20569         (operand_equal_p): Likewise.
20570         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
20571         (ao_ref_init_from_vn_reference): Likewise.
20572         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
20573         (find_interesting_uses_address): Likewise.
20574         * dwarf2out.c (loc_list_from_tree): Likewise.
20575         * gimplify.c (gimplify_expr): Likewise.
20576         * tree-eh.c (tree_could_trap_p): Likewise.
20577         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
20578         * cfgexpand.c (expand_debug_expr): Likewise.
20579         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
20580         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
20581         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
20582         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
20583         * tree-ssa-operands.c (get_expr_operands): Likewise.
20584         * expr.c (safe_from_p): Likewise.
20585         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
20586         * tree-vect-data-refs.c (vect_setup_realignment): Build
20587         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
20588         * tree-vect-stmts.c (vectorizable_load): Likewise.
20589         * tree.def (ALIGN_INDIRECT_REF): Remove.
20590
20591 2010-07-05  Richard Guenther  <rguenther@suse.de>
20592
20593         PR tree-optimization/44784
20594         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
20595         for inserted stmts.
20596         (find_or_generate_expression): Fix SCCVN insertion check.
20597
20598 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
20599
20600         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
20601         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
20602         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
20603         directives.
20604
20605 2010-07-05  Ira Rosen  <irar@il.ibm.com>
20606
20607         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
20608         statements that are not vectorized.
20609         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
20610         in INSIDE_COST.
20611
20612 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
20613
20614         PR bootstrap/44820
20615         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
20616
20617 2010-07-05  Richard Guenther  <rguenther@suse.de>
20618
20619         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
20620         RESULT_DECLs properly.
20621
20622 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
20623
20624         PR rtl-optimization/44695
20625         * config/i386/i386.md (extract_code): Removed.
20626         (<u>divmodqi4): Likewise.
20627         (divmodqi4): New.
20628         (udivmodqi4): Likewise.
20629         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
20630         (udivmodhiqi3): Likewise.
20631
20632 2010-07-04  Jan Hubicka  <jh@suse.cz>
20633
20634         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
20635
20636 2010-07-04  Jan Hubicka  <jh@suse.cz>
20637
20638         * cgraphunit.c (init_cgraph): Only initialize dump file if it
20639         is not already initialized.
20640
20641 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20642
20643         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
20644         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
20645         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
20646         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
20647         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
20648         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
20649         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
20650         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
20651         (sync_new_nand_optab): Redefine as macros.
20652         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
20653         Delete.
20654         (direct_optab_index): New enum.
20655         (direct_optab_d): New structure.
20656         (direct_optab): New typedef.
20657         (direct_optab_table): Declare.
20658         (direct_optab_handler, set_direct_optab_handler): New functions.
20659         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
20660         (sync_lock_release_optab): New macros.
20661         * optabs.c (direct_optab_table): New variable.
20662         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
20663         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
20664         cmpstr_optab and cmpstrn_optab.
20665         (emit_conditional_move): Likewise for movcc_optab.
20666         (can_conditionally_move_p): Likewise for movcc_gen_code.
20667         (init_insn_codes): Clear direct_optab_table.
20668         (init_optabs): Don't initialize the new "direct optabs" here.
20669         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
20670         vcond_gen_code.
20671         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
20672         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
20673         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
20674         (expand_sync_operation): Likewise other sync_*_optabs.
20675         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
20676         to sync_compare_and_swap_optab.
20677         (expand_sync_lock_test_and_set): Use direct_optab_handler for
20678         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
20679         to the names of both.
20680         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
20681         cmpstr_optab and cmpstrn_optab.
20682         (expand_builtin_lock_release): Likewise sync_lock_release.
20683         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
20684         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
20685         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
20686         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
20687         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
20688         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
20689         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
20690         (sync_lock_test_and_set, sync_lock_release): Delete.
20691         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
20692         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
20693         * genopinit.c (optabs): Use set_direct_optab_handler for the new
20694         macro optabs.
20695         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
20696         the "optab" local variable.  Use direct_optab_handler for optab and
20697         sync_compare_and_swap_optab.
20698         * reload1.c (reload_in_optab, reload_out_optab): Delete.
20699         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
20700         reload_in_optab and reload_out_optab.
20701         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
20702         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
20703         * config/pa/pa.c (pa_secondary_reload): Likewise.
20704         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
20705         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
20706         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
20707         (VMSupportsCS8_builtin): Likewise.
20708
20709 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20710
20711         * optabs.h (optab_handlers): Change type of insn_code to int.
20712         (optab_handler, set_optab_handler, convert_optab_handler)
20713         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
20714         CODE_FOR_nothing".
20715         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
20716         (init_insn_codes): Zero both the above arrays.
20717         (init_optabs): Never call init_insn_codes first time around.
20718
20719 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20720
20721         * optabs.h (optab_handler, convert_optab_handler): Turn into
20722         inline functions that return an insn code.
20723         (set_optab_handler, set_convert_optab_handler): New functions.
20724         * builtins.c: Replace optab_handler(X)->insn_code with
20725         optab_handler or set_optab_handler thoughout.  Likewise
20726         convert_optab_handler(X)->insn_code with convert_optab_handler
20727         and set_convert_optab_handler.
20728         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
20729         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
20730         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
20731         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
20732         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
20733         config/spu/spu.c: Likewise.
20734
20735 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
20736
20737         PR target/44531
20738         * config.gcc (sh*-*-*): Use regular expressions instead of
20739         the 'i' modifier for sed substitutions.
20740
20741 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
20742
20743         * gimple.c (gimple_body): Comments added.
20744
20745 2010-07-04  Richard Guenther  <rguenther@suse.de>
20746
20747         PR middle-end/44809
20748         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
20749         of an INDIRECT_REF.
20750
20751 2010-07-04  Richard Guenther  <rguenther@suse.de>
20752
20753         PR tree-optimization/44479
20754         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
20755         extra SSA name copy statements which preserves points-to
20756         information.
20757         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
20758         Copy points-to information for all pointers.  Properly handle
20759         MEM_REFs.
20760         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
20761         copy statements.
20762         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
20763         dependency.
20764
20765 2010-07-04  Richard Guenther  <rguenther@suse.de>
20766
20767         PR middle-end/44785
20768         * tree-inline.c (initialize_inlined_parameters): Do not
20769         re-use pointer-map slot over remap_type call.
20770
20771 2010-07-04  Richard Guenther  <rguenther@suse.de>
20772
20773         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
20774
20775 2010-07-04  Richard Guenther  <rguenther@suse.de>
20776
20777         PR tree-optimization/44656
20778         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
20779         again after value-replacing in the defintions lhs.
20780
20781 2010-07-04  Ira Rosen  <irar@il.ibm.com>
20782             Revital Eres  <eres@il.ibm.com>
20783
20784         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
20785         Document new arguments.
20786         * doc/tm.texi: Regenerate.
20787         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
20788         Handle unaligned store.
20789         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
20790         * target.def (builtin_vectorization_cost): Add new arguments.
20791         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
20792         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
20793         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
20794         (vect_vfa_segment_size): Fix indentation.
20795         * tree-vectorizer.h (struct _vect_peel_info): New.
20796         (struct _vect_peel_extended_info): New.
20797         (struct _loop_vec_info): Add new field for peeling hash table and a
20798         macro for its access.
20799         (VECT_MAX_COST): Define.
20800         (vect_get_load_cost): Declare.
20801         (vect_get_store_cost, vect_get_known_peeling_cost,
20802         vect_get_single_scalar_iteraion_cost): Likewise.
20803         (vect_supportable_dr_alignment): Add new argument.
20804         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
20805         field.
20806         (destroy_loop_vec_info): Free peeling hash table.
20807         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
20808         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
20809         vect_analyze_slp. Fix indentation.
20810         (vect_get_single_scalar_iteraion_cost): New function.
20811         (vect_get_known_peeling_cost): Likewise.
20812         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
20813         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
20814         statement. Move outside cost calculation inside unknown peeling case.
20815         Call vect_get_known_peeling_cost for known amount of peeling.
20816         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
20817         reference to the print message of forced alignment.
20818         (vect_verify_datarefs_alignment): Update call to
20819         vect_supportable_dr_alignment.
20820         (vect_get_data_access_cost): New function.
20821         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
20822         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
20823         vect_peeling_hash_choose_best_peeling): Likewise.
20824         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
20825         to store all the accesses in the loop and find best possible access to
20826         align using peeling for known alignment case. For unknown alignment
20827         check if stores are preferred or if peeling is worthy.
20828         (vect_find_same_alignment_drs): Analyze pairs of loads too.
20829         (vect_supportable_dr_alignment): Add new argument and check aligned
20830         accesses according to it.
20831         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
20832         (cost_for_stmt): Call vect_get_stmt_cost.
20833         (vect_model_simple_cost): Likewise.
20834         (vect_model_store_cost): Call vect_get_stmt_cost. Call
20835         vect_get_store_cost to calculate the cost of the statement.
20836         (vect_get_store_cost): New function.
20837         (vect_model_load_cost): Call vect_get_stmt_cost. Call
20838         vect_get_load_cost to calculate the cost of the statement.
20839         (vect_get_load_cost): New function.
20840         (vectorizable_store): Update call to vect_supportable_dr_alignment.
20841         (vectorizable_load): Likewise.
20842         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
20843         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
20844         arguments. Handle unaligned store.
20845         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
20846         (rs6000_builtin_support_vector_misalignment): Return true for word and
20847         double word alignments for VSX.
20848         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
20849         vect_supportable_dr_alignment and builtin_vectorization_cost.
20850
20851 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20852
20853         PR target/44597
20854         * config/pa/predicates.md (prefetch_cc_operand): Remove.
20855         (prefetch_nocc_operand): Likewise.
20856         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
20857         (prefetch_20): New insn.
20858         (prefetch_cc): Remove.
20859         (prefetch_nocc): Likewise.
20860
20861 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20862
20863         * expr.c (vector_mode_valid_p): Move to c-common.c.
20864         * expr.h (vector_mode_valid_p): Do not declare here.
20865         * system.h: Poison GCC_EXPR_H in front-ends.
20866         * Makefile.in: Update dependencies.
20867
20868 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20869
20870         PR target/44705
20871         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
20872
20873 2010-07-03  Jan Hubicka  <jh@suse.cz>
20874
20875         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
20876         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
20877         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
20878         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
20879         Likewise.
20880
20881         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
20882         Update timevars.V
20883         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
20884         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
20885         TV_IPA_LTO_DECL_OUT): New.
20886         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
20887
20888 2010-07-03  Jan Hubicka  <jh@suse.cz>
20889
20890         * ipa-inline.c (update_edge_key): Break out from ...
20891         update_callers_keys): ... here;
20892         (update_callee_keys): Update only the edges from caller to callee.
20893         (update_all_calle_keys): Do what update_calle_keys did.
20894         (decide_inlining_of_small_functions): Avoid recomputing of all
20895         callees when badness increase.
20896
20897 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20898
20899         * config/arm/arm.c (arm_attr_length_move_neon): New.
20900         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
20901         * config/arm/neon.md (define_mode_attr V_slen): Remove.
20902         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
20903         to compute length attribute.
20904
20905 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20906
20907         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
20908         as predicate for operand 1 and remove its constraint.
20909         * config/arm/predicates.md (vfp_register_operand): New.
20910         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
20911         (*push_fp_multi): Likewise.
20912
20913 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
20914
20915         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
20916
20917 2010-07-03  Jan Hubicka  <jh@suse.cz>
20918
20919         * config/i386/i386.c (override_options): Revert accidental commit.
20920
20921 2010-07-02  Le-Chun Wu  <lcwu@google.com>
20922
20923         PR c++/44128
20924         * doc/invoke.texi: Update documentation of -Wshadow.
20925
20926 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
20927             Julian Brown  <julian@codesourcery.com>
20928             Sandra Loosemore  <sandra@codesourcery.com>
20929
20930         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
20931         comparisons.  Adjust to take both operands.
20932         (arm_select_cc_mode): Handle DImode comparisons.
20933         (arm_gen_compare_reg): Generate a scratch register for DImode
20934         comparisons which require one.  Use xor for Thumb equality checks.
20935         (arm_const_double_by_immediates): New.
20936         (arm_print_operand): Allow 'Q' and 'R' for constants.
20937         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
20938         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
20939         arm_canonicalize_comparison.
20940         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
20941         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
20942         prototype.
20943         (arm_const_double_by_immediates): Declare.
20944         * config/arm/constraints.md (Di): New constraint.
20945         * config/arm/predicates.md (arm_immediate_di_operand)
20946         (arm_di_operand, cmpdi_operand): New.
20947         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
20948         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
20949         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
20950         (cstoredi4): Handle non-Cirrus also.
20951
20952 2010-07-02  Julian Brown  <julian@codesourcery.com>
20953             Sandra Loosemore  <sandra@codesourcery.com>
20954
20955         PR target/43703
20956         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
20957         (smax<mode>3): Disable for NEON float modes when
20958         flag_unsafe_math_optimizations is false.
20959         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
20960         (*mul<mode>3_neon)
20961         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
20962         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
20963         for NEON float modes when flag_unsafe_math_optimizations is false.
20964         (quad_halves_<code>v4sf): Only enable if
20965         flag_unsafe_math_optimizations is true.
20966         * doc/invoke.texi (ARM Options): Add note about floating point
20967         vectorization requiring -funsafe-math-optimizations.
20968
20969 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20970             Julian Brown  <julian@codesourcery.com>
20971
20972         * config/arm/neon.md (UNSPEC_VABA): Delete.
20973         (UNSPEC_VABAL): Delete.
20974         (UNSPEC_VABS): Delete.
20975         (UNSPEC_VMUL_N): Delete.
20976         (adddi3_neon): New.
20977         (subdi3_neon): New.
20978         (mul<mode>3add<mode>_neon): Make the pattern named.
20979         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
20980         (neon_vadd<mode>): Replace with define_expand, and move the remaining
20981         unspec parts...
20982         (neon_vadd<mode>_unspec): ...to this.
20983         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
20984         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
20985         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
20986         (neon_vaba<mode>): Rewrite in terms of vabd.
20987         (neon_vabal<mode>): Rewrite in terms of vabdl.
20988         (neon_vabs<mode>): Rewrite without unspec.
20989         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
20990         (*arm_subdi3): Likewise.
20991         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
20992         No_op attribute to disable assembly output checks.
20993         * config/arm/arm_neon.h: Regenerated.
20994         * doc/arm-neon-intrinsics.texi: Regenerated.
20995
20996 2010-07-02  Jan Hubicka  <jh@suse.cz>
20997
20998         * ipa-split.c (split_function): For aggregate values, set the return
20999         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
21000         *<retval> = fncall.part ().
21001         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
21002
21003 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21004
21005         * config/arm/neon.md (UNSPEC_VAND): Delete.
21006         (UNSPEC_VBIC): Delete.
21007         (UNSPEC_VCLZ): Delete.
21008         (UNSPEC_VCNT): Delete.
21009         (UNSPEC_VEOR): Delete.
21010         (UNSPEC_VORN): Delete.
21011         (UNSPEC_VORR): Delete.
21012         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
21013         core registers too.
21014         (anddi3_neon): Likewise.
21015         (orndi3_neon): Likewise.
21016         (bicdi3_neon): Likewise.
21017         (xordi3_neon): Likewise.
21018         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
21019         rid of unspec and handle unused operand.
21020         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
21021         * config/arm/predicates.md (imm_for_neon_logic_operand):
21022         Require TARGET_NEON.
21023         (imm_for_neon_inv_logic_operand): Likewise.
21024         * config/arm/arm.md (define_split for logical_binary_operator):
21025         Disable for NEON registers.
21026         (anddi3): Add new define_expand, and rename the insn.  Disable
21027         this insn for NEON, where anddi3_neon now applies.
21028         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
21029         (iordi3): As for anddi3.
21030         (xordi3): Likewise.
21031         * config/arm/neon.ml (Vand): Split DImode variants and mark them
21032         as No_op to disable testing for exact instruction match.
21033         (Vorr): Likewise.
21034         (Veor): Likewise.
21035         (Vbic): Likewise.
21036         (Vorn): Likewise.
21037         * config/arm/arm_neon.h: Regenerated.
21038         * doc/arm-neon-intrinsics.texi: Regenerated.
21039
21040 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
21041
21042         * expr.h (emit_stack_probe): Declare.
21043         * explow.c (emit_stack_probe): Make global.
21044         (anti_adjust_stack_and_probe): Fix comments.
21045         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
21046         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21047         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21048         * config/sparc/sparc.c: Include except.h.
21049         (sparc_emit_probe_stack_range): New function.
21050         (output_probe_stack_range): Likewise.
21051         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
21052         built-in stack checking is enabled.
21053         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
21054         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
21055         (probe_stack_range): New insn.
21056
21057 2010-07-02  Richard Guenther  <rguenther@suse.de>
21058
21059         PR target/43958
21060         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
21061         for argument alignment.
21062
21063 2010-07-02  Jan Hubicka  <jh@suse.cz>
21064
21065         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
21066         walk backwards from entry_bb to check only those basic block of header
21067         that might lead to execution of split part.
21068         (consider_split) ... here.
21069         (find_return_bb): Allow assignment in return BB.
21070         (find_retval): New.
21071         (split_function): Fix name of cloned function; take care of updating
21072         return value in return_bb containing move.
21073
21074 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
21075
21076         PR target/44771
21077         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
21078         used variable insn.
21079
21080 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
21081
21082         * implicit-zee.c (combine_reaching_defs): Fix long lines.
21083         (is_set_with_extension_DI): Delete.
21084         (struct zero_extend_info): New structure.
21085         (add_removable_zero_extend): New function.
21086         (find_removable_zero_extends): Use note_stores to find SETs.
21087         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
21088
21089 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21090
21091         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
21092         is_miss_rate_acceptable. Pull total_positions computation
21093         out of the loops.  Early return if miss_positions exceeds
21094         the acceptable threshold.
21095         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
21096         is_miss_rate_acceptable after renaming of compute_miss_rate.
21097
21098 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21099
21100         PR middle-end/44576
21101         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
21102         of 1000) for miss rate if the address diference is greater than or
21103         equal to the cache line size (the two reference will never hit the
21104         same cache line).
21105
21106 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
21107
21108         PR target/42835
21109         * config/arm/arm-modes.def (CC_NOTB): New mode.
21110         * config/arm/arm.c (get_arm_condition_code): Handle it.
21111         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
21112         * config/arm/arm.md (subsi3_compare0_c): New pattern.
21113         (compare_scc): Now a define_and_split.  Add a number of extra
21114         splitters before it.
21115
21116         PR target/42172
21117         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
21118         and ZERO_EXTEND.
21119         (arm_rtx_costs_1): Likewise.
21120         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
21121         * config/arm/arm.md (is_arch6): New attribute.
21122         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
21123         extendqisi2): Tighten the code somewhat, avoiding invalid
21124         RTL to occur in the expander patterns.
21125         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
21126         (thumb1_zero_extendhisi2_v6): Delete.
21127         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
21128         (thumb1_extendhisi2_v6): Delete.
21129         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
21130         (thumb1_extendqisi2_v6): Delete.
21131         (zero_extendhisi2 for register input splitter): New.
21132         (zero_extendqisi2 for register input splitter): New.
21133         (thumb1_extendhisi2 for register input splitter): New.
21134         (extendhisi2 for register input splitter): New.
21135         (extendqisi2 for register input splitter): New.
21136         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
21137         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
21138         and add support for a register alternative requiring a split.
21139         (thumb1_zero_extendqisi2): Likewise.
21140         (arm_zero_extendqisi2): Likewise.
21141         (arm_extendhisi2): Likewise.
21142         (arm_extendqisi2): Likewise.
21143
21144 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21145
21146         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
21147         instead of an unspec.
21148         (neon_expand_vector_init): Likewise.
21149         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
21150         (UNSPEC_VDUP_LANE): Delete.
21151         (UNSPEC VDUP_N): Delete.
21152         (UNSPEC_VGET_HIGH): Delete.
21153         (UNSPEC_VGET_LANE): Delete.
21154         (UNSPEC_VGET_LOW): Delete.
21155         (UNSPEC_VMVN): Delete.
21156         (UNSPEC_VSET_LANE): Delete.
21157         (V_double_vector_mode): New.
21158         (vec_set<mode>_internal): Make code emitted match that for the
21159         corresponding intrinsics.
21160         (vec_setv2di_internal): Likewise.
21161         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
21162         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
21163         (neon_vset_lane<mode>): Combine double and quad patterns and
21164         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
21165         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
21166         (neon_vdup_n<mode>): Rewrite RTL without unspec.
21167         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
21168         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
21169         with neon_vdup_lanev2di, adjusting the pattern from the latter
21170         to be predicable for consistency.
21171         (neon_vdup_lane<mode>_internal): New.
21172         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
21173         to avoid using an unspec.
21174         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
21175         (neon_vdup_lanev2di): Turn into a define_expand.
21176         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
21177         (neon_vget_high<mode>): Replace with....
21178         (neon_vget_highv16qi): New pattern using canonical RTL.
21179         (neon_vget_highv8hi): Likewise.
21180         (neon_vget_highv4si): Likewise.
21181         (neon_vget_highv4sf): Likewise.
21182         (neon_vget_highv2di): Likewise.
21183         (neon_vget_low<mode>): Replace with....
21184         (neon_vget_lowv16qi): New pattern using canonical RTL.
21185         (neon_vget_lowv8hi): Likewise.
21186         (neon_vget_lowv4si): Likewise.
21187         (neon_vget_lowv4sf): Likewise.
21188         (neon_vget_lowv2di): Likewise.
21189
21190         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
21191         test for this emitting vmov.
21192         (Vset_lane): Likewise.
21193         (Vdup_n): Likewise.
21194         (Vmov_n): Likewise.
21195
21196         * doc/arm-neon-intrinsics.texi: Regenerated.
21197
21198 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21199
21200         * config/arm/neon.md (vec_extractv2di): Correct error in register
21201         numbering to reconcile with neon_vget_lanev2di.
21202
21203 2010-07-02  Richard Guenther  <rguenther@suse.de>
21204
21205         * tree-ssa-structalias.c (pt_solution_set_var): New function.
21206         * tree-ssa-alias.h (pt_solution_set_var): Declare.
21207         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
21208         points-to information.
21209
21210 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
21211
21212         * config/s390/s390.c (override_options): Adopt prefetching
21213         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
21214
21215 2010-07-02  Jan Hubicka  <jh@suse.cz>
21216
21217         * df-problems.c (df_kill_notes): Do not collect dead  notes.
21218         (df_set_note): Just call add_reg_note.
21219         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
21220         df_create_unused_note): Do not deal with lists of old notes.
21221         (df_note_bb_compute): Likewise.
21222
21223 2010-07-02  Richard Guenther  <rguenther@suse.de>
21224
21225         * tree-ssa-structalias.c (find_func_aliases): Handle
21226         pointer alignment via BIT_AND_EXPR.
21227         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
21228
21229 2010-07-02  Richard Guenther  <rguenther@suse.de>
21230
21231         * tree-data-ref.c (initialize_data_dependence_relation): Handle
21232         mismatching number of dimensions properly.
21233
21234 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21235
21236         PR target/44707
21237         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
21238         (lo_sum (high ...) ...) patterns generated by earlier passes.
21239
21240 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21241
21242         * doc/install.texi (Prerequisites): Document Perl requirement on
21243         Solaris 2.
21244         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
21245
21246 2010-07-02  Richard Guenther  <rguenther@suse.de>
21247
21248         PR middle-end/44777
21249         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
21250
21251 2010-07-02  Jan Hubicka  <jh@suse.cz>
21252
21253         PR middle-end/44706
21254         * predict.c (predict_paths_for_bb): Handle case when control dependence
21255         BB has only abnormal edges.
21256
21257 2010-07-02  Richard Guenther  <rguenther@suse.de>
21258
21259         PR tree-optimization/44748
21260         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
21261         the embedded conversion in MEM_REFs.
21262
21263 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
21264
21265         * reload.c: Include toplev.h.
21266         * recog.c:  Likewise.
21267         * Makefile.in: Adjust dependencies.
21268
21269 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
21270
21271         PR debug/44694
21272         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
21273         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
21274
21275 2010-07-01  Richard Guenther  <rguenther@suse.de>
21276
21277         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
21278         types for offsets.
21279
21280 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
21281
21282         PR target/44732
21283         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
21284         Fix argument types.
21285
21286 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
21287
21288         PR target/44727
21289         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21290         Make sure operand 0 dies.
21291
21292 2010-07-01  Richard Guenther  <rguenther@suse.de>
21293
21294         PR middle-end/42834
21295         PR middle-end/44468
21296         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
21297         * doc/generic.texi (References to storage): Document MEM_REF.
21298         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
21299         (print_call_name): Likewise.
21300         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
21301         (build_simple_mem_ref_loc): New function.
21302         (mem_ref_offset): Likewise.
21303         * tree.h (build_simple_mem_ref_loc): Declare.
21304         (build_simple_mem_ref): Define.
21305         (mem_ref_offset): Declare.
21306         * fold-const.c: Include tree-flow.h.
21307         (operand_equal_p): Handle MEM_REF.
21308         (build_fold_addr_expr_with_type_loc): Likewise.
21309         (fold_comparison): Likewise.
21310         (fold_unary_loc): Fold
21311         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
21312         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
21313         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
21314         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
21315         (ptr_deref_may_alias_ref_p_1): Likewise.
21316         (ao_ref_base_alias_set): Properly differentiate base object for
21317         offset and TBAA.
21318         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
21319         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
21320         (indirect_refs_may_alias_p): Likewise.
21321         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
21322         chasing code.
21323         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
21324         (call_may_clobber_ref_p_1): Likewise.
21325         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
21326         * expr.c (expand_assignment): Handle MEM_REF.
21327         (store_expr): Handle MEM_REFs from STRING_CSTs.
21328         (store_field): If expanding a MEM_REF of a non-addressable
21329         decl use bitfield operations.
21330         (get_inner_reference): Handle MEM_REF.
21331         (expand_expr_addr_expr_1): Likewise.
21332         (expand_expr_real_1): Likewise.
21333         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
21334         * alias.c (ao_ref_from_mem): Handle MEM_REF.
21335         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
21336         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
21337         (dr_analyze_indices): Likewise.
21338         (dr_analyze_alias): Likewise.
21339         (object_address_invariant_in_loop_p): Likewise.
21340         * gimplify.c (mark_addressable): Handle MEM_REF.
21341         (gimplify_cond_expr): Build MEM_REFs.
21342         (gimplify_modify_expr_to_memcpy): Likewise.
21343         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
21344         (gimple_fold_indirect_ref): Adjust.
21345         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
21346         * tree.def (MEM_REF): New tree code.
21347         * tree-dfa.c: Include toplev.h.
21348         (get_ref_base_and_extent): Handle MEM_REF.
21349         (get_addr_base_and_unit_offset): New function.
21350         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
21351         * gimple-fold.c (may_propagate_address_into_dereference): Handle
21352         MEM_REF.
21353         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
21354         accesses if the array has just one dimension.  Remove always true
21355         parameter.  Do not require type compatibility here.
21356         (maybe_fold_offset_to_component_ref): Remove.
21357         (maybe_fold_stmt_indirect): Remove.
21358         (maybe_fold_reference): Remove INDIRECT_REF handling.
21359         Fold back to non-MEM_REF.
21360         (maybe_fold_offset_to_address): Simplify.  Deal with type
21361         mismatches here.
21362         (maybe_fold_reference): Likewise.
21363         (maybe_fold_stmt_addition): Likewise.  Also handle
21364         &ARRAY + I in addition to &ARRAY[0] + I.
21365         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
21366         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
21367         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
21368         * tree-ssa.c (useless_type_conversion_p): Make most pointer
21369         conversions useless.
21370         (warn_uninitialized_var): Handle MEM_REF.
21371         (maybe_rewrite_mem_ref_base): New function.
21372         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
21373         to SSA form.
21374         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
21375         INDIRECT_REF handling.
21376         (copy_tree_body_r): Handle MEM_REF.
21377         * gimple.c (is_gimple_addressable): Adjust.
21378         (is_gimple_address): Likewise.
21379         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
21380         invariant base are invariant.
21381         (is_gimple_min_lval): Adjust.
21382         (is_gimple_mem_ref_addr): New function.
21383         (get_base_address): Handle MEM_REF.
21384         (count_ptr_derefs): Likewise.
21385         (get_base_loadstore): Likewise.
21386         * gimple.h (is_gimple_mem_ref_addr): Declare.
21387         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
21388         * tree-cfg.c (verify_address): New function, split out from ...
21389         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
21390         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
21391         INDIRECT_REFs.
21392         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
21393         INDIRECT_REF.  Allow conversions.
21394         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
21395         a register does not change its size.
21396         (verify_types_in_gimple_reference): Verify MEM_REF.
21397         (verify_gimple_assign_single): Disallow INDIRECT_REF.
21398         Handle MEM_REF.
21399         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
21400         New.
21401         (mark_address_taken): Handle MEM_REF.
21402         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
21403         (get_asm_expr_operands): Pass opf_not_non_addressable.
21404         (get_expr_operands): Handle opf_[not_]non_addressable.
21405         Handle MEM_REF.  Remove INDIRECT_REF handling.
21406         * tree-vrp.c (check_array_ref): Handle MEM_REF.
21407         (search_for_addr_array): Likewise.
21408         (check_array_bounds): Likewise.
21409         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
21410         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
21411         (ref_always_accessed_p): Likewise.
21412         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
21413         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
21414         Handle MEM_REF.
21415         * cgraphbuild.c (mark_load): Properly check for NULL result
21416         from get_base_address.
21417         (mark_store): Likewise.
21418         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
21419         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
21420         handling for MEM_REF.
21421         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
21422         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
21423         * builtins.c (stabilize_va_list_loc): Use the function ABI
21424         valist type if we couldn't canonicalize the argument type.
21425         Always dereference with the canonical va-list type.
21426         (maybe_emit_free_warning): Handle MEM_REF.
21427         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
21428         memmove to memcpy.
21429         * builtins.c (fold_builtin_memory_op): Use ref-all types
21430         for all memcpy foldings.
21431         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
21432         (build_outer_var_ref): Likewise.
21433         (scan_omp_1_op): Likewise.
21434         (lower_rec_input_clauses): Likewise.
21435         (lower_lastprivate_clauses): Likewise.
21436         (lower_reduction_clauses): Likewise.
21437         (lower_copyprivate_clauses): Likewise.
21438         (expand_omp_atomic_pipeline): Likewise.
21439         (expand_omp_atomic_mutex): Likewise.
21440         (create_task_copyfn): Likewise.
21441         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
21442         Remove old union trick.  Initialize constant offsets.
21443         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
21444         INDIRECT_REF.  Init base_alias_set properly.
21445         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
21446         (vn_reference_fold_indirect): Adjust for MEM_REFs.
21447         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
21448         for ARRAY_REFs.
21449         (may_insert): Remove.
21450         (visit_reference_op_load): Do not test may_insert.
21451         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
21452         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
21453         a field to store the constant offset this op applies.
21454         (run_scc_vn): Adjust prototype.
21455         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
21456         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
21457         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
21458         bother about volatile qualifiers on pointers.
21459         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
21460         * tree-ssa-loop-ivopts.c
21461         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
21462         (strip_offset_1): Likewise.
21463         (find_interesting_uses_address): Replace INDIRECT_REF handling with
21464         MEM_REF handling.
21465         (get_computation_cost_at): Likewise.
21466         * ipa-pure-const.c (check_op): Handle MEM_REF.
21467         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
21468         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
21469         and constants.
21470         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
21471         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
21472         (eliminate_local_variables_1): Likewise.
21473         (create_call_for_reduction_1): Likewise.
21474         (create_loads_for_reductions): Likewise.
21475         (create_loads_and_stores_for_name): Likewise.
21476         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
21477         (ssa_accessed_in_tree): Handle MEM_REF.
21478         (ssa_accessed_in_assign_rhs): Likewise.
21479         (update_type_size): Likewise.
21480         (analyze_accesses_for_call_stmt): Likewise.
21481         (analyze_accesses_for_assign_stmt): Likewise.
21482         (transform_access_sites): Likewise.
21483         (transform_allocation_sites): Likewise.
21484         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
21485         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
21486         not handle INDIRECT_REF.
21487         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
21488         (cond_store_replacement): Likewise.
21489         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
21490         MEM_REF, no not handle INDIRECT_REFs.
21491         (insert_into_preds_of_block): Properly initialize avail.
21492         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
21493         for ARRAY_REFs.  Properly handle reference lookups that
21494         require a bit re-interpretation.
21495         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
21496         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
21497         (build_ref_for_offset_1): Remove.
21498         (build_ref_for_offset): Build MEM_REFs.
21499         (gate_intra_sra): Disable for now.
21500         (sra_ipa_modify_expr): Handle MEM_REF.
21501         (ipa_early_sra_gate): Disable for now.
21502         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
21503         MEM_REF handling.
21504         (disqualify_base_of_expr): Likewise.
21505         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
21506         MEM_REF handling.
21507         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
21508         Use mem_ref_offset.  Remove bogus folding.
21509         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
21510         (make_fancy_name_1): Add support for MEM_REF.
21511         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
21512         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
21513         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
21514         (compute_complex_ancestor_jump_func): Likewise.
21515         (ipa_analyze_virtual_call_uses): Likewise.
21516         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
21517         INDIRECT_REF folding with more generalized MEM_REF folding.
21518         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
21519         (forward_propagate_addr_into_variable_array_index): Also handle
21520         &ARRAY + I in addition to &ARRAY[0] + I.
21521         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
21522         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
21523         creates assignments with overlap.
21524         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
21525         (get_frame_field): Likewise.
21526         (get_nonlocal_debug_decl): Likewise.
21527         (convert_nonlocal_reference_op): Likewise.
21528         (struct nesting_info): Add mem_refs pointer-set.
21529         (create_nesting_tree): Allocate it.
21530         (convert_local_reference_op): Insert to be folded mem-refs.
21531         (fold_mem_refs): New function.
21532         (finalize_nesting_tree_1): Perform defered folding of mem-refs
21533         (free_nesting_tree): Free the pointer-set.
21534         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
21535         (vectorizable_load): Likewise.
21536         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
21537         (propagate_with_phi): Likewise.
21538         * tree-object-size.c (addr_object_size): Handle MEM_REFs
21539         instead of INDIRECT_REFs.
21540         (compute_object_offset): Handle MEM_REF.
21541         (plus_stmt_object_size): Handle MEM_REF.
21542         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
21543         for &MEM_REF.
21544         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
21545         (symbol_marked_for_renaming): Likewise.
21546         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
21547         (fold-const.o): Add $(TREE_FLOW_H).
21548         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
21549         (find_func_clobbers): Likewise.
21550         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
21551         (decompose_access): Likewise.
21552         (replace_field_acc): Likewise.
21553         (replace_field_access_stmt): Likewise.
21554         (insert_new_var_in_stmt): Likewise.
21555         (get_stmt_accesses): Likewise.
21556         (reorg_structs_drive): Disable.
21557         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
21558         (ix86_canonical_va_list_type): Likewise.
21559
21560 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21561
21562         PR other/44566
21563         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
21564         * target.def (struct gcc_target): Replace enum reg_class with
21565         reg_class_t in hook argument / return types.
21566         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
21567         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
21568         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
21569         * targhooks.h (default_branch_target_register_class): Likewise.
21570         (default_ira_cover_classes, default_secondary_reload): Likewise.
21571         (default_memory_move_cost, default_register_move_cost): Likewise.
21572         * targhooks.c (default_branch_target_register_class): Likewise.
21573         (default_ira_cover_classes, default_secondary_reload): Likewise.
21574         (default_memory_move_cost, default_register_move_cost): Likewise.
21575         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
21576         * bt-load.c (branch_target_load_optimize): Likewise.
21577         * ira.c (setup_cover_and_important_classes): Likewise.
21578         * ira-costs.c (copy_cost): Likewise.
21579         * reload1.c (emit_input_reload_insns): Likewise.
21580         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
21581         * config/frv/frv.c (frv_secondary_reload): Likewise.
21582         * config/s390/s390.c (s390_secondary_reload): Likewise.
21583         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
21584         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
21585         (ix86_register_move_cost): Likewise.
21586         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
21587         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
21588         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
21589         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
21590         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
21591         (rs6000_ira_cover_classes): Likewise.
21592         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
21593         * config/picochip/picochip-protos.h (picochip_secondary_reload):
21594         Likewise.
21595         * config/pa/pa.c (pa_secondary_reload): Likewise.
21596         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
21597         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
21598         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
21599         * doc/tm.texi: Regenerate.
21600
21601 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
21602
21603         PR bootstrrap/44726
21604         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
21605         use.
21606         (build_alias_set_optimal_p): Likewise.
21607         (build_base_obj_set_for_drs): Likewise.
21608
21609 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21610
21611         * target.def: Remove comment about licensing problems of function
21612         declarations.
21613
21614         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
21615         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
21616         * doc/tm.texi: Regenerate.
21617
21618         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
21619         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
21620
21621         * target.def (enum_va_list_p): Use DEFHOOK.
21622         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
21623         Rename ptype to ptree.
21624         * doc/tm.texi: Regenerate.
21625
21626         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
21627         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
21628         * doc/tm.texi: Regenerate.
21629
21630         * target.def (memory_move_cost): Use DEFHOOK.
21631         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
21632         Rename regclass AKA class to rclass.
21633         * doc/tm.texi: Regenerate.
21634
21635         * target.def (pragma_parse): Use DEFHOOK.
21636         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
21637         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
21638         * doc/tm.texi: Regenerate.
21639
21640         * target.def (pass_by_reference): Use DEFHOOK.
21641         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
21642         * doc/tm.texi: Regenerate.
21643
21644         * target.def (resolve_overloaded_builtin): Rename params to arglist.
21645         Use DEFHOOK.
21646         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
21647         * doc/tm.texi: Regenerate.
21648
21649         * target.def (return_pops_args): Use DEFHOOK.
21650         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
21651         Rename stack-size to size.
21652         * doc/tm.texi: Regenerate.
21653
21654         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
21655         last-sched_cycle to last_clock, cur_cycle to clock.
21656         * doc/tm.texi.in: Use @hook.
21657         * doc/tm.texi: Regenerate.
21658
21659         * target.def (print_operand, print_operand_address): Update comment.
21660         (print_operand_punct_valid_p): Likewise.
21661
21662 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21663
21664         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
21665         to rtl.h.
21666         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
21667         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
21668         * rtl-error.h: New.
21669         * regrename.c: Do not include toplev.h. Include rtl-error.h.
21670         * rtl-error.c: Likewise.
21671         * reload.c: Likewise.
21672         * recog.c:  Likewise.
21673         * sel-sched.c: Likewise.
21674         * function.c: Likewise.
21675         * reg-stack.c: Likewise.
21676         * cfgrtl.c: Likewise.
21677         * reload1.c: Likewise.
21678         * final.c: Include rtl-error.
21679         * Makefile.in: Adjust dependencies.
21680
21681 2010-06-30  Jan Hubicka  <jh@suse.cz>
21682
21683         PR middle-end/PR44706
21684         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
21685         to return the value.
21686
21687 2010-06-30  Michael Matz  <matz@suse.de>
21688
21689         PR bootstrap/44699
21690         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
21691         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
21692         a gimple reg, attach the original VDEF to the last store in the
21693         sequence.
21694
21695 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
21696
21697         PR other/44034
21698         * config/darwin.c (darwin_override_options): Use renamed
21699         targetm.asm_out.emit_unwind_label.
21700
21701 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21702
21703         PR tree-optimization/39799
21704         * tree-inline.c (remap_ssa_name): Initialize variable only if
21705         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
21706
21707 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
21708
21709         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
21710
21711 2010-06-30  Richard Guenther  <rguenther@suse.de>
21712
21713         PR target/44722
21714         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
21715         against oscillation with reverse peephole2.
21716
21717 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
21718
21719         PR target/44721
21720         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21721         Fix last commit.
21722
21723 2010-06-30  Nick Clifton  <nickc@redhat.com>
21724
21725         * config/rx/rx-modes.def: New file.
21726         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
21727         (CC_REGNUM): Define.
21728         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
21729         register.
21730         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
21731         (SELECT_CC_MODE): Define.
21732         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
21733         (reg:CC CC_REG) instead of (cc0).
21734         (attr "cc"): Delete.
21735         (cbranchsi4): Do not split compare and branch here. Instead move
21736         it to...
21737         (cbranchsi4_<code>): ... here.  New patterns.
21738         (cmpsi): Call rx-compare_redundant to find out if it is necessary
21739         to emit the compare instruction.
21740         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
21741         cc_status flags.
21742         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
21743         FIRST_PSEUDO_REGNUM.
21744         (rx_expand_prologue, rx_expand_epilogue): Likewise.
21745         (rx_notice_update_cc): Delete.
21746         (rx_cc_modes_compatible): New function.
21747         (flags_needed_for_conditional): New function.
21748         (flags_from_mode): New function.
21749         (rx_compare_redundant): New function - scans backwards through
21750         insn list to find out if condition flags are already set correctly.
21751         (TARGET_CC_MODES_COMPATIBLE): Define.
21752         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
21753
21754         * config/rx/rx.h (BRANCH_COST): Define.
21755         (REGISTER_MOVE_COST): Define.
21756         * config/rx/predicates (rx_source_operand): Allow all constant types.
21757         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
21758         (tstsi4): New pattern.
21759         * config/rx/rx.c (rx_memory_move_cost): Define.
21760         (TARGET_MEMORY_MOVE_COST): Define.
21761
21762 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21763
21764         * tree.h (block_may_fallthru): Declare here.
21765         * tree-flow.h (block_may_fallthru): Do not declare here.
21766         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
21767         bitmap.h
21768         * Makefile.in (c-typeck.o): Update dependencies.
21769
21770 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
21771
21772         PR debug/44694
21773         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
21774         * cselib.c (cfa_base_preserved_regno): New static variable.
21775         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
21776         of REGNO (cfa_base_preserved_val->locs->loc).
21777         (cselib_preserve_cfa_base_value): Add regno argument, set
21778         cfa_base_preserved_regno to it.
21779         (cselib_invalidate_regno): Allow removal of registers other than
21780         cfa_base_preserved_regno from cfa_base_preserved_val.
21781         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
21782         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
21783         of MEM addresses, if not on LHS.
21784         (reverse_op): Don't add reverse ops for cfa_base_rtx.
21785         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
21786
21787 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21788
21789         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
21790         static variables.
21791         (peep2_buf_position): New static function.
21792         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
21793         peephole2_optimize): Use it.
21794         (peep2_attempt, peep2_update_life): New static functions, broken out
21795         of peephole2_optimize.
21796         (peep2_fill_buffer): New static function.
21797         (peephole2_optimize): Change the main loop to try to fill the buffer
21798         with the maximum number of insns before matching them against
21799         peepholes.  Use a forward scan.  Remove special case for targets with
21800         conditional execution.
21801         * genrecog.c (change_state): Delete dead code.
21802         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21803         Rewrite so as not to expect the second insn to have had a peephole
21804         applied yet.
21805
21806 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21807
21808         * genhooks.c (emit_findices): Cast field precision to int.
21809         (emit_documentation): Likewise.
21810
21811 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
21812
21813         PR tree-optimization/43801
21814         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
21815         if old_decl was DECL_ONE_ONLY.
21816
21817         PR debug/44668
21818         * dwarf2out.c (add_accessibility_attribute): New function.
21819         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
21820         instead of adding DW_AT_accessibility manually.
21821         (gen_enumeration_type_die, gen_struct_or_union_type_die,
21822         gen_typedef_die): Use it.
21823
21824 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21825
21826         * vmsdbgout.c (full_name): Just output the file name if not native.
21827
21828 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21829
21830         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
21831         (funcnam_table): New static table.
21832         (funcnum_table): New static table.
21833         (write_rtnbeg): Write value saved in funcnum_table.
21834         (write_rtnend): Write value saved in funcnum_table.
21835         (vmsdbgout_begin_function): Save current function info in
21836         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
21837         (vmsdbgout_finish): Iterate over funcnum_table.
21838
21839 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21840
21841         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
21842         (vmsdbgout_type_decl): Declare
21843         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
21844         (FUNC_EPILOGUE_LABEL): New macro
21845         (vmsdbgout_begin_epilogue): New function.
21846         (vmsdbgout_type_decl): New function.
21847
21848 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21849
21850         * vmsdbg.h: Update copyright.
21851
21852 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21853
21854         * vmsdbg.h (DST_K_TBG): New DST constant.
21855         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
21856         (write_modbeg): Cast module_language to avoid warning.
21857         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
21858
21859 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21860
21861         PR other/44034
21862         * target.def, doc/tm.texi.in, genhooks.c: New files.
21863         * target.h: Instead of defining individual hook members,
21864         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
21865         include target.def.
21866         * target-def.h: Instead of defining individual hook initializers,
21867         include target-hooks-def.h.
21868         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
21869         targetm.live_on_entry -> targetm.extra_live_on_entry
21870         targetm.sched.md_finish ->targetm.sched.finish
21871         targetm.sched.md_init -> targetm.sched.init
21872         targetm.sched.md_init_global -> targetm.sched.init_global
21873         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
21874         targetm.asm_out.except_table_label ->
21875           targetm.asm_out.emit_except_table_label
21876         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
21877         targetm.target_help -> targetm.help
21878         targetm.vectorize.builtin_support_vector_misalignment ->
21879           targetm.vectorize.support_vector_misalignment
21880         targetm.file_start_app_off -> targetm.asm_file_start_app_off
21881         targetm.file_start_file_directive ->
21882          targetm.asm_file_start_file_directive
21883         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
21884         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
21885         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
21886         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
21887           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
21888         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
21889           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
21890         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
21891         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
21892         * Makefile.in (TARGET_H): Depend on target.def.
21893         (TARGET_DEF_H): Depend on target-hooks-def.h.
21894         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
21895         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
21896         * doc/tm.texi: Regenerate.
21897
21898         * Makefile.in (s-tm-texi): Remove stray tab / rule.
21899
21900         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
21901         (targetm.sched.init): Likewise.
21902
21903 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21904
21905         PR bootstrap/44713
21906         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
21907         (function_arg_advance_32): Const-ify TYPE parameter.
21908         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
21909         (ix86_function_arg_advance): Change type of NAMED to bool.
21910         (function_arg_32): Const-ify CUM and TYPE parameters.
21911         (function_arg_64): Likewise.  Change type of NAMED to bool.
21912         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
21913         to bool.
21914         (ix86_function_arg): Change type of NAMED to bool.
21915         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
21916         last argument as a bool.
21917
21918 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21919
21920         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
21921         (OVERRIDE_OPTIONS): Add note of obsolescence.
21922         Replace references with references to TARGET_OPTION_OVERRIDE.
21923         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
21924          the macro).
21925         * targhooks.c (default_target_option_override): New function.
21926         * targhooks.h (default_target_option_override): Declare.
21927         * target.h (struct gcc_target): Add override member to
21928         target_option member.
21929         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
21930         targetm.target_option.override call.
21931         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
21932         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
21933
21934 2010-06-29  Jan Hubicka  <jh@suse.cz>
21935
21936         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
21937
21938 2010-06-29  Jan Hubicka  <jh@suse.cz>
21939
21940         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
21941         unreachable.
21942         (rebuild_frequencies): New function.
21943         * predict.h (rebuild_frequencies): Declare.
21944         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
21945         entry block and edge reaching new_entry.
21946         (tree_function_versioning): When doing partial cloning, rebuild
21947         frequencies when done.
21948         * passes.c (execute_function_todo): Use rebild_frequencies.
21949
21950 2010-06-29  Richard Guenther  <rguenther@suse.de>
21951
21952         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
21953         * tree-flow.h (enum noalias_state): Remove.
21954         (struct var_ann_d): Remove noalias_state member.
21955
21956 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
21957
21958         PR target/43902
21959         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
21960         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
21961         (maddhidi4): Likewise.
21962
21963         Revert parts of the change for PR25130.
21964         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
21965         MEM_ALIAS_SET.
21966
21967 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21968
21969         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
21970         targetm.calls.function_incoming_arg, and
21971         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
21972         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
21973         * target.h (struct gcc_target): Add function_arg_advance,
21974         function_arg, and function_incoming_arg fields.
21975         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
21976         (TARGET_FUNCTION_INCOMING_ARG): Define.
21977         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
21978         and TARGET_FUNCTION_INCOMING_ARG.
21979         * targhooks.h (default_function_arg_advance): Declare.
21980         (default_function_arg, default_function_incoming_arg): Declare.
21981         * targhooks.c (default_function_arg_advance): New function.
21982         (default_function_arg, default_function_incoming_arg): New function.
21983         * config/i386/i386.c (function_arg_advance): Rename to...
21984         (ix86_function_arg_advance): ...this.  Make static.
21985         (function_arg): Rename to...
21986         (ix86_function_arg): ...this.  Make static.
21987         (TARGET_FUNCTION_ARG_ADVANCE): Define.
21988         (TARGET_FUNCTION_ARG): Define.
21989         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
21990         (FUNCTION_ARG): Delete.
21991         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
21992         (function_arg): Delete prototype.
21993
21994 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21995
21996         * reginfo.c (init_reg_sets_1): Adjust comments.
21997         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
21998         * calls.c (prepare_call_address): Likewise.
21999         (emit_call_1): Use targetm.calls.return_pops_args.
22000         (expand_call): Likewise.
22001         * function.c (assign_parms): Likewise.
22002         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
22003         * target.h (struct gcc_target) [struct calls]: Add
22004         return_pops_args field.
22005         * targhooks.h (default_return_pops_args): Declare.
22006         * targhooks.c (default_return_pops_args): Define.
22007         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
22008         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
22009         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
22010         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
22011         documentation.
22012         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
22013         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
22014         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
22015         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
22016         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
22017         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
22018         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
22019         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
22020         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
22021         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
22022         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
22023         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
22024         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
22025         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
22026         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
22027         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
22028         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
22029         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
22030         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
22031         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
22032         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
22033         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
22034         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
22035         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
22036         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
22037         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
22038         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
22039         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
22040         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
22041         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
22042         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
22043         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
22044         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
22045         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
22046         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
22047         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
22048         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
22049         * config/i386/i386.c (ix86_return_pops_args): Make static.
22050         Constify arguments.
22051         (TARGET_RETURN_POPS_ARGS): Define.
22052         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
22053         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
22054         (TARGET_RETURN_POPS_ARGS): Define.
22055         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
22056         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
22057         (TARGET_RETURN_POPS_ARGS): Define.
22058
22059 2010-06-29  Richard Guenther  <rguenther@suse.de>
22060
22061         PR middle-end/44667
22062         * tree-inline.c (initialize_inlined_parameters): Make sure
22063         to remap the inlined parameter variable substitutions types.
22064
22065 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
22066
22067         PR rtl-optimization/44659
22068         * combine.c (make_compound_operation) <SUBREG>: Do not return the
22069         result of force_to_mode if it partially re-expanded the compound.
22070
22071 2010-06-28  Jan Hubicka  <jh@suse.cz>
22072
22073         PR middle-end/44671
22074         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
22075         RESULT_DECL.
22076
22077 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
22078
22079         * double-int.h (force_fit_type_double): Remove declaration.
22080         * double-int.c (force_fit_type_double): Move to tree.c.
22081         * tree.h (force_fit_type_double): Declare.
22082         * tree.h (force_fit_type_double): Moved from double-int.c. Use
22083         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
22084         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
22085         * convert.c (convert_to_pointer): Adjust call to
22086         force_fit_type_double.
22087         * tree-vrp.c (extract_range_from_assert,
22088         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
22089         * fold-const.c: Update comment.
22090         (int_const_binop, fold_convert_const_int_from_int,
22091         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
22092         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
22093         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
22094         round_up_loc): Adjust call to force_fit_type_double.
22095
22096 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22097
22098         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
22099
22100 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22101
22102         * tree-sra.c (convert_callers): New parameter, change fndecls of
22103         recursive calls.
22104         (modify_function): Pass the old decl to convert_callers.
22105
22106 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22107
22108         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
22109         ipa_check_create_node_params and ipa_initialize_node_params with
22110         checking asserts they are not necessary.
22111
22112 2010-06-28  Jan Hubicka  <jh@suse.cz>
22113
22114         PR tree-optimization/44687
22115         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
22116
22117 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22118
22119         PR c++/44535
22120         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
22121         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
22122         instead of BINFO_BASE_BINFO.
22123
22124 2010-06-28  Michael Matz  <matz@suse.de>
22125
22126         PR middle-end/44592
22127         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
22128         proper VDEF chain for intermediate stores in the sequence.
22129
22130 2010-06-28  Jan Hubicka  <jh@suse.cz>
22131
22132         PR tree-optimization/44357
22133         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
22134         uninlinable functions.
22135
22136 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22137
22138         * config.gcc (powerpc*-*-*): Handle titan.
22139         * config/rs6000/rs6000.c (titan_cost): New costs.
22140         (rs6000_override_options): Add "titan" to processor_target_table.
22141         Add Titan to branch alignment logic.
22142         Correctly set rs6000_cost for titan.
22143         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
22144         * config/rs6000/titan.md: New file.
22145         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
22146
22147 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22148
22149         * tree-browser.c (TB_history_stack): Convert to a VEC.
22150         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
22151         (TB_history_prev): Likewise.
22152
22153 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22154
22155         * vec.h (vec_heap_free): Add parentheses around free.
22156
22157 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
22158
22159         * system.h: Poison GCC_EXCEPT_H for front-end files.
22160
22161         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
22162         langhook.
22163         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
22164         Define to NULL by default.
22165         * except.h: Define GCC_EXCEPT_H.
22166         (doing_eh): Remove prototype.
22167         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
22168         (lang_protect_cleanup_actions): Remove.
22169         * except.c (lang_protect_cleanup_actions): Remove.
22170         (doing_eh): Remove.
22171         (gen_eh_region): Don't check doing_eh here.
22172         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
22173         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
22174         instead of lang_protect_cleanup_actions.
22175         * omp-low.c (maybe_catch_exception): Likewise.
22176         * Makefile.in: Update dependencies.
22177
22178 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
22179
22180         * cgraph.h (struct varpool_node): new used_from_object_file flag.
22181         (struct cgraph_local_info): new used_from_object_file flag.
22182         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
22183         (cgraph_clone_node): initialize used_from_object_file.
22184         (cgraph_create_virtual_clone): initialize used_from_object_file.
22185         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
22186         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
22187         when compiling with -fwhole-program.
22188         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
22189         internal resolver.
22190         * ipa.c (function_and_variable_visibility): Set externally_visible
22191         flag of varpool_node if used_from_object_file flag is set.
22192         (cgraph_externally_visible_p): check used_from_object_file flag.
22193         * doc/invoke.texi (-fwhole-program option): Change description of
22194         externally_visible attribute accordingly.
22195         * doc/extend.texi (externally_visible): Ditto.
22196
22197 2010-06-27  Jan Hubicka  <jh@suse.cz>
22198
22199         * params.def (max-inline-insns-auto): Default to 40.
22200         * doc/invoke.texi (max-inline-insns-auto): Document the change.
22201
22202 2010-06-27  Jan Hubicka  <jh@suse.cz>
22203
22204         PR middle-end/44671
22205         PR middle-end/44686
22206         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
22207         signature change.
22208         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
22209         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
22210
22211 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
22212
22213         * target.h (struct gcc_target): Add register_move_cost field.
22214         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
22215         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
22216         * targhooks.c (default_register_move_cost): New function.
22217         * targhooks.h (default_register_move_cost): Declare function.
22218         * defaults.h (REGISTER_MOVE_COST): Delete.
22219         * ira-int.h (ira_register_move_cost): Update comment.
22220         * ira.c (ira_register_move_cost): Update comment.
22221         * reload.h (register_move_cost): Declare.
22222         * reginfo.c (register_move_cost): New function.
22223         (move_cost): Update comment.
22224         (init_move_cost, memory_move_secondary_cost): Replace
22225         REGISTER_MOVE_COST with register_move_cost.
22226         * postreload.c (reload_cse_simplify_set): (Ditto.).
22227         * reload.c (find_valid_class, find_reloads): (Ditto.).
22228         * reload1.c (choose_reload_regs): (Ditto.).
22229         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
22230         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
22231         * doc/md.texi (can_create_pseudo_p): Update documentation.
22232
22233         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
22234         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
22235         * config/i386/i386.h (ix86_memory_move_cost): Make static.
22236         (TARGET_MEMORY_MOVE_COST): Define.
22237
22238         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
22239         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
22240         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
22241         (TARGET_MEMORY_MOVE_COST): Define.
22242
22243 2010-06-27  Richard Guenther  <rguenther@suse.de>
22244
22245         PR tree-optimization/44683
22246         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
22247         false edge from the inverted condition.
22248
22249 2010-06-27  Richard Guenther  <rguenther@suse.de>
22250
22251         PR middle-end/44684
22252         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
22253         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
22254         for register LHS.  Or non-store assignments.
22255
22256 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
22257
22258         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
22259         (sparc_emit_set_const64): Likewise.  Remove disabled code.
22260         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
22261         (sparc_emit_set_const64): Likewise.
22262
22263 2010-06-26  Catherine Moore  <clm@codesourcery.com>
22264
22265         * config/mips/mips.md (alu_type): New attribute.
22266         (type): Infer type from alu_type.
22267         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
22268         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
22269         *subsi3_extended, negsi2, negdi2, *low<mode>,
22270         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
22271         xor<mode>3, *nor<mode>3,
22272         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
22273         *zero_extendhi_truncqi):  Set alu_type instead of type.
22274
22275 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
22276
22277         * config/alpha/alpha.c (alpha_need_linkage): Adjust
22278         splay_tree_new_ggc call.
22279         (alpha_use_linkage): Likewise.
22280
22281 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22282
22283         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
22284         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
22285         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
22286         (static_specs): Remove switches_need_spaces.
22287         (process_command, do_self_spec): Hardcode handling "-o" instead of
22288         checking switches_need_spaces.
22289         * system.h (SWITCHES_NEED_SPACES): Poison.
22290
22291 2010-06-26  Richard Guenther  <rguenther@suse.de>
22292
22293         PR tree-optimization/44393
22294         * tree-loop-distribution.c (generate_loops_for_partition): Fix
22295         stmt removal and VOP renaming.
22296         (generate_memset_zero): Remove redundant stmt updating.
22297         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
22298         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
22299
22300 2010-06-26  Jan Hubicka  <jh@suse.cz>
22301
22302         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
22303         edges comming from header are equivalent.
22304         (visit_bb): Handle PHIs correctly.
22305         * tree-inline.c (copy_phis_for_bb): Be able to copy
22306         PHI from entry edge.
22307         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
22308
22309 2010-06-26  Richard Guenther  <rguenther@suse.de>
22310
22311         PR middle-end/44674
22312         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
22313         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
22314
22315 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22316
22317         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
22318         add_infile, alloc_switch): New.
22319         (process_command): Remove variable lang_n_infiles.  Process
22320         options in a single pass.  Use new functions for allocating
22321         infiles and switches arrays.  Properly skip operands of
22322         -Xpreprocessor and -Xassembler.
22323
22324 2010-06-26  Jan Hubicka  <jh@suse.cz>
22325
22326         PR middle-end/44671
22327         * cgraphunit.c (cgraph_function_versioning): Remove wrong
22328         cgraph_make_decl_local call; fix typo copying RTL data.
22329
22330 2010-06-25  DJ Delorie  <dj@redhat.com>
22331
22332         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
22333         (m32c_output_aligned_common): Likewise.
22334         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
22335         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
22336         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
22337         (m32c_register_pragmas): Register it.
22338         * config/m32c/m32c.c (m32c_get_pragma_address): New.
22339         (m32c_insert_attributes): Set #pragma address decls volatile.
22340         (pragma_entry_eq): New.
22341         (pragma_entry_hash): New.
22342         (m32c_note_pragma_address): New.
22343         (m32c_get_pragma_address): New.
22344         (m32c_output_aligned_common): New.
22345         * doc/extend.texi: Document the new pragma.
22346
22347         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
22348         also.
22349         * config/m32c/predicates.md (m32c_any_operand): Check the code
22350         instead of memory_operand so as to allow matching volatile MEMs.
22351         (m32c_nonimmediate_operand): Likewise.
22352         (mra_operand): Allow volatiles.
22353
22354 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
22355
22356         PR debug/44610
22357         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
22358         address if the offset is unknown.
22359
22360 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
22361
22362         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
22363         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
22364         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
22365         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
22366         to ia64_start_function. Invoke it.
22367         * config/ia64/ia64.c (ia64_start_function): Call new function
22368         dwarf2out_vms_debug_main_pointer.
22369
22370 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22371
22372         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
22373         statements computing the true predicate.
22374
22375 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22376
22377         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
22378         to boolean_true_node.
22379         (reset_bb_predicate): New.
22380         (predicate_bbs): Call reset_bb_predicate.
22381
22382 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22383
22384         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
22385         (tree_if_conversion): Returns true when something has been changed.
22386         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
22387         changed something.
22388
22389 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22390
22391         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
22392         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
22393         * tree-if-conv.c: Include dbgcnt.h.
22394         (tree_if_conversion): Use if_conversion_tree to count the number of
22395         if-convertible loops.
22396
22397 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
22398
22399         * common.opt (fprefetch-loop-arrays): Re-define
22400         -fprefetch-loop-arrays as a tri-state option with the initial
22401         value of -1.
22402         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
22403         pass only when flag_prefetch_loop_arrays > 0.
22404         * toplev.c (process_options): Note that, with tri-states,
22405         flag_prefetch_loop_arrays>0 means prefetching is enabled.
22406         * config/i386/i386.c (override_options): Enable prefetching at -O3
22407         for a set of CPUs that sw prefetching is helpful.
22408         (software_prefetching_beneficial_p): New.  Return TRUE if software
22409         prefetching is beneficial for the given CPU.
22410
22411 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
22412
22413         PR rtl-optimization/44326
22414         * implicit-zee.c (find_removable_zero_extends): Replace
22415         INSN_P with NONDEBUG_INSN_P.
22416
22417 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22418
22419         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
22420         (struct ipa_node_params): Removed the modification_analysis_done flag.
22421         (ipa_is_param_modified): Removed.
22422         (ipa_analyze_node): Declare.
22423         (ipa_compute_jump_functions): Remove declaration.
22424         (ipa_count_arguments): Likewise.
22425         (ipa_detect_param_modifications): Likewise.
22426         (ipa_analyze_params_uses): Likewise.
22427         * ipa-prop.c (struct param_analysis_info): New type.
22428         (visit_store_addr_for_mod_analysis): Removed.
22429         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
22430         moved down in the file.
22431         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
22432         (ipa_count_arguments): Made static.
22433         (mark_modified): New function.
22434         (is_parm_modified_before_call): New function.
22435         (compute_pass_through_member_ptrs): New parameter parms_info, call
22436         is_parm_modified_before_call instead of ipa_is_param_modified.
22437         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
22438         it to compute_pass_through_member_ptrs.
22439         (ipa_compute_jump_functions): New parameter parms_info, pass it to
22440         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
22441         on the callee if it is analyzed.  Made static.
22442         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
22443         is_parm_modified_before_call instead of ipa_is_param_modified.
22444         (ipa_analyze_call_uses): New parameter parms_info, pass it to
22445         ipa_analyze_indirect_call_uses.
22446         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
22447         ipa_analyze_call_uses.
22448         (ipa_analyze_params_uses): New parameter parms_info, pass it to
22449         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
22450         (ipa_analyze_node): New function.
22451         (ipa_print_node_params): Do not dump the modified flag.
22452         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
22453         it.  Do not stream the modified parameter flag.
22454         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
22455         it.  Do not stream the modified parameter flag.
22456         * ipa-cp.c (ipcp_analyze_node): Removed.
22457         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
22458         with only a call to ipa_analyze_node.
22459         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
22460         node with only a call to ipa_analyze_node.
22461
22462 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22463
22464         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
22465
22466 2010-06-25  Jan Hubicka  <jh@suse.cz>
22467
22468         * tree-pass.h (pass_split_functions): Declare.
22469         * opts.c (decode_options): Enable function splitting at -O2
22470         * timevar.def (TV_IPA_FNSPLIT): New macro.
22471         * ipa-split.c: New file.
22472         * common.opt (-fpartial-inlining): New flag.
22473         * Makefile.in (ipa-split.o): New object file.
22474         * passes.c (init_optimization_passes): Add ipa-split.
22475         * params.def (partial-inlining-entry-probability): New parameters.
22476         * doc/invoke.texi (-fpartial-inlining): New.
22477
22478 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22479
22480         PR 44665
22481         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
22482         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
22483         (gimplify_expr): Likewise.
22484
22485 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22486
22487         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
22488         statements instead of bailing out on them.
22489         (ipa_analyze_indirect_call_uses): Do not require that loads from the
22490         parameter are in the same BB as the condition.  Update comments.
22491
22492 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
22493
22494         PR middle-end/43866
22495         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
22496         true or always false, return NULL_TREE.
22497         (tree_unswitch_single_loop): Optimize conditions even when reaching
22498         max-unswitch-level parameter.  If num > 0, optimize first all conditions
22499         using entry checks, then do still reachable block discovery and consider
22500         only conditions in still reachable basic blocks in the loop.
22501
22502         PR tree-optimization/44539
22503         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
22504         the call doesn't have LHS, but has VDEF.
22505
22506 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22507
22508         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
22509         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
22510         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
22511         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
22512         * system.h (MODIFY_TARGET_NAME): Poison.
22513
22514 2010-06-25  Alan Modra  <amodra@gmail.com>
22515
22516         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
22517         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
22518         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
22519         CMODEL_LARGE as default.
22520         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
22521         (offsettable_ok_by_alignment): Delete.
22522         (rs6000_emit_move): Remove mcmodel=medium optimization.
22523
22524 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22525
22526         With large parts from Jim Wilson:
22527         PR target/43902
22528         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
22529         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22530         * optabs.c (optab_for_tree_code): Likewise.
22531         (expand_widen_pattern_expr): Likewise.
22532         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
22533         out of execute_optimize_widening_mul.
22534         (convert_plusminus_to_widen): New function.
22535         (execute_optimize_widening_mul): Use the two new functions.
22536         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
22537         Remove code to generate widening multiply-accumulate.  Add support
22538         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22539         * gimple-pretty-print.c (dump_ternary_rhs): New function.
22540         (dump_gimple_assign): Call it when appropriate.
22541         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
22542         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
22543         (expand_gimple_stmt_1): Likewise.
22544         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
22545         WIDEN_MULT_MINUS_EXPR.
22546         * tree-ssa-operands.c (get_expr_operands): Likewise.
22547         * tree-inline.c (estimate_operator_cost): Likewise.
22548         * gimple.c (extract_ops_from_tree_1): Renamed from
22549         extract_ops_from_tree.  Add new arg for a third operand; fill it.
22550         (gimple_build_assign_stat): Support operations with three operands.
22551         (gimple_build_assign_with_ops_stat): Likewise.
22552         (gimple_assign_set_rhs_from_tree): Likewise.
22553         (gimple_assign_set_rhs_with_ops_1): Renamed from
22554         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
22555         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
22556         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
22557         WIDEN_MULT_MINUS_EXPR.
22558         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
22559         (extract_ops_from_tree_1): Adjust declaration.
22560         (gimple_assign_set_rhs_with_ops_1): Likewise.
22561         (gimple_build_assign_with_ops): Pass NULL for last operand.
22562         (gimple_build_assign_with_ops3): New macro.
22563         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
22564         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
22565         functions.
22566         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
22567         (verify_gimple_assign): Call it.
22568         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
22569         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
22570         functions for dealing with three-operand statements.
22571         * tree.c (commutative_ternary_tree_code): New function.
22572         * tree.h (commutative_ternary_tree_code): Declare it.
22573         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
22574         ternary statements.
22575         (gimple_assign_nonzero_warnv_p): Likewise.
22576         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
22577         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
22578         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
22579         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
22580         (struct hashtable_expr): New member ternary in the union.
22581         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
22582         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
22583         (iterative_hash_hashable_expr): Likewise.
22584         (print_expr_hash_elt): Handle EXPR_TERNARY.
22585         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
22586         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
22587         statements.  Handle GIMPLE_TERNARY_RHS.
22588
22589 2010-06-25  Jan Hubicka  <jh@suse.cz>
22590
22591         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
22592
22593 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
22594
22595         PR c/44517
22596         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
22597         parameters are not good.
22598         (c_parser_parameter_declaration): Error unknown type name if the type
22599         name can't start declaration specifiers.
22600
22601 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22602
22603         * gcc.c (translate_options): Don't mention +e in comment.
22604         (process_command): Don't handle +e specially.
22605
22606 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22607
22608         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
22609
22610         * ira-build.c (merge_hard_reg_conflicts): New function.
22611         (create_cap_allocno, copy_info_to_removed_store_destinations,
22612         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
22613         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
22614         (remove_unnecessary_allocnos, remove_low_level_allocnos)
22615         copy_nifo_to_removed_store_destination): Use them.
22616         * ira-lives.c (make_hard_regno_born): New function, split out of
22617         make_regno_born.
22618         (make_allocno_born): Likewise.
22619         (make_hard_regno_dead): New function, split out of make_regno_dead.
22620         (make_allocno_dead): Likewise.
22621         (inc_register_pressure): New function, split out of set_allocno_live.
22622         (dec_register_pressure): New function, split out of clear_allocno_live.
22623         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
22624         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
22625         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
22626         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
22627         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
22628         mark_pseudo_regno_live.
22629         (process_bb_node_lives): Use mark_pseudo_regno_live,
22630         make_hard_regno_born and make_allocno_dead.
22631         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
22632         set_allocno_live, clear_allocno_live): Delete functions.
22633
22634         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
22635         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
22636         functions.
22637         (ira_flattening): Use ira_parent_allocno.
22638         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
22639         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
22640
22641         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
22642         statement.
22643
22644         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
22645         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
22646         minmax_set_iter_cond, minmax_set_iter_next,
22647         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
22648         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
22649         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
22650         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
22651         uses changed.
22652
22653         * ira-int.h (struct live_range, live_range_t): Renamed from struct
22654         ira_allocno_live_range and allocno_live_range_t; all uses changed.
22655         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
22656         All uses changed.
22657
22658 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
22659
22660         * thumb2.md (thumb2_tlobits_cbranch): Delete.
22661         (peephole2 to convert zero_extract/compare of single bit to
22662          lshift/compare): New.
22663
22664 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
22665
22666         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
22667         recursive call and call to 'int_const_binop'.
22668         (build_range_check, fold_cond_expr_with_comparison, unextend,
22669         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
22670         multiple_of_p): Adjust call to const_binop.
22671
22672 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
22673
22674         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
22675         determine size of XFmode operand.
22676         (XFmode extended DFmode push splitter): Ditto.
22677         (XFmode extended SFmode push splitter): Ditto.
22678
22679 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
22680
22681         PR target/44588
22682         * config/i386/i386.md (extract_code): New.
22683         (<u>divmodqi4): Likewise.
22684         (divmodhiqi3): Likewise.
22685         (udivmodhiqi3): Likewise.
22686         (<u>divqi3): Remvoved.
22687
22688 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
22689
22690         PR middle-end/44492
22691         * recog.h (struct recog_data): Add is_asm field.
22692         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
22693         present in constraints of inline-asm operand and memory operand
22694         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
22695         (extract_insn): Initialize recog_data.is_asm.
22696         * doc/md.texi (Constraints): Document operand side-effect rules.
22697
22698 2010-06-24  Andi Kleen  <ak@linux.intel.com>
22699
22700         * c-parser.c (c_parser_conditional_expression): Call
22701         warn_for_omitted_condop.
22702         * doc/invoke.texi: Document omitted condop warning.
22703
22704 2010-06-24  Nick Clifton<nickc@redhat.com>
22705
22706         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
22707         insn in the sequence is a jump insn before setting its label.
22708
22709 2010-06-24  Alan Modra  <amodra@gmail.com>
22710
22711         * collect2.c (main): Match exactly --version and --help.
22712
22713 2010-06-24  DJ Delorie  <dj@redhat.com>
22714
22715         * config/m32c/m32c-pragma.c: Don't include rtl.h.
22716
22717 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
22718
22719         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
22720         using X87MODEF mode iterator.
22721         (pushsf splitter): Macroize splitter using P mode iterator.
22722         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
22723         mode iterator.
22724
22725         (*movxf_internal): Rename from *movxf_integer.
22726         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
22727         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
22728         (*movdf_internal): Rename from *movdf_integer.
22729         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
22730         (*movsf_internal): Rename from *movdf_1.
22731
22732 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
22733
22734         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
22735         (const_gimple_seq_node): Removed typedefs.
22736
22737         * gimple.h (gimple_seq_node_d, gimple_seq_node)
22738         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
22739
22740 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
22741
22742         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
22743         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
22744         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
22745         and CODE_FOR_vec_extract_lo_v4df.
22746
22747         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
22748         Changed to define_insn_and_split.
22749         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
22750         (vec_extract_lo_v16hi): Likewise.
22751         (vec_extract_lo_v32qi): Likewise.
22752         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
22753         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
22754
22755 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
22756
22757         PR target/44640
22758         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
22759         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
22760         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
22761         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
22762         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
22763
22764         PR target/44640
22765         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
22766
22767         PR other/44644
22768         * df-core.c (struct df): Rename to df_d.
22769         * df.h (struct df): Likewise.
22770         * dse.h (struct df): Remove forward declaration.
22771         * recog.h (struct insn_data): Rename to:
22772         (struct_insn_data_d).  Adjusted all users.
22773
22774 2010-06-23  Arnaud Charlet  <charlet@adacore.com
22775
22776         PR ada/22220
22777         * doc/install.texi: Update requirements to build GNAT.
22778
22779 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
22780
22781         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
22782         enum type.
22783         (m68k_sched_attr_opx_type): Remove unreachable return.
22784         (m68k_sched_attr_opy_type): Likewise.
22785         (m68k_sched_attr_size): Likewise.
22786         (sched_get_opxy_mem_type): Likewise.
22787         (m68k_sched_attr_op_mem): Likewise.
22788
22789 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
22790
22791         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
22792         new statement and adjust VDEF only if necessary.  Remove superfluous
22793         call to maybe_clean_or_replace_eh_stmt.
22794         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
22795         copy the flags.
22796         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
22797         * tree-inline.c (copy_bb): ...and not there.
22798
22799 2010-06-22  Cary Coutant  <ccoutant@google.com>
22800
22801         * dwarf2out.c (is_nested_in_subprogram): New function.
22802         (should_move_die_to_comdat): Use it.
22803         (copy_ancestor_tree): Don't mark DIEs here.
22804         (copy_decls_walk): Start walk from root of newly-added tree;
22805         mark DIEs here instead.
22806
22807 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
22808
22809         * config/i386/i386.md (unit): Also check sseishft1.
22810
22811 2010-06-22  Jan Hubicka  <jh@suse.cz>
22812
22813         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
22814         enabled.
22815
22816 2010-06-22  Jan Hubicka  <jh@suse.cz>
22817
22818         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
22819         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
22820         Return true if something changed.
22821         * df.h (df_confluence_function_n): Return bool.
22822         * df-core.c (df_worklist_propagate_forward,
22823         df_worklist_propagate_backward): Track changes and ages.
22824         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
22825         track ages.
22826         * dse.c (dse_confluence_n): Return always true.
22827
22828 2010-06-22  Jan Hubicka  <jh@suse.cz>
22829
22830         * bitmap.c (bitmap_clear_bit): Micro optimize.
22831
22832 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
22833
22834         * config/i386/i386.md (SWI1248x): New mode iterator.
22835         (SWI48x): Ditto.
22836         (SWI12): Ditto.
22837         (SWI24): Ditto.
22838
22839         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
22840         SWI1248x mode iterator.
22841         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
22842         using SWI124 mode iterator.
22843         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
22844         mode iterator.
22845         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
22846         *pushdi2_prologue_rex64 using P mode iterator.
22847         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
22848         using SWI48 mode iterator.
22849         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
22850         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
22851         using SWI1248x mode iterator.
22852         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
22853         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
22854         SWI48 mode iterator.
22855         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
22856         iterator.
22857         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
22858         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
22859         SWI12 mode iterator.
22860         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
22861         SWI12 mode iterator.
22862         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
22863         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
22864         SWI24 mode iterator.
22865         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
22866         SWI48 mode iterator.
22867         (mov<mode>_insn_1): New expander.
22868         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
22869         using SWI48x mode iterator.
22870
22871         (*movoi_internal_avx): Rename from *movoi_internal.
22872         (*movti_internal_rex64): Rename from *movti_rex64.
22873         (*movti_internal_sse): Rename from *movti_sse.
22874         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
22875         (*movdi_internal): Rename from *movdi_2.
22876         (*movsi_internal): Rename from *movsi_1.
22877         (*movhi_internal): Rename from *movhi_1.
22878         (*movqi_internal): Rename from *movqi_1.
22879
22880         (insv): Update the call to gen_movsi_insv_1 for rename.
22881         * config/i386/i386.c (promote_duplicated_reg): Ditto.
22882
22883 2010-06-22  Jan Hubicka  <jh@suse.cz>
22884
22885         * passes.c (execute_function_todo): Move call of statistics_fini_pass
22886         to ...
22887         (execute_todo) ... this one.
22888
22889 2010-06-22  Alan Modra  <amodra@gmail.com>
22890
22891         PR target/44364
22892         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
22893         * caller-save.c (insert_restore, insert_save): Use non-validate
22894         form of adjust_address.
22895
22896 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22897
22898         PR target/39690
22899         * config/pa/pa.c (override_options): Disable
22900         -freorder-blocks-and-partition.
22901
22902 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
22903
22904         PR target/44615
22905         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
22906
22907         * config/i386/i386.md (type): Add sseishft1
22908
22909         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
22910         (ppro_insn_load): Likewise.
22911         (ppro_insn_store): Likewise.
22912         (ppro_insn_both): Likewise.
22913
22914         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
22915         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
22916         for type.
22917         (*vec_extractv2di_1_avx): Likewise.
22918         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
22919         type.  Remove atom_unit.
22920         (*vec_extractv2di_1_sse2): Likewise.
22921
22922 2010-06-21  DJ Delorie  <dj@redhat.com>
22923
22924         * diagnostic.h (diagnostic_classification_change_t): New.
22925         (diagnostic_context): Add history and push/pop list.
22926         (diagnostic_push_diagnostics): Declare.
22927         (diagnostic_pop_diagnostics): Declare.
22928         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
22929         from pragmas in a history chain instead of the global table.
22930         (diagnostic_push_diagnostics): New.
22931         (diagnostic_pop_diagnostics): New.
22932         (diagnostic_report_diagnostic): Scan history chain to find state
22933         of diagnostics as of the diagnostic location.
22934         * opts.c (set_option): Pass UNKNOWN_LOCATION to
22935         diagnostic_classify_diagnostic.
22936         (enable_warning_as_error): Likewise.
22937         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
22938         use in the history chain.
22939         * doc/extend.texi: Document pragma GCC diagnostic changes.
22940
22941 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
22942
22943         * dwarf2out.c (add_linkage_name): New function.  Don't add
22944         anything to DW_TAG_member DIEs.
22945         (add_name_and_src_coords_attributes): Use it.
22946         (gen_variable_die): Call it for C++ static data members if
22947         specification is DW_TAG_member.
22948
22949         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
22950         C++ char16_t and char32_t.
22951
22952         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
22953         * genattrtab.c: Include vecprim.h.
22954         (cached_attrs, cached_attr_count, attrs_seen_once,
22955         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
22956         attrs_cached_after): New variables.
22957         (find_attrs_to_cache): New function.
22958         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
22959         (write_test_expr): Add attrs_cached argument, return it too,
22960         attempt to cache non-const attributes used more than once in
22961         a single case handling.
22962         (write_attr_get): Use find_attrs_to_cache, for caching candidates
22963         emit cached_* variables.  Adjust write_attr_set callers.
22964         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
22965         to find attributes that should be cached in this block.  Adjust
22966         write_test_expr callers.
22967         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
22968         callers.
22969         (make_automaton_attrs): Adjust write_test_expr caller.
22970
22971         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
22972         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
22973         (make_automaton_attrs): If find_tune_attr returns non-NULL,
22974         write separate internal_dfa_insn_code_* and insn_default_latency_*
22975         functions for each attribute's value and emit init_sched_attrs
22976         function and function pointers.
22977         * genattr.c (const_attrs, reservations): New variables.
22978         (gen_attr): Add const attributes to const_attrs vector.
22979         (check_tune_attr, find_tune_attr): New functions.
22980         (main): Add reservations to reservations vector.  If find_tune_attr
22981         returns true, add prototype for init_sched_attrs and make
22982         internal_dfa_insn_code and insn_default_latency function pointers,
22983         otherwise define init_sched_attrs as dummy macro.
22984         * cfgexpand.c: Include insn-attr.h.
22985         (gimple_expand_cfg): Call init_sched_attrs.
22986
22987         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
22988
22989         PR target/44575
22990         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
22991         va_arg from a set of register save slots into a temporary,
22992         if the container is bigger than type size, do the copying
22993         using smaller mode or using memcpy.
22994
22995         PR bootstrap/44426
22996         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
22997         prototype.
22998         (sel_print_to_dot): Remove macro.
22999         (sel_print): Likewise.  New prototype.
23000         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
23001         (sel_print): New function.
23002
23003 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23004
23005         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
23006         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
23007
23008 2010-06-21  Nick Clifton  <nickc@redhat.com>
23009
23010         * config/rx/rx.h (PTRDIFF_TYPE): Define.
23011         (SMALL_REGISTER_CLASS): Define (to zero).
23012         (PRINT_OPERAND): Delete.
23013         (PRINT_OPERAND_ADDRESS): Delete.
23014         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
23015         (rx_print_operand_address): Delete prototype.
23016         * config/rx/rx.c (rx_print_operand): Make static.
23017         Allow %H and %L to handle CONST_DOUBLEs.
23018         (rx_print_operand_address): Make static.
23019         (rx_gen_move_template): Rename local variable 'template' to
23020         out_template.
23021         (rx_function_arg): Do not pass unknown sized objects in registers.
23022         (TARGET_PRINT_OPERAND): Define.
23023         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23024
23025 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
23026
23027         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
23028
23029 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
23030
23031         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
23032         stack-alignment for simple leaf-functions.
23033
23034 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
23035
23036         * doc/install.texi: Document bootstrap-lto.
23037
23038 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
23039
23040         PR debug/44248
23041         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
23042         (input_function): Drop them here, if VTA is disabled.
23043
23044 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
23045
23046         PR target/44546
23047         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
23048         New predicate.
23049         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
23050         ix86_swapped_fp_comparsion_operator instead of
23051         ix86_fp_comparison_operator.
23052
23053         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
23054         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
23055         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
23056         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
23057         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
23058         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
23059
23060 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
23061
23062         PR other/32998
23063         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
23064         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
23065         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
23066         (decode_cmdline_option): Update for this return value.  Set
23067         orig_option_with_args_text field.  Set arg field for unknown
23068         options.  Make static.
23069         (decode_cmdline_options_to_array): New.
23070         (prune_options): Update handling of find_opt return value.
23071         * opts.c (read_cmdline_option): Take decoded option.  Return void.
23072         (read_cmdline_options): Take decoded options.
23073         (decode_options): Add parameters for decoded options.  Use
23074         decode_cmdline_options_to_array.  Use decoded options for -O
23075         scan.  Use integral_argument for -O parameters.  Update call to
23076         read_cmdline_options.
23077         (enable_warning_as_error): Update handling of find_opt return value.
23078         * opts.h: Update comment on unknown options.
23079         (struct cl_decoded_option): Update comments on opt_index and arg.
23080         Add orig_option_with_args_text.
23081         (decode_cmdline_option): Remove.
23082         (decode_cmdline_options_to_array): Declare.
23083         (decode_options): Update prototype.
23084         * toplev.c (save_argv): Remove.
23085         (save_decoded_options, save_decoded_options_count): New.
23086         (read_integral_parameter): Remove.
23087         (print_switch_values): Use decoded options.
23088         (toplev_main): Don't set save_argv.  Update call to decode_options.
23089         * toplev.h (read_integral_parameter): Remove.
23090         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
23091
23092 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
23093
23094         PR target/44072
23095         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
23096         immediate.
23097         * constraints.md (Pw, Px): New constraints.
23098         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
23099
23100 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
23101
23102         * config/i386/sse.md (fma4modesuffixf4): Removed.
23103         (ssemodesuffixf2s): Likewise.
23104         (ssemodesuffixf4): Likewise.
23105         (ssemodesuffixf2c): Likewise.
23106         (ssescalarmodesuffix2s): Likewise.
23107         (avxmodesuffixf2c): Likewise.
23108         (ssemodesuffix): New.
23109         (ssescalarmodesuffix): Likewise.
23110         Update patterns with ssemodesuffix and ssescalarmodesuffix.
23111
23112 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
23113
23114         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
23115
23116 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
23117
23118         * stor-layout.c (debug_rli): Remove unused local variables.
23119
23120 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
23121
23122         PR rtl-optimization/40900
23123         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
23124         original expression for later reuse.
23125         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
23126         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
23127
23128 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
23129
23130         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
23131         double_int_fits_in_uhwi_p): Implement as static inline.
23132         (double_int_xor): New inline function.
23133         (double_int_lrotate, double_int_rrotate, double_int_max,
23134         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23135         double_int_smin): Declare.
23136         (lrotate_double, rrotate_double): Remove declaration.
23137         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
23138         double_int_to_uhwi, lrotate_double, rrotate_double): Remove 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): New function.
23142         * fold-const.c (int_const_binop): Clean up, use double_int_*
23143         functions.
23144         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
23145         double_int_* and immed_double_int_const functions.
23146
23147 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23148
23149         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
23150         * function.c (types_used_by_cur_var_decl): Likewise.
23151         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
23152
23153 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23154
23155         * tree.h (record_layout_info): Change type of pending_statics field
23156         to a VEC.
23157         * stor-layout.c (start_record_layout): Store NULL into
23158         pending_statics.
23159         (debug_rli): Call debug_vec_tree instead of debug_tree.
23160         (place_field): Likewise.
23161         (finish_record_layout): Likewise.
23162
23163 2010-06-18  Alan Modra  <amodra@gmail.com>
23164
23165         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
23166
23167 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23168
23169         PR target/43740
23170         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
23171         for SET source operand from SET destination operand.
23172
23173 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
23174
23175         PR rtl-optimization/39871
23176         * reload1.c (init_eliminable_invariants): For flag_pic, disable
23177         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
23178         (function_invariant_p): Rule out a plus of frame or arg pointer with
23179         a SYMBOL_REF.
23180         * ira.c (find_reg_equiv_invariant_const): Likewise.
23181
23182 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
23183
23184         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
23185         print_operand_address and puts to output the operand for CONST.
23186
23187 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
23188
23189         PR debug/44572
23190         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
23191         hook.
23192
23193 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23194
23195         * v850-protos.h (print_operand): Delete.
23196         (print_operand_address): Delete.
23197         * v850.h (PRINT_OPERAND): Delete.
23198         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23199         (PRINT_OPERAND_ADDRESS): Delete.
23200         * v850.c (print_operand_address): Rename to...
23201         (v850_print_operand_address): ...this.  Make static. Call
23202         v850_print_operand.
23203         (print_operand): Rename to...
23204         (v850_print_operand): ...this.  Make static.  Call
23205         v850_print_operand_address.
23206         (v850_print_operand_punct_valid_p): New function.
23207         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23208         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23209
23210 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23211
23212         * config/sh/sh-protos.h (print_operand): Delete.
23213         (print_operand_address): Delete.
23214         * config/sh/sh.h (PRINT_OPERAND): Delete.
23215         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23216         (PRINT_OPERAND_ADDRESS): Delete.
23217         * config/sh/sh.c (sh_print_operand_address): Make static.
23218         (sh_print_operand): Make static.  Call sh_print_operand_address
23219         and sh_print_operand.
23220         (sh_print_operand_punct_valid_p): New function.
23221         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23222         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23223
23224 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23225
23226         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
23227         (mcore_print_operand_address): Delete.
23228         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
23229         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23230         (PRINT_OPERAND_ADDRESS): Delete.
23231         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
23232         (mcore_print_operand): Make static.
23233         (mcore_print_operand_punct_valid_p): New function.
23234         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
23235         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23236
23237 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23238
23239         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
23240         (print_operand_address): Delete.
23241         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
23242         (PRINT_OPERAND_ADDRESS): Delete.
23243         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
23244         static.
23245         (m68hc11_print_operand): Make static.
23246         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23247
23248 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23249
23250         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
23251         (m32r_print_operand_address): Delete.
23252         * config/m32r/m32r.h (m32r_punct_chars): Delete.
23253         (PRINT_OPERAND): Delete.
23254         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23255         (PRINT_OPERAND_ADDRESS): Delete.
23256         * config/m32r/m32r.c (m32r_punct_chars): Make static.
23257         (m32r_print_operand_address): Make static.
23258         (m32r_print_operand): Make static.
23259         (m32r_print_operand_punct_valid_p): New function.
23260         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23261         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23262
23263 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23264
23265         * config/iq2000/iq2000-protos.h (print_operand): Delete.
23266         (print_operand_address): Delete.
23267         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
23268         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23269         (PRINT_OPERAND_ADDRESS): Delete.
23270         (iq2000_print_operand_punct): Delete.
23271         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
23272         (iq2000_print_operand_address): Make static.
23273         (iq2000_print_operand): Make static.
23274         (iq2000_print_operand_punct_valid_p): New function.
23275         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23276         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23277
23278 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23279
23280         * config/frv/frv-protos.h (frv_print_operand): Delete.
23281         (frv_print_operand_address): Delete.
23282         * config/frv/frv.h (PRINT_OPERAND): Delete.
23283         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23284         (PRINT_OPERAND_ADDRESS): Delete.
23285         * config/frv/frv.c (frv_print_operand_address): Make static.
23286         (frv_print_operand): Make static.
23287         (frv_print_operand_punct_valid_p): New function.
23288         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23289         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23290
23291 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23292
23293         * tree.h (vec_member): Declare.
23294         * tree.c (vec_member): Define.
23295
23296 2010-06-17  Richard Guenther  <rguenther@suse.de>
23297
23298         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
23299         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
23300
23301 2010-06-17  Richard Guenther  <rguenther@suse.de>
23302
23303         * tree-inline.c (declare_return_variable): Remove bogus code.
23304
23305 2010-06-17  Richard Guenther  <rguenther@suse.de>
23306
23307         * gimplify.c (gimplify_bind_expr): Always promote complex
23308         and vector variables to registers if possible.
23309
23310 2010-06-17  Richard Guenther  <rguenther@suse.de>
23311
23312         * expr.c (get_inner_reference): Use double_int for bit_offset
23313         calculation.
23314
23315 2010-06-16  DJ Delorie  <dj@redhat.com>
23316
23317         * common.opt (-fstrict-volatile-bitfields): new.
23318         * doc/invoke.texi: Document it.
23319         * fold-const.c (optimize_bit_field_compare): For volatile
23320         bitfields, use the field's type to determine the mode, not the
23321         field's size.
23322         * expr.c (expand_assignment): Likewise.
23323         (get_inner_reference): Likewise.
23324         (expand_expr_real_1): Likewise.
23325         * expmed.c (store_fixed_bit_field): Likewise.
23326         (extract_bit_field_1): Likewise.
23327         (extract_fixed_bit_field): Likewise.
23328
23329 2010-06-16  Richard Guenther  <rguenther@suse.de>
23330
23331         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
23332
23333 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
23334
23335         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
23336         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
23337         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
23338         * debug.c: Likewise.
23339         * sdbout.c: Likewise.
23340         * vmsdbgout.c: Likewise.
23341         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
23342         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
23343         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
23344         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
23345         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
23346         * dwarf2out.c (dw_fde_struct): New fields
23347         dw_fde_vms_{end,begin}_prologue.
23348         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
23349         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
23350         (dwarf2out_vms_end_prologue): New function.
23351         (dwarf2out_vms_begin_epilogue): New function.
23352         (dw_val_struct): New value dw_val_class_vms_delta.
23353         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
23354         begin_epilogue for VMS.
23355         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
23356         new static functions.
23357         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
23358         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
23359         static functions.
23360         (print_die): New case dw_val_class_vms_delta.
23361         (attr_checksum): Likewise.
23362         (same_dw_val_p: Likewise.
23363         (size_of_die): Likewise.
23364         (value_format): Likewise.
23365         (output_die): Likewise.
23366         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
23367         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
23368         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
23369         dwarf2out_cfi_begin_epilogue
23370         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
23371
23372 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23373
23374         * config/cris/cris-protos.h (cris_print_operand): Delete.
23375         (cris_print_operand_address): Delete.
23376         * config/cris/cris.h (PRINT_OPERAND): Delete.
23377         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23378         (PRINT_OPERAND_ADDRESS): Delete.
23379         * config/cris/cris.c (cris_print_operand_address): Make static.
23380         (cris_print_operand): Make static.
23381         (cris_print_operand_punct_valid_p): New function.
23382         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23383         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23384
23385 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23386
23387         * config/arm/arm-protos.h (arm_print_operand): Delete.
23388         (arm_print_operand_address): Delete.
23389         * config/arm/arm.h (PRINT_OPERAND): Delete.
23390         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23391         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
23392         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
23393         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
23394         (arm_print_operand): Make static.
23395         (arm_print_operand_punct_valid_p): New function.
23396         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23397         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23398
23399 2010-06-16  Nick Clifton  <nickc@redhat.com>
23400
23401         * config/rx/constraints.md (NEGint4): New constraint.
23402         * config/rx/rx.md (attr cc): Add set_zsc.
23403         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
23404         initialised.
23405         (cmpsf): Likewise.
23406         (call_internal): Clobber the cc0 register.
23407         (call_value_internal): Likewise.
23408         (cstoresi4): Likewise.
23409         (movsieq): Likewise.
23410         (movsine): Likewise.
23411         (addsi3): Add alternative to handle small negative constants.
23412         (sunsi3): Likewise.
23413         (addsi3): Do not set the O bit in the cc0 register.
23414         (adddi3): Likewise.
23415         (subsi3): Likewise.
23416         (subdi3): Likewise.
23417         (andsi3): Reorder alternatives to prefer shorter forms.
23418         (mulsi3): Likewise.
23419         (iorsi3): Likewise.
23420         (negsi2): Note that the cc0 flags are set.
23421         (rotlsi3): Note that only the Z and S bits are set in cc0.
23422         (lshrsi3): Likewise.
23423         (ashlsi3): Likewise.
23424         (subsf3): Use %Q for the MEM operand.
23425         (fix_truncsfsi2): Likewise.
23426         (floatsisf2): Likewise.
23427         (bitset): Remove early clobber from destination.
23428         (bitset_in_memory): Likewise.
23429         (lrintsf2): Clobber the cc0 register.
23430         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
23431         (rx_print_operand): Handle %N.
23432
23433 2010-06-16  Jan Hubicka  <jh@suse.cz>
23434
23435         * df-core.c (df_compact_blocks): Free problem_temps vector.
23436
23437 2010-06-16  Martin Jambor  <mjambor@suse.cz>
23438
23439         PR tree-optimization/43905
23440         * tree-sra.c: Include tree-inline.h.
23441         (create_abstract_origin): Removed.
23442         (modify_function): Version the call graph node instead of creating
23443         abstract origins and dealing with same_body aliases.
23444         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
23445         function is versionable.
23446         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
23447
23448 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
23449
23450         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
23451         (CHOOSE_DYNAMIC_LINKER): Update.
23452
23453 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
23454
23455         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
23456         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
23457         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
23458         *prefetch_3dnow_rex.
23459
23460 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
23461
23462         * target.h (struct asm_out):Add declare_constant_name field.
23463         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23464         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
23465         * output.h (default_asm_declare_constant_name): Declare.
23466         (assemble_label): Update prototype.
23467         * varasm.c (assemble_constant_contents): Use
23468         targetm.asm_out.declare_constant_name target hook.
23469         (assemble_label): Add 'file' argument.
23470         (default_asm_declare_constant_name): New function.
23471         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
23472         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
23473         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
23474
23475         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
23476         * config/darwin.c (darwin_asm_declare_constant_name): New function.
23477         (machopic_output_indirection): Update assemble_label argument list.
23478         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
23479         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23480
23481 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
23482
23483         PR middle-end/44391
23484         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
23485         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
23486
23487 2010-06-15  Richard Guenther  <rguenther@suse.de>
23488
23489         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
23490
23491 2010-06-15  Paul Brook  <paul@codesourcery.com>
23492
23493         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
23494         hard-float ABI.
23495
23496 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
23497
23498         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
23499         don't get a vector type for output.
23500
23501 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
23502
23503         PR fortran/44536
23504         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
23505         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
23506         (LANG_HOOKS_DECLS): Add it.
23507         * gimplify.c (omp_notice_variable): Call
23508         lang_hooks.decls.omp_report_decl.
23509
23510 2010-06-15  Martin Jambor  <mjambor@suse.cz>
23511
23512         PR lto/44464
23513         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
23514         on the newly dead SSA name.
23515
23516 2010-06-15  Alan Modra  <amodra@gmail.com>
23517
23518         * doc/invoke.texi: Add mcmodel to powerpc options.
23519         * configure.ac: Add HAVE_LD_LARGE_TOC test.
23520         * configure: Regenerate.
23521         * config.in: Regenerate.
23522         * config/rs6000/linux64.opt (mcmodel): New.
23523         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
23524         (TARGET_CMODEL, SET_CMODEL): Define.
23525         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
23526         select CMODEL_MEDIUM default.
23527         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
23528         (TARGET_CMODEL): Define default.
23529         * config/rs6000/rs6000.c (cmodel): New variable.
23530         (rs6000_explicit_options): Add cmodel field.
23531         (rs6000_handle_option): Handle -mcmodel.
23532         (create_TOC_reference): Add largetoc_reg param.  Generate high,
23533         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
23534         (rs6000_delegitimize_address): Recognise new toc reference rtl
23535         and minimal-toc rtl.
23536         (rs6000_legitimize_reload_address): Handle new toc references.
23537         (print_operand_address): Handle legitimate_constant_pool_address_p
23538         match before lo_sum.
23539         (rs6000_eliminate_indexed_memrefs): Tidy.
23540         (rs6000_emit_move): Tweak threshold for inlining constants.
23541         Keep rs6000_emit_allocate_stack large stack frame offsets
23542         loaded into r0 inline.
23543         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
23544         (tocrel_base, tocrel_offset): New variables.
23545         (toc_relative_expr_p): Set them here.
23546         (print_operand_address): Skip over any offset on constant pool address.
23547         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
23548         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
23549         (offsettable_ok_by_alignment): New function.
23550         (rs6000_emit_move): Address suitably aligned local symbol_refs
23551         relative to the toc pointer for -mcmodel=medium.
23552         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
23553         strict param.  Allow lo_sum version of addressing.  Verify reg
23554         used for -mminimal-toc and -mcmodel != small.  Update all callers.
23555         * config/rs6000/constraints.md: Update for above change.
23556         * config/rs6000/predicates.md: Likewise.
23557         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
23558         code.
23559         (tls_gd): Split for -mcmodel=medium/large.
23560         (tls_gd_high, tls_gd_low): New.
23561         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
23562         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
23563         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
23564         (largetoc_high, largetoc_low): New.
23565         (cmptf_internal2): Add clobber.
23566         * config/rs6000/rs6000-protos.h: Update.
23567
23568 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
23569
23570         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
23571         true if no prefetch is going to be generated for a given group.
23572         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
23573         estimate the prefetch_count.
23574         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
23575         prefetch count by considering the unroll_factor and prefetch_mod
23576         for is_loop_prefetching_profitable.
23577
23578 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
23579
23580         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
23581         anything if the argument is not a MEM.
23582
23583 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23584
23585         PR debug/43650
23586         PR debug/44181
23587         PR debug/44247
23588         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
23589         debug stmts.
23590         (canonicalize_loop_ivs): Likewise.
23591
23592 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23593
23594         PR debug/43656
23595         * haifa-sched.c (setup_insn_reg_pressure_info,
23596         update_register_pressure): Reject debug insns.
23597         (ready_sort): Don't setup reg pressure for debug insns.
23598         (schedule_insn): Don't update reg pressure for debug insns.
23599
23600 2010-06-14  Richard Guenther  <rguenther@suse.de>
23601
23602         * lto-streamer.c (cached_bp): Remove.
23603         (bitpack_delete): Likewise.
23604         (bitpack_create): Likewise.
23605         (bp_get_next_word): Likewise.
23606         (bp_pack_value, bp_unpack_value): Move ...
23607         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
23608         Re-implement.
23609         (struct bitpack_d): Likewise.
23610         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
23611         New inline functions.
23612         * lto-streamer-out.c (lto_output_bitpack): Remove.
23613         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23614         (pack_value_fields): Adjust.
23615         (lto_write_tree): Likewise.
23616         (output_gimple_stmt): Likewise.
23617         (output_function): Likewise.
23618         * lto-streamer-in.c (input_gimple_stmt): Adjust.
23619         (input_function): Likewise.
23620         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23621         (lto_input_bitpack): Remove.
23622         (lto_materialize_tree): Adjust.
23623         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
23624         * lto-cgraph.c (lto_output_edge): Adjust.
23625         (lto_output_node): Likewise.
23626         (lto_output_varpool_node): Likewise.
23627         (lto_output_ref): Likewise.
23628         (input_node): Likewise.
23629         (input_varpool_node): Likewise.
23630         (input_ref): Likewise.
23631         (input_edge): Likewise.
23632         (output_node_opt_summary): Likewise.
23633         (input_node_opt_summary): Likewise.
23634         * ipa-pure-const.c (pure_const_write_summary): Likewise.
23635         (pure_const_read_summary): Likewise.
23636         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
23637         (ipa_read_indirect_edge_info): Likewise.
23638         (ipa_write_node_info): Likewise.
23639         (ipa_read_node_info): Likewise.
23640
23641 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
23642
23643         PR target/44534
23644         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
23645         (vec_extract_lo_v16hi): Likewise.
23646         (vec_extract_lo_v32qi): Likewise.
23647
23648 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23649
23650         PR bootstrap/44426
23651         * tree.h (build_call_expr): Don't define as vararg macro, instead
23652         add a prototype.
23653         * builtins.c (build_call_nofold): Remove.
23654         (expand_builtin_int_roundingfn, expand_builtin_pow,
23655         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
23656         expand_builtin_memset_args, expand_builtin_strcmp,
23657         expand_builtin_strncmp, expand_builtin_memory_chk): Use
23658         build_call_nofold_loc instead of build_call_nofold.
23659         (build_call_expr): New function.
23660
23661         PR tree-optimization/44508
23662         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
23663         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
23664         don't eliminate trivially dead stmts.
23665         * tree-vrp.c (vrp_finalize): Pass false as last argument
23666         to substitute_and_fold.
23667         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
23668         to substitute_and_fold.
23669         * tree-ssa-ccp.c (ccp_finalize): Likewise.
23670
23671         PR bootstrap/44509
23672         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
23673
23674 2010-06-14  Ira Rosen  <irar@il.ibm.com>
23675
23676         PR tree-optimization/44507
23677         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
23678         to build initial vector for BIT_AND_EXPR.
23679         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
23680
23681 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23682
23683         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
23684         adjust z10prop set_attr.
23685
23686 2010-06-13  Jan Hubicka  <jh@suse.cz>
23687
23688         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
23689         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
23690         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
23691         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
23692         datastructure checks into checking asserts.
23693         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
23694         * tree-ssa-sccvn.c (VN_INFO): Likewise.
23695         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
23696         df_ref_create_structure): Likewise.
23697         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
23698         pool_free): Use gcc_checking_assert.
23699         * alias.c (get_alias_set): Likewise.
23700         * var-tracking.c (variable_htab_free, shared_hash_copy,
23701         canonicalize_values_mark, variable_merge_over_cur): Likewise.
23702         * lto-streamer.c (bp_unpack_value): Likewise.
23703
23704 2010-06-13  Richard Guenther  <rguenther@suse.de>
23705
23706         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
23707         Do not stream but initialize TYPE_CANONICAL to NULL.
23708         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
23709         * gimple.c (gimple_types_compatible_p): Disregard
23710         TYPE_STRUCTURAL_EQUALITY_P.
23711         (gimple_register_type): Use TYPE_CANONICAL as cache.
23712         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
23713         before registering common types.
23714         * config/i386/i386.c (ix86_function_arg_boundary): Do not
23715         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
23716         * tree.h (TYPE_CANONICAL): Clarify documentation.
23717
23718 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
23719
23720         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
23721         LIBCALL_VALUE): Remove macros.
23722         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
23723         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23724         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23725         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
23726         (ia64_function_value): Make static. Handle receiving the function
23727         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
23728
23729 2010-06-12  Jan Hubicka  <jh@suse.cz>
23730
23731         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
23732         at correct place.
23733
23734 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
23735
23736         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
23737
23738 2010-06-12  Jan Hubicka  <jh@suse.cz>
23739
23740         * df-core.c (df_clear_bb_info): New function.
23741         (df_set_blocks): bb_info is always allocated.
23742         (df_get_bb_info): Use block_info_elt_size.
23743         (df_set_bb_info): Likewise.
23744         (df_compact_blocks): Update for new block_info.
23745         (grow_bb_info): New function.
23746         * df-problems.c (df_grow_bb_info): Move to df-core.c
23747         (df_rd_set_bb_info): Remove.
23748         (df_rd_free_bb_info): Do not free block pool.
23749         (df_rd_alloc): Do not create pool, use check for
23750         obstack presence instead of NULL pointer for new blocks.
23751         (df_rd_free): DO not free alloc pool; clear block_info.
23752         (problem_RD): Add size of block info structure.
23753         (df_lr_set_bb_info): Remove.
23754         (df_lr_free_bb_info): Do not free block pool.
23755         (df_lr_alloc): Do not create pool, use check for
23756         obstack presence instead of NULL pointer for new blocks.
23757         (df_lr_free): DO not free alloc pool; clear block_info.
23758         (problem_LR): Add size of block info structure.
23759         (df_live_set_bb_info): Remove.
23760         (df_live_free_bb_info): Do not free block pool.
23761         (df_live_alloc): Do not create pool, use check for
23762         obstack presence instead of NULL pointer for new blocks.
23763         (df_live_free): DO not free alloc pool; clear block_info.
23764         (problem_LIVE): Add size of block info structure.
23765         (problem_CHAIN): Add size of block info structure.
23766         (df_byte_lr_set_bb_info): Remove.
23767         (df_byte_lr_free_bb_info): Do not free block pool.
23768         (df_byte_lr_alloc): Do not create pool, use check for
23769         obstack presence instead of NULL pointer for new blocks.
23770         (df_byte_lr_free): DO not free alloc pool; clear block_info.
23771         (problem_BYTE_LR): Add size of block info structure.
23772         (problem_NOTE): Add size of block info structure.
23773         (df_byte_MD_set_bb_info): Remove.
23774         (df_byte_MD_free_bb_info): Do not free block pool.
23775         (df_byte_MD_alloc): Do not create pool, use check for
23776         obstack presence instead of NULL pointer for new blocks.
23777         (df_byte_MD_free): DO not free alloc pool; clear block_info.
23778         (problem_BD): Add size of block info structure.
23779         * df-scan.c (df_scan_free_internal): Free block pool.
23780         (df_scan_set_bb_info): Remove.
23781         (df_scan_free_bb_info): Check for artificial_defs instead
23782         of bb_info being non-NULL.
23783         (df_scan_alloc): DO not create df_scan_block pool.
23784         (problem_SCAN): Set size of block info.
23785         (df_bb_refs_record): Do not allocate bb_info.
23786         * df.h (df_problem): Add block_info_elt_size.
23787         (struct dataflow): Change block_info to void *.
23788         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
23789         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
23790         in-line structures.
23791
23792 2010-06-12  Jan Hubicka  <jh@suse.cz>
23793
23794         PR tree-optimize/44485
23795         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
23796         containing use of return value of noreturn function.
23797
23798 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
23799
23800         * targhooks.c (default_function_value): Don't use
23801         FUNCTION_OUTGOING_VALUE.
23802         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
23803         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
23804
23805 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
23806
23807         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
23808         Add crtfastmath.o to extra_parts.
23809         * config/mips/crtfastmath.c: New.
23810         * config/mips/linux.h (ENDFILE_SPEC): New.
23811
23812 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
23813
23814         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
23815         old_type in parameter.
23816         (gcc_type_for_value): Update call to gcc_type_for_interval.
23817         (compute_type_for_level_1): Renamed compute_type_for_level.
23818         Update call to gcc_type_for_interval.
23819
23820 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23821
23822         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
23823         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
23824
23825 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23826
23827         * opts-common.c: Include options.h.
23828         (integral_argument): Move from opts.c.
23829         (decode_cmdline_option): New.  Based on read_cmdline_option.
23830         * opts.c (integral_argument): Move to opts-common.c.
23831         (read_cmdline_option): Move most contents to
23832         decode_cmdline_option.  Use %qs in diagnostics.
23833         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
23834         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
23835         decode_cmdline_option): New.
23836
23837 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23838
23839         PR target/44481
23840         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
23841         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
23842         (partiysi2_cmp): Ditto.
23843         (*partiyhi2_cmp): Ditto.
23844         (*parityqi2_cmp): Remove.
23845
23846 2010-06-11  Jan Hubicka  <jh@suse.cz>
23847
23848         * bitmap.h (bmp_iter_next_bit): New.
23849         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
23850
23851 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
23852             Eric Botcazou  <ebotcazou@adacore.com>
23853
23854         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
23855         computed cost.
23856
23857 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23858
23859         * config/i386/i386.md (unspec): New define_c_enum.
23860         (unspecv): Ditto.
23861
23862 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
23863
23864         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
23865
23866 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
23867
23868         PR middle-end/44483
23869         * tree-if-conv.c (bb_predicate_s): New struct.
23870         (bb_predicate_p): New.
23871         (bb_has_predicate): New.
23872         (bb_predicate): New.
23873         (set_bb_predicate): New.
23874         (bb_predicate_gimplified_stmts): New.
23875         (set_bb_predicate_gimplified_stmts): New.
23876         (add_bb_predicate_gimplified_stmts): New.
23877         (init_bb_predicate): New.
23878         (free_bb_predicate): New.
23879         (is_predicated): Use bb_predicate.
23880         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
23881         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
23882         before processing their successors.
23883         (clean_predicate_lists): Removed.
23884         (find_phi_replacement_condition): Use bb_predicate.
23885         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
23886         computations.
23887         (insert_gimplified_predicates): New.
23888         (combine_blocks): Call insert_gimplified_predicates.
23889         (tree_if_conversion): Call free_bb_predicate instead of
23890         clean_predicate_lists.
23891
23892 2010-10-11  Paul Brook  <paul@codesourcery.com>
23893
23894         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
23895         * config/arm/arm.c (all_architectures): Change v7e-m default to
23896         cortexm4.
23897         * config/arm/arm-cores.def: Add cortex-m4.
23898         * config/arm/arm-tune.md: Regenerate.
23899
23900 2010-06-11  Jan Hubicka  <jh@suse.cz>
23901
23902         * ipa-pure-const.c (special_builtlin_state): New function.
23903         (check_call): Use it instead of special casign BUILT_IN_RETURN.
23904         (propagate_pure_const): Use it.
23905
23906 2010-06-11  Jan Hubicka  <jh@suse.cz>
23907
23908         * df-problems.c (df_live_scratch): Convert to bitmap_head.
23909         (df_live_alloc): Initialize df_live_scratch when initializing
23910         problem_data.
23911         (df_live_transfer_function): Update uses of df_live_scratch.
23912         (df_live_free): Free problem_data; clear df_live_scratch before
23913         releasing the obstack.
23914         (df_md_free): Free problem data.
23915
23916 2010-06-11  Jan Hubicka  <jh@suse.cz>
23917
23918         * doc/invoke.texi (Wsuggest-attribute): Document.
23919         (Wmissing-noreturn): Remove.
23920         * ipa-pure-const.c (warn_function_noreturn): New function.
23921         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
23922         warn_missing_noreturn.
23923         * common.opt (Wsuggest-attribute=noreturn): New.
23924         * tree-flow.h (warn_function_noreturn): Declare.
23925         * tree-cfg.c (execute_warn_function_noreturn): Use
23926         warn_function_noreturn.
23927         (gate_warn_function_noreturn): New.
23928         (pass_warn_function_noreturn): Update.
23929
23930 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23931
23932         * c-typeck.c (handle_warn_cast_qual): Add loc
23933         parameter. Improve warning message.
23934         (build_c_cast): Pass location to handle_warn_cast_qual.
23935
23936 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23937
23938         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
23939         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
23940         insn mnemonic.
23941         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
23942
23943 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
23944
23945         Fix bootstap on mips
23946         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
23947         be naming typedefs.
23948
23949 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
23950
23951         * system.h (helper_const_non_const_cast): New inline for
23952         gcc version <= 4.0.
23953         (CONST_CAST2): For gcc version <= 4.0 use
23954         new helper to do const/non-const casting.
23955
23956 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23957
23958         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
23959         * Makefile.in (OBJS-common): Include insn-enums.o.
23960         (insn-enums.o): New rule.
23961         (simple_generated_c): Add insn-enums.c.
23962         (build/genenums.o): New rule.
23963         (genprogmd): Add "enums".
23964         * genconstants.c (print_enum_type): Declare a C string array
23965         for each enum.
23966         * genenums.c: New file.
23967         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
23968         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
23969         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
23970
23971 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23972
23973         * doc/md.texi (define_enum_attr): Document.
23974         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
23975         * read-md.h (lookup_enum_type): Declare.
23976         * read-md.c (lookup_enum_type): New function.
23977         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
23978         * genattrtab.c (attr_desc): Add an enum_name field.
23979         (evaluate_eq_attr): Take the associated attribute as argument.
23980         Get the enum prefix from the enum_name field, if defined.
23981         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
23982         (simplify_test_exp): Pass attr to evaluate_eq_attr.
23983         (add_attr_value): New function, split out from...
23984         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
23985         (write_test_expr): Pass attr to evaluate_eq_attr.
23986         (write_attr_get): Use the enum_name as the enum tag, if defined.
23987         (write_attr_valueq): Use the enum_name as a prefix, if defined.
23988         (find_attr): Initialize enum_name.
23989         (main): Handle DEFINE_ENUM_ATTR.
23990         * gensupport.c (process_rtx): Likewise.
23991         * config/mips/mips.h (mips_tune_attr): Delete.
23992         * config/mips/mips.md (cpu): Use define_attr_enum.
23993
23994 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23995
23996         * doc/md.texi (define_c_enum, define_enum): Document.
23997         * read-md.h (md_constant): Add a parent_enum field.
23998         (enum_value, enum_type): New structures.
23999         (upcase_string, traverse_enum_types): Declare.
24000         * read-md.c (enum_types): New variable.
24001         (upcase_string, add_constant): New functions.
24002         (handle_constants): Don't create the hash table here.
24003         Use add_constant.
24004         (traverse_md_constants): Don't check for a null md_constants.
24005         (decimal_string, handle_enum, traverse_enum_types): New functions.
24006         (read_md_files): Initialize md_constants and md_enums.
24007         * genconstants.c (print_md_constant): Ignore info argument.
24008         Only print constants that belong to no enum.
24009         (print_enum_type): New function.
24010         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
24011         for each defined enum type.
24012         * config/mips/mips.md (processor): New define_enum.
24013         (unspec): New define_c_enum.
24014         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
24015         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
24016         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
24017         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
24018         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
24019         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
24020         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
24021         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
24022         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
24023         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
24024         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
24025         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
24026         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
24027         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
24028         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
24029         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
24030         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
24031         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
24032         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
24033         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
24034         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
24035         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
24036         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24037         (UNSPEC_RDDSP): Move to mips-dsp.md.
24038         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
24039         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
24040         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
24041         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
24042         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
24043         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
24044         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
24045         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
24046         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
24047         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
24048         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
24049         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
24050         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
24051         Moved to mips-dspr2.md.
24052         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
24053         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
24054         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
24055         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
24056         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
24057         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
24058         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24059         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24060         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24061         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24062         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24063         UNSPEC_LOONGSON_PSADBH)
24064         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24065         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24066         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
24067         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24068         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24069         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24070         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
24071         (cpu): Update comment.
24072         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
24073         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
24074         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
24075         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
24076         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
24077         UNSPEC_LOONGSON_PCMPEQ)
24078         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
24079         UNSPEC_LOONGSON_PINSR_0)
24080         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24081         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24082         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24083         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24084         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24085         UNSPEC_LOONGSON_PSADBH)
24086         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24087         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24088         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
24089         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24090         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24091         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24092         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
24093         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
24094         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
24095         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
24096         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
24097         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
24098         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
24099         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
24100         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
24101         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
24102         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
24103         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
24104         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
24105         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
24106         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
24107         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
24108         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
24109         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
24110         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
24111         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
24112         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24113         (UNSPEC_RDDSP): Moved from mips.md.
24114         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
24115         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
24116         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
24117         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
24118         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
24119         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
24120         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
24121         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
24122         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
24123         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
24124         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
24125         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
24126         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
24127         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
24128         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
24129         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
24130         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
24131         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
24132         (UNSPEC_SCC): Moved from mips.md.
24133         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
24134         "processor_type" to "processor".
24135         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
24136         * config/mips/mips.h (processor_type): Delete.
24137         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
24138         "processor_type" to "processor".
24139
24140 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24141
24142         * configure.ac (tm_include_list): Add insn-constants.h.
24143         * configure: Regenerate.
24144         * Makefile.in (GTM_H): Move insn-constants.h here from...
24145         (TM_H): ...here.
24146         * mkconfig.sh: Remove special handling for insn-constants.h.
24147
24148 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24149
24150         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
24151         (BUILD_MD): ...this new variable.
24152         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
24153         that include the old contents of simple_generated_h and
24154         simple_generated_c.
24155         (simple_generated_h, simple_generated_c): Include them.  Add
24156         insn-constants.h.
24157         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
24158         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
24159         Remove these dependencies from the main rule and include
24160         insn-conditions.md in the command line only if it appears
24161         in the dependency list.
24162         (insn-constants.h, s-constants): Delete.
24163         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
24164         or gensupport.h.
24165         (build/genmddeps.o): Likewise.
24166         (genprogrtl): New variable that contains everything from genprogmd
24167         except mddeps and constants.
24168         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
24169         depend on $(BUILD_MD)
24170         (genprog): New variable.  Make these programs depend on
24171         $(BUILD_ERRORS).
24172         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
24173         (main): Use read_md_files instead of init_rtx_reader_args.
24174         * genconstants.c: As for genmddeps.c.
24175         * read-md.h (read_skip_construct): Declare.
24176         * read-md.c (read_skip_construct): New function.
24177         (handle_file): Allow a null handle_directive, skipping the
24178         construct if so.
24179         (parse_include): Update the comment accordingly.
24180
24181 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24182
24183         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
24184         * genmddeps.c: Include read-md.h.
24185         (main): Call init_rtx_reader_args instead of init_md_reader_args.
24186         * genattr.c (main): Likewise.
24187         * genattrtab.c (main): Likewise.
24188         * genautomata.c (main): Likewise.
24189         * gencodes.c (main): Likewise.
24190         * genconditions.c (main): Likewise.
24191         * genconfig.c (main): Likewise.
24192         * genconstants.c (main): Likewise.
24193         * genemit.c (main): Likewise.
24194         * genextract.c (main): Likewise.
24195         * genflags.c (main): Likewise.
24196         * genopinit.c (main): Likewise.
24197         * genoutput.c (main): Likewise.
24198         * genpeep.c (main): Likewise.
24199         * genrecog.c (main): Likewise.
24200         * genpreds.c (main): Likewise.
24201         * gensupport.h (in_fname): Move to read-md.h.
24202         (init_md_reader_args_cb): Rename to...
24203         (init_rtx_reader_args_cb): ...this and return a bool.
24204         (init_md_reader_args): Rename to...
24205         (init_rtx_reader_args): ...this and return a bool.
24206         (include_callback): Move to read-md.h.
24207         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
24208         (file_name_list, first_dir_md_include): Move to read-md.c
24209         (first_bracket_include): Delete unused variable.
24210         (last_dir_md_include): Move to read-md.c.
24211         (process_include): Delete, moving code to read-md.c:handle_include.
24212         (process_rtx): Don't handle INCLUDE.
24213         (save_string): Delete.
24214         (rtx_handle_directive): New function.
24215         (init_md_reader_args_cb): Rename to...
24216         (init_rtx_reader_args_cb): ...this and return a boolean success value.
24217         Use read_md_args.
24218         (init_md_reader_args): Rename to...
24219         (init_rtx_reader_args): ...this and return a boolean success value.
24220         * rtl.def (INCLUDE): Delete.
24221         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
24222         argument.
24223         * read-rtl.c (read_conditions): Don't gobble ')' here.
24224         (read_mapping): Likewise.
24225         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
24226         Handle top-level non-rtx constructs here rather than in read_rtx_1.
24227         Store the whole queue in *X.  Remove call to init_md_reader.
24228         (read_rtx_1): Rename to...
24229         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
24230         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
24231         here.
24232         (read_nested_rtx): New function.  Handle (nil) here rather than
24233         in read_rtx_code.
24234         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
24235         gobble ')' here.
24236         * read-md.h (directive_handler_t): New type.
24237         (in_fname, include_callback): Moved from read-md.h.
24238         (read_constants, init_md_reader): Delete.
24239         (read_md_files): Declare.
24240         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
24241         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
24242         from gensupport.c.
24243         (read_constants): Rename to...
24244         (handle_constants): ...this.  Don't gobble ')' here.
24245         (handle_include, handle_file, handle_toplevel_file)
24246         (parse_include): New functions, mostly taken from gensupport.c.
24247         (init_md_reader): Subsume into...
24248         (read_md_files): ...this new function.
24249
24250 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24251
24252         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
24253         (unread_char): Decrement read_md_lineno after putting back '\n'.
24254         * read-md.c (fatal_with_file_and_line): Push back any characters
24255         that we decide not to add to the context.
24256         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
24257         fatal_expected_char in cases where '/' ends a line (for example).
24258         (read_name): Don't increment read_md_lineno here.
24259         (read_escape): Likewise.
24260         (read_quoted_string): Likewise.
24261         (read_braced_string): Likewise.
24262
24263 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24264
24265         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
24266         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
24267         * genconstants.c: Include read-md.h.
24268         * read-rtl.c (md_constants): Move to read-md.c.
24269         (md_name): Move to read-md.h.
24270         (initialize_iterators): Use leading_string_hash instead of def_hash
24271         and leading_string_eq_p instead of def_name_eq_p.
24272         (read_name): Move to read-md.c.
24273         (def_hash, def_name_eq_p): Delete.
24274         (read_constants, traverse_md_constants): Move to read-md.c.
24275         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
24276         * read-md.h: Include hashtab.h.
24277         (md_name): Moved from read-rtl.c.
24278         (md_constant): Moved from read-md.h.
24279         (leading_string_hash, leading_string_eq_p, read_name)
24280         (read_constants, traverse_md_constants): Declare.
24281         * read-md.c (md_constants): Moved from read-rtl.c.
24282         (leading_string_hash, leading_string_eq_p): New functions.
24283         (read_name, read_constants, traverse_md_constants): Moved from
24284         read-rtl.c.
24285
24286 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24287
24288         * read-rtl.c (md_name): New structure.
24289         (read_name): Take an md_name instead of a buffer pointer.
24290         Use the "string" field instead of strcpy when expanding constants.
24291         (read_constants): Remove the tmp_char argument.  Update the calls
24292         to read_name, using two local name buffers instead of the tmp_char
24293         argument.  Merge the constant-creation code.
24294         (read_conditions): Remove the tmp_char argument.  Update the calls
24295         to read_name, using a local name buffer instead of the tmp_char
24296         argument.
24297         (read_mapping): Replace tmp_char variable with a local name buffer.
24298         Update the calls to read_name.
24299         (read_rtx_1): Likewise.  Update the calls to read_constants and
24300         read_conditions.
24301
24302 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24303
24304         * Makefile.in (build/read-md.o): Depend on errors.h.
24305         * read-md.h (error_with_line): Declare.
24306         * read-md.c: Include errors.h.
24307         (message_with_line_1): New function, extracted from...
24308         (message_with_line): ...here.
24309         (error_with_line): New function.
24310         * genattrtab.c: If a call to message_with_line is followed by
24311         "have_error = 1;", replace both statements with a call to
24312         error_with_line.
24313         * genoutput.c: Likewise.
24314         * genpreds.c: Likewise.
24315         * genrecog.c: If a call to message_with_line is followed by
24316         "error_count++;", replace both statements with a call to
24317         error_with_line.
24318         (errorcount): Delete.
24319         (main): Don't check it.
24320         * gensupport.c: If a call to message_with_line is followed by
24321         "errors = 1;", replace both statements with a call to error_with_line.
24322         (errors): Delete.
24323         (process_define_cond_exec): Check have_error instead of errors.
24324         (init_md_reader_args_cb): Likewise.  Don't set errors.
24325
24326 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24327
24328         * read-md.h (read_md_file): Declare.
24329         (read_char, unread_char): New functions.
24330         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24331         (read_quoted_string, read_string): Remove FILE * argument.
24332         * read-md.c (read_md_file): New variable.
24333         (read_md_filename, read_md_lineno): Update comments and remove
24334         unnecessary initialization.
24335         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24336         (read_escape, read_quoted_string, read_braced_string, read_string):
24337         Remove FILE * argument.  Update calls accordingly, using read_char
24338         and unread_char instead of getc and ungetc.
24339         * rtl.h (read_rtx): Remove FILE * argument.
24340         * read-rtl.c (iterator_group): Remove FILE * argument from
24341         "find_builtin".
24342         (iterator_traverse_data): Remove "infile" field.
24343         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
24344         (add_mapping, read_name, read_constants, read_conditions)
24345         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
24346         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
24347         Remove file arguments from all calls, using read_char and unread_char
24348         instead of getc and ungetc.
24349         * gensupport.c (process_include): Preserve read_md_file around
24350         the include.  Set read_md_file to the handle of the included file.
24351         Update call to read_rtx.
24352         (init_md_reader_args_cb): Set read_md_file to the handle of the file
24353         and remove local FILE *.  Update calls to read_rtx.
24354
24355 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24356
24357         * read-md.h (read_rtx_lineno): Rename to...
24358         (read_md_lineno): ...this.
24359         (read_rtx_filename): Rename to...
24360         (read_md_filename): ...this.
24361         (copy_rtx_ptr_loc): Rename to...
24362         (copy_md_ptr_loc): ...this.
24363         (print_rtx_ptr_loc): Rename to...
24364         (print_md_ptr_loc): ...this.
24365         * read-md.c: Likewise.  Update references after renaming.
24366         (string_obstack): Replace RTL with MD in comment.
24367         (set_rtx_ptr_loc): Rename to...
24368         (set_md_ptr_loc): ...this.
24369         (get_rtx_ptr_loc): Rename to...
24370         (get_md_ptr_loc): ...this.
24371         * genconditions.c: Update references after renaming.
24372         * genemit.c: Likewise.
24373         * genoutput.c: Likewise.
24374         * genpreds.c: Likewise.
24375         * gensupport.c: Likewise.
24376         * read-rtl.c: Likewise.
24377
24378 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24379
24380         * Makefile.in (READ_MD_H): New variable.
24381         (BUILD_RTL): Add build/read-md.o.
24382         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
24383         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
24384         (build/genattrtab.o, build/genconditions.o build/genemit.o)
24385         (build/genextract.o, build/genflags.o, build/genoutput.o)
24386         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
24387         (build/read-md.o): New rule.
24388         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
24389         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
24390         * coretypes.h: ...here.
24391         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
24392         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
24393         * genattr.c: Include read-md.h.
24394         * genattrtab.c: Likewise.
24395         * genconditions.c: Likewise.
24396         * genemit.c: Likewise.
24397         * genextract.c: Likewise.
24398         * genflags.c: Likewise.
24399         * genoutput.c: Likewise.
24400         * genpreds.c: Likewise.
24401         * genrecog.c: Likewise.
24402         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
24403         (join_c_conditions, print_c_condition, read_rtx_filename)
24404         (read_rtx_lineno): Move to read-md.h.
24405         * read-rtl.c: Include read-md.h.
24406         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
24407         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
24408         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
24409         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
24410         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
24411         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
24412         (read_braced_string, read_string): Move to read-md.c.
24413         (read_rtx): Move some initialization to init_md_reader and call
24414         init_md_reader here.
24415         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
24416         Move to read-md.h.
24417         * gensupport.c: Include read-md.h.
24418         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
24419         * read-md.h, read-md.c: New files.
24420
24421 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
24422
24423         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24424         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24425         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
24426         * config/moxie/moxie.c (moxie_function_value): Make static.
24427         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
24428         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
24429
24430 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24431
24432         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
24433         * dbgcnt.def (tree_sra): New counter.
24434         * tree-sra.c: Include dbgcnt.h.
24435         (gate_intra_sra): Check tree_sra debug counter.
24436
24437 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24438
24439         PR tree-optimization/44258
24440         * tree-sra.c (build_access_subtree): Return false iff there is a
24441         partial overlap.
24442         (build_access_trees): Likewise.
24443         (analyze_all_variable_accesses): Disqualify candidates if
24444         build_access_trees returns true for them.
24445
24446 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
24447
24448         PR debug/41371
24449         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
24450         tail-recurse into canonical node.  Fast-forward over
24451         non-canonical VALUEs.
24452
24453 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
24454
24455         PR boostrap/44470
24456         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
24457         (*addsi_1_zext) <TYPE_LEA>: Likewise.
24458         (add lea splitter): Likewise.
24459         (add_zext lea splitter): Likewise.
24460
24461 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
24462
24463         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
24464
24465 2010-06-10  Jan Hubicka  <jh@suse.cz>
24466
24467         * df-problems.c (df_live_problem_data): Add live_bitmaps.
24468         (df_live_alloc): Initialize problem data and live_osbtacks.
24469         (df_live_finalize): Remove obstack, problem data; do not
24470         clear all bitmaps.
24471         (df_live_top_dump, df_live_bottom_dump): Do not dump old
24472         data when not allocated.
24473         (df_live_verify_solution_start): Do not allocate problem data.
24474         (df_live_verify_solution_end): Check if out is allocated.
24475         (struct df_md_problem_data): New structure.
24476         (df_md_alloc): Allocate problem data.
24477         (df_md_free): Free problem data; do not clear bitmaps.
24478
24479 2010-06-10  Jan Beulich  <jbeulich@novell.com>
24480
24481         PR bootstrap/37304
24482         * configure.ac: Replace $() with ${} when intending to expand
24483         variables rather than invoking commands.
24484         * configure: Re-generate.
24485
24486 2010-06-10  Jan Hubicka  <jh@suse.cz>
24487
24488         PR rtl-optimization/44460
24489         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
24490         TYPE_NEEDS_CONSTRUCTING sanity check.
24491
24492 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
24493
24494         * doc/include/fdl.texi: Move to GFDL version 1.3.
24495
24496         * doc/cpp.texi: Move to GFDL version 1.3.
24497         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
24498         * doc/gccint.texi: Move to GFDL version 1.3.
24499         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
24500         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
24501         * doc/invoke.texi: Move to GFDL version 1.3.
24502
24503 2010-06-09  Jan Hubicka  <jh@suse.cz>
24504
24505         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
24506         Break out from ...
24507         (propagate) ... here; swap the order.
24508
24509 2010-06-09  Jan Hubicka  <jh@suse.cz>
24510
24511         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
24512         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
24513         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
24514         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
24515
24516 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24517
24518         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
24519         Do not the gather memory reference in the outer loop if the step
24520         is not a constant.
24521
24522 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24523
24524         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
24525         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
24526         8 to 4.  Minor change of the related comments.
24527
24528 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24529
24530         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
24531         the scev analysis when the variable is not used outside the loop
24532         in a close phi node: call compute_overall_effect_of_inner_loop.
24533
24534 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24535
24536         * graphite-sese-to-poly.c (single_pred_cond): Renamed
24537         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
24538         (build_sese_conditions_before): Renamed call to single_pred_cond.
24539         (build_sese_conditions_after): Same.
24540
24541 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24542
24543         * graphite-poly.h: Fix comments and indentation.
24544         * graphite-sese-to-poly.c: Same.
24545         (build_sese_conditions_before): Compute stmt and gbb only when needed.
24546         * tree-chrec.c: Fix comments and indentation.
24547         (tree-ssa-loop-niter.c): Same.
24548
24549 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
24550
24551         PR rtl-optimization/42461
24552         * dce.c (deletable_insn_p): Return true for const or pure calls again.
24553         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
24554
24555 2010-06-09  Jan Hubicka  <jh@suse.cz>
24556
24557         * bitmap.c (bitmap_and): Walk array forward.
24558         (bitmap_and_compl_into): Likewise.
24559         (bitmap_xor): Likewise.
24560         (bitmap_xor_into):  Likewise.
24561         (bitmap_equal_p): Likewise.
24562         (bitmap_intersect_p): Likewise.
24563         (bitmap_intersect_compl_p): Likewise.
24564         (bitmap_ior_and_into): Likewise.
24565         (bitmap_elt_copy): Likewise.
24566         (bitmap_and_compl): Likewise.
24567         (bitmap_elt_ior): Likewise.
24568
24569 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
24570
24571         * opts-common.c (prune_options): Ensure replacement argv array
24572         is correctly terminated by a NULL entry.
24573
24574 2010-06-09  Jan Hubicka  <jh@suse.cz>
24575
24576         * cgraph.h (varpool_first_static_initializer,
24577         varpool_next_static_initializer): Make checking only when
24578         checking enabled.
24579         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
24580         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
24581         gcc_assert to gcc_checking_assert.
24582         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
24583         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
24584         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
24585         op_iter_init_phiuse, op_iter_init_phidef,
24586         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
24587         gcc_checking_assert.
24588         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
24589         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
24590         partition_is_global, live_on_entry, live_on_exit,
24591         live_merge_and_clear): Likewise.
24592         * system.h (gcc_checking_assert): New macro.
24593         * gimple.h (set_bb_seq): Use gcc_checking_assert.
24594
24595 2010-06-09  Jason Merrill  <jason@redhat.com>
24596
24597         * Makefile.in (TAGS): Collect tags info from c-family.
24598
24599 2010-06-09  Jan Hubicka  <jh@suse.cz>
24600
24601         * gimple.h (gcc_gimple_checking_assert): New macro.
24602         (gimple_set_def_ops, gimple_set_use_ops,
24603         gimple_set_vuse, gimple_set_vdef,
24604         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
24605         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
24606         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
24607         gimple_asm_output_op, gimple_asm_output_op_ptr,
24608         gimple_asm_set_output_op, gimple_asm_clobber_op,
24609         gimple_asm_set_clobber_op, gimple_asm_label_op,
24610         gimple_asm_set_label_op, gimple_try_set_kind,
24611         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
24612         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
24613         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
24614         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
24615         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
24616         gimple_omp_for_set_initial, gimple_omp_for_final,
24617         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
24618         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
24619         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
24620         conditional with ENABLE_GIMPLE_CHECKING.
24621         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
24622
24623 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
24624
24625         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
24626         (get_computation_cost_at): Use it.
24627         (determine_use_iv_cost_condition): Likewise.
24628         (determine_iv_cost): Likewise.
24629
24630 2010-06-09  Richard Guenther  <rguenther@suse.de>
24631
24632         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
24633         replace constants.
24634
24635 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
24636
24637         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
24638
24639 2010-06-09  Martin Jambor  <mjambor@suse.cz>
24640
24641         PR tree-optimization/44423
24642         * tree-sra.c (dump_access): Dump also grp_assignment_read.
24643         (analyze_access_subtree): Pass negative allow_replacements to children
24644         if the current type is scalar.
24645
24646 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24647
24648         PR testsuite/42843
24649         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
24650         * doc/plugins.texi (Plugin license check): Update information
24651         on type of plugin_is_GPL_compatible.
24652         * Makefile.in (PLUGINCC): Define as $(COMPILER).
24653         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
24654
24655 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
24656
24657         * config/arm/arm.c (thumb2_reorg): New function.
24658         (arm_reorg): Call it.
24659         * config/arm/thumb2.md (define_peephole2 for flag clobbering
24660         arithmetic operations): Delete.
24661
24662 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
24663
24664         PR target/44067
24665         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
24666         e500v2 target.
24667
24668 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24669
24670         PR plugins/44459
24671         * gcc-plugin.h: Encapsulate all declarations in extern "C".
24672
24673 2010-06-08  Jan Hubicka  <jh@suse.cz>
24674
24675         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
24676         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
24677
24678 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
24679
24680         PR tree-optimization/39874
24681         PR middle-end/28685
24682         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
24683         Declare.
24684         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
24685         same_bool_result_p): New.
24686         (and_var_with_comparison, and_var_with_comparison_1,
24687         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
24688         (or_var_with_comparison, or_var_with_comparison_1,
24689         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
24690         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
24691         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
24692         of combine_comparisons.
24693         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
24694
24695 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
24696
24697         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24698         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24699         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
24700         pdp11_function_value_regno_p): New functions.
24701         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24702         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24703
24704 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
24705
24706         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
24707         Thumb-2 in the MINUS case.
24708
24709 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24710
24711         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
24712
24713         * doc/gty.texi (GTY Options): Document typed GC allocation and
24714         variable_size GTY option.
24715
24716         * ggc-internal.h: New.
24717
24718         * ggc.h: Update copyright year.
24719         (digit_string): Move to stringpool.c.
24720         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
24721         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
24722         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
24723         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
24724         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
24725         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
24726         (ggc_force_collect, ggc_get_size, ggc_statistics)
24727         (ggc_print_common_statistics): Move to ggc-internal.h.
24728         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
24729         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
24730         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
24731         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
24732         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
24733         (ggc_alloc_zone_pass_stat): Remove.
24734         (ggc_internal_alloc_stat, ggc_internal_alloc)
24735         (ggc_internal_cleared_alloc_stat): New.
24736         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
24737         (ggc_internal_vec_alloc_stat)
24738         (ggc_internal_cleared_vec_alloc_stat)
24739         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
24740         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
24741         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
24742         (ggc_cleared_alloc_ptr_array_two_args): New.
24743         (htab_create_ggc, splay_tree_new_ggc): Redefine.
24744         (ggc_splay_alloc): Change the type of the first argument to
24745         enum gt_types_enum.
24746         (ggc_alloc_string): Make macro.
24747         (ggc_alloc_string_stat): New.
24748         (ggc_strdup): Redefine.
24749         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
24750         (ggc_alloc_rtvec_sized): New.
24751         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
24752         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
24753         (ggc_internal_cleared_alloc_zone_stat)
24754         (ggc_internal_zone_alloc_stat)
24755         (ggc_internal_zone_cleared_alloc_stat)
24756         (ggc_internal_zone_vec_alloc_stat)
24757         (ggc_alloc_zone_rtx_def_stat)
24758         (ggc_alloc_zone_tree_node_stat)
24759         (ggc_alloc_zone_cleared_tree_node_stat)
24760         (ggc_alloc_cleared_gimple_statement_d_stat): New.
24761
24762         * ggc-common.c: Include ggc-internal.h.
24763         (ggc_internal_cleared_alloc_stat): Rename from
24764         ggc_alloc_cleared_stat.
24765         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
24766         (ggc_calloc): Remove.
24767         (ggc_cleared_alloc_htab_ignore_args): New.
24768         (ggc_cleared_alloc_ptr_array_two_args): New.
24769         (ggc_splay_alloc): Add obj_type parameter.
24770         (init_ggc_heuristics): Formatting fixes.
24771
24772         * ggc-none.c: Update copyright year.
24773         (ggc_alloc_stat): Rename to ggc_alloc_stat.
24774         (ggc_alloc_cleared_stat): Rename to
24775         ggc_internal_cleared_alloc_stat.
24776         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24777
24778         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
24779         Remove references to ggc_alloc in comments.
24780         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
24781         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
24782         (new_ggc_zone, destroy_ggc_zone): Remove.
24783         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24784
24785         * ggc-zone.c: Include ggc-internal.h.  Remove references to
24786         ggc_alloc in comments.
24787         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
24788         (ggc_internal_alloc_zone_pass_stat): New.
24789         (ggc_internal_cleared_alloc_zone_stat): New.
24790         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
24791         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
24792         (new_ggc_zone, destroy_ggc_zone): Remove.
24793
24794         * stringpool.c: Update copyright year.  Include ggc-internal.h
24795         (digit_vector): Make static.
24796         (digit_string): Moved from ggc.h.
24797         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
24798         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
24799
24800         * Makefile.in (GGC_INTERNAL_H): New.
24801         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
24802         $(GGC_INTERNAL_H) to dependencies.
24803
24804         * gengtype.c: Update copyright year.
24805         (walk_type): Accept variable_size GTY option.
24806         (USED_BY_TYPED_GC_P): New macro.
24807         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
24808         whitespace at the end of strings.
24809         (get_type_specifier, variable_size_p): New functions.
24810         (alloc_quantity, alloc_zone): New enums.
24811         (write_typed_alloc_def): New function.
24812         (write_typed_struct_alloc_def): Likewise.
24813         (write_typed_typed_typedef_alloc_def): Likewise.
24814         (write_typed_alloc_defns): Likewise.
24815         (output_typename, write_splay_tree_allocator_def): Likewise.
24816         (write_splay_tree_allocators): Likewise.
24817         (main): Call write_typed_alloc_defns and
24818         write_splay_tree_allocators.
24819
24820         * lto-streamer.h (lto_file_decl_data_ptr): New.
24821
24822         * passes.c (order): Define using cgraph_node_ptr.
24823
24824         * strinpool.c (struct string_pool_data): Declare nested_ptr using
24825         ht_identifier_ptr.
24826
24827         * gimple.h (union gimple_statement_d): Likewise.
24828
24829         * rtl.h (struct rtx_def): Likewise.
24830         (struct rtvec_def): Likewise.
24831
24832         * tree.h (union tree_node): Likewise.
24833
24834         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
24835
24836         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
24837
24838         * tree-scalar-evolution.c (scev_initialize): Likewise.
24839
24840         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
24841
24842         * dwarf2asm.c (dw2_force_const_mem): Likewise.
24843
24844         * omp-low.c (lower_omp_critical): Likewise.
24845
24846         * bitmap.h (struct bitmap_head_def): Update comment to not
24847         reference ggc_alloc.
24848
24849         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
24850
24851         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
24852
24853         * ipa-prop.c (duplicate_ggc_array): Rename to
24854         duplicate_ipa_jump_func_array.  Use typed GC allocation.
24855         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
24856
24857         * gimple.c (gimple_alloc_stat): Use
24858         ggc_alloc_cleared_gimple_statement_d_stat.
24859
24860         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
24861
24862         * tree.c (make_node_stat): Use
24863         ggc_alloc_zone_cleared_tree_node_stat.
24864         (make_tree_vec_stat): Likewise.
24865         (build_vl_exp_stat): Likewise.
24866         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
24867         (make_tree_binfo_stat): Likewise.
24868         (tree_cons_stat): Likewise.
24869
24870         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
24871         (shallow_copy_rtx_stat): Likewise.
24872         (make_node_stat): Likewise.
24873
24874         * lto-symtab.c: Fix comment.
24875
24876         * tree-cfg.c (create_bb): Update comment to not reference
24877         ggc_alloc_cleared.
24878         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
24879
24880         * varpool.c (varpool_node): Use typed GC allocation.
24881         (varpool_extra_name_alias): Likewise.
24882
24883         * varasm.c (emutls_decl): Likewise.
24884         (get_unnamed_section): Likewise.
24885         (get_noswitch_section): Likewise.
24886         (get_section): Likewise.
24887         (get_block_for_section): Likewise.
24888         (build_constant_desc): Likewise.
24889         (create_constant_pool): Likewise.
24890         (force_const_mem): Likewise.
24891
24892         * tree.c (build_vl_exp_stat): Likewise.
24893         (build_real): Likewise.
24894         (build_string): Likewise.
24895         (decl_debug_expr_insert): Likewise.
24896         (decl_value_expr_insert): Likewise.
24897         (type_hash_add): Likewise.
24898         (build_omp_clause): Likewise.
24899
24900         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
24901
24902         * tree-ssa.c (init_tree_ssa): Likewise.
24903
24904         * tree-ssa-structalias.c (heapvar_insert): Likewise.
24905
24906         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
24907
24908         * tree-ssa-loop-niter.c (record_estimate): Likewise.
24909
24910         * tree-ssa-alias.c (get_ptr_info): Likewise.
24911
24912         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
24913
24914         * tree-phinodes.c (allocate_phi_node): Likewise.
24915
24916         * tree-iterator.c (tsi_link_before): Likewise.
24917         (tsi_link_after): Likewise.
24918
24919         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
24920
24921         * tree-dfa.c (create_var_ann): Likewise.
24922
24923         * tree-cfg.c (create_bb): Likewise.
24924
24925         * toplev.c (alloc_for_identifier_to_locale): Likewise.
24926         (general_init): Likewise.
24927
24928         * stringpool.c (stringpool_ggc_alloc): Likewise.
24929         (gt_pch_save_stringpool): Likewise.
24930
24931         * sese.c (if_region_set_false_region): Likewise.
24932
24933         * passes.c (do_per_function_toporder): Likewise.
24934
24935         * optabs.c (set_optab_libfunc): Likewise.
24936         (set_conv_libfunc): Likewise.
24937
24938         * lto-symtab.c (lto_symtab_register_decl): Likewise.
24939
24940         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
24941         (input_eh_region): Likewise.
24942         (input_eh_lp): Likewise.
24943         (make_new_block): Likewise.
24944         (unpack_ts_real_cst_value_fields): Likewise.
24945
24946         * lto-section-in.c (lto_new_in_decl_state): Likewise.
24947
24948         * lto-cgraph.c (input_node_opt_summary): Likewise.
24949
24950         * loop-init.c (loop_optimizer_init): Likewise.
24951
24952         * lambda.h (lambda_vector_new): Likewise.
24953
24954         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
24955
24956         * ira.c (update_equiv_regs): Likewise.
24957
24958         * ipa.c (cgraph_node_set_new): Likewise.
24959         (cgraph_node_set_add): Likewise.
24960         (varpool_node_set_new): Likewise.
24961         (varpool_node_set_add): Likewise.
24962
24963         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
24964         (duplicate_ipa_jump_func_array): Likewise.
24965         (ipa_read_node_info): Likewise.
24966
24967         * ipa-cp.c (ipcp_create_replace_map): Likewise.
24968
24969         * integrate.c (get_hard_reg_initial_val): Likewise.
24970
24971         * gimple.c (gimple_alloc_stat): Likewise.
24972         (gimple_build_omp_for): Likewise.
24973         (gimple_seq_alloc): Likewise.
24974         (gimple_copy): Likewise.
24975
24976         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
24977         (gsi_insert_after_without_update): Likewise.
24978
24979         * function.c (add_frame_space): Likewise.
24980         (insert_temp_slot_address): Likewise.
24981         (assign_stack_temp_for_type): Likewise.
24982         (allocate_struct_function): Likewise.
24983         (types_used_by_var_decl_insert): Likewise.
24984
24985         * except.c (init_eh_for_function): Likewise.
24986         (gen_eh_region): Likewise.
24987         (gen_eh_region_catch): Likewise.
24988         (gen_eh_landing_pad): Likewise.
24989         (add_call_site): Likewise.
24990
24991         * emit-rtl.c (get_mem_attrs): Likewise.
24992         (get_reg_attrs): Likewise.
24993         (start_sequence): Likewise.
24994         (init_emit): Likewise.
24995
24996         * dwarf2out.c (new_cfi): Likewise.
24997         (queue_reg_save): Likewise.
24998         (dwarf2out_frame_init): Likewise.
24999         (new_loc_descr): Likewise.
25000         (find_AT_string): Likewise.
25001         (new_die): Likewise.
25002         (add_var_loc_to_decl): Likewise.
25003         (clone_die): Likewise.
25004         (clone_as_declaration): Likewise.
25005         (break_out_comdat_types): Likewise.
25006         (new_loc_list): Likewise.
25007         (loc_descriptor): Likewise.
25008         (add_loc_descr_to_each): Likewise.
25009         (add_const_value_attribute): Likewise.
25010         (tree_add_const_value_attribute): Likewise.
25011         (add_comp_dir_attribute): Likewise.
25012         (add_name_and_src_coords_attributes): Likewise.
25013         (lookup_filename): Likewise.
25014         (store_vcall_insn): Likewise.
25015         (dwarf2out_init): Likewise.
25016
25017         * dbxout.c (dbxout_init): Likewise.
25018
25019         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
25020
25021         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
25022
25023         * config/score/score7.c (score7_output_external): Likewise.
25024
25025         * config/score/score3.c (score3_output_external): Likewise.
25026
25027         * config/s390/s390.c (s390_init_machine_status): Likewise.
25028
25029         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
25030         (rs6000_init_machine_status): Likewise.
25031         (output_toc): Likewise.
25032
25033         * config/pa/pa.c (pa_init_machine_status): Likewise.
25034         (get_deferred_plabel): Likewise.
25035
25036         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
25037
25038         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
25039
25040         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
25041
25042         * config/mep/mep.c (mep_init_machine_status): Likewise.
25043         (mep_note_pragma_flag): Likewise.
25044
25045         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
25046
25047         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
25048
25049         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
25050
25051         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
25052         (i386_pe_maybe_record_exported_symbol): Likewise.
25053
25054         * config/i386/i386.c (get_dllimport_decl): Likewise.
25055         (ix86_init_machine_status): Likewise.
25056         (assign_386_stack_local): Likewise.
25057
25058         * config/frv/frv.c (frv_init_machine_status): Likewise.
25059
25060         * config/darwin.c (machopic_indirection_name): Likewise.
25061
25062         * config/cris/cris.c (cris_init_machine_status): Likewise.
25063
25064         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
25065
25066         * config/avr/avr.c (avr_init_machine_status): Likewise.
25067
25068         * config/arm/arm.c (arm_init_machine_status): Likewise.
25069
25070         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
25071         (alpha_need_linkage): Likewise.
25072         (alpha_use_linkage): Likewise.
25073
25074         * cgraph.c (cgraph_allocate_node): Likewise.
25075         (cgraph_create_edge_1): Likewise.
25076         (cgraph_create_indirect_edge): Likewise.
25077         (cgraph_add_asm_node): Likewise.
25078
25079         * cfgrtl.c (init_rtl_bb_info): Likewise.
25080
25081         * cfgloop.c (alloc_loop): Likewise.
25082         (rescan_loop_exit): Likewise.
25083
25084         * cfg.c (init_flow): Likewise.
25085         (alloc_block): Likewise.
25086         (unchecked_make_edge): Likewise.
25087
25088         * c-parser.c (c_parse_init): Likewise.
25089         (c_parse_file): Likewise.
25090
25091         * c-decl.c (bind): Likewise.
25092         (record_inline_static): Likewise.
25093         (push_scope): Likewise.
25094         (make_label): Likewise.
25095         (lookup_label_for_goto): Likewise.
25096         (finish_struct): Likewise.
25097         (finish_enum): Likewise.
25098         (c_push_function_context): Likewise.
25099
25100         * bitmap.c (bitmap_element_allocate): Likewise.
25101         (bitmap_gc_alloc_stat): Likewise.
25102
25103         * alias.c (record_alias_subset): Likewise.
25104         (init_alias_analysis): Likewise.
25105
25106 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
25107
25108         * fold-const.c (fold_comparison): Remove redundant parenthesis.
25109         * tree-inline.c (expand_call_inline): Pass translated return value of
25110         cgraph_inline_failed_string to diagnostic function.
25111
25112 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
25113             Shujing Zhao  <pearly.zhao@oracle.com>
25114
25115         PR c/37724
25116         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
25117         implicit bad conversions is initialization.
25118         (error_init): Use gmsgid instead of msgid for argument name and change
25119         the call for error.
25120         (pedwarn_init): Use gmsgid instead of msgid for argument name and
25121         change the call for pedwarn.
25122         (warning_init): Use gmsgid instead of msgid for argument name and
25123         change the call for warning.
25124
25125 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
25126
25127         * config/mips/mips-protos.h (mips_print_operand): Delete.
25128         (mips_print_operand_address): Delete.
25129         * config/mips/mips.h (mips_print_operand_punct): Delete.
25130         (PRINT_OPERAND): Delete.
25131         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25132         (PRINT_OPERAND_ADDRESS): Delete.
25133         * config/mips/mips.c (mips_print_operand_punct): Make static.
25134         (mips_print_operand_address): Make static.
25135         (mips_print_operand): Make static.  Call
25136         mips_print_operand_punct_valid_p.
25137         (mips_print_operand_punct_valid_p): New function.
25138         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25139         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25140
25141 2010-06-07  Jan Hubicka  <jh@suse.cz>
25142
25143         PR middle-end/44454
25144         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
25145         are allocated.
25146
25147 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
25148
25149         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
25150         name of RECORD.
25151
25152 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25153
25154         * doc/sourcebuild.texi (Effective-Target Keywords, Other
25155         attributes): Document gas.
25156
25157 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
25158
25159         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
25160         <TYPE_LEA>: Split instruction.
25161         <default>: Remove alternative 2 handling.
25162         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
25163         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
25164         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
25165
25166         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
25167         (ashift_zext lea splitter): Use DImode for multiplication.
25168
25169         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
25170         to generate addition.
25171
25172 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
25173
25174         * common.opt (fira-verbose): Use Var.
25175         (fpcc-struct-return): Use Init instead of VarExists.
25176         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
25177         toplev.c.
25178         * flags.h (flag_signed_char, flag_short_enums,
25179         flag_pcc_struct_return, flag_ira_verbose,
25180         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
25181         * toplev.c (flag_detailed_statistics, flag_signed_char,
25182         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
25183         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
25184         * toplev.h (flag_crossjumping, flag_if_conversion,
25185         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
25186         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
25187         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
25188         flag_cprop_registers, time_report, flag_ira_loop_pressure,
25189         flag_ira_coalesce, flag_ira_move_spills,
25190         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
25191
25192 2010-06-07  Jan Hubicka  <jh@suse.cz>
25193
25194         * df-core.c (df_analyze_problem): Do verification after allocation.
25195
25196         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
25197         (df_lr_alloc): Initialize problem data; move bitmaps to
25198         lr_bitmaps obstack.
25199         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
25200         (df_lr_verify_solution_start): Do not initialize problem data;
25201         allocate bitmaps in lr_bitmaps.
25202         (df_lr_verify_solution_end): Do not free problem data.
25203
25204 2010-06-07  Jan Hubicka  <jh@suse.cz>
25205
25206         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
25207         if caller is noreturn.
25208         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
25209         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
25210         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
25211         * ipa-pure-const.c (check_decl): Add IPA parameter.
25212         (state_from_flags): New function.
25213         (better_state, worse_state): New functions.
25214         (check_call): When in IPA mode, do not care about callees.
25215         (check_load, check_store): Update.
25216         (check_ipa_load, check_ipa_store): New.
25217         (check_stmt): When in IPA mode, use IPA checkers.
25218         (analyze_function): Use state_from_flags.
25219         (propagate): Check indirect edges and references.
25220
25221 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
25222
25223         PR rtl-optimization/44404
25224         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
25225         of count_occurrences to see if it's safe to modify mem_insn.
25226
25227 2010-06-07  Richard Guenther  <rguenther@suse.de>
25228
25229         * gimplify.c (gimplify_cleanup_point_expr): For empty body
25230         and EH-only cleanup drop the cleanup instead of inserting it
25231         unconditionally.
25232
25233 2010-06-07  Ira Rosen  <irar@il.ibm.com>
25234
25235         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
25236         documentation.
25237         * targhooks.c (default_builtin_vectorization_cost): New function.
25238         * targhooks.h (default_builtin_vectorization_cost): Declare.
25239         * target.h (enum vect_cost_for_stmt): Define.
25240         (builtin_vectorization_cost): Change argument and comment.
25241         * tree-vectorizer.h: Remove cost model macros.
25242         * tree-vect-loop.c: Include target.h.
25243         (vect_get_cost): New function.
25244         (vect_estimate_min_profitable_iters): Replace cost model macros with
25245         calls to vect_get_cost.
25246         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
25247         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
25248         default implementation.
25249         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
25250         calls to target hook builtin_vectorization_cost.
25251         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
25252         Likewise.
25253         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
25254         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
25255         implementation to return costs.
25256         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
25257         * config/spu/spu.h: Remove vectorizer cost model macros.
25258         * config/i386/i386.h: Likewise.
25259         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
25260         a call to target hook builtin_vectorization_cost.
25261
25262 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
25263
25264         PR target/44319
25265         * config/i386/i386.c (override_options): Turn zee pass on for level 2
25266         and above and defer till target is known.
25267         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
25268         turn off otherwise.
25269
25270 2010-05-25  Jan Hubicka  <jh@suse.cz>
25271
25272         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
25273         (df_compact_blocks): Likewise.
25274         * df.h (struct df): Turn hardware_regs_used,
25275         regular_block_artificial_uses, eh_block_artificial_uses,
25276         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
25277         bitmap_head.
25278         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
25279         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
25280         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
25281         df_scan_blocks, df_insn_delete, df_insn_rescan,
25282         df_insn_rescan_debug_internal, df_insn_rescan_all,
25283         df_process_deferred_rescans, df_process_deferred_rescans,
25284         df_notes_rescan, df_get_call_refs, df_get_call_refs,
25285         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
25286         df_record_entry_block_defs, df_record_exit_block_uses,
25287         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
25288         df_scan_verify): Update.
25289
25290 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
25291
25292         PR c++/44188
25293         * c-common.c (is_typedef_decl): Move this definition ...
25294         * tree.c (is_typedef_decl): ... here.
25295         (typdef_variant_p): Move definition here from cp/tree.c.
25296         * c-common.h (is_typedef_decl): Move this declaration ...
25297         * tree.h (is_typedef_decl): ... here.
25298         (typedef_variant_p): Move declaration here from cp/cp-tree.h
25299         * dwarf2out.c (is_naming_typedef_decl): New function.
25300         (gen_tagged_type_die): Split out of ...
25301         (gen_type_die_with_usage): ... this function. When an anonymous
25302         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
25303         is emitted for the typedef.
25304         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
25305         anonymous tagged types.
25306
25307 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25308
25309         PR c/20000
25310         * c-decl.c (grokdeclarator): Delete warning.
25311
25312 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
25313
25314         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
25315         newly built CALL_EXPR.
25316         * tree-profile.c (tree_profiling): Don't profile functions produced
25317         for built-in stuff.
25318
25319 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
25320
25321         PR bootstrap/44427
25322         PR bootstrap/44428
25323         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
25324         endianness-independent.
25325
25326 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
25327
25328         * c-common.c: Move to c-family/.
25329         * c-common.def: Likewise.
25330         * c-common.h: Likewise.
25331         * c-cppbuiltin.c: Likewise.
25332         * c-dump.c: Likewise.
25333         * c-format.c: Likewise.
25334         * c-format.h : Likewise.
25335         * c-gimplify.c: Likewise.
25336         * c-lex.c: Likewise.
25337         * c-omp.c: Likewise.
25338         * c.opt: Likewise.
25339         * c-opts.c: Likewise.
25340         * c-pch.c: Likewise.
25341         * c-ppoutput.c: Likewise.
25342         * c-pragma.c: Likewise.
25343         * c-pragma.h: Likewise.
25344         * c-pretty-print.c: Likewise.
25345         * c-pretty-print.h: Likewise.
25346         * c-semantics.c: Likewise.
25347         * stub-objc.c: Likewise.
25348
25349         * gengtype.c (get_file_langdir): Special-case files in c-family/.
25350         (get_output_file_with_visibility): Fix name for c-common.h.
25351         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
25352
25353         * c-tree.h: Update include path for moved files.
25354         * c-lang.c: Likewise.
25355         * c-lang.h: Likewise.
25356         * c-parser.c: Likewise.
25357         * c-convert.c: Likewise.
25358         * c-decl.c: Likewise.
25359         * c-objc-common.c: Likewise.
25360         * configure.ac: Make sure c-family/ exists in the build directory.
25361         * configure: Regenerate.
25362         * Makefile.in: Update paths for moved files.  Regroup files per
25363         location and update dependencies.  Move generated_files down after
25364         ALL_GTFILES_H.
25365
25366         * config/spu/spu-c.c: Update paths for moved files.
25367         * config/mep/mep-pragma.c: Likewise.
25368         * config/darwin-c.c: Likewise.
25369         * config/i386/msformat-c.c: Likewise.
25370         * config/i386/i386-c.c: Likewise.
25371         * config/avr/avr-c.c: Likewise.
25372         * config/sol2-c.c: Likewise.
25373         * config/ia64/ia64-c.c: Likewise.
25374         * config/rs6000/rs6000-c.c: Likewise.
25375         * config/arm/arm.c: Likewise.
25376         * config/arm/arm-c.c: Likewise.
25377         * config/h8300/h8300.c: Likewise.
25378         * config/v850/v850-c.c: Likewise.
25379
25380         * config/t-darwin: Fix dependencies for moved files.
25381         * config/t-sol2: Fix dependencies for moved files.
25382         * config/mep/t-mep: Fix dependencies for moved files.
25383         * config/ia64/t-ia64: Fix dependencies for moved files.
25384         * config/rs6000/t-rs6000: Fix dependencies for moved files.
25385         * config/v850/t-v850: Fix dependencies for moved files.
25386         * config/v850/t-v850e: Fix dependencies for moved files.
25387
25388         * config/m32c/m32c-pragma.c
25389
25390         * po/exgettext: Look in c-family/ also.
25391
25392 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
25393
25394         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
25395         (mark_control_dependent_edges_necessary): Call it instead of marking
25396         the last statement manually.
25397         (propagate_necessity): Likewise.
25398
25399 2010-06-05  Jan Hubicka  <jh@suse.cz>
25400
25401         * basic-block.h (compute_dominance_frontiers): Updated.
25402         (compute_idf): Likewise.
25403
25404         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
25405         for dominance frontiers.
25406         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
25407         (insert_updated_phi_nodes_for): Likewise.
25408         (update_ssa): Likewise.
25409         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25410         (compute_dominance_frontiers): Likewise.
25411         (compute_idf): Likewise.
25412         * df-problems.c (df_md_local_compute): Likewise.
25413
25414 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
25415
25416         * target.h (struct gcc_target): Add memory_move_cost field.
25417         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
25418         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
25419         * targhooks.c (default_memory_move_cost): New function.
25420         * targhooks.h (default_memory_move_cost): Declare function.
25421         * reload.h (memory_move_cost): Declare.
25422         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25423         * reginfo.c (memory_move_cost): New function.
25424         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25425         * ira.h (ira_memory_move_cost): Update comment.
25426         * ira.c (ira_memory_move_cost): Update comment.
25427         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
25428         with memory_move_cost.
25429         * postreload.c (reload_cse_simplify_set): (Ditto.).
25430         * reload1.c (choose_reload_regs): (Ditto.).
25431         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
25432         (MEMORY_MOVE_COST):  Revise documentation.
25433
25434         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
25435         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
25436         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
25437         type of 'in' argument to bool.
25438         (TARGET_MEMORY_MOVE_COST): Define.
25439
25440 2010-06-05  Jan Hubicka  <jh@suse.cz>
25441
25442         * ipa-pure-const.c (propagate): Fix typo in handling of functions
25443         that cannot return.  Be more careful when merging the results with
25444         previously known ones.
25445
25446 2010-06-05  Matthias Klose  <doko@ubuntu.com>
25447
25448         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
25449         function to add the -iplugindir option.
25450         (find_plugindir_spec_function): Add new declaration and function.
25451         (static_spec_func): Use it for "find-plugindir".
25452
25453 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
25454
25455         PR c++/44361
25456         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
25457         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
25458         statement expression.
25459
25460 2010-06-05  Jan Hubicka  <jh@suse.cz>
25461
25462         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
25463         (df_rd_problem_data): Convert sparse_invalidated_by_call,
25464         dense_invalidated_by_call to bitmap head.
25465         (df_rd_alloc, df_rd_bb_local_compute_process_def,
25466         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
25467         df_rd_start_dump, df_lr_verify_transfer_functions,
25468         df_live_verify_transfer_functions, df_chain_create_bb,
25469         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
25470         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
25471         df_simulate_one_insn_forwards, df_md_alloc,
25472         df_md_bb_local_compute_process_def,
25473         df_md_bb_local_compute_process_def, df_md_local_compute,
25474         df_md_transfer_function df_md_free): Update.
25475
25476 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
25477
25478         PR c/44322
25479         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
25480         target type for ADDR_EXPR; require no changes to qualifiers except
25481         for function types.
25482         * c-tree.h (c_build_type_variant): Remove.
25483
25484 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25485
25486         * genautomata.c (get_excl_set): Do work per element, not per char.
25487         (check_presence_pattern_sets): Similar.
25488         (check_absence_pattern_sets): Similar.
25489
25490 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25491
25492         * genautomata.c (curr_state_pass_num): Delete.
25493         (min_issue_delay_pass_states): Delete.
25494         (min_issue_delay): Delete.
25495         (initiate_min_issue_delay_pass_states): Delete.
25496         (output_min_issue_delay_table): Compute min_issue_delay_vect
25497         using a breadth-first search variant.
25498         (output_tables): Don't call initiate_min_issue_delay_pass_states.
25499
25500 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
25501
25502         PR boostrap/44421
25503         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
25504         (df_byte_lr_bb_local_compute): Likewise.
25505
25506 2010-06-03  Jason Merrill  <jason@redhat.com>
25507
25508         Implement noexcept operator (5.3.7)
25509         * c-common.c (c_common_reswords): Add noexcept.
25510         * c-common.h (enum rid): Add RID_NOEXCEPT.
25511
25512 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
25513
25514         * config/darwin-driver.c (darwin_default_min_version): Use
25515         GCC-specific formats in diagnostics.
25516         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
25517         diagnostics.
25518         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
25519         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
25520         eval_spec_function, handle_braces, process_brace_body, main,
25521         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
25522         getenv_spec_function, compare_version_strings,
25523         version_compare_spec_function): Use GCC-specific formats in
25524         diagnostics.
25525
25526 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25527
25528         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
25529         that operand 0 and operand 1 are equal.
25530         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
25531         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
25532         and operand 1 are equal.
25533         <default>: Ditto.  Remove ??? comment.
25534         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
25535         and operand 1 are equal.
25536         <default>: Ditto.  Remove ??? comment.
25537         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
25538         are equal.
25539         (*add<mode>_4) <default>: Ditto.
25540         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
25541
25542 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
25543
25544         * config/i386/i386-protos.h (ix86_print_operand): Declare.
25545         * config/i386/i386.c (ix86_print_operand): Make non-static.
25546         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
25547         * output.h (output_operand): Declare.
25548         * final.c (output_operand): Make non-static.
25549
25550 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
25551
25552         PR rtl-optimization/44013
25553         * sched-deps.c (add_dependence_list_and_free): Don't free lists
25554         when processing debug insns.
25555
25556         PR debug/41371
25557         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
25558         recursing.  Check that recursion is bounded.  Rename inner var
25559         to avoid hiding incoming argument.
25560
25561 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25562
25563         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
25564         operands[2] == 255.
25565         (*addqi_3): Ditto.
25566         (*addqi_4): Ditto.
25567         (*addqi_5): Ditto.
25568         (*addqi_ext_1_rex64): Ditto.
25569         (*addqi_ext_1): Ditto.
25570
25571         (*addqi_4): Check for incdec_operand in QImode.
25572
25573         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
25574         using SWI mode iterator.
25575         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
25576         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
25577         mode iterator.
25578         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
25579         using SWI mode iterator.
25580
25581 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25582
25583         PR c/25880
25584         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
25585         * c-format.c (gcc_diag_flag_specs): Add hash.
25586         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
25587         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
25588         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
25589         pp_c_cv_qualifiers. Handle qualifiers spelling here.
25590         (pp_c_type_qualifier_list): Call the function above.
25591         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
25592         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
25593         (WARN_FOR_QUALIFIERS): New macro.
25594         (convert_for_assignment): Use it.
25595
25596 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
25597
25598         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
25599
25600 2010-06-04  Jan Hubicka  <jh@suse.cz>
25601
25602         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
25603         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
25604         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
25605         DF_BYTE_LR_OUT): Update for embedded bitmaps.
25606         * fwprop.c (single_def_use_enter_block): Likewise.
25607         * ddg.c (create_ddg_dep_from_intra_loop_link,
25608         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
25609         * loop-iv.c (latch_dominating_def): Likewise.
25610         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
25611         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
25612         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
25613         df_rd_transfer_function, df_rd_top_dump,
25614         df_rd_bottom_dump): Update.
25615         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
25616         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
25617         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
25618         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
25619         df_lr_verify_solution_start, df_lr_verify_solution_end,
25620         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
25621         df_live_free_bb_info, df_live_alloc, df_live_reset,
25622         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
25623         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
25624         df_live_verify_solution_start, df_live_verify_solution_end,
25625         df_live_verify_transfer_functions, df_chain_create_bb,
25626         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
25627         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25628         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25629         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
25630         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
25631         df_byte_lr_transfer_function, df_byte_lr_top_dump,
25632         df_byte_lr_bottom_dump, df_create_unused_note,
25633         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
25634         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
25635         df_md_transfer_function, df_md_init, df_md_confluence_0,
25636         df_md_confluence_n,
25637         df_md_top_dump, df_md_bottom_dump): Update.
25638         (struct df_lr_problem_data): Embedd bitmap headers.
25639
25640 2010-06-04  Jan Hubicka  <jh@suse.cz>
25641
25642         * dce.c (dce_process_block): Do not re-scan already marked
25643         instructions.
25644
25645 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
25646
25647         PR rtl-optimization/39871
25648         PR rtl-optimization/40615
25649         PR rtl-optimization/42500
25650         PR rtl-optimization/42502
25651         * ira.c (init_reg_equiv_memory_loc: New function.
25652         (ira): Call it twice.
25653         * reload.h (calculate_elim_costs_all_insns): Declare.
25654         * ira-costs.c: Include "reload.h".
25655         (regno_equiv_gains): New static variable.
25656         (init_costs): Allocate it.
25657         (finish_costs): Free it.
25658         (ira_costs): Call calculate_elim_costs_all_insns.
25659         (find_costs_and_classes): Take estimated elimination costs
25660         into account.
25661         (ira_adjust_equiv_reg_cost): New function.
25662         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
25663         * reload1.c (init_eliminable_invariants, free_reg_equiv,
25664         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
25665         (elim_bb): New static variable.
25666         (reload): Move code out of here into init_eliminable_invariants and
25667         free_reg_equiv.  Call them.
25668         (calculate_elim_costs_all_insns): New function.
25669         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
25670         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
25671         but call note_reg_elim_costly if we turned a valid memory address
25672         into an invalid one.
25673         * Makefile.in (ira-costs.o): Depend on reload.h.
25674
25675 2010-06-04  Julian Brown  <julian@codesourcery.com>
25676
25677         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
25678         for pool ranges.
25679
25680 2010-06-04  Richard Guenther  <rguenther@suse.de>
25681
25682         PR lto/41584
25683         * cgraph.h (struct varpool_node): Add lto_file_data field.
25684         * lto-cgraph.c (input_varpool_node): Initialize it.
25685
25686 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25687
25688         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
25689         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
25690         predicate in "type" attribute calculation.
25691         (*addsi_1_zext): Ditto.
25692         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
25693         (*addsi_2_zext): Ditto.
25694         (*add<mode>_3): Ditto.
25695         (*addsi_3_zext): Ditto.
25696         (*add<mode>_5): Ditto.
25697
25698 2010-06-03  Jan Hubicka  <jh@suse.cz>
25699
25700         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
25701         of bitmap_bit_p.
25702         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25703
25704 2010-06-03  Jan Hubicka  <jh@suse.cz>
25705
25706         * df-problems.c (df_create_unused_note, df_note_bb_compute):
25707         micro-optimize the checks when to add new note.
25708
25709 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
25710
25711         * final.c (output_asm_insn): Call
25712         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
25713         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
25714         (output_address): Call targetm.asm_out.print_operand_address.
25715         Update comments.
25716         * target.h (struct gcc_target): Add print_operand,
25717         print_operand_address, and print_operand_punct_valid_p fields.
25718         * targhooks.h (default_print_operand): Declare.
25719         (default_print_operand_address): Declare.
25720         (default_print_operand_punct_valid_p): Declare.
25721         * targhooks.c (default_print_operand): Define.
25722         (default_print_operand_address): Define.
25723         (default_print_operand_punct_valid_p): Define.
25724         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
25725         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
25726         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
25727         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
25728         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
25729         * vmsdbgout.c (addr_const_to_string): Update comment.
25730         * config/i386/i386.c (print_operand): Rename to...
25731         (ix86_print_operand): ...this.  Make static.
25732         (print_operand_address): Rename to...
25733         (ix86_print_operand_address): ...this.  Make static.  Call
25734         ix86_print_operand instead of PRINT_OPERAND.
25735         (ix86_print_operand_punct_valid_p): New function.
25736         (TARGET_PRINT_OPERAND): Define.
25737         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25738         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25739         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
25740         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25741         (PRINT_OPERAND): Delete.
25742         (PRINT_OPERAND_ADDRESS): Delete.
25743         * config/i386/i386-protos.h (print_operand): Delete prototype.
25744         (print_operand_address): Delete prototype.
25745
25746 2010-06-03  Richard Guenther  <rguenther@suse.de>
25747
25748         PR tree-optimization/44403
25749         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
25750         Preserve pointer qualifiers.
25751         (vect_create_data_ref_ptr): Likewise.
25752
25753 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
25754
25755         PR c++/44294
25756         * defaults.h (MAX_FIXED_MODE_SIZE): New.
25757
25758         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
25759
25760 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
25761
25762         PR debug/44375
25763         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
25764         return false if merging the bbs would lead to goto_locus
25765         location being lost from the IL.
25766
25767 2010-06-03  Jan Hubicka  <jh@suse.cz>
25768             Jakub Jelinek  <jakub@redhat.com>
25769
25770         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
25771         set->regs[i] is NULL or has just one entry.
25772
25773 2010-06-03  Jan Hubicka  <jh@suse.cz>
25774
25775         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
25776         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
25777
25778 2010-06-03  Paul Brook  <paul@codesourcery.com>
25779
25780         * config/arm/arm.c (FL_TUNE): Define.
25781         (arm_default_cpu, arm_cpu_select): Remove.
25782         (all_cores): Populate core field.
25783         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
25784         (arm_find_cpu): New function.
25785         (arm_handle_option): Lookup cpu/architecture names.
25786         (arm_override_options): Cleanup mcpu/march/mtune handling.
25787         (arm_file_start): Ditto.
25788
25789 2010-06-03  Alan Modra  <amodra@gmail.com>
25790
25791         PR target/44169
25792         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
25793         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
25794         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
25795         (rs6000_emit_load_toc_table): Likewise.
25796
25797 2010-06-02  Jan Hubicka  <jh@suse.cz>
25798
25799         * passes.c (init_optimization_passes): Put ipa reference
25800         after ipa pure-const.
25801
25802 2010-06-02  Jan Hubicka  <jh@suse.cz>
25803
25804         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
25805         calls_read_all and calls_write_all.
25806         (get_reference_optimization_summary): Fix formatting.
25807         (is_proper_for_analysis): Check that decl is not readonly.
25808         (propagate_bits): Check CONST/PURE/noreturn flags.
25809         (ipa_init): Move all_module_statics to optimization_summary_obstack.
25810         (analyze_function): Ignore indirect edges.
25811         (copy_global_bitmap): For all module statics, do nothing.
25812         (generate_summary): Do not print calls_read_all/calls_write_all.
25813         (read_write_all_from_decl): Take node as argument; check
25814         cgraph_node_cannot_return.
25815         (propagate): Reorganize read_all/write_all computation;
25816         check indirect edges; check ecf flags; use all_module_statics
25817         in the results; do not free all_module_statics.
25818         (stream_out_bitmap): Handle all_module_statics.
25819         (ipa_reference_write_optimization_summary): Likewise; use
25820         varpool/cgraph encoders to get boundaries.
25821         (ipa_reference_read_optimization_summary): Read in all_module_statics;
25822         use it when possible.
25823
25824 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25825
25826         PR target/44218
25827         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
25828         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
25829
25830         * doc/extend.texi (powerpc builtins): Document vec_recip,
25831         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
25832
25833         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
25834         (rs6000_emit_swrsqrt): Ditto.
25835         (rs6000_emit_swdivsf): Delete.
25836         (rs6000_emit_swdivdf): Ditto.
25837         (rs6000_emit_swrsqrtsf): Ditto.
25838
25839         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
25840         describe the reciprocal estimate support for each type.
25841         (recip_options): Map -mrecip=<opt> into option bits.
25842         (gen_2arg_fn_t): New typedef for binary rtx gen function.
25843         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
25844         reciprocal estimate instructions.
25845         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
25846         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
25847         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
25848         cost information if -mdebug=cost or -mdebug=reg.
25849         (rs6000_override_options): Set -mrecip-precision for power6, and
25850         power7 machines.  If -mvsx or -mdfp, enable various options that
25851         came in previous instruction set ISAs, unless the option was
25852         explicitly disabled by the command line option.  Parse
25853         -mrecip=<opt> options.
25854         (rs6000_builtin_vectorized_function): Add support for vectorizing
25855         the reciprocal estimate builtins and expansions.
25856         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
25857         (bdesc_2arg): Add reciprocal estimate builtins.
25858         (bdesc_1arg): Add reciprocal square root estimate builtins.
25859         (rs6000_expand_builtin): Rewrite to use a switch statement,
25860         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
25861         (rs6000_init_builtins): Create declarations for reciprocal
25862         estimate builtins.
25863         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
25864         sized, prefer traditional floating point registers, if integer
25865         vector types, prefer altivec registers.  Don't actually look at
25866         the memory address any more.
25867         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
25868         builtins.
25869         (rs6000_load_constant_and_splat): New helper function to load up
25870         the constant for reciprocal estimate instructions.
25871         (rs6000_emit_madd): New helper function for generating
25872         multiply/add type instructions, based on the current switches.
25873         (rs6000_emit_msub): Ditto.
25874         (rs6000_emit_mnsub): Ditto.
25875         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
25876         replace a divide with a reciprocal estimate and fixup, adding
25877         support for machines with high precision and vectors.
25878         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
25879         low precision machines.
25880         (rs6000_emit_swdiv): New common function to be called to replace a
25881         division with reciprocal estimate and fixup.
25882         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
25883         for double and vector types.  Add support for high precision machines.
25884
25885         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
25886         the reciprocal estimate instructions can be generated.
25887         (TARGET_FRE): Ditto.
25888         (TARGET_FRSQRTES): Ditto.
25889         (TARGET_FRSQRTE): Ditto.
25890         (RS6000_RECIP_*): New macros for reciprocal estimate support.
25891
25892         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
25893         square root estimate on vectors.
25894         (re<mode>2): New insn for reciprocal division estimate on vectors.
25895
25896         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
25897         New builtin.
25898         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
25899         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
25900         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
25901         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
25902         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
25903         (RS6000_BUILTIN_RSQRT): Ditto.
25904         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
25905         floating point builtin.
25906
25907         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
25908         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
25909         __RECIP_PRECISION__ based on the command line switches.
25910         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
25911
25912         * config/rs6000/rs6000.opt (-mrecip): Document add support for
25913         replacing division instructions with reciprocal estimate and fixup.
25914         (-mrecip=<opt>): New option.
25915         (-mrecip-precision): Ditto.
25916
25917         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
25918         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
25919         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
25920         precision scalar.
25921
25922         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
25923         (UNSPEC_VREFP): Ditto.
25924         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
25925         conterparts with regard to support of -mno-fused-madd and -ffast-math.
25926         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
25927         reciprocal estimate instructions to be generated.
25928         (altivec_vrefp): Ditto.
25929
25930         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
25931         estimate support.
25932         (rreg): New mode attribute for reciprocal estimate support.
25933         (recip<mode>3): New insn for division using reciprocal estimate
25934         and fixup builtins.
25935         (divide define_split): New define_split to convert floating point
25936         division to use reciprocal estimate if the user used the
25937         appropriate options and the split is run when we can add new
25938         pseudo registers for the fixup.
25939         (rsqrt<mode>2): New insn for reciprocal square root support.
25940         (recipsf3): Move into recip<mode>3.
25941         (recipdf3): Ditto.
25942         (fres): Use TARGET_FRES.
25943         (rsqrtsf2): Move into rsqrt<mode>2.
25944         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
25945         (copysignsf3): Add support for VSX.
25946         (fred): Use TARGET_FRE.
25947         (fred_fpr): Ditto.
25948         (rsqrtdf_internal1): New function for frsqrte instruciton.
25949
25950         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
25951         (vec_rsqrt): Ditto.
25952
25953 2010-06-03  Richard Guenther  <rguenther@suse.de>
25954
25955         PR middle-end/44291
25956         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
25957         (set_user_assembler_libfunc): Likewise.
25958
25959 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25960
25961         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
25962         defaults.h.
25963         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
25964         to defaults.h
25965         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
25966         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
25967         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
25968         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
25969         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
25970         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
25971         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
25972         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
25973         * defaults.h: Updated for above mentioned changes.
25974
25975 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
25976
25977         * c-common.c: Remove header include of tm_p.h.
25978         * Makefile.in (c-common.o): Remove TM_P_H dependency.
25979
25980 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
25981
25982         * tree.h (struct tree_decl_map): New type.
25983         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
25984         (tree_decl_map_hash): New prototype.
25985         (debug_expr_for_decl, value_expr_for_decl): Change into
25986         tree_decl_map hashtab from tree_map.
25987         (init_ttree): Adjust initialization.
25988         (tree_decl_map_hash): New function.
25989         (decl_debug_expr_lookup, decl_debug_expr_insert,
25990         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
25991
25992 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25993
25994         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
25995         linker emulations.
25996         * configure: Regenerate.
25997         * config.in: Regenerate.
25998
25999         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
26000         (X86_64_EMULATION): Define.
26001         (TARGET_LD_EMULATION): Use them.
26002
26003         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
26004         (SPARC64_EMULATION): Define.
26005         (LINK_ARCH_SPEC): Use them.
26006
26007 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26008
26009         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
26010         smallest_mode_for_size for computing the precision types of new
26011         graphite IVs.  Do not call lang_hooks.types.type_for_size.
26012
26013 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26014
26015         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
26016         information.
26017         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
26018
26019 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26020
26021         PR middle-end/44363
26022         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
26023         return false instead.
26024
26025 2010-06-02  Jan Hubicka  <jh@suse.cz>
26026
26027         PR middle-end/44295
26028         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
26029         create new cgraph node to check callee.
26030
26031 2010-06-02  Richard Guenther  <rguenther@suse.de>
26032
26033         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
26034
26035 2010-06-02  Richard Guenther  <rguenther@suse.de>
26036
26037         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
26038         (lto_wrapper_cleanup): ... this.  Do not exit.
26039         (fatal): Adjust.  Exit here.
26040         (fatal_perror): Likewise.
26041         (fatal_signal): New function.
26042         (main): Set up signal handlers to cleanup temporary files.
26043         * Makefile.in (lto-wrapper.o): Adjust dependencies.
26044
26045 2010-06-02  Richard Guenther  <rguenther@suse.de>
26046
26047         PR tree-optimization/44377
26048         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
26049
26050 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26051
26052         * config/s390/2097.md (z10_fhex): Remove insn reservation.
26053         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
26054         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
26055         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
26056         instruction.
26057         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
26058
26059 2010-06-02  Jan Hubicka  <jh@suse.cz>
26060
26061         * bitmap.c (bitmap_descriptor): Add search_iter.
26062         (bitmap_find_bit): Increment it.
26063         (print_statistics): Print it.
26064
26065 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
26066
26067         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
26068         instead of gimple_build_call_vec.  Delete unnecessary local variable.
26069
26070 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26071
26072         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
26073         change from yesterday.
26074
26075 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26076
26077         * c-ada-spec.c: Clean up redundant includes.
26078
26079 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
26080
26081         * gimplify.c: Do not include except.h and optabs.h.
26082         (gimplify_body): Do not initialize RTL profiling.
26083         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
26084         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
26085         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
26086         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
26087         langhooks.h.
26088
26089         * tree-pretty-print.h: Include pretty-print.h.
26090         * gimple-pretty-print.h: Include pretty-print.h.
26091
26092         * tree-pretty-print.c: Do not include diagnostic.h.
26093         * tree-vrp.c: Likewise.
26094         * tree-tailcall.c: Likewise
26095         * tree-scalar-evolution.c: Likewise
26096         * tree-ssa-dse.c: Likewise
26097         * tree-chrec.c: Likewise
26098         * tree-ssa-sccvn.c: Likewise
26099         * tree-ssa-copyrename.c: Likewise
26100         * tree-nomudflap.c: Likewise
26101         * tree-call-cdce.c: Likewise
26102         * tree-stdarg.c: Likewise
26103         * tree-ssa-math-opts.c: Likewise
26104         * tree-nrv.c: Likewise
26105         * tree-ssa-sink.c: Likewise
26106         * tree-browser.c: Likewise
26107         * tree-ssa-loop-ivcanon.c: Likewise
26108         * tree-ssa-loop.c: Likewise
26109         * tree-parloops.c: Likewise
26110         * tree-ssa-address.c: Likewise
26111         * tree-ssa-ifcombine.c: Likewise
26112         * tree-if-conv.c: Likewise
26113         * tree-data-ref.c: Likewise
26114         * tree-affine.c: Likewise
26115         * tree-ssa-phiopt.c: Likewise
26116         * tree-ssa-coalesce.c: Likewise
26117         * tree-ssa-pre.c: Likewise
26118         * tree-ssa-live.c: Likewise
26119         * tree-predcom.c: Likewise
26120         * tree-ssa-forwprop.c: Likewise
26121         * tree-ssa-dce.c: Likewise
26122         * tree-ssa-ter.c: Likewise
26123         * tree-ssa-loop-prefetch.c: Likewise
26124         * tree-optimize.c: Likewise
26125         * tree-ssa-phiprop.c: Likewise
26126         * tree-object-size.c: Likewise
26127         * tree-outof-ssa.c: Likewise
26128         * tree-ssa-structalias.c: Likewise
26129         * tree-switch-conversion.c: Likewise
26130         * tree-ssa-reassoc.c: Likewise
26131         * tree-ssa-operands.c: Likewise
26132         * tree-vectorizer.c: Likewise
26133         * tree-vect-data-refs.c: Likewise
26134         * tree-vect-generic.c: Likewise
26135         * tree-vect-stmts.c: Likewise
26136         * tree-vect-patterns.c: Likewise
26137         * tree-vect-slp.c: Likewise
26138         * tree-vect-loop.c: Likewise
26139         * tree-ssa-loop-ivopts.c: Likewise
26140         * tree-ssa-loop-im.c: Likewise
26141         * tree-ssa-loop-niter.c: Likewise
26142         * tree-ssa-loop-unswitch.c: Likewise
26143         * tree-ssa-loop-manip.c: Likewise
26144         * tree-ssa-loop-ch.c: Likewise
26145         * tree-dump.c: Likewise
26146         * tree-complex.c: Likewise
26147
26148         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
26149         * tree-ssa-uninit.c: Likewise
26150         * tree-ssa-threadupdate.c: Likewise
26151         * tree-ssa-uncprop.c: Likewise
26152         * tree-ssa-ccp.c: Likewise
26153         * tree-ssa-dom.c: Likewise
26154         * tree-ssa-propagate.c: Likewise
26155         * tree-ssa-alias.c: Likewise
26156         * tree-dfa.c: Likewise
26157         * tree-cfgcleanup.c: Likewise
26158         * tree-sra.c: Likewise
26159         * tree-ssa-copy.c: Likewise
26160         * tree-ssa.c: Likewise
26161         * tree-profile.c: Likewise
26162         * tree-cfg.c: Likewise
26163         * tree-ssa-threadedge.c: Likewise
26164         * tree-vect-loop-manip.c: Likewise
26165
26166         * tree-inline.c: Do not include diagnostic.h and expr.h.
26167         Include rtl.h.
26168         (copy_decl_for_dup_finish): Do not use NULL_RTX.
26169
26170         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
26171         * tree-loop-distribution.c: Likewise.
26172
26173 2010-06-01  Jan Hubicka  <jh@suse.cz>
26174
26175         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
26176
26177 2010-06-01  Jan Hubicka  <jh@suse.cz>
26178
26179         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
26180         remove return value.
26181         (split_bbs_on_noreturn_calls) .... here.
26182         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
26183         * tree-flow.h (fixup_noreturn_call): New.
26184
26185 2010-06-01  Jan Hubicka  <jh@suse.cz>
26186
26187         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
26188
26189 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
26190
26191         * tree.h (build_nt_call_list): Delete.
26192         * tree.c (build_nt_call_list): Delete.
26193
26194 2010-06-01  Jan Hubicka  <jh@suse.cz>
26195
26196         * fwprop.c: Make emit-rtl.h include last.
26197         * rtlanal.c: Include emit-rtl.h.
26198         * genautomata.c: Output emit-rtl include into insn-automata.c
26199         * df-scan.c: Include emit-rtl.h.
26200         * haifa-sched.c: Indlude emit-rtl.h.
26201         * mode-switching.c: Indlude emit-rtl.h.
26202         * graph.c: Indlude emit-rtl.h.
26203         * sel-sched.c: Include emit-rtl.h.
26204         * sel-sched-ir.c: Include emit-rtl.h.
26205         * ira-build.c: Include emit-rtl.h.
26206         * emit-rtl.c (first_insn, last_insn): Remove defines.
26207         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
26208         Move to emit-rtl.h.
26209         (set_new_first_and_last_insn, get_last_insn_anywhere,
26210         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
26211         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
26212         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
26213         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
26214         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
26215         Use accessor functions.
26216         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26217          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26218         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26219         mem_expr_equal_p): Move here from rtl.h.
26220         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
26221         Move here from emit-rtl.c; make inline.
26222         * cfglayout.h: Include emit-rtl.h.
26223         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26224          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26225         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26226         mem_expr_equal_p, get_insns, set_first-insn,
26227         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
26228         * reg-stack.c: Include emit-rtl.h.
26229         * dce.c: Likewise.
26230
26231 2010-06-01  Jan Hubicka  <jh@suse.cz>
26232
26233         * cgraph.h (tree_function_versioning): Update prototype.
26234         (cgraph_function_versioning): Update prototype.
26235         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
26236         bitmap.
26237         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
26238         (cgraph_materialize_clone, save_inline_function_body): Update use of
26239         tree_function_versioning.
26240         * tree-inline.c (copy_bb): Look for previous copied block to link
26241         after; fix debug output.
26242         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
26243         (copy_body): Likewise.
26244         (expand_call_inline): Update use of copy_body.
26245         (tree_function_versioning): Update use of copy body; accept
26246         blocks_to_copy and new_entry.
26247
26248 2010-06-01  Jan Hubicka  <jh@suse.cz>
26249
26250         * gegenrtl.c: Remove unnecesary prototypes.
26251         (gendecl): Remove.
26252         (gendef): Produce static inline.
26253         (gencode): Remove.
26254         (main): Do not decode parameters; generate header only.
26255         * Makefile.in (genrtl.c): Remove.
26256
26257 2010-06-01  Jan Hubicka  <jh@suse.cz>
26258
26259         * tree-switch-conversion.c (build_one_array): Make it readonly.
26260
26261 2010-06-01  Richard Guenther  <rguenther@suse.de>
26262
26263         * optabs.c (init_optabs): Guard all accesses to reinit.
26264         * ipa-pure-const.c (propagate): Fix another typo.
26265         * opts.c (common_handle_option): Split assignment to bool.
26266         * c-opts.c (c_common_handle_option): Likewise.
26267
26268 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
26269             Matthew Gingell  <gingell@adacore.com>
26270
26271         * doc/invoke.texi: Mention -fdump-ada-spec.
26272         * tree-dump.c (dump_files): Add ada-spec.
26273         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
26274         * tree-pass.h (tree_dump_index): Add TDI_ada.
26275         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
26276         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
26277         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
26278         * c-decl.c: Include c-ada-spec.h.
26279         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
26280         functions.
26281         (c_write_global_declarations): Add handling of -fdump-ada-spec.
26282         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
26283         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
26284         * c-ada-spec.h, c-ada-spec.c: New files.
26285
26286 2010-06-01  Richard Guenther  <rguenther@suse.de>
26287
26288         PR lto/43853
26289         * ipa-pure-const.c (get_function_state): Hand back varying state
26290         if we do not have one.
26291         (has_function_state): New function.
26292         (duplicate_node_data): Adjust.
26293         (remove_node_data): Likewise.
26294         (pure_const_write_summary): Likewise.
26295         (propagate): Likewise.  Fix typo.
26296
26297 2010-06-01  Jan Hubicka  <jh@suse.cz>
26298
26299         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
26300         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
26301         (execute_all_ipa_transforms): Do not play with the states.
26302
26303 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
26304
26305         * config/arm/t-linux-androideabi: New.
26306         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
26307
26308 2010-06-01  Jan Hubicka  <jh@suse.cz>
26309
26310         * tree-inline.c (estimate_num_insns): For stdarg functions look
26311         into call statement to count cost of argument passing.
26312
26313 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
26314
26315         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
26316         argument for fprintf.
26317         (ix86_output_addr_diff_elt): Likewise.
26318         (x86_function_profiler): Likewise.
26319         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
26320         (LPREFIX): Likewise.
26321         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
26322
26323 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26324
26325         PR target/44338
26326         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
26327         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
26328         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
26329         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
26330         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
26331         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
26332         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
26333         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
26334         TARGET_FUSED_MADD.
26335
26336 2010-05-31  Jan Hubicka  <jh@suse.cz>
26337
26338         * tree.h (tree_range_check_failed): Declare noreturn.
26339
26340 2010-05-31  Jan Hubicka  <jh@suse.cz>
26341
26342         * gimple.c (gimple_call_builtin_p): New function.
26343         * gimple.h (gimple_call_builtin_p): Declare.
26344         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
26345         to exit.
26346         (execute_warn_function_return): BUILT_IN_RETURN is return.
26347         (split_critical_edges): Return edges are not critical.
26348         (is_ctrl_altering_stmt): Builtin_in_return is altering.
26349         (gimple_verify_flow_info): Handle built_in_return.
26350         (execute_warn_function_return): Handle built_in_return.
26351         * ipa-pure-const.c (check_call): Ignore builtin_return.
26352
26353 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26354
26355         PR middle-end/44337
26356         * expr.c (expand_assignment): Don't store anything for out-of-bounds
26357         array accesses with non-MEM.
26358
26359         PR tree-optimization/44182
26360         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
26361         newly needs to end a bb is followed by debug stmts, instead return
26362         true from the function at the end.
26363         (maybe_move_debug_stmts_to_successors): New function.
26364         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
26365
26366 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
26367
26368         PR target/44161
26369         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
26370
26371 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
26372
26373         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
26374         for nested functions in non-optimized compilation.
26375
26376 2010-05-31  Richard Guenther  <rguenther@suse.de>
26377
26378         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
26379
26380 2010-05-30  Jan Hubicka  <jh@suse.cz>
26381
26382         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
26383
26384 2010-05-30  Richard Guenther  <rguenther@suse.de>
26385
26386         PR lto/42975
26387         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
26388         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
26389         no longer needed.
26390
26391 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
26392
26393         * config/darwin.c (output_objc_section_asm_op): Add comment.
26394         (name_needs_quotes): Add '_' to list of valid comment chars.
26395         (machopic_output_function_base_name): Remove unneeded quotes.
26396         (darwin_encode_section_info): Adjust asm whitespace.
26397         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
26398         (ASM_OUTPUT_LOCAL): Ditto.
26399         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
26400         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
26401         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
26402
26403 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
26404
26405         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
26406         RS6000_OUTPUT_BASENAME unconditionally.
26407         (rs6000_output_function_epilogue): Likewise.
26408
26409 2010-05-30  Jan Hubicka  <jh@suse.cz>
26410
26411         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
26412         nodes.
26413
26414 2010-05-30  Richard Guenther  <rguenther@suse.de>
26415
26416         * tree-cfg.c (verify_gimple_assign_single): Implement
26417         verification for COND_EXPR rhs.
26418
26419 2010-05-30  Jan Hubicka  <jh@suse.cz>
26420
26421         * cgraph.h (cgraph_dump_file): Declare.
26422         * cgraphunit.c (cgraph_dump_file): Export.
26423         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
26424
26425 2010-05-30  Jan Hubicka  <jh@suse.cz>
26426
26427         * dwarf2out.c (reference_to_unused,
26428         premark_types_used_by_global_vars_helper): Avoid creation of new
26429         varpool nodes.
26430
26431 2010-05-30  Jan Hubicka  <jh@suse.cz>
26432
26433         * cgraph.h (cgraph_node_cannot_return,
26434         cgraph_edge_cannot_lead_to_return): New functions.
26435         * cgraph.c (cgraph_node_cannot_return,
26436         cgraph_edge_cannot_lead_to_return): Use them.
26437         * ipa-pure-const.c (pure_const_names): New static var.
26438         (check_call): Handle calls not leading to return.
26439         (pure_const_read_summary): Dump info read.
26440         (propagate): Dump info about propagation process; ignore side effects
26441         of functions not leading to exit; fix handling of pure functions.
26442
26443 2010-05-30  Jan Hubicka  <jh@suse.cz>
26444
26445         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
26446         for tail call epilogues.
26447
26448 2010-05-30  Jan Hubicka  <jh@suse.cz>
26449
26450         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
26451         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
26452         dump files.
26453
26454 2010-05-29  Jan Hubicka  <jh@suse.cz>
26455
26456         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
26457         node; remove references in node we no longer keep in cgrpah but need
26458         body of.
26459
26460 2010-05-29  Jan Hubicka  <jh@suse.cz>
26461
26462         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
26463
26464 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26465
26466         PR target/44165
26467         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
26468
26469 2010-05-29  Jan Hubicka  <jh@suse.cz>
26470
26471         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
26472         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
26473         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
26474         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
26475         debug_names_replaced_by, debug_update_ssa): Likewise.
26476         * sbitmap.c (debug_sbitmap): Likewise.
26477         * genrecog.c (debug_decision, debug_decision_list): Likewise.
26478         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
26479         debug_tree_chain): Likewise.
26480         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
26481         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
26482         * optabs.c (debug_optab_libfuncs): Likewise.
26483         (verify_loop_closed_ssa): Likewise.
26484         * value-prof.c (verify_histograms): Likewise.
26485         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
26486         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
26487         * cfghooks.c (verify_flow_info): Likewise.
26488         * fold-const.c (debug_fold_checksum): Likewise.
26489         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
26490         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
26491         Likewise.
26492         * omega.c (debug_omega_problem): Likewise.
26493         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
26494         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
26495         * dominance.c (verify_dominators, debug_dominance_info,
26496         debug_dominance_tree): Likewise.
26497         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
26498         * df_regno_debug, df_ref_debug,
26499         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
26500         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
26501         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
26502         * sel-sched.c (debug_state): Likewise.
26503         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
26504         Likewise.
26505         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
26506         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
26507         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
26508         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
26509         Likewise.
26510         * c-pretty-print.c (debug_c_tree): Likewise.
26511         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
26512         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
26513         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
26514         * ebitmap.c (debug_ebitmap): Likewise.
26515         * function.c (debug_find_var_in_block_tree): Likewise.
26516         * print-rtl.c (debug_rtx): Likewise.
26517         (debug_rtx_count): Likewise.
26518         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
26519         * stor-layout.c (debug_rli): Likewise.
26520         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
26521         * tree-data-ref.c (debug_data_references,
26522         debug_data_dependence_relations, debug_data_reference,
26523         debug_data_dependence_relation, debug_rdg_vertex,
26524         debug_rdg_component, debug_rdg): Likewise.
26525         * tree-affine.c (debug_aff): Likewise.
26526         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
26527         Likewise.
26528         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
26529         * emit-rtl.c (verify_rtl_sharing): Likewise.
26530         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
26531         debug_value_expressions): Likewise.
26532         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
26533         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
26534         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
26535         * cfglayout.c (verify_insn_chain): Likewise.
26536         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
26537         debug_clast_stmt, debug_generated_program): Likewise.
26538         * ggc-page.c (debug_print_page_list): Likewise.
26539         * tree-ssa-ter.c (debug_ter): Likewise.
26540         * graphite-dependences.c (debug_pddr): Likewise.
26541         * sched-deps.c (debug_ds): Likewise.
26542         * tree-ssa.c (verify_ssa): Likewise.
26543         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
26544         debug_scattering_functions, debug_iteration_domains, debug_pdr,
26545         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
26546         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
26547         * tree-inline.c (debug_find_tree): Likewise.
26548         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
26549         debug_ppl_powerset_matrix): Likewise.
26550         * var-tracking.c (debug_dv): Likewise.
26551         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
26552         * cfgloop.c (verify_loop_structure): Likewise.
26553         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
26554         * c-common.c (verify_sequence_points): Likewise.
26555         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
26556         debug_candidates, debug_rgn_dependencies): Likewise.
26557         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
26558         * debug_constraint_graph, debug_solution_for_var,
26559         debug_sa_points_to_info): Likewise.
26560         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
26561         Likewie.
26562         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
26563         debug_loops, debug_loop, debug_loop_num): Likewise.
26564         * passes.c (debug_pass): Likewise.
26565         (dump_properties): Likewise; add cfglayout property.
26566         (debug_properties): Likewise.
26567         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
26568         * varpool.c (debug_varpool): Likewise.
26569         * regcprop.c (debug_value_data): Likewise.
26570         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
26571         debug_immediate_uses_for): Likewise.
26572
26573 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26574
26575         PR bootstrap/44315
26576         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
26577         Filter out insn-flags.h.
26578
26579 2010-05-29  Jan Hubicka  <jh@suse.cz>
26580
26581         * cgraph.h (struct varpool_node_set_def,
26582         struct cgraph_node_set_def): Remove unused AUX pointer.
26583         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
26584         VEC_empty macro.
26585
26586 2010-05-29  Jan Hubicka  <jh@suse.cz>
26587
26588         PR middle-end/44324
26589         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
26590
26591 2010-05-29  Richard Guenther  <rguenther@suse.de>
26592
26593         * lto-streamer.c (cached_bp): New global variable.
26594         (bitpack_create): Return the cached bitpack, if available.
26595         (bitpack_delete): Clear and cache the bitpack, if appropriate.
26596         (bp_pack_value): Remove redundant asserts.
26597
26598 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26599
26600         PR middle-end/44306
26601         * tree-if-conv.c (is_true_predicate): New.
26602         (is_predicated): Use is_true_predicate.
26603         (add_to_predicate_list): Same.  Do not use unshare_expr.
26604         (add_to_dst_predicate_list): Same.
26605
26606 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26607
26608         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
26609         field on edges.
26610         (predicate_bbs): Same.
26611         (clean_predicate_lists): Same.
26612         (find_phi_replacement_condition): Do not AND the predicate from
26613         edge->aux.
26614
26615 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26616
26617         PR bootstrap/44315
26618         * Makefile.in (build/gencondmd.o): Add a missing `\'.
26619
26620 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26621
26622         PR target/44261
26623         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
26624         (negdf2): Adjust expander pattern and use negdf2_slow.
26625         (negsf2): Likewise.
26626
26627 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
26628
26629         * basic-block.h (struct control_flow_graph): Move last_label_uid field
26630         up.
26631         * df.h (struct df_base_ref): Move regno field up.
26632         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
26633         * expr.h (struct separate_ops): Move location field up.
26634         * optabs.h (struct optab_d): Move libcall_basename field down.
26635         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
26636         * config/i386/i386.h (struct machine_function): Convert call_abi field
26637         into a bitfield.  Move cfa field to the end of the structure.
26638
26639 2010-05-29  Jan Hubicka  <jh@suse.cz>
26640
26641         * varpool.c (varpool_get_node): Fix lookup.
26642
26643 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26644
26645         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
26646         RTL specific prototypes with #ifdef RTX_CODE.
26647         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
26648         * config/spu/t-spu-elf: Fix dependencies.
26649
26650         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
26651
26652 2010-05-29  Mike Stump  <mikestump@comcast.net>
26653
26654         PR bootstrap/44315
26655         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
26656         TM_H when building to avoid dependency loops.
26657
26658 2010-05-29  Jan Hubicka  <jh@suse.cz>
26659
26660         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
26661         refs and body; not the whole node for masters of materialized clones.
26662
26663 2010-05-29  Mike Stump  <mikestump@comcast.net>
26664
26665         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
26666
26667 2010-05-29  Jan Hubicka  <jh@suse.cz>
26668
26669         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
26670         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
26671         use of clone_function_name.
26672         * cgraph.h (cgraph_create_virtual_clone,
26673         cgraph_function_versioning): update prototypes.
26674         (clone_function_name): Declare.
26675         * ipa-cp.c (ipcp_insert_stage): Update call of
26676         cgraph_create_virtual_clone.
26677         * omp-low.c (create_omp_child_function_name): Use
26678         cgraph_create_virtual_clone.
26679         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
26680         (cgraph_function_versioning): Take SUFFIX argument; produce new name
26681         and make decl local.
26682
26683 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26684
26685         * vec.h: Include statistics.h
26686         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
26687         with VEC_H.
26688
26689 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26690
26691         * c-lex.c: Do not include c-tree.h.
26692         * c-pretty-print.c: Likewise.
26693         * c-opts.c: Likewise.
26694         * c-gimplify.c: Likewise.
26695         * c-common.c: Likewise.
26696         * c-dump.c: Likewise.  Include c-common.h.
26697
26698 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26699
26700         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
26701         before including diagnostic-core.h.
26702         (c_cpp_error): New prototype moved from c-tree.h.
26703         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
26704         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
26705         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
26706         (c_cpp_error): Prototype moved to c-common.h.
26707         * Makefile.in: Update dependency for C_COMMON_H.
26708
26709 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26710
26711         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
26712         * c-common.c (c_register_addr_space): Remove here.
26713         * c-decl.c (c_register_addr_space): Re-add here.
26714
26715 2010-05-28  Mike Stump  <mikestump@comcast.net>
26716
26717         * config/darwin-c.c: Remove c-tree.h include.
26718
26719 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26720
26721         * gcc.c: Include diagnostic.h.
26722         (error_count): Remove.  All users changed to use errorcount.
26723         (programname): Remove.  All users changed to use progname.
26724         (fancy_abort, internal_error, fatal_error, error, warning, inform,
26725         fnotice): Remove.
26726         (execute): Don't include "Internal error" and bug reporting
26727         information in argument of internal_error call.
26728         (process_command): Don't increment error_count after calling
26729         perror_with_name.
26730         (input_filename): Rename to gcc_input_filename.  All users
26731         changed.
26732         (main): Call diagnostic_initialize.  Register delete_temp_files
26733         with atexit.  Use seen_error to test for errors.
26734         * gcc.h: Include diagnostic-core.h.
26735         (fatal_error, error, warning): Remove.
26736         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
26737         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
26738         (gcc.o): Update dependencies.
26739
26740 2010-05-28  Jeff Law  <law@redhat.com>
26741
26742         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
26743         functions.
26744         * ira.h (ira_bad_reload_regno): Declare
26745         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
26746
26747         * ira-color.c (update_curr_costs): Free updated hard reg costs.
26748         (ira_reassign_conflict_allocnos): Remove bogus asserts.
26749         (allocno_reload_assign): Likewise.
26750
26751 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
26752
26753         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
26754         build1_stat.
26755
26756 2010-05-28  Richard Guenther  <rguenther@suse.de>
26757
26758         PR lto/44312
26759         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
26760         Stream fixed-point constants mode.
26761         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
26762         and TYPE_PRECISION.
26763         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
26764         Stream fixed-point constants mode.
26765         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
26766         and TYPE_PRECISION.
26767
26768 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26769
26770         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
26771         only place it was called from.
26772         (number_of_latch_executions): Do not return chrec_dont_know when the
26773         may_be_zero is a runtime condition: instead, return a COND_EXPR
26774         including the may_be_zero condition.
26775         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
26776         of nb_iterations.
26777         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
26778         COND_EXPRs.
26779
26780 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26781
26782         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
26783         generate COND_EXPRs for degenerate_phi_result.
26784
26785 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26786
26787         PR middle-end/44293
26788         * tree-if-conv.c (if_convertible_loop_p): Check the
26789         if-convertibility of phi nodes in non predicated BBs.
26790
26791 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26792
26793         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
26794
26795 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26796
26797         PR driver/15303
26798         * gcc.c (inform, warning, inform): New functions.
26799         (fatal_ice): Rename to internal_error; change cmsgid parameter to
26800         gmsgid.  All callers changed.
26801         (notice): Rename to fnotice; add parameter fp.  All callers changed.
26802         (fatal_error): Rename to fatal_signal.  All users changed.
26803         (fatal): Rename to fatal_error; change cmsgid parameter to
26804         gmsgid.  All callers changed.
26805         (process_command): Use warning instead of error for warnings.
26806         (end_going_arg): Don't use _() around argument of error.
26807         (do_spec_1): Use inform for message from %n specs.  Use warning
26808         instead of error for warnings.
26809         (main): Use inform for comparison messages.  Use warning for
26810         message about unused linker input.
26811         (error): Increment error_count.  Print "error: ".
26812         * gcc.h (fatal): Change to fatal_error.
26813         (warning): Declare.
26814         * config/darwin-driver.c (darwin_default_min_version): Use warning
26815         instead of fprintf for warnings.
26816         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
26817
26818 2010-05-28  Julian Brown  <julian@codesourcery.com>
26819
26820         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
26821         (*thumb2_addsi3_compare0_scratch): New.
26822         * config/arm/constraints.md (Pv): New.
26823         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
26824         for ARM mode only.
26825         (*addsi3_compare0_scratch): Likewise.
26826
26827 2010-05-28  Jan Hubicka  <jh@suse.cz>
26828
26829         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
26830         check.
26831         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
26832         only on local statics.
26833
26834 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
26835
26836         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
26837
26838 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
26839
26840         PR bootstrap/44314
26841         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
26842         (OPTION_GLIBC): Define.
26843
26844 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26845
26846         PR debug/41048
26847         * dwarf2out.c (double_int_type_size_in_bits): New function.
26848         (round_up_to_align): Change first argument and return value to
26849         double_int.
26850         (field_byte_offset): Work internally on double_ints.
26851
26852         PR target/43636
26853         * builtins.c (expand_movstr): Use a temporary pseudo instead
26854         of target even when target is not NULL and not const0_rtx, but
26855         fails movstr predicate.
26856         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
26857
26858 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26859
26860         * final.c (rest_of_clean_state): Use %m in errors instead of
26861         strerror (errno).
26862         * gengtype.c (read_input_list, close_output_files): Use xstrerror
26863         instead of strerror.
26864         * toplev.c (process_options): Use %m in errors instead of strerror
26865         (errno).
26866         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
26867         (errno).
26868
26869 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
26870
26871         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
26872         (ix86_canonical_va_list_type): Make static.  Add declaration.
26873         (ix86_enum_va_list): Make static.  Reindent.
26874         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
26875         (ix86_canonical_va_list_type): Ditto.
26876         (ix86_enum_va_list): Ditto.
26877
26878 2010-05-28  Richard Guenther  <rguenther@suse.de>
26879
26880         * lto-wrapper.c (run_gcc): With -save-temps generate a
26881         user-visible ltrans filename.  Fixup ltrans unit numbering.
26882
26883 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
26884
26885         * c-common.c (c_common_nodes_and_builtins): Replace use
26886         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
26887         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
26888         to ix86_enum_va_list.
26889         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
26890         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
26891         (TARGET_ENUM_VA_LIST_P): Add hook description.
26892         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
26893         * target.h (gcc_target): Add enum_va_list hook.
26894
26895         PR bootstrap/44299
26896         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
26897         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
26898         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
26899
26900 2010-05-28  Alan Modra  <amodra@gmail.com>
26901
26902         PR target/44266
26903         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
26904         emit_library_call machinery to set up __tls_get_addr calls.
26905
26906 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26907
26908         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
26909
26910 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
26911
26912         Revert fix for PR c++/44188
26913         * c-common.c (is_typedef_decl): Revert the moving of  this
26914         definition ...
26915         * tree.c (is_typedef_decl): ... here.
26916         (typdef_variant_p): Revert the moving of this  definition
26917         here from cp/tree.c.
26918         * c-common.h (is_typedef_decl): Revert the moving of this
26919         declaration ...
26920         * tree.h (is_typedef_decl): ... here.
26921         (typedef_variant_p): Revert the moving of this  declaration here
26922         from cp/cp-tree.h
26923         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
26924         (gen_tagged_type_die): Revert the splitting out of ...
26925         (gen_type_die_with_usage): ... this function. Revert the anonymous
26926         tagged type handling.
26927         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
26928         typedefs naming anonymous tagged types.
26929
26930 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26931
26932         * config/rs6000/rs6000-modes.def (PSImode): Delete.
26933
26934 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26935
26936         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
26937         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
26938         throughout.
26939         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
26940         "xer" to "ca".
26941         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
26942         XER_REGS to CA_REGS throughout.
26943         * config/rs6000/rs6000.h: Same.
26944         (ADDITIONAL_REGISTER_NAMES): Add "xer".
26945         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
26946         that mode_iterator "P" is the size for arithmetic carries as well.
26947         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
26948
26949 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26950
26951         PR bootstrap/44255
26952         * combine.c (struct rtx_subst_pair): Define unconditionally.
26953         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
26954         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
26955         Call make_compound_operation on pair->to.
26956         (propagate_for_debug): Don't call make_compound_operation here.
26957         Always use simplify_replace_fn_rtx.
26958
26959 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
26960
26961         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
26962         * config/xtensa/xtensa.c (override_options): Check
26963           TARGET_FORCE_NO_PIC and set flag_pic.
26964         * config/xtensa/xtensa.opt: Document -mforce-no-pic
26965
26966 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
26967
26968         PR bootstrap/44299
26969         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
26970         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
26971
26972 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
26973
26974         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
26975         toplev.h.
26976         * diagnostic.c: Don't include toplev.h.
26977         (progname): Define.  Moved from toplev.c.
26978         (seen_error): New function.
26979         * diagnostic.h: Include diagnostic-core.h.
26980         (diagnostic_t, emit_diagnostic): Don't declare here.
26981         * toplev.c (progname): Move to toplev.c.
26982         (emit_debug_global_declarations, compile_file, finalize,
26983         do_compile, toplev_main): Use seen_error.
26984         * toplev.h: Include diagnostic-core.h.
26985         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
26986         internal_error, warning, warning_at, error, error_n, error_at,
26987         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
26988         verbatim, fnotice, progname): Move to diagnostic-core.h.
26989         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
26990         (expand_builtin_expect): Use seen_error.
26991         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
26992         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
26993         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
26994         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
26995         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
26996         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
26997         errorcount for errors.
26998         * c-opts.c (c_common_finish): Use seen_error.
26999         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
27000         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
27001         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
27002         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
27003         (get_coverage_counts): Use seen_error.
27004         * dwarf2out.c (dwarf2out_finish): Use seen_error.
27005         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
27006         gimplify_body): Use seen_error.
27007         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
27008         * ipa-pure-const.c (gate_pure_const): Use seen_error.
27009         * ipa-reference.c (gate_reference): Use seen_error.
27010         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
27011         * lambda-code.c: Include diagnostic-core.h instead of
27012         diagnostic.h.
27013         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
27014         * lto-compress.c: Include diagnostic-core.h instead of
27015         diagnostic.h.
27016         * lto-section-in.c: Include diagnostic-core.h instead of
27017         diagnostic.h.
27018         * lto-streamer-out.c: Include diagnostic-core.h instead of
27019         diagnostic.h.
27020         * lto-streamer.c: Include diagnostic-core.h instead of
27021         diagnostic.h.
27022         (gate_lto_out): Use seen_error.
27023         * matrix-reorg.c: Include diagnostic-core.h instead of
27024         diagnostic.h.
27025         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
27026         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
27027         (gate_expand_omp, lower_omp_1): Use seen_error.
27028         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
27029         (rest_of_decl_compilation, rest_of_type_compilation,
27030         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
27031         * tree-cfg.c (label_to_block_fn): Use seen_error.
27032         * tree-inline.c (optimize_inline_calls): Use seen_error.
27033         * tree-mudflap.c (mudflap_finish_file): Use
27034         seen_error.
27035         * tree-optimize.c (gate_all_optimizations,
27036         gate_all_early_local_passes, gate_all_early_optimizations): Use
27037         seen_error.
27038         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
27039         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
27040         (varpool_remove_unreferenced_decls,
27041         varpool_assemble_pending_decls): Use seen_error.
27042         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
27043         (TOPLEV_H, DIAGNOSTIC_H): Update.
27044         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
27045         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
27046         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
27047         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
27048         coverage.o, lambda-code.o): Update dependencies.
27049
27050 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
27051
27052         PR c++/44188
27053         * c-common.c (is_typedef_decl): Move this definition ...
27054         * tree.c (is_typedef_decl): ... here.
27055         (typdef_variant_p): Move definition here from cp/tree.c.
27056         * c-common.h (is_typedef_decl): Move this declaration ...
27057         * tree.h (is_typedef_decl): ... here.
27058         (typedef_variant_p): Move declaration here from cp/cp-tree.h
27059         * dwarf2out.c (is_naming_typedef_decl): New function.
27060         (gen_tagged_type_die): Split out of ...
27061         (gen_type_die_with_usage): ... this function. When an anonymous
27062         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
27063         is emitted for the typedef.
27064         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
27065         anonymous tagged types.
27066
27067 2010-05-27  Jason Merrill  <jason@redhat.com>
27068
27069         * print-tree.c (debug_vec_tree): New fn.
27070         (print_vec_tree): New fn.
27071         * tree.h: Declare them.
27072         * gdbinit.in (pvt): New command.
27073
27074         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
27075
27076         * gdbinit.in (pdd): New command.
27077
27078 2010-05-27  Jan Hubicka  <jh@suse.cz>
27079
27080         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
27081         (update_caller_keys): Return early if there are no callers;
27082         only update fibheap when decresing the key.
27083         (update_callee_keys): Avoid recursion.
27084         (decide_inlining_of_small_functions): When badness does not match;
27085         re-insert into fibheap.
27086
27087 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
27088
27089         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
27090         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
27091         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
27092         (ALL_HOST_OBJS): Now a union of the above two.
27093         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
27094         all files in ALL_HOST_FRONTEND_OBJS.
27095         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
27096
27097         * c-common.c: Pretend to be a backend file by undefining
27098         IN_GCC_FRONTEND (still need rtl.h here).
27099
27100 2010-05-27  Jan Hubicka  <jh@suse.cz>
27101
27102         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
27103         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
27104
27105 2010-05-27  Jan Hubicka  <jh@suse.cz>
27106
27107         * sched-ebb.c: Rename struct deps to struct deps_desc.
27108         * ddg.c: Likewise.
27109         * sel-sched-ir.c: Likewise.
27110         * sched-deps.c: Likewise.
27111         * sched-int.h: Likewise.
27112         * sched-rgn.c: Likewise.
27113
27114 2010-05-27  Jon Beniston  <jon@beniston.com>
27115
27116         PR 43726
27117         * config/lm32/lm32.h: Remove definition of
27118         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
27119
27120 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
27121
27122         PR lto/44230
27123         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
27124
27125 2010-05-27  Richard Guenther  <rguenther@suse.de>
27126
27127         PR tree-optimization/44284
27128         * tree-vect-stmts.c (vectorizable_assignment): Handle
27129         sign-changing conversions as simple copy.
27130
27131 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27132
27133         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
27134         Bionic C library.
27135         (__gthread_active_p): Check for pthread_create if compiling against
27136         Bionic C library.
27137
27138 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27139
27140         Support compilation for Android platform.  Reimplement -mandroid.
27141
27142         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
27143         (*android*): Set ANDROID_DEFAULT.
27144         (arm*-*-linux*): Include linux-android.h.
27145         (arm*-*-eabi*): Don't include previous -mandroid implementation.
27146         * config/arm/eabi.h: Remove, move Android-specific parts ...
27147         * config/linux-android.h: ... here.  New file.
27148         * config/arm/eabi.opt: Rename to ...
27149         * config/linux-android.opt: ... this.
27150         (mandroid): Allow -mno-android option.  Initialize based on
27151         ANDROID_DEFAULT.
27152         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
27153         Move logic to corresponding LINUX_TARGET_* macros.
27154         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
27155         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
27156         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
27157         Android definitions.
27158         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
27159         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
27160         Document.
27161
27162 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27163
27164         Add support for Bionic C library
27165
27166         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
27167         macro.
27168         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
27169         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
27170
27171         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
27172         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
27173         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
27174         to support multiple C libraries.  Handle Bionic.
27175         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
27176         (BIONIC_DYNAMIC_LINKER64): Define.
27177         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
27178         Update.
27179         (TARGET_HAS_SINCOS): Enable for Bionic.
27180
27181         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
27182         the last option specified on command line take effect.
27183         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
27184         (mbionic): New.
27185         (mglibc, muclibc): Update.
27186
27187         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
27188         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
27189         DEFAULT_LIBC.
27190
27191         * doc/invoke.texi (-mglibc, -muclibc): Update.
27192         (-mbionic): Document.
27193
27194 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27195
27196         * c-common.h (c_register_addr_space): Add prototype.
27197         (ADDR_SPACE_KEYWORD): Remove.
27198         * c-common.c (c_register_addr_space): New function.
27199         (c_addr_space_name): Reimplement.
27200         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
27201
27202         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
27203         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
27204
27205         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
27206         Remove TARGET_ADDR_SPACE_KEYWORDS.
27207
27208 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
27209
27210         * input.c: New file.
27211         * input.h (main_input_filename): Move declaration to toplev.h.
27212         * toplev.c (input_location, line_table): Move to input.c
27213         * toplev.h (main_input_filename): Move declaration from input.h.
27214         * tree.c (expand_location): Move to input.c.
27215         * Makefile.in (OBJS-common): Add input.o.
27216         (input.o): Add dependencies.
27217
27218 2010-05-27  Richard Guenther  <rguenther@suse.de>
27219
27220         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
27221         for non-existant files.
27222         (fork_execute): Mark args_name file as deleted.
27223
27224 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
27225
27226         PR bootstrp/44287
27227         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
27228         (narrow_signed_type): Likewise.
27229
27230 2010-05-26  Jan Hubicka  <jh@suse.cz>
27231
27232         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
27233         edge only when checking is enabled; check using former_clone_of;
27234         check inline clones too.
27235         (cgraph_materialize_clone): Record former_clone_of pointer.
27236         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
27237         combining redirections; dump args_to_skip bitmap
27238         (cgraph_materialize_all_clones): Do no redirection here.
27239         * ipa-inline.c (inline_transform): Do redirection here.
27240         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
27241         cheking only).
27242
27243 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27244
27245         * config/avr/avr-c.c: Do not include regs.h.
27246         Include cpplib.h for cpp_define and tree.h for c-common.h.
27247         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
27248         * config/avr/t-avr: Fix dependencies for avr-c.o.
27249
27250 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27251
27252         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
27253         string instead of SYMBOL_REF rtx.
27254         * rtl.h (set_stack_check_libfunc): Move prototype from here...
27255         * libfuncs.h: ...to here.  Adjust for explow.c change.
27256
27257 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27258
27259         * pretty-print.c: Don't include ggc.h.
27260         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
27261         (identifier_to_locale): Use them for allocation.
27262         * pretty-print.h (identifier_to_locale_alloc,
27263         identifier_to_locale_free): Declare.
27264         * toplev.c (alloc_for_identifier_to_locale): New.
27265         (general_init): Set identifier_to_locale_alloc and
27266         identifier_to_locale_free.
27267         * Makefile.in (pretty-print.o): Update dependencies.
27268
27269 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27270
27271         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
27272         pointer types if they have different alignment or mode.
27273
27274 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
27275
27276         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
27277         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27278         * config/sparc/sparc-protos.h (function_value): Remove declaration.
27279         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
27280         sparc_function_value_regno_p): New functions.
27281         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27282         TARGET_FUNCTION_VALUE_REGNO_P): Define.
27283         (function_value): Rename to...
27284         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
27285         argument to 'outgoing'.
27286         (function_arg_record_value, function_arg_union_value,
27287         function_arg_vector_value): Update comment.
27288
27289 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27290
27291         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
27292         (fde_needed_for_eh_p): New predicate.
27293         (output_call_frame_info): Use it throughout to decide whether FDEs
27294         are needed for EH purpose.
27295         (dwarf2out_begin_prologue): Reorder assignments.
27296
27297 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27298
27299         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
27300         special case loop->header.
27301         (is_predicated): New.
27302         (if_convertible_loop_p): Call it.
27303
27304 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27305
27306         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
27307         iterator in parameter.  Do not generate code during the analysis.
27308         (tree_if_convert_cond_stmt): Removed.
27309         (tree_if_convert_stmt): Removed.
27310         (predicate_bbs): New.
27311         (if_convertible_loop_p): Call predicate_bbs.
27312         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
27313         now contains all the analysis part.
27314
27315 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27316
27317         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
27318         statements in the analysis part.
27319         (tree_if_convert_stmt): Update comment.
27320         (remove_conditions_and_labels): New.
27321         (combine_blocks): Call remove_conditions_and_labels.
27322         (tree_if_conversion): Update comment.
27323
27324 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27325
27326         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
27327         than 2 predecessors or more than 2 successors.
27328
27329 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27330
27331         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
27332         of loops in which the data dependence analysis fails.
27333
27334 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27335
27336         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
27337         CDI_POST_DOMINATORS.
27338         (tree_if_conversion): Same.
27339
27340 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27341
27342         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
27343
27344 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27345
27346         * tree-if-conv.c: Update copyright years.  Fix comments.
27347         Fix indentation.
27348
27349 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
27350
27351         * builtin-types.def (BT_INT128): New primitive type.
27352         (BT_UINT128): Likewise.
27353         * c-common.c (c_common_r): Add __int128 keyword.
27354         (c_common_type_for_size): Handle __int128.
27355         (c_common_type_for_mode): Likewise.
27356         (c_common_signed_or_unsigned_type): Likewise.
27357         (c_common_nodes_and_builtins): Add builtin type
27358         if target supports 128-bit integer scalar.
27359         * c-common.h (enum rid): Add RID_INT128.
27360         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
27361         if target supports 128-bit integer scalar.
27362         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
27363         (finish_declspecs): Likewise.
27364         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
27365         (c_token_starts_declspecs): Likewise.
27366         (c_parser_declspecs): Likewise.
27367         (c_parser_attributes): Likewise.
27368         (c_parser_objc_selector): Likewise.
27369         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
27370         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
27371         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
27372         * tree.c (make_or_reuse_type): Likewise.
27373         (make_unsigned_type): Likewise.
27374         (build_common_tree_nodes_2): Likewise.
27375         * tree.h (enum integer_type_kind): Add itk_int128 and
27376         itk_unsigned_int128.
27377         (int128_integer_type_node): New define.
27378         (int128_unsigned_type_node): New define.
27379         * doc/extend.texi: Add documentation about __int128 type.
27380
27381 2010-05-26  Richard Guenther  <rguenther@suse.de>
27382
27383         * tree-ssa-sccvn.c (copy_nary): Adjust.
27384         (copy_phis): Rename to ...
27385         (copy_phi): ... this.  Adjust.
27386         (copy_references): Rename to ...
27387         (copy_reference): ... this.  Adjust.
27388         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
27389         result into the valid table.
27390
27391 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27392
27393         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
27394         insn-config.h, insn-codes.h, recog.h, and optabs.h.
27395
27396 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27397
27398         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
27399
27400 2010-05-26  Richard Guenther  <rguenther@suse.de>
27401
27402         * opts.c (common_handle_option): Handle OPT_Ofast.
27403
27404 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27405
27406         * diagnostic.c: Don't include opts.h.
27407         (permissive_error_option): Define.
27408         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
27409         for classify_diagnostic.  Don't use memset for
27410         classify_diagnostic.  Initialize new and recently added fields.
27411         (diagnostic_classify_diagnostic): Use context->n_opts instead of
27412         N_OPTS.
27413         (diagnostic_report_diagnostic): Pass context parameter to
27414         diagnostic_report_warnings_p.  Use option_enabled and option_name
27415         hooks from context.
27416         (emit_diagnostic): Use permissive_error_option.
27417         (permerror): Likewise.
27418         * diagnostic.h: Don't include options.h.
27419         (struct diagnostic_context): Add n_opts, opt_permissive,
27420         inhibit_warnings, warn_system_headers, option_enabled and
27421         option_name fields.  Change classify_diagnostic to a pointer.
27422         * opts-diagnostic.h: New file.
27423         * opts.c: Include opts-diagnostic.h.
27424         (common_handle_option): Set global_dc fields for -Wfatal-errors,
27425         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
27426         (option_name): New function.
27427         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
27428         (c_common_handle_option): Set global_dc->permissive for
27429         -fpermissive.
27430         * c-common.c (c_cpp_error): Save and restore
27431         global_dc->warn_system_headers, not variable warn_system_headers.
27432         * toplev.c: Include opts-diagnostic.h.
27433         (general_init): Update call to diagnostic_initialize.  Set
27434         global_dc->show_column, global_dc->option_enabled and
27435         global_dc->option_name.
27436         (process_options): Don't set global_dc fields here.
27437         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
27438         (diagnostic.o, opts.o, toplev.o): Update dependencies.
27439
27440 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
27441
27442         * config/picochip/picochip.md (movsi): Split a movsi from a
27443         const after reload.
27444
27445 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27446
27447         * ggc-zone.c: Update copyright year.
27448         (poison_region): Mark memory for Valgrind as undefined before
27449         memset () call and inaccessible afterwards.
27450         (ggc_pch_total_size): Change type of i to int.
27451
27452 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27453
27454         * ggc-common.c (ggc_free_overhead): Allow empty slot.
27455
27456 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27457
27458         * ggc-common.c: Update copyright year.
27459         (ggc_rlimit_bound): Remove prototype.  Compile only if
27460         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
27461         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
27462         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
27463         (ggc_min_heapsize_heuristic): Likewise.
27464
27465 2010-05-26  Richard Guenther  <rguenther@suse.de>
27466
27467         PR rtl-optimization/44164
27468         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
27469         no-common access-path disambiguation.
27470         (indirect_ref_may_alias_decl_p): Adjust.
27471         (indirect_refs_may_alias_p): Likewise.
27472         (refs_may_alias_p_1): Likewise.
27473
27474 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27475
27476         * c-typeck.c: Do not include expr.h.
27477
27478 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27479
27480         * rtl.h (decl_default_tls_model): Move prototype from here...
27481         * output.h: ...to here.
27482         * c-decl.c: Do not include rtl.h.
27483         * c-pragma.c: Likewise.
27484         * c-parser.c: Likewise.
27485         * c-gimplify.c: Likewise.  And also not hard-reg-set.
27486         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
27487         FIXME note for it.  Add a FIXME note for expr.h.
27488         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
27489         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
27490         defined.
27491
27492 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
27493
27494         PR target/44199
27495         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
27496         or total_size is larger than red zone size for non-V4 ABI, emit a
27497         stack_tie resp. frame_tie insn before stack pointer restore.
27498         * config/rs6000/rs6000.md (frame_tie): New insn.
27499
27500 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
27501
27502         * function.h (struct function): Add can_throw_non_call_exceptions bit.
27503         * lto-streamer-in.c (input_function): Stream it in.
27504         * lto-streamer-out.c (output_function): Stream it out.
27505         * function.c (allocate_struct_function): Set it.
27506         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
27507         for flag_non_call_exceptions.
27508         * cfgbuild.c (control_flow_insn_p): Likewise.
27509         (make_edges): Likewise.
27510         * cfgexpand.c (expand_stack_alignment): Likewise.
27511         * combine.c (distribute_notes): Likewise.
27512         * cse.c (cse_extended_basic_block): Likewise.
27513         * except.c (insn_could_throw_p): Likewise.
27514         * gcse.c (simple_mem): Likewise.
27515         * ipa-pure-const.c (check_call): Likewise.
27516         (check_stmt ): Likewise.
27517         * lower-subreg.c (lower-subreg.c): Likewise.
27518         * optabs.c (emit_libcall_block): Likewise.
27519         (prepare_cmp_insn): Likewise.
27520         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
27521         * postreload.c (rest_of_handle_postreload): Likewise.
27522         * reload1.c (reload_as_needed): Likewise.
27523         (emit_input_reload_insns): Likewise.
27524         (emit_output_reload_insns): Likewise.
27525         (fixup_abnormal_edges): Likewise.
27526         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
27527         * store-motion.c (find_moveable_store): Likewise.
27528         * tree-eh.c (stmt_could_throw_p): Likewise.
27529         (tree_could_throw_p): Likewise.
27530         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
27531         * config/arm/arm.c (arm_expand_prologue): Likewise.
27532         (thumb1_expand_prologue): Likewise.
27533         * config/rx/rx.md (cbranchsf4): Likewise.
27534         (cmpsf): Likewise.
27535         * config/s390/s390.c (s390_emit_prologue): Likewise.
27536         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
27537         (inline_forbidden_into_p): New predicate.
27538         (expand_call_inline): Use it to forbid inlining.
27539         (tree_can_inline_p): Likewise.
27540
27541 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27542
27543         * config/i386/i386-c.c: Do not include rtl.h.
27544         * config/i386/t-i386: Update dependencies.
27545
27546 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27547
27548         * attribs.c: Do not include rtl.h.
27549         * Makefile.in: Update dependencies.
27550
27551 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
27552
27553         * double-int.h (double_int_and): New.
27554         * combine.c (try_combine): Clean up, use double_int_* and
27555         immed_double_int_const functions.
27556
27557 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27558
27559         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
27560         stderr to /dev/null instead of grep -q.
27561         * configure: Regenerate.
27562
27563 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27564
27565         * Makefile.in (EXCEPT_H): Fix typo.
27566
27567 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
27568
27569         * ira-build.c (update_conflict_hard_reg_costs): New.
27570         (ira_build): Call update_conflict_hard_reg_costs.
27571
27572 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27573
27574         PR debug/41371
27575         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
27576         ENABLE_CHECKING.
27577         (intersect_loc_chains): Walk the s2var's loc_chain together
27578         with s1node chain as long as the locations are equal, don't
27579         call find_loc_in_1pdv in that case.
27580
27581         PR debug/42801
27582         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
27583         (copy_bind_expr): ... instead of here.
27584         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
27585         if the block hasn't been remapped.
27586         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
27587         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
27588
27589 2010-05-25  Richard Guenther  <rguenther@suse.de>
27590
27591         PR middle-end/44069
27592         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
27593         out-of-bounds array accesses.
27594
27595 2010-05-25  Richard Guenther  <rguenther@suse.de>
27596
27597         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
27598         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
27599         (run_gcc): Re-organize to make cleanup easier.
27600
27601 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27602
27603         * config/s390/s390.c (optimization_options): Fix and move the
27604         flag_prefetch_loop_arrays override ...
27605         (override_options): ... here.
27606
27607 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
27608
27609         * diagnostic.c: Don't include plugin.h.
27610         (diagnostic_report_diagnostic): Don't handle plugins specially
27611         here.  Pass context to internal_error callback.
27612         * diagnostic.h (struct diagnostic_context): Add context parameter
27613         to internal_error callback.
27614         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
27615         * plugin.h (struct diagnostic_context): Declare.
27616         (warn_if_plugins, plugins_internal_error_function): Declare.
27617         * toplev.c (general_init): Set global_dc->internal_error.
27618         * Makefile.in (diagnostic.o): Update dependencies.
27619
27620 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
27621
27622         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
27623         * config/rs6000/t-darwin64: New.
27624         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
27625         build crt2.
27626
27627 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
27628
27629         PR 44203
27630         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
27631         match the original (and intended) behaviour before r159557.  This
27632         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
27633         in two ways.
27634
27635 2010-05-25  Richard Guenther  <rguenther@suse.de>
27636
27637         * doc/invoke.texi: Document -Ofast.
27638         * target.h (struct gcc_target): Add handle_ofast.
27639         * target-def.h (TARGET_HANDLE_OFAST): Add.
27640         (TARGET_INITIALIZER): Adjust.
27641         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
27642         * common.opt (Ofast): Add.
27643
27644 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27645
27646         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
27647         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
27648
27649 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27650
27651         PR target/43610
27652         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
27653         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
27654         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
27655         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
27656
27657 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27658
27659         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
27660         DW_OP_minus with negated offset instead of DW_OP_plus.
27661         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
27662
27663 2010-05-25  Wei Guozhi  <carrot@google.com>
27664
27665         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
27666         tst instruction and a new alternative.
27667         * config/arm/constraints.md (Pu): New constraint.
27668
27669 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
27670
27671         * function.c (assign_stack_local_1): Initialize variable
27672         to avoid warning when bootstrapping at -O3.
27673
27674 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
27675
27676         * configure.ac (all_lang_makefiles): Remove everything related to it.
27677         * configure: Regenerate.
27678         * Makefile.in: Fix reference to ada Make-lang.in.
27679         Remove support for LANG_MAKEFILES.
27680
27681 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
27682             Sandra Loosemore  <sandra@codesourcery.com>
27683
27684         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
27685         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
27686         description.  Add arm_neon_fp16_ok.
27687         (Add Options): Add arm_neon and arm_neon_fp16.
27688
27689 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
27690
27691         * diagnostic.c: Don't include flags.h.
27692         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
27693         context parameters.  Check flags in the context passed as a parameter.
27694         (diagnostic_build_prefix): Add context parameter.  Check
27695         show_column flag in context.
27696         (diagnostic_action_after_output): Check fatal_errors flag in context.
27697         (diagnostic_report_current_module): Check show_column flag in context.
27698         (default_diagnostic_starter): Update call to
27699         diagnostic_build_prefix.
27700         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
27701         (emit_diagnostic): Pass context to permissive_error_kind.
27702         (permerror): Pass context to permissive_error_kind.
27703         * diagnostic.h (struct diagnostic_context): Add show_column,
27704         pedantic_errors, permissive and fatal_errors fields.
27705         (diagnostic_build_prefix): Update prototype.
27706         * langhooks.c
27707         * toplev.c (process_options): Set flags in global_dc from
27708         flag_show_column, flag_pedantic_errors, flag_permissive,
27709         flag_fatal_errors.
27710         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
27711         to diagnostic_build_prefix.
27712         * Makefile.in (diagnostic.o): Update dependencies.
27713
27714 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
27715
27716         * config/i386/ia32intrin.h (__crc32q): Define only if
27717         __SSE4_2__ is defined.
27718
27719 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
27720
27721         PR target/44132
27722         PR middle-end/43602
27723         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
27724         DECL_VISIBILITY_SPECIFIED.
27725         (emutls_decl): Set DECL_PRESERVE_P and copy
27726         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
27727         (emutls_finalize_control_var): New callback.
27728         (emutls_finish): Finalize emutls control variables.
27729         * toplev.c (compile_file): Move the call to emutls_finish ()
27730         before varpool_assemble_pending_decls ().
27731
27732 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
27733
27734         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
27735         added to the preprocessor condition.
27736
27737 2010-05-24  Paul Brook  <paul@codesourcery.com>
27738
27739         * gengtype-lex.l: Add HARD_REG_SET.
27740         * expr.c (expand_expr_real_1): Record writes to hard registers.
27741         * function.c (rtl_data): Add asm_clobbers.
27742         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
27743         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
27744         Use crtl->asm_clobbers.
27745
27746 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27747
27748         * doc/makefile.texi (Makefile): Mention stages 'profile'
27749         and 'feedback' for profiledbootstrap.
27750
27751 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
27752
27753         PR target/44245
27754         * config/i386/i386.c (def_builtin): Properly check
27755         OPTION_MASK_ISA_64BIT.
27756
27757 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
27758
27759         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
27760         typedefs with different but compatible types.  Allow duplicate
27761         typedefs with the same type except for pedantic non-C1X, but give
27762         warning for variably modified types.
27763         * c-typeck.c (tagged_types_tu_compatible_p,
27764         function_types_compatible_p, type_lists_compatible_p,
27765         comptypes_internal): Add parameter different_types_p; set
27766         *different_types_p for different but compatible types.  All
27767         callers changed.
27768         (comptypes_check_different_types): New.
27769         * c-tree.h (comptypes_check_different_types): Declare.
27770
27771 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27772
27773         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
27774         * jump.c: Include basic-block.h.
27775         * profile.c: Likewise.
27776         * tree-profile.c: Likewise.
27777         * coverage.c: Likewise.
27778         * basic-block.h (optimize_function_for_size_p): Move to function.h.
27779         (optimize_function_for_speed_p): Likewise.
27780         * function.h (optimize_function_for_size_p,
27781         optimize_function_for_speed_p): Moved here from basic-block.h.
27782         * Makefile.in: Update dependencies.
27783
27784 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27785
27786         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
27787         before calling make; allow override through $MAKE.
27788         * doc/invoke.texi (Optimize Options): Document override.
27789
27790 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
27791
27792         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
27793         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27794         (rs6000_mode_dependent_address_ptr): Make static.
27795         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27796         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
27797         Remove.
27798
27799 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
27800
27801         PR target/43869
27802         * config/i386/i386.c: Make sure that the correct regparm is passed.
27803
27804 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27805
27806         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
27807         * sbitmap.c: ...to here to internalize sbitmap element access.
27808         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
27809         Explain why basic-block.h is included.
27810         * function.h: Include tm.h for CUMULATIVE_ARGS.
27811         * Makefile.in: Update dependencies.
27812
27813 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27814
27815         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
27816         New core types.
27817         * sbitmap.h (struct sbitmap_def): Do not typedef here.
27818         * sbitmap.c: Include sbitmap.h.
27819         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
27820         hard-reg-set.h.  Split everything related to regsets out from here...
27821         * regset.h: ...to here.  New file.
27822         * df.h: Include regset.h and sbitmap.h.
27823         * tree-flow.h: Likewise.
27824         * cfgloop.h: Likewise.
27825         * except.h: Do not include sbitmap.h.  Include hashtab.h.
27826         * cgraph.h: Include vec.h and function.h.
27827         * reload.h (struct insn_chain): Change types of live_throughout
27828         and dead_or_set from regset_head to bitmap_head.
27829         (compute_use_by_pseudos): Be defined also if regset.h is not included.
27830         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
27831         spilled_regs from regset_head to bitmap_head to avoid dependency
27832         in regset.h.
27833         * sel-sched-ir.h: Include regset.h.
27834         * reload.c: Include df.h before reload.h.
27835         * caller-save.c: Likewise.
27836         * reload1.c: Likewise.
27837         * ira.c: Likewise.
27838         (mark_elimination): Update type of r to bitmap, consistent with
27839         DF_LR_IN.
27840         * dominance.c: Include bitmap.h.
27841         * modulo-sched.c: Include df.h.
27842         * cfganal.c: Include bitmap.h and sbitmap.h.
27843         * cfgbuild.c: Include sbitmap.h.
27844         * lcm.c: Include sbitmap.h.
27845         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
27846         * domwalk.c: Include sbitmap.h, exclude ggc.h.
27847         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
27848         * cselib.c: Include bitmap.h.
27849         * tree-optimize.c: Include regset.h.
27850         * stmt.c: Include bitmap.h.
27851         * Makefile.in: Update dependencies.
27852
27853 2010-05-22  Jan Hubicka  <jh@suse.cz>
27854
27855         * cgraph.h (struct varpool_node): Add same_comdat_group.
27856         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
27857         pointer.
27858         (output_varpool): Update call of lto_output_varpool_node.
27859         (input_varpool): Read same_comdat_group pointer.
27860         (input_varpool_1): Fixup same_comdat_group pointer.
27861         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
27862         group is needed, all are.
27863         * varpool.c (varpool_remove_node): Remove node from same comdat group
27864         linklist too.
27865         (varpool_analyze_pending_decls): Walk same comdat groups.
27866
27867 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27868
27869         * rtl.h (union rtunion_def): Remove rt_bit member.
27870         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
27871         * print-rtl (print_rtx): Do not print the member.
27872         * gengtype.c (adjust_field_rtx_def): Do not handle it.
27873         * gengenrtl.c (type_from_format): Likewise.
27874         (accessor_from_format): Likewise.
27875
27876 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
27877
27878         * dbgcnt.c: Include toplev.h instead of errors.h.
27879         * ira-emit.c: Don't include errors.h.
27880         * ira.c: Include toplev.h instead of errors.h.
27881         * lto-compress.c: Include toplev.h instead of errors.h.
27882         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
27883         ira.o, dbgcnt.o): Update dependencies.
27884
27885 2010-05-22  Richard Guenther  <rguenther@suse.de>
27886
27887         * gimple.c (gimple_types_compatible_p): Check type qualifications
27888         before merging pointer to complete and pointer to incomplete type.
27889         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
27890         we use our own resolution algorithm.  The gold linker plugin
27891         doesn't do the job we want it to do here.
27892
27893 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
27894
27895         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27896         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27897         (sparc_mode_dependent_address_p): New function.
27898
27899 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27900
27901         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
27902
27903         * timevar.c: Do not include any core headers.
27904         (timevar_print): De-i18n-ize.
27905         (print_time): Likewise.
27906         * timevar.h (timevar_push, timevar_pop): Make inline functions.
27907
27908 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
27909
27910         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
27911         langhooks-def.h.
27912         (diagnostic_initialize): Initialize x_data not last_function.
27913         (diagnostic_report_current_function): Move to tree-diagnostic.c.
27914         (default_diagnostic_starter): Call
27915         diagnostic_report_current_module not
27916         diagnostic_report_current_function.
27917         (diagnostic_report_diagnostic): Initialize x_data not
27918         abstract_origin.
27919         (verbatim): Likewise.
27920         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
27921         x_data.
27922         (struct diagnostic_context): Change last_function to x_data.
27923         (diagnostic_auxiliary_data): Replace with
27924         diagnostic_context_auxiliary_data and
27925         diagnostic_info_auxiliary_data.
27926         (diagnostic_last_function_changed, diagnostic_set_last_function,
27927         diagnostic_report_current_function): Move to tree-diagnostic.h.
27928         (print_declaration, dump_generic_node, print_generic_stmt,
27929         print_generic_stmt_indented, print_generic_expr,
27930         print_generic_decl, debug_c_tree, dump_omp_clauses,
27931         print_call_name, debug_generic_expr, debug_generic_stmt,
27932         debug_tree_chain, default_tree_printer): Move to
27933         tree-pretty-print.h.
27934         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
27935         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
27936         gimple-pretty-print.h.
27937         * pretty-print.c: Don't include tree.h
27938         (pp_base_format): Don't handle %K here.
27939         (pp_base_tree_identifier): Move to tree-pretty-print.c.
27940         * pretty-print.h (text_info): Change abstract_origin to x_data.
27941         (pp_tree_identifier, pp_unsupported_tree,
27942         pp_base_tree_identifier): Move to tree-pretty-print.h.
27943         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
27944         tree-pretty-print.h: New files.
27945         * tree-pretty-print.c: Include tree-pretty-print.h.
27946         (percent_K_format): New.  Moved from pretty-print.c.
27947         (pp_base_tree_identifier): Move from pretty-print.c.
27948         * c-objc-common.c: Include tree-pretty-print.h.
27949         (c_tree_printer): Handle %K here.
27950         * langhooks.c: Include tree-diagnostic.h.
27951         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
27952         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
27953         (default_tree_printer): Handle %K using percent_K_format.
27954         (general_init): Use default_tree_diagnostic_starter.
27955         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
27956         (free_lang_data): Use default_tree_diagnostic_starter.
27957         * c-pretty-print.c: Include tree-pretty-print.h.
27958         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27959         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27960         * dwarf2out.c: Include tree-pretty-print.h.
27961         * except.c: Include tree-pretty-print.h.
27962         * gimple-pretty-print.c: Include tree-pretty-print.h and
27963         gimple-pretty-print.h.
27964         * gimplify.c: Include tree-pretty-print.h.
27965         * graphite-poly.c: Include tree-pretty-print.h and
27966         gimple-pretty-print.h.
27967         * ipa-cp.c: Include tree-pretty-print.h.
27968         * ipa-inline.c: Include gimple-pretty-print.h.
27969         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27970         * ipa-pure-const.c: Include gimple-pretty-print.h.
27971         * ipa-struct-reorg.c: Include tree-pretty-print.h and
27972         gimple-pretty-print.h.
27973         * ipa-type-escape.c: Include tree-pretty-print.h.
27974         * print-rtl.c: Include tree-pretty-print.h.
27975         * print-tree.c: Include gimple-pretty-print.h.
27976         * sese.c: Include tree-pretty-print.h.
27977         * tree-affine.c: Include tree-pretty-print.h.
27978         * tree-browser.c: Include tree-pretty-print.h.
27979         * tree-call-cdce.c: Include gimple-pretty-print.h.
27980         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27981         * tree-chrec.c: Include tree-pretty-print.h.
27982         * tree-data-ref.c: Include tree-pretty-print.h and
27983         gimple-pretty-print.h.
27984         * tree-dfa.c: Include tree-pretty-print.h.
27985         * tree-if-conv.c: Include tree-pretty-print.h and
27986         gimple-pretty-print.h.
27987         * tree-inline.c: Include tree-pretty-print.h.
27988         * tree-into-ssa.c: Include tree-pretty-print.h and
27989         gimple-pretty-print.h.
27990         * tree-nrv.c: Include tree-pretty-print.h.
27991         * tree-object-size.c: Include tree-pretty-print.h and
27992         gimple-pretty-print.h.
27993         * tree-outof-ssa.c: Include tree-pretty-print.h and
27994         gimple-pretty-print.h.
27995         * tree-parloops.c: Include tree-pretty-print.h and
27996         gimple-pretty-print.h.
27997         * tree-predcom.c: Include tree-pretty-print.h and
27998         gimple-pretty-print.h.
27999         * tree-scalar-evolution.c: Include tree-pretty-print.h and
28000         gimple-pretty-print.h.
28001         * tree-sra.c: Include tree-pretty-print.h.
28002         * tree-ssa-address.c: Include tree-pretty-print.h.
28003         * tree-ssa-alias.c: Include tree-pretty-print.h.
28004         * tree-ssa-ccp.c: Include tree-pretty-print.h and
28005         gimple-pretty-print.h.
28006         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
28007         * tree-ssa-copy.c: Include tree-pretty-print.h and
28008         gimple-pretty-print.h.
28009         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
28010         * tree-ssa-dce.c: Include tree-pretty-print.h and
28011         gimple-pretty-print.h.
28012         * tree-ssa-dom.c: Include tree-pretty-print.h and
28013         gimple-pretty-print.h.
28014         * tree-ssa-dse.c: Include gimple-pretty-print.h.
28015         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
28016         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
28017         * tree-ssa-live.c: Include tree-pretty-print.h and
28018         gimple-pretty-print.h.
28019         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
28020         gimple-pretty-print.h.
28021         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
28022         gimple-pretty-print.h.
28023         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
28024         gimple-pretty-print.h.
28025         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
28026         gimple-pretty-print.h.
28027         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
28028         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
28029         * tree-ssa-operands.c: Include tree-pretty-print.h and
28030         gimple-pretty-print.h.
28031         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
28032         gimple-pretty-print.h.
28033         * tree-ssa-pre.c: Include tree-pretty-print.h and
28034         gimple-pretty-print.h.
28035         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
28036         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
28037         gimple-pretty-print.h.
28038         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
28039         gimple-pretty-print.h.
28040         * tree-ssa-sink.c: Include gimple-pretty-print.h.
28041         * tree-ssa-ter.c: Include tree-pretty-print.h and
28042         gimple-pretty-print.h.
28043         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
28044         * tree-ssa.c: Include tree-pretty-print.h and
28045         gimple-pretty-print.h.
28046         * tree-stdarg.c: Include gimple-pretty-print.h.
28047         * tree-switch-conversion.c: Include gimple-pretty-print.h.
28048         * tree-tailcall.c: Include tree-pretty-print.h and
28049         gimple-pretty-print.h.
28050         * tree-vect-data-refs.c: Include tree-pretty-print.h and
28051         gimple-pretty-print.h.
28052         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
28053         gimple-pretty-print.h.
28054         * tree-vect-loop.c: Include tree-pretty-print.h and
28055         gimple-pretty-print.h.
28056         * tree-vect-patterns.c: Include gimple-pretty-print.h.
28057         * tree-vect-slp.c: Include tree-pretty-print.h and
28058         gimple-pretty-print.h.
28059         * tree-vect-stmts.c: Include tree-pretty-print.h and
28060         gimple-pretty-print.h.
28061         * tree-vectorizer.c: Include tree-pretty-print.h.
28062         * tree-vrp.c: Include tree-pretty-print.h and
28063         gimple-pretty-print.h.
28064         * value-prof.c: Include tree-pretty-print.h and
28065         gimple-pretty-print.h.
28066         * var-tracking.c: Include tree-pretty-print.h.
28067         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
28068         (tree-diagnostic.o): New dependencies.
28069         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
28070         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
28071         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
28072         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
28073         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
28074         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
28075         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
28076         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
28077         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
28078         tree-ssa-address.o, tree-ssa-loop-niter.o,
28079         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
28080         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
28081         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
28082         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
28083         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
28084         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
28085         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
28086         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
28087         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
28088         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
28089         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
28090         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
28091         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
28092         tree-switch-conversion.o, var-tracking.o, value-prof.o,
28093         cfgexpand.o, pretty-print.o): Update dependencies.
28094
28095 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
28096
28097         * tree-ssa-structalias.c: Remove tm_p.h from include.
28098
28099 2010-05-21  Jeff Law  <law@redhat.com>
28100
28101         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
28102
28103 2010-05-21  Jason Merrill  <jason@redhat.com>
28104
28105         * tree-eh.c (cleanup_is_dead_in): New.
28106         (lower_try_finally): Don't generate a dead cleanup region.
28107         (lower_cleanup): Likewise.
28108
28109 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28110
28111         PR debug/44223
28112         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
28113         unchain each use from the cyclic next_regno_use chain first.
28114
28115 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28116
28117         * real: Do not include gmp.h, mpfr.h, and mpc.h.
28118         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
28119         (real_value_negate, real_value_abs): New prototypes.
28120         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
28121         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
28122         new include file for interface between MPFR and REAL_VALUE_TYPE.
28123         * real.c: Include realmpfr.h.
28124         (real_arithmetic2): Remove legacy function.
28125         (real_value_negate): New.
28126         (real_value_abs): New.
28127         (mfpr_from_real, real_from_mpfr): Move from here...
28128         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
28129         * builtins.c: Include realmpfr.h.
28130         * fold-const.c: Include realmpfr.h.
28131         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
28132         (fold_negate_const): Likewise.
28133         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
28134         * toplev.c: Include realmpfr.h.
28135         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
28136         and real_value_negate.
28137         * fixed-value.c (check_real_for_fixed_mode): Likewise.
28138         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
28139         (vfp3_const_double_index): Likewise.
28140         (arm_print_operand): Likewise.
28141         * Makefile.in: Update dependencies.
28142
28143 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28144
28145         * config/s390/s390.c (override_options): Increase the default
28146         of max-completely-peel-times.
28147
28148 2010-05-21  Julian Brown  <julian@codesourcery.com>
28149             Mark Mitchell  <mark@codesourcery.com>
28150
28151         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
28152         sibling calls for Thumb-1.
28153         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
28154         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
28155         Thumb-2.
28156         (*call_insn, *call_value_insn): Don't use for Thumb-2.
28157         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
28158         for Thumb-2.
28159         (return): New expander.
28160         (*arm_return): New name for ARM return insn.
28161         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
28162
28163 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
28164
28165         * config.gcc (sparc64-*-rtems*): New target.
28166
28167 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28168
28169         * tree.c (build_function_decl_skip_args): Fix grammar.
28170         (build_function_type_list_1): Fix typos, adjust formatting.
28171
28172 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28173
28174         * tree.h: Include real.h and fixed-value.h as basic datatypes.
28175         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
28176         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
28177         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
28178         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
28179         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
28180         tree-pretty-print.c, tree-loop-distribution.c,
28181         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
28182         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
28183         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
28184         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
28185         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
28186         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
28187         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
28188         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
28189         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
28190         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
28191         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
28192         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
28193         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
28194         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
28195         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
28196         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
28197         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
28198         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
28199         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
28200         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
28201         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
28202         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
28203         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
28204         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
28205         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
28206         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
28207         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
28208         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
28209         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
28210         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
28211         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
28212         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
28213         config/score/score7.c, config/score/score.c, config/arm/arm.c,
28214         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
28215         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
28216         config/bfin/bfin.c: Clean up redundant includes.
28217         * Makefile.in: Update accordingly.
28218
28219 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28220
28221         PR middle-end/44204
28222         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
28223         statement has no arguments.
28224
28225 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
28226
28227         PR/44139
28228         * varasm.c (emutls_decl): Merge attributes to new decl.
28229
28230 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
28231
28232         PR middle-end/44101
28233         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
28234         around the uniquized constructor if its type requires a conversion.
28235
28236 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28237
28238         PR debug/44205
28239         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
28240         at -O0 goto_locus of any of the incoming edges differs from
28241         goto_locus of outgoing edge, or gimple_location of any of the
28242         labels differs.
28243
28244 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
28245
28246         * ira.c (ira_non_ordered_class_hard_regs): Define.
28247         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
28248         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
28249         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
28250         cost of unaligned hard regs when allocating multi-reg pseudos.
28251
28252 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
28253
28254         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
28255         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
28256         for TARGET_NO_FLOAT.
28257         * config/mips/mips.c (mips_file_start): Expand conditional expression
28258         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
28259         (mips_override_options): Move -mno-float override -msoft-float and
28260         -mhard-float.
28261         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
28262         Condition(TARGET_SUPPORTS_NO_FLOAT).
28263         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
28264         __mips_no_float here.
28265         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
28266         (TARGET_SUPPORTS_NO_FLOAT): Define.
28267         * config/mips/sdemtk.opt: Delete.
28268
28269 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
28270
28271         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
28272
28273 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
28274
28275         PR target/43733
28276         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
28277         * configure: Regenerate.
28278         * config.in: Regenerate.
28279         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
28280         instead of sahf only for 64bit targets.
28281
28282 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28283
28284         PR debug/44178
28285         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
28286         setup_ref_regs for DEBUG_INSNs.
28287
28288 2010-05-20  Jan Hubicka  <jh@suse.cz>
28289
28290         PR middle-end/44197
28291         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
28292
28293 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
28294
28295         PR bootstrap/43870
28296         * df-scan.c (df_ref_compare): Stabilize sort.
28297
28298 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28299
28300         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
28301         argument.  Don't use DW_OP_piece if offset is non-zero,
28302         put offset into second DW_OP_bit_piece argument.
28303         (dw_sra_loc_expr): Adjust callers.  For memory expressions
28304         compute offset.
28305
28306 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
28307
28308         PR target/44202
28309         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
28310         settings for 16-bit-constant "addo" alternative.
28311
28312 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
28313
28314         * config/mips/mips-dsp.md (add<DSPV:mode>3,
28315         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
28316
28317         PR target/43764
28318         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
28319         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
28320         Use it.
28321
28322 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
28323
28324         * diagnostic.c (FLOAT, FFS): Don't undefine.
28325         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
28326         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
28327         include ordering.
28328
28329 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
28330
28331         * combine.c (propagate_for_debug): Call make_compound_operation
28332         on the source value.
28333         (try_combine): When implementing a split chosen by find_split_point,
28334         either copy i2src or set it to null.  Assert that i2src is not null
28335         before substituting into CALL_INSN_FUNCTION_USAGE.
28336
28337 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
28338
28339         * double-int.h (double_int_ior): New function.
28340         * tree.h (build_int_cst_wide_type): Remove.
28341         * tree.c (build_int_cst_wide_type): Remove.
28342         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
28343         of build_int_cst_wide_type.
28344         * stor-layout.c (set_sizetype): (Ditto.).
28345         * dojump.c (do_jump): Use build_int_cstu instead of
28346         build_int_cst_wide_type.
28347
28348 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
28349
28350         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
28351         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
28352         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
28353         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
28354         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
28355         propagate the 'data' argument to copy_tree_r.
28356         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
28357         Propagate 'data' argument to walk_tree.
28358         (copy_if_shared): New function.
28359         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
28360         (unmark_visited): New function.
28361         (unshare_body): Call copy_if_shared instead of doing it manually.
28362         (unvisit_body): Call unmark_visited instead of doing it manually.
28363
28364 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
28365
28366         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
28367         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
28368         * hooks.c: Likewise.
28369         * target-def.h (TARGET_FOLD_BUILTIN): Define to
28370         hook_tree_tree_int_treep_bool_null.
28371         * target.h (struct gcc_target): Update signature of fold_builtin
28372         field.
28373         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
28374         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
28375         instead of the call expression.
28376         (fold_builtin_call_array): Pass n and argarray directly.
28377         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
28378         consing a list.
28379         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
28380         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
28381         `i' and use it in place of `arity'.
28382         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
28383         Dereference `args' directly.
28384         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
28385
28386 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28387
28388         * doc/sourcebuild.texi (Effective-Target Keywords): Document
28389         3dnow, sse3, sse2.
28390         (Directives): Document optional dg-require-effective-target
28391         selector.
28392
28393 2010-05-19  Richard Guenther  <rguenther@suse.de>
28394
28395         PR lto/44196
28396         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
28397
28398 2010-05-19  Richard Guenther  <rguenther@suse.de>
28399
28400         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
28401         * common.opt (fwhopr=): New.
28402         * opts.c (common_handle_option): Handle OPT_fwhopr.
28403         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
28404         * collect2.c (main): Match -fwhopr*.
28405         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
28406         Execute ltrans stage in parallel when jobs is bigger than 1.
28407
28408 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28409
28410         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
28411         pentiumpro on Solaris 8/x86 with Sun as.
28412         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
28413         hidden alias bug.
28414         (gcc_cv_as_ix86_quad): Check for .quad directive.
28415         * configure: Regenerate.
28416         * config.in: Regenerate.
28417         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
28418
28419 2010-05-19  Martin Jambor  <mjambor@suse.cz>
28420
28421         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
28422         also for indirect edges.  Actual printing moved...
28423         (ipa_print_node_jump_functions_for_edge): ...here.
28424         (ipa_compute_jump_functions): Renamed to
28425         ipa_compute_jump_functions_for_edge and made static.
28426         (ipa_compute_jump_functions): New function.
28427         (make_edge_direct_to_target): Check if the number of arguments on
28428         the newly direct edge is the same as the number of parametrs of
28429         the callee.
28430         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
28431         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
28432         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
28433         analysis functions unconditionally, call the new
28434         ipa_analyze_params_uses on the node instead of every edge.
28435
28436 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
28437
28438         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
28439         to tree.
28440         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
28441         also checks for a constant int vs.  non-constant but
28442         loop-invariant steps.
28443         (find_or_create_group): Change the sort algorithm to only consider
28444         steps that are constant ints.
28445         (idx_analyze_ref): Adopt code to handle a tree instead of a
28446         HOST_WIDE_INT for step.
28447         (gather_memory_references_ref): Handle tree instead of int and be
28448         prepared to see a NULL_TREE.
28449         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
28450         prefetches if the step cannot be calculated at compile time.
28451         (issue_prefetch_ref): Issue prefetches for non-constant but
28452         loop-invariant steps.
28453
28454 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28455
28456         Revert:
28457         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28458
28459         * tree.h (build_call_list): Remove.
28460         * tree.c (build_call_list): Remove.
28461
28462 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28463
28464         * tree.h (build_call_list): Remove.
28465         * tree.c (build_call_list): Remove.
28466
28467 2010-05-18  Jan Hubicka  <jh@suse.cz>
28468
28469         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
28470
28471 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
28472
28473         PR rtl-optimization/43332
28474         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
28475
28476 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
28477
28478         * tree.h (build_int_cstu): Implement as static inline.
28479         * tree.c (build_int_cstu): Remove function.
28480         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
28481         sign extended.
28482
28483 2010-05-18  Richard Guenther  <rguenther@suse.de>
28484
28485         PR lto/44143
28486         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
28487         (debug): Initialize from -save-temps.
28488         (collect_execute): Print command-line when verbose.
28489         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
28490         for ltrans invocation.  Produce -dumpbase flag again.
28491         (process_args): Remove.
28492         (main): Simplify.
28493         * collect2.c (maybe_run_lto_and_relink): Only pass object
28494         files to lto-wrapper.
28495         * gcc.c (LINK_COMMAND_SPEC): Likewise.
28496
28497 2010-05-18  Jan Hubicka  <jh@suse.cz>
28498
28499         * opts.c (decode_options): Do not disable whopr at ipa_cp.
28500         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
28501
28502 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28503
28504         PR lto/44184
28505         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
28506         in a GIMPLE_ASM.
28507         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
28508         in a GIMPLE_ASM.
28509
28510 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
28511
28512         PR debug/41371
28513         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
28514         rtx_equal_p inline.
28515
28516 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28517
28518         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
28519         lto-macho as lto_binary_reader.
28520
28521         * darwin.c (darwin_asm_named_section): Do not add assembler comment
28522         after .section directive; just print it before the directive instead.
28523
28524 2010-05-17  Jan Hubicka  <jh@suse.cz>
28525
28526         * cgraph.c (cgraph_create_virtual_clone): Only check
28527         versionable_function_p when not in wpa and checking is enabled.
28528         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
28529         there are no more functions to materialize.
28530
28531 2010-05-17  Jan Hubicka  <jh@suse.cz>
28532
28533         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
28534         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
28535         New functions.
28536         (output_cgraph): Call output_cgraph_opt_summary.
28537         (input_cgrpah): Call input_cgraph_opt_summary.
28538         (output_cgraph_opt_summary_p, output_node_opt_summary,
28539         input_node_opt_summary, input_cgraph_opt_section): New functions.
28540         * lto-section-in.c (lto_section_name): Add cgraphopt.
28541         * tree-inline.c (tree_function_versioning): Handle parm_num.
28542         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
28543         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
28544
28545 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28546
28547         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
28548         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
28549         the insn to prefetch ratio heuristic to loops with known trip count.
28550
28551 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28552
28553         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
28554         (schedule_prefetches): Do not generate a prefetch if the unroll factor
28555         is far from what is required by the prefetch.
28556
28557 2010-05-17  Jan Hubicka  <jh@suse.cz>
28558
28559         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
28560         (ipcp_estimate_growth): Likewise.
28561         (ipcp_const_param_count): Likewise.
28562         (ipcp_insert_stage): Likewise.
28563         * ipa-prop.c (visit_load_for_mod_analysis): New function.
28564         (visit_store_addr_for_mod_analysis): Set used flag.
28565         (ipa_detect_param_modifications): Set used flag for SSE params;
28566         update use of walk_stmt_load_store_addr_ops.
28567         (ipa_print_node_params): Print used flag.
28568         (ipa_write_node_info): Stream used flag.
28569         (ipa_read_node_info): Likewise.
28570         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
28571         (ipa_is_param_used): New function.
28572         (lto_ipa_fixup_call_notes): Remove unused declaration.
28573
28574 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28575
28576         PR target/44074
28577         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
28578         * configure: Regenerate.
28579         * config.in: Regenerate.
28580         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
28581         !HAVE_AS_IX86_REP_LOCK_PREFIX.
28582         Don't emit whitespace.
28583         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
28584         (*rep_movsi): Likewise.
28585         (*rep_movsi_rex64): Likewise.
28586         (*rep_movqi): Likewise.
28587         (*rep_movqi_rex64): Likewise.
28588         (*rep_stosdi_rex64): Likewise.
28589         (*rep_stossi): Likewise.
28590         (*rep_stossi_rex64): Likewise.
28591         (*rep_stosqi): Likewise.
28592         (*rep_stosqi_rex64): Likewise.
28593         (*cmpstrnqi_nz_1): Use {%;} after repz.
28594         (*cmpstrnqi_nz_rex_1): Likewise.
28595         (*cmpstrnqi_1): Likewise.
28596         (*cmpstrnqi_rex_1): Likewise.
28597         (*strlenqi_1): Use {%;} after repnz.
28598         (*strlenqi_rex_1): Likewise.
28599         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
28600         (*sync_compare_and_swap<mode>): Likewise.
28601         (sync_double_compare_and_swap<mode>): Likewise.
28602         (*sync_double_compare_and_swapdi_pic): Likewise.
28603         (sync_old_add<mode>): Likewise.
28604         (sync_add<mode>): Likewise.
28605         (sync_sub<mode>): Likewise.
28606         (sync_<code><mode>): Likewise.
28607
28608 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28609
28610         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
28611         otr_token and polymorphic.
28612         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
28613         (cgraph_clone_edge): Copy the above fields.
28614         * tree.c (get_binfo_at_offset): New function.
28615         * tree.h (get_binfo_at_offset): Declare.
28616         * ipa-prop.h (enum jump_func_type): Added known_type jump function
28617         type, reordered items, updated comments.
28618         (union jump_func_value): Added base_type field, reordered fields.
28619         (enum ipa_lattice_type): Moved down in the file.
28620         (struct ipa_param_descriptor): New field polymorphic.
28621         (ipa_is_param_polymorphic): New function.
28622         * ipa-prop.c: Include gimple.h and gimple-fold.h.
28623         (ipa_print_node_jump_functions): Print known type jump functions.
28624         (compute_complex_pass_through): Renamed to...
28625         (compute_complex_assign_jump_func): this.
28626         (compute_complex_ancestor_jump_func): New function.
28627         (compute_known_type_jump_func): Likewise.
28628         (compute_scalar_jump_functions): Create known type and complex ancestor
28629         jump functions.
28630         (ipa_note_param_call): New parameter polymorphic, set the corresponding
28631         flag in the call note accordingly.
28632         (ipa_analyze_call_uses): Renamed to...
28633         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
28634         variable var only in the block where it is used.
28635         (ipa_analyze_virtual_call_uses): New function.
28636         (ipa_analyze_call_uses): Likewise.
28637         (combine_known_type_and_ancestor_jfs): Likewise.
28638         (update_jump_functions_after_inlining): Implemented handling of a
28639         number of new jump function types combination.
28640         (print_edge_addition_message): Removed.
28641         (make_edge_direct_to_target): New function.
28642         (try_make_edge_direct_simple_call): Likewise.
28643         (try_make_edge_direct_virtual_call): Likewise.
28644         (update_call_notes_after_inlining): Renamed to...
28645         (update_indirect_edges_after_inlining): this.  Moved edge creation for
28646         indirect calls to try_make_edge_direct_simple_call, also calls
28647         try_make_edge_direct_virtual_call for virtual calls.
28648         (ipa_print_node_params): Changed the header message.
28649         (ipa_write_jump_function): Stream also known type jump functions.
28650         (ipa_read_jump_function): Likewise.
28651         (ipa_write_indirect_edge_info): Stream new fields in
28652         cgraph_indirect_call_info.
28653         (ipa_read_indirect_edge_info): Likewise.
28654         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
28655         GIMPLE_FOLD_H.
28656
28657 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28658
28659         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
28660
28661 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28662
28663         * tree.h (CALL_EXPR_ARGS): Delete.
28664         (call_expr_arglist): Delete.
28665         * tree.c (call_expr_arglist): Delete.
28666         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
28667         targetm.fold_builtin.
28668         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
28669         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
28670         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
28671         arglist parameter.  Use CALL_EXPR_ARG.
28672         (picochip_expand_builtin_3op): Likewise.
28673         (picochip_expand_builtin_2opvoid): Likewise.
28674         (picochip_expand_array_get): Likewise.
28675         (picochip_expand_array_put): Likewise.
28676         (picochip_expand_array_testport): Likewise.
28677         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
28678         rather than arglist.
28679         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
28680         CALL_EXPR_ARGS.
28681         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
28682         than TREE_VALUE and TREE_CHAIN.
28683         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
28684         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
28685         the arglist.
28686
28687 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28688
28689         PR bootstrap/42347
28690         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
28691         to have no fallthru edge.
28692
28693         PR middle-end/44102
28694         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
28695         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
28696         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
28697         add BARRIER after previous bb if needed.
28698
28699 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28700
28701         * tree.c (build_function_type_list_1): Remove bogus assert condition.
28702
28703 2010-05-17  Alan Modra  <amodra@gmail.com>
28704
28705         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
28706         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
28707         with copy_reg rtx param.
28708         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
28709         Correct cases where code for ABI_V4 did not initialise the reg
28710         used to access frame.  Also leave frame_reg_rtx as sp for large
28711         frames that save no regs.
28712
28713 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28714
28715         PR middle-end/44133
28716         * tree-sra.c (create_access_replacement): New parameter rename, mark
28717         the replaement for renaming only when it is true.
28718         (get_access_replacement): Pass true in the rename parameter of
28719         create_access_replacement.
28720         (get_unrenamed_access_replacement): New function.
28721         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
28722         replacement declaration from it.
28723
28724 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
28725
28726         * function.c (try_fit_stack_local, add_frame_space): New static
28727         functions.
28728         (assign_stack_local_1): Use them.  Look for opportunities to use
28729         space previously wasted on alignment.
28730         * function.h (struct frame_space): New.
28731         (struct rtl_data): Add FRAME_SPACE_LIST member.
28732         * reload1.c (something_was_spilled): New static variable.
28733         (alter_reg): Set it.
28734         (reload): Test it in addition to testing if the frame size changed.
28735
28736 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
28737
28738         * config/s390/s390.c: Define sane prefetch settings and activate
28739         flag_prefetch_loop_arrays on -O3.
28740         * config/s390/s390.h: Declare that read can use write prefetch.
28741
28742 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28743
28744         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
28745         build.
28746
28747 2010-05-16  Jan Hubicka  <jh@suse.cz>
28748
28749         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
28750         function body; do not check stdarg field of struct function.
28751
28752 2010-05-16  Jan Hubicka  <jh@suse.cz>
28753
28754         * cgraph.c (dump_cgraph_node): Dump versionable flag.
28755         * cgraph.h (cgraph_local_info): Add versionable flag.
28756         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
28757         (ipcp_versionable_function_p): Use it.
28758         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
28759         versionable flag.
28760
28761 2010-05-16  Jan Hubicka  <jh@suse.cz>
28762
28763         * cgraph.c (cgraph_clone_node): Take decl argument and insert
28764         clone into hash when it is different from orig.
28765         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
28766         * cgraph.h (cgraph_clone_node): Update prototype.
28767         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
28768         (lto_cgraph_encoder_delete): Delete body map.
28769         (lto_cgraph_encoder_size): Move to header.
28770         (lto_cgraph_encoder_encode_body_p,
28771         lto_set_cgraph_encoder_encode_body): New.
28772         (lto_output_node): Do not take written_decls argument; output clone_of
28773         pointer.
28774         (add_node_to): Add include_body_argument; call
28775         lto_set_cgraph_encoder_encode_body on master of the clone.
28776         (add_references): Update use of add_node_to.
28777         (compute_ltrans_boundary): Likewise.
28778         (output_cgraph): Do not create written_decls bitmap.
28779         (input_node): Take nodes argument; stream in clone_of correctly.
28780         (input_cgraph_1): Update use of input_node.
28781         * lto-streamer-out.c (lto_output): Use encoder info to decide
28782         what bodies to output.
28783         * ipa-inline.c (cgraph_clone_inlined_nodes,
28784         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
28785         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
28786         (lto_cgraph_encoder_size): Define here.
28787         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
28788         Declare.
28789
28790 2010-05-16  Richard Guenther  <rguenther@suse.de>
28791
28792         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
28793         -fipa-type-escape.
28794         * ipa-type-escape.c (gate_type_escape_vars): Run when
28795         -fipa-struct-reorg runs.
28796         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
28797         * common.opt (fipa-type-escape): Remove.
28798
28799 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28800
28801         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
28802         (decode_options): Likewise.
28803         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
28804
28805 2010-05-16  Jan Hubicka  <jh@suse.cz>
28806
28807         * ipa.c (function_and_variable_visibility): Also bring local all
28808         aliases.
28809
28810 2010-05-16  Richard Guenther  <rguenther@suse.de>
28811
28812         * alias.c (nonoverlapping_memrefs_p): Remove use of
28813         IPA type-escape information.
28814
28815 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
28816
28817         * c-common.c (c_common_reswords): Add _Static_assert for C.
28818         * c-parser.c (c_token_starts_declaration,
28819         c_parser_next_token_starts_declaration,
28820         c_parser_static_assert_declaration_no_semi,
28821         c_parser_static_assert_declaration): New.
28822         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
28823         Handle static assertions if static_assert_ok.
28824         (c_parser_external_declaration, c_parser_declaration_or_fndef,
28825         c_parser_compound_statement_nostart, c_parser_label,
28826         c_parser_for_statement, c_parser_objc_methodprotolist,
28827         c_parser_omp_for_loop): All callers of
28828         c_parser_declaration_or_fndef changed.
28829         (c_parser_struct_declaration): Handle static assertions.
28830         (c_parser_compound_statement_nostart): Use
28831         c_parser_next_token_starts_declaration and
28832         c_token_starts_declaration to detect start of declarations.
28833         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
28834         Likewise.
28835
28836 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
28837
28838         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
28839         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
28840         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
28841         TARGET_FUNCTION_VALUE_REGNO_P): Define.
28842         (mmix_function_outgoing_value): Rename to...
28843         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
28844         (mmix_function_value_regno_p): Make static.
28845         (mmix_libcall_value): New function.
28846         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
28847         mmix_function_value_regno_p): Remove declaration.
28848
28849 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28850
28851         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
28852         BUILT_IN_ALLOCA if stack checking is enabled.
28853
28854 2010-05-16  Richard Guenther  <rguenther@suse.de>
28855
28856         * var-tracking.c (vars_copy_1): Inline ...
28857         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28858         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
28859         (variable_merge_over_cur): Adjust.  Merge asserts.
28860         (variable_merge_over_src): Likewise.
28861         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
28862         (variable_post_merge_new_vals): Merge asserts.
28863         (variable_post_merge_perm_vals): Likewise.
28864         (find_mem_expr_in_1pdv): Likewise.
28865         (dataflow_set_different_value): Remove.
28866         (onepart_variable_different_p): Merge asserts.
28867         (variable_different_p): Likewise.
28868         (dataflow_set_different_1): Inline ...
28869         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28870         (emit_notes_for_differences_1): Merge asserts.
28871
28872 2010-05-16  Richard Guenther  <rguenther@suse.de>
28873
28874         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
28875         * optabs.c (libfunc_decl_hash): Likewise.
28876         * varasm.c (emutls_decl): Likewise.
28877
28878 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
28879
28880         * c-decl.c: Don't include gimple.h.
28881         (merge_decls): Do not copy gimple_body.
28882
28883 2010-05-15  Jason Merrill  <jason@redhat.com>
28884
28885         * c.opt: Add -fnothrow-opt.
28886
28887 2010-05-15  Jan Hubicka  <jh@suse.cz>
28888
28889         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
28890         analyzed.
28891         * passes.c (ipa_write_summaries): Write all analyzed nodes.
28892
28893 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
28894
28895         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
28896         * Makefile.in: Add it.
28897         Fix all other Makefile dependencies for changes below.
28898         * tree.h: Include it instead of defining VEC primitives here.
28899         * gimple.h: Likewise.
28900         * rtl.h: Likewise.
28901         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
28902         * except.h: Include vecir.h, break dependence on tree.h.
28903
28904         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
28905         Move from here...
28906         * tree-iterator.c: ...to here.
28907         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
28908
28909         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
28910         tm_p.h.
28911         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
28912         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
28913         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
28914         tree-mudflap.h, and target.h.
28915         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
28916         predict.h, tree-inline.h, gimple.h, and langhooks.h.
28917         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
28918         Add FIXME for why gimple.h is still included (should be unnecessary
28919         since GCC 4.5 gimplification unit-at-a-time).
28920         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
28921         * c-pragma.c: Add FIXME for why function.h needs to be included just
28922         for cfun, at front-end level.
28923         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
28924         Do not include ggc.h, but include vecprim.h for VEC(char).
28925         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
28926         Explain why target.h is included.
28927         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
28928         Explain why gimple.h is included.
28929         * c-ppoutput.c: Do not include tm.h.
28930         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
28931         * c-parses.c: Explain why rtl.h is included, and that this (and only
28932         this) is also why tm.h must be included.
28933         Do not include except.h.
28934         * c-lang.c: Do not include ggc.h.
28935
28936 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
28937
28938         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
28939
28940 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
28941
28942         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
28943         unions by default if those structs and unions have no tags.  Do
28944         not condition anonymous struct and unions handling on flag_iso.
28945         Allow anonymous structs and unions for C1X.
28946         (finish_struct): Do not diagnose lack of named fields when
28947         anonymous structs and unions present for C1X.  Accept flexible
28948         array members in structure with anonymous structs or unions but no
28949         directly named fields.
28950         * doc/extend.texi (Unnamed Fields): Update.
28951
28952 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
28953
28954         * gimple.h (compare_field_offset): Rename into...
28955         (gimple_compare_field_offset): ...this.
28956         * gimple.c (compare_field_offset): Rename into...
28957         (gimple_compare_field_offset): ...this.  Compare the full access if
28958         the offset is self-referential.
28959         (gimple_types_compatible_p): Adjust for above renaming.
28960         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
28961         DECL_NONADDRESSABLE_P flag of fields before merging them.
28962
28963 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
28964
28965         * tree.h (ctor_to_list): Delete.
28966         * tree.c (ctor_to_list): Delete.
28967
28968 2010-05-15  Jan Hubicka  <jh@suse.cz>
28969
28970         * ipa-reference.c: Include toplev.h
28971         (is_proper_for_analysis): Only add to all_module_statics
28972         if it is allocated.
28973         (write_node_summary_p, stream_out_bitmap,
28974         ipa_reference_write_optimization_summary,
28975         ipa_reference_read_optimization_summary): New.
28976         (struct ipa_opt_pass_d pass_ipa_reference): Add
28977         optimization summary streaming.
28978         * lto-cgraph.c (referenced_from_this_partition_p,
28979         reachable_from_this_partition_p): New functions.
28980         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
28981         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
28982         * opts.c (decode_options): Enable ipa_reference.
28983         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
28984         * lto-streamer.h (referenced_from_this_partition_p,
28985         reachable_from_this_partition_p): Declare.
28986
28987 2010-05-15  Richard Guenther  <rguenther@suse.de>
28988
28989         PR tree-optimization/44038
28990         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
28991         taking the address of a V_C_E of a constant.
28992
28993 2010-05-14  Jan Hubicka  <jh@suse.cz>
28994
28995         * tree.h (memory_identifier_string): Remove.
28996         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
28997         (ipa_reference_global_vars_info_d): Remove statics_not_read and
28998         statics_not_written.
28999         (ipa_reference_optimization_summary_d): New structure.
29000         (ipa_reference_optimization_summary_t): New type and vector.
29001         (ipa_reference_vars_info_d): Embedd structures instead of using
29002         pointers.
29003         (reference_vars_to_consider): Remove out of GGC space.
29004         (module_statics_escape): Remove.
29005         (global_info_obstack): Rename to ...
29006         (optimization_summary_obstack): ... this one.
29007         (initialization_status_t): Remove.
29008         (memory_identifier_string): Remove.
29009         (get_reference_vars_info): Fix indenting.
29010         (set_reference_vars_info): Likewise.
29011         (get_reference_optimization_summary): New.
29012         (set_reference_optimization_summary): New.
29013         (get_global_reference_vars_info): Remove.
29014         (ipa_reference_get_read_global): Remove.
29015         (ipa_reference_get_written_global): Remove.
29016         (ipa_reference_get_not_read_global): Update.
29017         (ipa_reference_get_not_written_global): Update.
29018         (is_proper_for_analysis): Outlaw addressable.
29019         (propagate_bits): Update for new datastructures.
29020         (analyze_variable): Remove.
29021         (init_function_info): Update for new datastructures.
29022         (clean_function_local_data): Remove.
29023         (clean_function): Remove.
29024         (copy_global_bitmap): Use optimizations_summary_obstack.
29025         (duplicate_node_data): Duplicate optimization summary only.
29026         (remove_node_data): Remove optimization summary only.
29027         (generate_summary): Do not analyze variables; do not compute
29028         module_statics_escape; do not prune solutions by it.
29029         (read_write_all_from_decl): Fix typos in comments.
29030         (propagate): Doscover readonly and nonaddressable first;
29031         update for new datastructures; share global bitmaps.
29032         * ipa-reference.h (ipa_reference_get_read_global,
29033         ipa_reference_get_written_global): Remove.
29034         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
29035         * Makefile.in: Remove ipa-refereference from GT files.
29036
29037 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29038
29039         PR debug/44112
29040         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
29041         for all SYMBOL_REF_DECLs.
29042
29043 2010-05-14  Jan Hubicka  <jh@suse.cz>
29044
29045         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
29046         (varpool_all_refs_explicit_p): New inline function.
29047         * ipa-reference.c: Update comment.
29048         (module_statics_written): Remove.
29049         (get_static_decl): Remove.
29050         (ipa_init): Do not initialize module_statics_written.
29051         (analyze_function): Likewise.
29052         (generate_summary): Likewise; do not compute module_statics_readonly
29053         and do not update variable flags.
29054         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
29055         * ipa.c: Inlucde flags.h
29056         (cgraph_local_node_p): New.
29057         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
29058         promote functions to local.
29059         (ipa_discover_readonly_nonaddressable_vars): New function.
29060         (function_and_variable_visibility): Use cgraph_local_node_p.
29061         * varpool.c (varpool_finalize_decl): Set force_output for
29062         DECL_PRESERVE_P vars.
29063
29064 2010-05-14  Jan Hubicka  <jh@suse.cz>
29065
29066         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
29067
29068 2010-05-14  Richard Guenther  <rguenther@suse.de>
29069
29070         PR tree-optimization/44119
29071         * tree-ssa-pre.c (eliminate): Properly mark replacement of
29072         a PHI node necessary.
29073
29074 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
29075
29076         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
29077
29078 2010-05-14  Jason Merrill  <jason@redhat.com>
29079
29080         PR c++/44127
29081         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
29082         (gimple_call_set_nothrow): New.
29083         * gimple.c (gimple_build_call_from_tree): Call it.
29084         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
29085
29086         PR c++/44127
29087         * gimplify.c (gimplify_seq_add_stmt): No longer static.
29088         * gimple.h: Declare it.
29089         * gimple.c (gimple_build_eh_filter): No ops.
29090
29091 2010-05-14  Jan Hubicka  <jh@suse.cz>
29092
29093         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
29094         nodes already in queue.
29095         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
29096         re-enqueueing node.
29097
29098 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29099
29100         PR debug/44136
29101         * cfgexpand.c (expand_debug_expr): If non-memory op0
29102         has BLKmode, return NULL.
29103
29104 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
29105
29106         * config.gcc: Add support for --with-cpu option for bdver1.
29107         * config/i386/i386.h (TARGET_BDVER1): New macro.
29108         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
29109         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29110         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
29111         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29112         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
29113         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
29114         (processor_type): Add PROCESSOR_BDVER1.
29115         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
29116         processor_type in config/i386/i386.h.
29117         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
29118         movaps <reg, reg> instead of movapd <reg, reg> when replacing
29119         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
29120         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
29121         to emit packed xor instead of packed double/packed integer
29122         xor for SSE and AVX when moving a zero value.
29123         * config/i386/sse.md: Add check for
29124         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
29125         movapd/movdqa for SSE and AVX.
29126         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
29127         single logical operations i.e and, or and xor instead of packed double
29128         logical operations for SSE and AVX.
29129         * config/i386/i386-c.c (ix86_target_macros_internal):
29130         Add PROCESSOR_BDVER1.
29131         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
29132         (has_fma4, has_xop): New.
29133         * config/i386/i386.c (bdver1_cost): New variable.
29134         (m_BDVER1): New macro.
29135         (m_AMD_MULTIPLE): Add m_BDVER1.
29136         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
29137         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
29138         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
29139         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
29140         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
29141         x86_tune_sse_partial_reg_dependency,
29142         x86_tune_sse_unaligned_load_optimal,
29143         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
29144         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
29145         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
29146         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
29147         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
29148         Enable/disable for bdver1.
29149         (processor_target_table): Add bdver1_cost.
29150         (cpu_names): Add bdver1.
29151         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
29152          processor_alias_table.
29153         (ix86_expand_vector_move_misalign): Change.
29154         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
29155         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
29156         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
29157         of movupd/movdqu for SSE and AVX.
29158         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
29159         (ix86_tune_adjust_cost): Add code for bdver1.
29160         (standard_sse_constant_opcode): Add check for
29161         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
29162         of packed double xor for SSE and AVX.
29163
29164 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
29165
29166         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
29167         result to unsigned.
29168
29169 2010-05-14  Tristan Gingold  <gingold@adacore.com>
29170
29171         * toplev.c (default_debug_hooks): Remove this variable.
29172         (process_options): Remove assignments to default_debug_hooks.
29173
29174 2010-05-14  Martin Jambor  <mjambor@suse.cz>
29175
29176         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
29177         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
29178         * langhooks.h (struct lang_hooks_for_decls): Removed field
29179         fold_obj_type_ref.
29180         * tree.c (free_lang_data): Remove assignment to
29181         lang_hooks.fold_obj_type_ref.
29182         * tree.def (OBJ_TYPE_REF): Update comment.
29183
29184 2010-05-14  Richard Guenther  <rguenther@suse.de>
29185
29186         PR tree-optimization/44124
29187         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
29188
29189 2010-05-14  Alan Modra  <amodra@gmail.com>
29190
29191         PR target/44075
29192         * config/rs6000/rs6000.c (struct machine_function): Reorder
29193         fields for better packing.  Add lr_save_state.
29194         (rs6000_ra_ever_killed): Return lr_save_state if set.
29195         (rs6000_emit_eh_reg_restore): Set lr_save_state.
29196
29197 2010-05-13  Jan Hubicka  <jh@suse.cz>
29198
29199         * varpool.c (decide_is_variable_needed): Drop code checking
29200         TREE_SYMBOL_REFERENCED.
29201
29202 2010-05-13  Jan Hubicka  <jh@suse.cz>
29203
29204         * final.c (output_addr_const): Do not call mark_decl_referenced.
29205         * cgraphunit.c (process_function_and_variable_attributes): Use
29206         mark_needed_node dirrectly.
29207         (assemble_thunk): Do not call mark_decl_referenced.
29208
29209 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
29210
29211         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
29212
29213 2010-05-13  Jeff Law  <law@redhat.com>
29214
29215         * ira-conflicts.c (print_allocno_conflicts): New function broken out
29216         from...
29217         (print_conflicts): Call print_allocno_conflicts.
29218
29219 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29220
29221         PR debug/44104
29222         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
29223         if it is NULL.
29224
29225 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
29226
29227         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
29228         t-mingw-w64 or t-mingw-w32 for multilib configuration.
29229         * config/i386/t-mingw-w32: New.
29230         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
29231
29232 2010-05-13  Martin Jambor  <mjambor@suse.cz>
29233
29234         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
29235         gimple-fold.c).
29236         * gimple-fold.c (get_base_binfo_for_type): New function.
29237         (gimple_get_relevant_ref_binfo): Likewise.
29238         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29239         (gimple_fold_obj_type_ref): Likewise.
29240         (fold_gimple_call): Simplify condition for folding virtual calls
29241         and call gimple_fold_obj_type_ref.
29242         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
29243         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29244
29245 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
29246
29247         * config/rs6000/rs6000-protos.h
29248         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
29249         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
29250         (rs6000_debug_mode_dependent_address)
29251         (rs6000_mode_dependent_address_ptr): Likewise.
29252
29253 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29254
29255         PR debug/43983
29256         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
29257         by SRA.
29258         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
29259         * tree-sra.c (create_access_replacement): Call unshare_expr before
29260         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
29261         * dwarf2out.c: Include tree-flow.h.
29262         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
29263         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
29264         Handle DW_OP_bit_piece.
29265         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
29266         construct_piece_list, adjust_piece_list): New functions.
29267         (add_var_loc_to_decl): Handle SRA optimized variables.
29268         Adjust for var_loc_note to loc field renaming.
29269         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
29270         in VAR_LOCATION note.
29271         (new_loc_descr_op_bit_piece): New function.
29272         (dw_sra_loc_expr): New function.
29273         (dw_loc_list): Use it.  Don't handle the last range after the
29274         loop, handle it inside of the loop.  Adjust for var_loc_note
29275         to loc field renaming.
29276         (add_location_or_const_value_attribute): Only special case
29277         single entry loc lists if loc is NOTE_P.  Adjust for
29278         var_loc_note to loc field renaming.
29279         (dwarf2out_var_location): Don't set newloc->var_loc_note
29280         and newloc->next here.
29281
29282 2010-05-12  Jan Hubicka  <jh@suse.cz>
29283
29284         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
29285         flag.
29286         * cgraph.h (cgraph_only_called_directly_p,
29287         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
29288         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
29289         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
29290         (assemble
29291         * ipa.c (cgraph_remove_unreachable_nodes): Use
29292         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
29293         flags.
29294         * tree-inline.c (copy_bb): Check address_taken flag.
29295         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
29296         externally_visible flag.
29297
29298 2010-05-12  Jason Merrill  <jason@redhat.com>
29299
29300         PR bootstrap/44048
29301         PR target/44099
29302         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
29303         * sdbout.c (plain_type_1): Likewise.
29304         * dwarf2out.c (is_base_type): Likewise.
29305         (gen_type_die_with_usage): Likewise.  Generate
29306         DW_TAG_unspecified_type for any LANG_TYPE.
29307
29308 2010-05-12  Jan Hubicka  <jh@suse.cz>
29309
29310         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
29311         indrect edges too.
29312         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
29313         (cgraph_clone_edge): Update.
29314         (cgraph_node_remove_callees): Remove indirect calls too.
29315         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
29316         (cgraph_create_indirect_edge): Update prototype.
29317         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
29318         is_proper_for_analysis.
29319         (add_new_function, visited_nodes, function_insertion_hook_holder,
29320         get_local_reference_vars_info, mark_address_taken, mark_address,
29321         mark_load, mark_store, check_asm_memory_clobber, check_call,
29322         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
29323         (ipa_init): Do not initialize visited_nodes;
29324         function_insertion_hook_holder.
29325         (analyze_variable): Rewrite.
29326         (analyze_function): Rewrite.
29327         (copy_local_bitmap): Remove.
29328         (duplicate_node_dat): Do not duplicate local info.
29329         (generate_summary): Simplify to only walk cgraph.
29330         (write_node_summary_p, ipa_reference_write_summary,
29331         ipa_reference_read_summary): Remove.
29332         (propagate): Do not remove function insertion;
29333         generate summary.
29334         (pass_ipa_reference): NULLify summary handling fields.
29335         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
29336         (input_edge): Input ecf_flags.
29337         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
29338         (update_indirect_edges_after_inlining): Ignore edges with unknown
29339         param.
29340
29341 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
29342
29343         * implicit-zee.c: New file.
29344         * tree-pass.h (pass_implicit_zee): Declare.
29345         * passes.c (init_optimization_passes): Add zee pass.
29346         * common.opt (fzee): New flag.
29347         * timevar.def (TV_ZEE): Define.
29348         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
29349         and beyond.
29350         * Makefile.in (implicit-zee.o): Add new build file.
29351
29352 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29353             Nathan Froyd  <froydnj@codesourcery.com>
29354
29355         * c-common.c (sync_resolve_params): Remove write-only variable.
29356
29357 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
29358
29359         * target.h (struct gcc_target): Add mode_dependent_address_p field.
29360         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29361         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
29362         * targhooks.c (default_mode_dependent_address_p): New function.
29363         * targhooks.h (default_mode_dependent_address_p): Declare function.
29364         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29365         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
29366         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
29367         target hook. Change return type to bool.
29368         * recog.h (mode_dependent_address_p): Change return type to bool.
29369
29370 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29371             Nathan Froyd  <froydnj@codesourcery.com>
29372
29373         * tree-mudflap.c (build_function_type_0, build_function_type_1,
29374         build_function_type_2, build_function_type_3): Remove.
29375         (mudflap_init): Use build_function_type_list.
29376
29377 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29378             Nathan Froyd  <froydnj@codesourcery.com>
29379
29380         * coverage.c (build_fn_info_value): Call build_constructor instead of
29381         build_constructor_from_list.
29382         (build_ctr_info_value): Likewise.
29383         (build_gcov_info): Likewise.
29384
29385 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
29386
29387         * tree.c (build_constructor): Compute TREE_CONSTANT for the
29388         resultant constructor.
29389         (build_constructor_single): Don't set TREE_CONSTANT.
29390         (build_constructor_from_list): Don't compute TREE_CONSTANT.
29391
29392 2010-05-12  Jan Hubicka  <jh@suse.cz>
29393
29394         * cgraph.h (struct varpool_node): Add aux.
29395         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
29396         * varpool.c (varpool_remove_node): Do not remove initializer.
29397         (varpool_reset_queue): Export.
29398         (varpool_finalize_decl): Volatile vars are forced to be output.
29399         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
29400         replaced decl.
29401         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
29402         process_references, varpool_can_remove_if_no_refs): New functions.
29403         (cgraph_remove_unreachable_nodes): Handle variables too.
29404
29405 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
29406
29407         PR target/44088
29408         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
29409
29410 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
29411
29412         PR middle-end/44085
29413         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
29414         change value of ORT_TASK.
29415         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
29416         (omp_notice_threadprivate_variable): New function.
29417         (omp_notice_variable): Call it for threadprivate variables.
29418         If enclosing ctx is a task, print enclosing task rather than
29419         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
29420         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
29421         if task has untied clause.
29422
29423         PR debug/42278
29424         * dwarf2out.c (base_type_die): Don't add name attribute here.
29425         (modified_type_die): Instead of sizetype use
29426         its underlying original type.  If a DW_TAG_base_type doesn't
29427         have name added, add __unknown__.
29428         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
29429         always call force_type_die instead.
29430
29431 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
29432
29433         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
29434         for __stack_chk_guard.
29435
29436 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29437
29438         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
29439         don't call start_source_file debug hook here...
29440         (finish_options): ... but here, after outputting predefined and
29441         command line defines and undefs.
29442
29443         PR middle-end/44071
29444         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
29445         no fallthru edge.
29446         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
29447         optimizing away empty bb with no successors, move over its
29448         footer chain to fallthru predecessor.
29449         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
29450         (rtl_split_edge): For asm goto call patch_jump_insn even if
29451         splitting fallthru edge.
29452
29453         PR c++/44059
29454         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
29455         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
29456         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
29457         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
29458         on DW.ref.* decls.
29459
29460         PR c++/44062
29461         * c-parser.c (c_parser_expression): Mark LHS of a comma
29462         expression as read if it is a decl, handled component or
29463         COMPOUND_EXPR with that on the RHS.
29464         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
29465         if it is a decl or handled component.
29466
29467 2010-05-11  Jan Hubicka  <jh@suse.cz>
29468
29469         * lto-symtab.c (lto_symtab_free): New function.
29470         * lto-streamer.h (lto_symtab_free): Declare.
29471
29472 2010-05-11  Jan Hubicka  <jh@suse.cz>
29473
29474         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
29475         that if function is needed it is reachable.
29476         (lto_output_node): See if it the function is reachable or referenced.
29477         (output_cgraph): Update call of lto_output_node.
29478         * lto-streamer.h (reachable_from_other_partition_p): Declare.
29479
29480 2010-05-11  Jan Hubicka  <jh@suse.cz>
29481
29482         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
29483         Mark as used.
29484
29485 2010-05-11  Jan Hubicka  <jh@suse.cz>
29486
29487         PR tree-optimize/44063
29488         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
29489         queue.
29490         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
29491         limits.
29492         (estimate_function_body_sizes): Compute sizes even when disregarding.
29493
29494 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
29495
29496         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
29497
29498 2010-05-11  Jan Hubicka  <jh@suse.cz>
29499
29500         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
29501         into every boundary.
29502
29503 2010-05-11  Jan Hubicka  <jh@suse.cz>
29504
29505         * matrix-reorg.c (matrix_reorg): Rebuild edges.
29506
29507 2010-05-11  Jan Hubicka  <jh@suse.cz>
29508
29509         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
29510         lto_streamer_cache_delete): Put nodes into heap.
29511         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
29512         heap.
29513
29514 2010-05-11  Jan Hubicka  <jh@suse.cz>
29515
29516         * cgraphbuild.c (cgraph_rebuild_references): New.
29517         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
29518         out extern inlines.
29519         * cgraph.h (cgraph_rebuild_references): Declare.
29520         * tree-inline.c (tree_function_versioning): Use it.
29521         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
29522
29523 2010-05-11  Jan Hubicka  <jh@suse.cz>
29524
29525         * cgraph.c: Include ipa-utils.h
29526         (cgraph_create_virtual_clone): Update references.
29527         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
29528
29529 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29530
29531         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
29532         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
29533         cache size.
29534
29535 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29536
29537         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
29538
29539 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29540
29541         * gcc.c (execute): For -### don't quote arguments that
29542         contain just alphanumerics and _/-. characters.
29543         * doc/invoke.texi: Document that change for -###.
29544
29545         PR debug/44023
29546         * df-problems.c (struct dead_debug): Add to_rescan field.
29547         (dead_debug_init): Clear to_rescan field.
29548         (dead_debug_finish): Rescan all debug insns in to_rescan
29549         bitmap and free the bitmap.
29550         (dead_debug_insert_before): Instead of rescanning debug insns
29551         immediately queue their rescanning until dead_debug_finish.
29552         (df_note_bb_compute): After dead_debug_add do continue instead
29553         of break.
29554
29555 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
29556
29557         PR debug/44028
29558         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
29559         clear also INSN_REG_USE_LIST.
29560
29561 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29562
29563         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
29564
29565 2010-05-10  Jan Hubicka  <jh@suse.cz>
29566
29567         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
29568         commited change.
29569
29570 2010-05-10  Jan Hubicka  <jh@suse.cz>
29571
29572         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
29573         Allocate encoders.
29574         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
29575         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
29576         (lto_streamer_cache_create): Init alloc pool.
29577         (lto_streamer_cache_delete): Free alloc pool.
29578         * lto-streamer.h: Include alloc pool.
29579         (lto_streamer_cache_d): Use alloc pool.
29580         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
29581
29582 2010-05-10  Jan Hubicka  <jh@suse.cz>
29583
29584         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
29585         * cgraphbuild.c: Include except.h
29586         (record_type_list, record_eh_tables): New function.
29587         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
29588
29589 2010-05-10  Jan Hubicka  <jh@suse.cz>
29590
29591         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
29592         __frame_dummy_init_array_entry, force_to_data): Attribute as used
29593         rather than unused.
29594
29595 2010-05-10  Michael Matz  <matz@suse.de>
29596
29597         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
29598         (can_reassociate_p): Use FLOAT_TYPE_P.
29599         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
29600         (vect_force_simple_reduction): ... this.
29601         * tree-parloops.c (gather_scalar_reductions): Use
29602         vect_force_simple_reduction.
29603         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
29604         vect_is_simple_reduction, add modify argument, if true rewrite
29605         "a-b" into "a+(-b)".
29606         (vect_is_simple_reduction, vect_force_simple_reduction): New
29607         functions.
29608         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
29609
29610 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
29611             Vladimir Makarov  <vmakarov@redhat.com>
29612
29613         PR rtl-optimization/44012
29614         * ira-build.c (remove_unnecessary_allocnos): Nullify
29615         regno_allocno_map of the removed allocno.
29616
29617 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29618
29619         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
29620         to /dev/null.
29621         * configure: Regenerate.
29622
29623 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29624
29625         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
29626         unused.
29627         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
29628         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
29629         support in Sun ld.
29630         * configure: Regenerate.
29631
29632 2010-05-10  Richard Guenther  <rguenther@suse.de>
29633
29634         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
29635         marked if the entry identifier is marked.
29636
29637 2010-05-10  Richard Guenther  <rguenther@suse.de>
29638
29639         * c-common.c (struct c_common_attributes): Add fnspec attribute.
29640         (handle_fnspec_attribute): New function.
29641         * gimple.h (gimple_call_return_flags): Declare.
29642         (gimple_call_arg_flags): Likewise.
29643         * gimple.c (gimple_call_arg_flags): New function.
29644         (gimple_call_return_flags): Likewise.
29645         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
29646         New argument flags.
29647         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
29648         return value flags.
29649         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
29650         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
29651         main work to ...
29652         (make_heapvar_for): ... this new function.
29653         (handle_rhs_call): Handle fnspec attribute argument specifiers.
29654         (handle_lhs_call): Likewise.
29655         (find_func_aliases): Adjust.
29656
29657 2010-05-10  Richard Guenther  <rguenther@suse.de>
29658
29659         PR tree-optimization/44050
29660         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
29661
29662 2010-05-10  Wei Guozhi  <carrot@google.com>
29663
29664         PR target/42879
29665         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
29666
29667 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29668
29669         PR c/10676
29670         * c-typeck.c (lookup_field): Take a type directly.  Update
29671         recursive calls.
29672         (build_component_ref): Update call to lookup_field.
29673         (set_init_label): Use lookup_field to find initialized field.
29674         Handle returned list of fields like a sequence of designators.
29675
29676 2010-05-09  Richard Guenther  <rguenther@suse.de>
29677
29678         PR middle-end/44024
29679         * fold-const.c (tree_single_nonzero_warnv_p): Properly
29680         handle &FUNCTION_DECL.
29681
29682 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29683
29684         PR c/4784
29685         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
29686         structures and unions recursively.
29687         (detect_field_duplicates): Move duplicate detection with a hash to
29688         detect_field_duplicates_hash.  Always use a hash if anonymous
29689         structures or unions are present.
29690         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
29691         give errors.
29692
29693 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
29694
29695         PR target/44046
29696         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
29697         detect Atom, Core 2 and Core i7.
29698
29699 2010-05-09  Richard Guenther  <rguenther@suse.de>
29700
29701         * gcc.c (store_arg): Handle temporary file deletion for
29702         joined arguments.
29703
29704 2010-05-09  Richard Guenther  <rguenther@suse.de>
29705
29706         PR middle-end/44043
29707         * ipa-inline.c (estimate_function_body_sizes): Return after
29708         disregarding inline limits.
29709
29710 2010-05-09  Richard Guenther  <rguenther@suse.de>
29711
29712         * gcc.c (store_arg): Revert last change.
29713
29714 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
29715
29716         PR middle-end/28685
29717         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
29718         (optimize_ops_list): Call it.
29719
29720 2010-05-08  Richard Guenther  <rguenther@suse.de>
29721
29722         PR tree-optimization/44030
29723         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
29724         NECESSARY flag if we propagate from a inserted expression.
29725
29726 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
29727
29728         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
29729         domain types as equal if they are both PLACEHOLDER_EXPRs.
29730
29731 2010-05-08  Richard Guenther  <rguenther@suse.de>
29732
29733         * lto-wrapper.c (run_gcc): Remove linker output from
29734         command line for LTRANS invocation.
29735
29736 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29737
29738         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
29739         lto-macho as lto_binary_reader.
29740         * target.h (struct gcc_target): New hooks lto_start and lto_end.
29741         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
29742         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
29743         in lto_start and lto_end calls.
29744         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
29745         magic numbers.
29746         (scan_prog_file): Update is_elf_or_coff call.
29747         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
29748
29749         * collect2.c (main): Fix enum comparison.
29750
29751         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
29752         Add prototypes.
29753         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
29754         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
29755         and TARGET_ASM_LTO_END.
29756         * darwin.c: Include obstack.h and lto-streamer.h.
29757         (lto_section_names_offset, lto_section_names_obstack,
29758         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
29759         global variables.
29760         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
29761         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
29762         to a temporary file.
29763         (darwin_asm_lto_end): New function.  Restore asm_out_file.
29764         (darwin_asm_named_section): For LTO sections, replace the name with
29765         the offset of the section name in a string table, and build this
29766         table.
29767         (darwin_file_start): Initialize global vars for LTO support.
29768         (darwin_file_end): If output to asm_out_file was redirected, append it
29769         to the proper asm_out_file here.  Add the section names section.
29770
29771 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29772
29773         * c-pragma.c (pending_weak_d, pending_weak): New.
29774         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
29775         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
29776         handle_pragma_weak): Update the uses of pending_weaks.
29777
29778 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29779
29780         PR documentation/44016
29781         * doc/standards.texi (Standards): Link to unversioned
29782         cxx0x_status.html page.
29783
29784 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
29785
29786         PR target/43708
29787         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
29788         in addition to TREE_USED, to avoid "set but unused" warnings.
29789
29790 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29791
29792         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
29793         (is_loop_prefetching_profitable): Do not insert prefetches
29794         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
29795         times the prefetch ahead distance.
29796
29797 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29798
29799         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
29800         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
29801         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
29802         the unroll_factor.
29803
29804 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29805
29806         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
29807         a diagnostic info when the insn-to-mem ratio is too small.
29808
29809 2010-05-07  Richard Guenther  <rguenther@suse.de>
29810
29811         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
29812         the linker plugin.
29813         (store_arg): Queue temp_filename for deletion instead of
29814         the whole argument.
29815
29816 2010-05-07  Richard Guenther  <rguenther@suse.de>
29817
29818         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
29819         (run_gcc): Handle LTRANS phase invocation.
29820         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
29821
29822 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
29823
29824         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
29825         this is also meaningful on PARM_DECLs and RESULT_DECLs.
29826
29827 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29828
29829         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
29830
29831 2010-05-07  Richard Guenther  <rguenther@suse.de>
29832
29833         PR tree-optimization/44020
29834         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
29835         code when PRE is not yet initialized.
29836
29837 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29838
29839         * config/mips/dbxmdebug.h: Remove.
29840         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
29841
29842 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
29843
29844         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
29845         with null pointer and also warn about ordered comparison of zero with
29846         pointer if -Wextra.
29847
29848 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29849
29850         * graphite-blocking.c
29851         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
29852         * graphite-clast-to-gimple.c
29853         (clast_to_gcc_expression): Same.
29854         (precision_for_value): Same.
29855         (precision_for_interval): Same.
29856         (gcc_type_for_interval): Same.
29857         (graphite_create_new_guard): Same.
29858         (compute_bounds_for_level): Same.
29859         (graphite_create_new_loop_guard): Same.
29860         * graphite-interchange.c
29861         (build_linearized_memory_access): Same.
29862         (pdr_stride_in_loop): Same.
29863         (memory_strides_in_loop_1): Same.
29864         (memory_strides_in_loop): Same.
29865         (extend_scattering): Same.
29866         (psct_scattering_dim_for_loop_depth): Same.
29867         (pbb_number_of_iterations): Same.
29868         * graphite-poly.h
29869         (debug_iteration_domains): Same.
29870         * graphite-ppl.c
29871         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
29872         (ppl_set_inhomogeneous_gmp): Same.
29873         (ppl_strip_loop): Same.
29874         (ppl_lexico_compare_linear_expressions): Same.
29875         (ppl_read_polyhedron_matrix): Same.
29876         (ppl_max_for_le_pointset): Same.
29877         * graphite-ppl.h
29878         (ppl_read_polyhedron_matrix): Same.
29879         (tree_int_to_gmp): Same.
29880         (gmp_cst_to_tree): Same.
29881         (ppl_set_inhomogeneous): Same.
29882         (ppl_set_inhomogeneous_tree): Same.
29883         (ppl_set_coef): Same.
29884         (ppl_set_coef_tree): Same.
29885         * graphite-sese-to-poly.c
29886         (build_pbb_scattering_polyhedrons): Same.
29887         (build_scop_scattering): Same.
29888         (scan_tree_for_params_right_scev): Same.
29889         (scan_tree_for_params): Same.
29890         (find_params_in_bb): Same.
29891         (find_scop_parameters): Same.
29892         (add_upper_bounds_from_estimated_nit): Same.
29893         (build_loop_iteration_domains): Same.
29894         (add_condition_to_domain): Same.
29895         (pdr_add_memory_accesses): Same.
29896
29897 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29898
29899         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
29900         CLooG's value_* macros to their respective mpz_* counterparts.
29901         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
29902         (graphite_create_new_loop_guard): Same.
29903         * graphite-interchange.c (build_linearized_memory_access): Same.
29904         (pdr_stride_in_loop): Same.
29905         (memory_strides_in_loop_1): Same.
29906         (1st_interchange_profitable_p): Same.
29907         * graphite-poly.c (extend_scattering): Same.
29908         (psct_scattering_dim_for_loop_depth): Same.
29909         (pbb_number_of_iterations): Same.
29910         (pbb_number_of_iterations_at_time): Same.
29911         * graphite-poly.h (new_1st_loop): Same.
29912         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
29913         (oppose_constraint): Same.
29914         (insert_constraint_into_matrix): Same.
29915         (ppl_set_inhomogeneous_gmp): Same.
29916         (ppl_set_coef_gmp): Same.
29917         (ppl_strip_loop): Same.
29918         (ppl_lexico_compare_linear_expressions): Same.
29919         (ppl_max_for_le_pointset): Same.
29920         (ppl_min_for_le_pointset): Same.
29921         (ppl_build_realtion): Same.
29922         * graphite-ppl.h (gmp_cst_to_tree): Same.
29923         (ppl_set_inhomogeneous): Same.
29924         (ppl_set_inhomogeneous_tree): Same.
29925         (ppl_set_coef): Same.
29926         (ppl_set_coef_tree): Same.
29927         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
29928         (build_scop_scattering): Same.
29929         (add_value_to_dim): Same.
29930         (scan_tree_for_params_right_scev): Same.
29931         (scan_tree_for_params_int): Same.
29932         (scan_tree_for_params): Same.
29933         (find_params_in_bb): Same.
29934         (find_scop_parameters): Same.
29935         (add_upper_bounds_from_estimated_nit): Same.
29936         (build_loop_iteration_domains): Same.
29937         (create_linear_expr_from_tree): Same.
29938         (add_condition_to_domain): Same.
29939         (pdr_add_memory_accesses): Same.
29940
29941 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
29942             Jason Merrill  <jason@redhat.com>
29943
29944         * c-common.c (c_common_reswords): Add nullptr.
29945         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
29946         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
29947         (gen_type_die_with_usage): Likewise.
29948         * dbxout.c (dbxout_type): Likewise.
29949         * sdbout.c (plain_type_1): Likewise.
29950
29951 2010-05-06  Jason Merrill  <jason@redhat.com>
29952
29953         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
29954         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
29955         ret appropriately.
29956         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
29957
29958         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
29959         stripping WITH_SIZE_EXPR.
29960         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
29961         change.
29962
29963 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29964
29965         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
29966         list of obsolete configurations.
29967         Disabled check for obsolete configurations.
29968         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
29969         Removed support for previous versions.
29970         * config/mips/iris.h: Removed.
29971         * config/mips/iris5.h: Removed.
29972         * config/mips/iris6.h: Merged old iris.h contents.
29973         (TARGET_IRIX): Removed.
29974         (DRIVER_SELF_SPECS): Removed mabi=32.
29975         (IDENT_ASM_OP): Removed undef.
29976         (STARTFILE_SPEC): Removed mabi=32.
29977         (ENDFILE_SPEC): Likewise.
29978         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
29979         (MACHINE_TYPE): Update for IRIX 6.5.
29980         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
29981         TARGET_IRIX by TARGET_IRIX6.
29982         (mips_file_start): Likewise.
29983         (mips_output_external): Remove IRIX 5/6 O32 support.
29984         (mips_output_function_prologue): Likewise.
29985         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
29986         TARGET_IRIX6.
29987         (TARGET_CPU_CPP_BUILTINS): Likewise.
29988         (TARGET_IRIX): Removed.
29989         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
29990         (MULTILIB_DIRNAMES): Removed 32.
29991         (MULTILIB_OSDIRNAMES): Removed ../lib.
29992         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
29993         (Specific, mips-sgi-irix5): Document removal.
29994         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
29995         Remove references to older IRIX 6 releases and the O32 ABI.
29996
29997 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
29998
29999         PR bootstrap/43994
30000         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
30001         instead of DF_REF_REAL_REG.
30002
30003 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
30004
30005         PR target/43888
30006         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
30007         handling to still return true for x64 targets.
30008
30009 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
30010
30011         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
30012
30013 2010-05-06  Jan Hubicka  <jh@suse.cz>
30014
30015         PR tree-optimization/43791
30016         * ipa-inline.c (update_caller_keys): Remove bogus
30017         disregard_inline_limits check.
30018
30019 2010-05-06  Michael Matz  <matz@suse.de>
30020
30021         PR tree-optimization/43984
30022         * tree-ssa-pre.c (inserted_phi_names): Remove.
30023         (inserted_exprs): Change to bitmap.
30024         (create_expression_by_pieces): Set bits, don't append to vector.
30025         (insert_into_preds_of_block): Don't handle inserted_phi_names.
30026         (eliminate): Don't look at inserted_phi_names, remove deleted
30027         insns from inserted_exprs.
30028         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
30029         (init_pre, fini_pre): Allocate and free bitmaps.
30030         (execute_pre): Insert insns on edges before elimination.
30031
30032 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
30033
30034         * tree.c (initializer_zerop): Handle STRING_CST.
30035
30036 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30037
30038         PR 40989
30039         * doc/invoke.texi (Wimplicit): Document as C only.
30040         * opts.c (common_handle_option): Add argument kind.
30041         (handle_option): Rename as read_cmdline_option. Factor out code to...
30042         (handle_option): ... here. New.
30043         (handle_options): Rename as read_cmdline_options.
30044         (decode_options): Update call.
30045         (set_option): Use option index instead of option pointer. Classify
30046         diagnostics correctly.
30047         (enable_warning_as_error): Call handle_option.
30048         * opts.h (set_option): Update declaration.
30049         (handle_option): Declare.
30050         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
30051         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
30052         * c-opts.c (set_Wimplicit): Delete.
30053         (c_family_lang_mask): New static constant.
30054         (c_common_handle_option): Add argument kind. Use handle_option
30055         instead of set_Wimplicit.
30056         (c_common_post_options): warn_implicit and warn_implicit_int
30057         are disabled by default.
30058         * c-common.c (warn_implicit): Do not define here.
30059         * c-common.h (warn_implicit): Do not declare here.
30060         (c_common_handle_option): Update declaration.
30061         * lto-opts.c (lto_reissue_options): Update call to set_option.
30062
30063 2010-05-06  Richard Guenther  <rguenther@suse.de>
30064
30065         PR tree-optimization/43571
30066         * domwalk.c (walk_dominator_tree): Walk the dominator
30067         sons in more optimal order.
30068
30069 2010-05-06  Richard Guenther  <rguenther@suse.de>
30070
30071         PR tree-optimization/43934
30072         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
30073         (stmt_cost): Likewise.
30074         (extract_true_false_args_from_phi): New helper.
30075         (determine_max_movement): For PHI nodes verify we can hoist them
30076         and compute their cost.
30077         (determine_invariantness_stmt): Handle PHI nodes.
30078         (move_computations_stmt): Likewise.  Hoist PHI nodes in
30079         if-converted form using COND_EXPRs.
30080         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
30081         (tree_ssa_lim): Likewise.
30082         * tree-flow.h (tree_ssa_lim): Adjust prototype.
30083         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
30084
30085 2010-05-06  Richard Guenther  <rguenther@suse.de>
30086
30087         PR tree-optimization/43987
30088         * tree-ssa-structalias.c (could_have_pointers): For possibly
30089         address-taken variables force pointers to be recorded.
30090         (create_variable_info_for_1): Likewise.
30091         (push_fields_onto_fieldstack): Pass in wheter all fields
30092         must have pointers.
30093         (find_func_aliases): Query types instead of vars whether
30094         they contain pointers where appropriate.
30095
30096 2010-05-06  Jan Hubicka  <jh@suse.cz>
30097
30098         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
30099         (record_reference, mark_address, mark_load, mark_store): Record
30100         references.
30101         (record_references_in_initializer): Update call of record_references.
30102         (rebuild_cgraph_edges): Remove all references before rebuiding.
30103         * cgraph.c (cgraph_create_node): Clear ref list.
30104         (cgraph_remove_node): Remove references.
30105         (dump_cgraph_node): Dump references.
30106         (cgraph_clone_node): Clone references.
30107         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
30108         (struct cgraph_node, varpool_node): Add ref_lst.
30109         * ipa-ref.c: New file.
30110         * ipa-ref.h: New file.
30111         * ipa-ref-inline.h: New file.
30112         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
30113         (referenced_from_other_partition_p): New function.
30114         (lto_output_varpool_node): Take set arugment; call
30115         referenced_from_other_partition.
30116         (lto_output_ref): New.
30117         (add_references): New.
30118         (output_refs): New.
30119         (output_cgraph): Compute boundary based on references; output refs.
30120         (output_varpool): Accept cgraph_node_set argument.
30121         (input_ref): New.
30122         (input_refs): New.
30123         (input_cgraph): Call input_refs.
30124         * lto-section-in.c (lto_section_name): Add refs.
30125         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
30126         (ipa-ref.o): New file.
30127         * varpool.c (varpool_node): Clear ipa ref list.
30128         (varpool_remove_node): Remove references.
30129         (dump_varpool_node): Dump references.
30130         (varpool_assemble_decl): Only compile finalized ones.
30131         (varpool_extra_name_alias): Initialize ref list.
30132         * lto-streamer.c (lto-get_section_name): Add .refs section.
30133         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
30134         (referenced_from_other_partition_p): Declared.
30135
30136 2010-05-06  Ira Rosen  <irar@il.ibm.com>
30137
30138         PR tree-optimization/43901
30139         * tree-vect-stmts.c (vectorizable_call): Assert that vector
30140         type is not NULL if it's transformation phase, and return
30141         FALSE if it's analysis.
30142         (vectorizable_conversion, vectorizable_operation,
30143         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
30144
30145 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
30146
30147         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30148         Delete.
30149         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30150         New define.
30151         * config/mips/mips-protos.h
30152         (mips_small_register_classes_for_mode_p): Delete prototype.
30153
30154 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
30155
30156         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
30157         * config/arm/arm.c (multiple_operation_profitable_p,
30158         compute_offset_order): New static functions.
30159         (load_multiple_sequence, store_multiple_sequence): Use them.
30160         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
30161         memory offsets, not register numbers.
30162         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
30163
30164 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
30165
30166         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
30167         (get_pending_sizes, put_pending_size, put_pending_sizes):
30168         Update the uses of pending_sizes.
30169         * c-decl.c (store_parm_decls): Likewise.
30170         * c-tree.h (struct c_arg_info): Likewise.
30171         * tree.h: Update the prototype for get_pending_sizes and
30172         put_pending_sizes.
30173
30174 2010-05-05  Jason Merrill  <jason@redhat.com>
30175
30176         PR debug/43370
30177         * c-common.c (handle_aligned_attribute): Respect
30178         ATTR_FLAG_TYPE_IN_PLACE.
30179
30180         PR testsuite/43758
30181         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
30182         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30183         (TARGET_INITIALIZER): Use it.
30184         * c-common.c (attribute_takes_identifier_p): Call it.
30185         * c-common.h: Update prototype.
30186         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
30187         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30188
30189 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30190
30191         PR debug/43950
30192         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
30193         DW_ID_down_case for Fortran compilation units.
30194
30195 2010-05-05  Jan Hubicka  <jh@suse.cz>
30196
30197         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
30198         handle aliases.
30199
30200 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
30201
30202         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
30203         a variable-sized RESULT_DECL.
30204
30205 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
30206
30207         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
30208
30209 2010-05-05  Jason Merrill  <jason@redhat.com>
30210
30211         PR c++/43787
30212         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
30213         returns GS_OK.
30214         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
30215
30216 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
30217             Jakub Jelinek  <jakub@redhat.com>
30218
30219         PR debug/43478
30220         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
30221         (dead_debug_init, dead_debug_finish): New functions.
30222         (dead_debug_add, dead_debug_insert_before): Likewise.
30223         (df_note_bb_compute): Initialize a dead_debug object, add dead
30224         debug uses to it, insert debug bind insns before death insns,
30225         reset debug insns that refer to pending uses at the end.
30226         * rtl.h (make_debug_expr_from_rtl): New prototype.
30227         * varasm.c (make_debug_expr_from_rtl): New function.
30228
30229 2010-05-05  Jan Hubicka  <jh@suse.cz>
30230
30231         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
30232         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
30233         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
30234         lto_varpool_encoder_deref, lto_varpool_encoder_size,
30235         lto_varpool_encoder_encode_initializer_p,
30236         lto_set_varpool_encoder_encode_initializer): New functions.
30237         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
30238         call output_varpool.
30239         (input_varpool_node): Do not always set analyzed.
30240         (input_cgraph_1): Return vector of cgraph nodes.
30241         (input_varpool_1): Return vector of varpools.
30242         (input_cgraph): Free the vectors.
30243         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
30244         output only initializers needed.
30245         (lto_output): Only call output_cgraph.
30246         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
30247         * lto-section-out.c (lto_new_out_decl_state): Initialize
30248         state->varpool_node_encoder.
30249         * lto-streamer.h (lto_varpool_encoder_d): New.
30250         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
30251         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
30252         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
30253         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
30254         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
30255         Declare.
30256         (output_varpool, input_varpool): Remove declarations.
30257
30258 2010-05-05  Jan Hubicka  <jh@suse.cz>
30259
30260         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
30261         with body can prevail.
30262
30263 2010-05-05  Jan Hubicka  <jh@suse.cz>
30264
30265         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
30266         size.
30267
30268 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30269
30270         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
30271
30272         * gengtype.h (erro_at_line): Constify pos argument.
30273
30274         * gengtype.c: Include hashtab.h.
30275         (enum gc_used): Document GC_MAYBE_POINTED_TO.
30276         (error_at_line): Constify pos argument.
30277         (do_typedef): Initialize p->opt field.
30278         (get_file_gtfilename): Fix comment typo.
30279         (struct walk_type_data): Constify line field.
30280         (get_output_file_for_structure): New function.
30281         (write_local_func_for_structure): Constify orig_s argument.
30282         Use get_output_file_for_structure.
30283         (write_func_for_structure): Use get_output_file_for_structure.
30284         (INDENT): New define.
30285         (dump_pair, dump_type, dump_type_list, dump_typekind)
30286         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
30287         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
30288         functions.
30289         (seen_types): New variable.
30290         (main): New variable do_dump.  Process "-d" command line option.
30291         Call dump_everything if dump requested.
30292
30293 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30294
30295         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
30296         in a temporary instead of invoking the macro multiple times.
30297         (track_expr_p): Likewise.
30298
30299 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
30300
30301         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
30302         per new semantics.
30303         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
30304         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
30305         conditions for printing notes.
30306         * common.opt (-Wcoverage-mismatch): Allow negative, default to
30307         true, update documentation.
30308         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
30309
30310 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
30311
30312         PR c/43981
30313         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
30314         on dimen.
30315
30316 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30317
30318         PR target/43799
30319         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
30320         (*sse_prologue_save_insn1): Likewise.
30321         (SSE prologue save splitter): Likewise.
30322
30323 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
30324
30325         * tree.c (free_lang_data_in_one_sizepos): New inline function.
30326         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
30327         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
30328         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
30329         all decls.  Call it on DECL_FIELD_OFFSET of fields.
30330         (find_decls_types_r): Follow DECL_VALUE_EXPR.
30331         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
30332
30333 2010-05-04  Martin Jambor  <mjambor@suse.cz>
30334
30335         * tree-sra.c (build_access_from_expr_1): The first parameter type
30336         changed to simple tree.
30337         (build_access_from_expr): Likewise, gsi parameter was eliminated.
30338         (scan_assign_result): Renamed to assignment_mod_result, enum elements
30339         renamed as well.
30340         (build_accesses_from_assign): Removed all parameters except for a
30341         simple gimple statement.  Now returns a simple bool.
30342         (scan_function): All non-analysis parts moved to separate functions
30343         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
30344         parameters and updated both callers.
30345         (sra_modify_expr): Removed parameter data.
30346         (sra_modify_function_body): New function.
30347         (perform_intra_sra): Call sra_modify_function_body to modify the
30348         function body.
30349         (replace_removed_params_ssa_names): Parameter data changed into
30350         adjustments vector.
30351         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
30352         changed the parameter dont_convert to convert with the opposite
30353         meaning.
30354         (sra_ipa_modify_assign): Parameter data changed into adjustments
30355         vector, return value changed to bool.
30356         (ipa_sra_modify_function_body): New function.
30357         (sra_ipa_reset_debug_stmts): Updated a comment.
30358         (modify_function): Use ipa_sra_modify_function_body to modify function
30359         body.
30360
30361 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30362
30363         PR middle-end/43671
30364         * alias.c (true_dependence): Handle the same VALUE in x and mem.
30365         (canon_true_dependence): Likewise.
30366         (write_dependence_p): Likewise.
30367
30368 2010-05-04  Jan Hubicka  <jh@suse.cz>
30369
30370         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
30371         * cgraphbuild.c: Include ipa-utils.h
30372         (record_reference_ctx): New struct.
30373         (record_reference): Simplify to work on initializers; not statements.
30374         (mark_address, mark_load, mark_store): New.
30375         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30376         walk PHI nodes too.
30377         (record_references_in_initializer): Update use of record_reference.
30378         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30379         walk PHI nodes too.
30380
30381 2010-05-04  Jan Hubicka  <jh@suse.cz>
30382
30383         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
30384         node will be removed anyway.
30385         (lto_varpool_replace_node): Allow also unanalyzed nodes;
30386         relink aliases of node into prevailing node.
30387         * varpool.c (varpool_remove_node): Remove aliases properly;
30388         when removing node, remove all its aliases too; remove DECL_INITIAL
30389         of removed node; ggc_free the varpool node.
30390
30391 2010-05-04  Richard Guenther  <rguenther@suse.de>
30392
30393         PR tree-optimization/43879
30394         * tree-ssa-structalias.c (alias_get_name): Use
30395         DECL_ASSEMBLER_NAME if available.
30396         (create_function_info_for): Return the varinfo node.
30397         (ipa_pta_execute): Associate same-body aliases and extra names
30398         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
30399
30400 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
30401
30402         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
30403
30404 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
30405
30406         PR bootstrap/43964
30407         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
30408         only if HONOR_REG_ALLOC_ORDER is not defined.
30409
30410 2010-05-04  Richard Guenther  <rguenther@suse.de>
30411
30412         PR tree-optimization/43949
30413         * tree-vrp.c (extract_range_from_binary_expr): Only handle
30414         TRUNC_MOD_EXPR.
30415
30416 2010-04-26  Jason Merrill  <jason@redhat.com>
30417
30418         * c.opt (-fstrict-enums): New.
30419         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
30420
30421 2010-05-03  David Ung  <davidu@mips.com>
30422             James E. Wilson  <wilson@codesourcery.com>
30423
30424         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
30425         emit the trap instruction before the divide for TUNE_74K.
30426
30427 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
30428
30429         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
30430         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
30431         based on the above, for new target hook.
30432
30433         * hooks.c (hook_bool_mode_true): New generic hook.
30434         * hooks.h (hook_bool_mode_true): Add prototype.
30435
30436         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
30437         target hook.
30438         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
30439         target hook, set to hook_bool_mode_false.
30440         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
30441         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
30442         with targetm.small_register_classes_for_mode_p.
30443         (find_reusable_reload): Likewise.
30444         (combine_reloads): Likewise.
30445         * reload1.c (reload_as_needed): Likewise.
30446         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
30447         * ifcvt.c (noce_process_if_block, check_cond_move_block,
30448         dead_or_predicable): Likewise.
30449         * regmove.c (optimize_reg_copy_1): Likewise.
30450         * calls.c (prepare_call_address): Likewise.
30451         (precompute_register_parameters): Likewise.
30452
30453         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
30454         hook definition.
30455         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
30456         implementation of the hook that considers all register classes
30457         small except for SH64.
30458         (sh_override_options): Use the new hook.
30459         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
30460         Add prototype.
30461
30462         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
30463         hook definition.
30464         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
30465         implementation of the hook that considers all register classes
30466         small for THUMB1.
30467         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
30468         Add prototype.
30469
30470         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
30471         hook definition.
30472         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
30473         implementation of the hook that considers all register classes
30474         small for MIPS16.
30475         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
30476         Add prototype.
30477
30478         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
30479         hook definition.
30480         * config/m32c/m32c.h: Likewise.
30481         * config/pdp11/pdp11.h: Likewise.
30482         * config/avr/avr.h: Likewise.
30483         * config/xtensa/xtensa.h: Likewise.
30484         * config/m68hc11/m68hc11.h: Likewise.
30485         * config/mn10300/mn10300.h: Likewise.
30486         * config/mcore/mcore.h: Likewise.
30487         * config/h8300/h8300.h: Likewise.
30488         * config/bfin/bfin.h: Likewise.
30489
30490         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
30491         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
30492
30493 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
30494
30495         * double-int.h (tree_to_double_int): Remove macro.
30496         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
30497         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30498         (tree_to_double_int): New function.
30499         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
30500         Move ...
30501         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30502
30503 2010-05-03  Richard Guenther  <rguenther@suse.de>
30504
30505         PR tree-optimization/43971
30506         * tree-ssa-structalias.c (get_constraint_for_1): Fix
30507         constraints in the !flag_delete_null_pointer_checks case.
30508
30509 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
30510
30511         PR debug/43972
30512         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
30513         result mode matches original rtl mode.
30514
30515 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
30516
30517         PR target/43888
30518         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
30519
30520 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30521
30522         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
30523         when processing flag options.
30524
30525 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30526
30527         * gcov-iov.c (main): Change format string placeholder
30528         from %#08x to 0x%08x.
30529         * genchecksum.c (dosum): Change format string placeholder
30530         from %#02x to 0x%02x.
30531
30532 2010-05-02  Richard Guenther  <rguenther@suse.de>
30533
30534         PR tree-optimization/43879
30535         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
30536
30537 2010-05-02  Bruno Haible  <bruno@clisp.org>
30538
30539         * doc/extend.texi (Function Attributes): Fix a typo.
30540
30541 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30542
30543         Revert:
30544         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
30545         placeholder from 0x%x to %#x.
30546         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30547         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
30548         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
30549         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
30550         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
30551         * config/i386/i386.c (ix86_target_string): Ditto.
30552         * config/i386/i386.c (output_pic_addr_const): Ditto.
30553         (print_operand): Ditto.
30554
30555 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30556
30557         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
30558         placeholder from 0x%x to %#x.
30559         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
30560         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
30561         (ASM_OUTPUT_DEBUG_DATA): Ditto.
30562         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
30563         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
30564         * optc-gen.awk: Ditto.
30565         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
30566         (HOST_WIDE_INT_PRINT_HEX): Ditto.
30567         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
30568         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30569
30570 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30571
30572         * target.h (struct calls): Add function_value_regno_p field.
30573         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
30574         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
30575         * targhooks.c (default_function_value_regno_p): New function.
30576         * targhooks.h (default_function_value_regno_p): Declare function.
30577         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
30578         * builtins.c. (apply_result_size): (Ditto.).
30579         * combine.c. (likely_spilled_retval_p): (Ditto.).
30580         * mode-switching.c. Include 'target.h'.
30581         (create_pre_exit): Use function_value_regno_p hook.
30582         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
30583         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
30584         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
30585
30586         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
30587         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
30588         (ix86_function_value_regno_p): Declare as static, change argument
30589         type to const unsigned int.
30590         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
30591
30592 2010-05-01  Richard Guenther  <rguenther@suse.de>
30593
30594         PR tree-optimization/43949
30595         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
30596         types.
30597         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
30598
30599 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30600
30601         * rtl.h (CONST_DOUBLE_P): Define.
30602         (rtx_to_double_int): Declare.
30603         * emit-rtl.c (rtx_to_double_int): New function.
30604         * dwarf2out.c (insert_double): New function.
30605         (loc_descriptor, add_const_value_attribute): Clean up, use
30606         rtx_to_double_int and insert_double functions.
30607
30608 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
30609
30610         * doc/extend.texi (Inline): Add missing return keyword to examples.
30611         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
30612         "command-line".
30613
30614 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
30615
30616         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
30617         the variable part of the offset as well.  Use highest_pow2_factor for
30618         all alignment checks.
30619
30620 2010-04-30  Richard Guenther  <rguenther@suse.de>
30621
30622         PR tree-optimization/43879
30623         * tree-ssa-structalias.c (type_could_have_pointers): Functions
30624         can have pointers.
30625
30626 2010-04-30  Jan Hubicka  <jh@suse.cz>
30627
30628         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
30629         varpool.
30630         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
30631
30632 2010-04-30  Jan Hubicka  <jh@suse.cz>
30633
30634         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
30635         New.
30636         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
30637         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
30638         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
30639         cgraph_node_set_needs_ltrans_p): Remove.
30640
30641 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30642
30643         * sdbout.c: Include vec.h, do not include varray.h.
30644         (deferred_global_decls, sdbout_global_decl,
30645         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
30646         * toplev.c: Do not include varray.h.
30647         (dump_memory_report): Do not dump VARRAY statistics.
30648         * gengtype.c (open_base_file): Ignore varray.h.
30649         * Makefile.in: Update for abovementioned changes.
30650         Remove all traces of varray.c and varray.h.
30651         * varray.c: Remove file.
30652         * varray.h: Remove file.
30653
30654 2010-04-30  Jan Hubicka  <jh@suse.cz>
30655
30656         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
30657         references.
30658
30659 2010-04-30  Jan Hubicka  <jh@suse.cz>
30660
30661         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
30662         needed.
30663
30664 2010-04-30  Richard Guenther  <rguenther@suse.de>
30665
30666         * tree-ssa-structalias.c (get_constraint_for_1): Generate
30667         constraints for CONSTRUCTOR.
30668
30669 2010-04-30  Richard Guenther  <rguenther@suse.de>
30670
30671         PR lto/43946
30672         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
30673         first after all lowering passes.
30674
30675 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30676
30677         * toplev.c: Include varray.h for statistics dumping.
30678         * tree.h: Do not declare varray_head_tag.
30679         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
30680         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
30681         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
30682         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
30683         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
30684         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
30685         c-common.c, c-common.h, reg-stack.c, basic-block.h,
30686         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
30687         include varray.h.
30688         * Makefile.in: Update for abovementioned changes.
30689
30690 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
30691
30692         PR debug/43942
30693         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
30694
30695 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
30696
30697         * config/picochip/picochip.c (picochip_legitimize_address): Define.
30698         Use this function to do machine-specific conversion.
30699         (picochip_legitimize_reload_address): Likewise.
30700         (picochip_legitimate_address_p): Check valid base register only if
30701         strict.
30702         (picochip_check_conditional_copy): Check for modw only if opnd is
30703         register.
30704         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
30705         to call the function in c.
30706         * config/picochip/picochip-protos.h
30707         (picochip_legitimize_reload_address): Define.
30708         * config/picochip/picochip.md (supported_compare1): Define.
30709
30710 2010-04-30  Jan Hubicka  <jh@suse.cz>
30711
30712         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
30713         (cgraph_global_info): Remove inlined.
30714         (LTO_cgraph_tag_names): Remove.
30715         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
30716         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
30717         simplify cgraph tags and document.
30718         (lto_output_node): Use only LTO_cgraph_unavail_node and
30719         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
30720         for_functions_valid, global info, process and output flags.
30721         (input_overwrite_node): Initialize estimated stack size and
30722         estimated growth.  Do not read flags we no longer store.
30723         (input_node): Likewise do not read info no longer stored.
30724         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
30725         flag.
30726
30727 2010-04-30  Richard Guenther  <rguenther@suse.de>
30728
30729         PR tree-optimization/43879
30730         * tree-ssa-structalias.c (get_constraint_for_1): Properly
30731         handle non-zero initializers.
30732
30733 2010-04-30  Richard Guenther  <rguenther@suse.de>
30734
30735         * builtins.c (fold_builtin_1): Delete free (0).
30736
30737 2010-04-29  Jan Hubicka  <jh@suse.cz>
30738
30739         * gengtype.c (open_base_files): Add lto-streamer.h
30740         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
30741         (pass_ipa_cp): GGC collect.
30742         * toplev. (compile_file): Do not output symbols.
30743         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
30744         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
30745         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
30746         * lto-section-in.c: Include ggc.h
30747         (lto_new_in_decl_state): Alloc in GGC.
30748         (lto_delete_in_decl_state): Likewise.
30749         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
30750         Collect.
30751
30752 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30753
30754         PR target/42895
30755         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
30756         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
30757         (HONOR_REG_ALLOC_ORDER): Describe new macro.
30758         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
30759         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
30760         account only if HONOR_REG_ALLOC_ORDER is not defined.
30761         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
30762         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
30763
30764 2010-04-29  Jon Grant  <04@jguk.org>
30765
30766         * collect2.c (vflag): Change type from int to bool.
30767         (debug): Likewise.
30768         (helpflag): New global bool.
30769         (main): Set vflag and debug with boolean, not integer truth values.
30770         Accept new "--help" option and output usage text if found.
30771         * collect2.h (vflag): Update prototype.
30772         (debug): Likewise.
30773
30774 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30775
30776         PR bootstrap/43936
30777         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
30778
30779 2010-04-29  Richard Guenther  <rguenther@suse.de>
30780
30781         PR bootstrap/43935
30782         * plugin.h (invoke_plugin_callbacks): Annotate arguments
30783         with ATTRIBUTE_UNUSED.
30784
30785 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30786
30787         PR target/43921
30788         * config/i386/i386.c (get_some_local_dynamic_name): Replace
30789         INSN_P with NONDEBUG_INSN_P.
30790         (distance_non_agu_define): Likewise.
30791         (distance_agu_use): Likewise.
30792
30793 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30794
30795         From Dominique d'Humieres  <dominiq@lps.ens.fr>
30796         PR bootstrap/43858
30797         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
30798         test_set.
30799
30800 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
30801
30802         * plugin.h (invoke_plugin_callbacks): New inline function.
30803         * plugin.c (flag_plugin_added): New global flag.
30804         (add_new_plugin): Initialize above flag.
30805         (invoke_plugin_callbacks): Rename to ...
30806         (invoke_plugin_callbacks_full): ... this.
30807
30808 2010-04-28  Jan Hubicka  <jh@suse.cz>
30809
30810         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
30811         (lto_varpool_replace_node): New.
30812         (lto_symtab_resolve_symbols): Resolve varpool nodes.
30813         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
30814         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
30815         * cgraph.h (varpool_node_ptr): New type.
30816         (varpool_node_ptr): New vector.
30817         (varpool_node_set_def): New structure.
30818         (varpool_node_set): New type.
30819         (varpool_node_set): New vector.
30820         (varpool_node_set_element_def): New structure.
30821         (varpool_node_set_element, const_varpool_node_set_element): New types.
30822         (varpool_node_set_iterator): New type.
30823         (varpool_node): Add prev pointers, add used_from_other_partition,
30824         in_other_partition.
30825         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
30826         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
30827         varpool_get_node, varpool_remove_node): Declare.
30828         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
30829         varpool_node_set_size): New inlines.
30830         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
30831         * tree-pass.h (varpool_node_set_def): Forward declare.
30832         (ipa_opt_pass_d): Summary writting takes vnode sets too.
30833         (ipa_write_optimization_summaries): Update prototype.
30834         * ipa-cp.c (ipcp_write_summary): Update.
30835         * ipa-reference.c (ipa_reference_write_summary): Update.
30836         * lto-cgraph.c (lto_output_varpool_node): New static function.
30837         (output_varpool): New function.
30838         (input_varpool_node): New static function.
30839         (input_varpool_1): New function.
30840         (input_cgraph): Input varpool.
30841         * ipa-pure-const.c (pure_const_write_summary): Update.
30842         * lto-streamer-out.c (lto_output): Update, output varpool too.
30843         (write_global_stream): Kill WPA hack.
30844         (produce_asm_for_decls): Update.
30845         (output_alias_pair_p): Handle variables.
30846         (output_unreferenced_globals): Output only needed partition of varpool.
30847         * ipa-inline.c (inline_write_summary): Update.
30848         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
30849         cgraph.
30850         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
30851         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
30852         varpool_node_set_new, varpool_node_set_add,
30853         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
30854         debug_varpool_node_set): New functions.
30855         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
30856         (execute_one_pass): Process new decls too.
30857         (ipa_write_summaries_2): Pass around vsets.
30858         (ipa_write_summaries_1): Likewise.
30859         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
30860         to add.
30861         (ipa_write_optimization_summaries_1): Pass around vsets.
30862         (ipa_write_optimization_summaries): Likewise.
30863         * varpool.c (varpool_get_node): New.
30864         (varpool_node): Update doubly linked lists.
30865         (varpool_remove_node): New.
30866         (dump_varpool_node): More dumping.
30867         (varpool_enqueue_needed_node): Update doubly linked lists.
30868         (decide_is_variable_needed): Kill ltrans hack.
30869         (varpool_finalize_decl): Kill lto hack.
30870         (varpool_assemble_decl): Skip decls in other partitions.
30871         (varpool_assemble_pending_decls): Update doubly linkes lists.
30872         (varpool_empty_needed_queue): Likewise.
30873         (varpool_extra_name_alias): Likewise.
30874         * lto-streamer.c (lto_get_section_name): Add vars section.
30875         * lto-streamer.h (lto_section_type): Update.
30876         (output_varpool, input_varpool): Declare.
30877
30878 2010-04-28  Mike Stump  <mikestump@comcast.net>
30879
30880         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
30881
30882 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30883
30884         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
30885         record or union type with RECORD_OR_UNION_TYPE_P predicate.
30886         (lto_input_ts_type_tree_pointers): Likewise.
30887         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
30888         (lto_output_ts_type_tree_pointers): Likewise.
30889
30890 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30891
30892         Uniquization of constants at the Tree level
30893         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
30894         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
30895         bit to the end.
30896         (tree_output_constant_def): Declare.
30897         * gimplify.c (gimplify_init_constructor): When using block copy, first
30898         uniquize the constant constructor on the RHS.
30899         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
30900         DECL_IN_CONSTANT_POOL flag.
30901         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
30902         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
30903         constant pool.
30904         (assemble_variable): Deal with symbols belonging to the tree constant
30905         pool.
30906         (get_constant_section): Add ALIGN parameter and simplify.
30907         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
30908         (assemble_constant_contents): Use the expression of the VAR_DECL.
30909         (output_constant_def_contents): Use the alignment of the VAR_DECL.
30910         (tree_output_constant_def): New global function.
30911         (mark_constant): Use the expression of the VAR_DECL.
30912         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
30913         its expression.
30914         (output_object_block): Likewise and assemble the expression.
30915
30916 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30917
30918         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
30919         hash_tree, eq_tree): New tree hash table.
30920         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
30921         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
30922         lto_orig_address_remove): Reimplement.
30923
30924 2010-04-28  Xinliang David Li  <davidxl@google.com>
30925
30926         PR c/42643
30927         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
30928         (compute_uninit_opnds_pos): New function.
30929         (is_non_loop_exit_postdominating): New function.
30930         (compute_control_dep_chain): New function.
30931         (find_pdom): New function.
30932         (convert_control_dep_chain_into_preds): New function.
30933         (find_predicates): New function.
30934         (find_control_equiv_block): New function.
30935         (collect_phi_def_edges): New function.
30936         (find_def_preds): New function.
30937         (find_dom): New function.
30938         (dump_predicates): New function.
30939         (get_cmp_code): New function.
30940         (is_value_included_in): New function.
30941         (find_matching_predicate_in_rest_chains): New function.
30942         (use_pred_not_overlap_with_undef_path_pred): New function.
30943         (is_use_properly_guarded): New function.
30944         (normalize_cond_1): New function.
30945         (is_and_or_or): New function.
30946         (normalize_cond): New function.
30947         (is_gcond_subset_of): New function.
30948         (is_subset_of_any): New function.
30949         (is_or_set_subset_of): New function.
30950         (is_and_set_subset_of): New function.
30951         (is_norm_cond_subset_of): New function.
30952         (is_pred_expr_subset_of): New function.
30953         (is_pred_chain_subset_of): New function.
30954         (is_included_in): New function.
30955         (is_superset_of): New function.
30956         (find_uninit_use): New function.
30957         (warn_uninitialized_phi): New function.
30958         (compute_possibly_undefined_names): New function.
30959         (ssa_undefined_value_p): New function.
30960         (execute_late_warn_uninitialized): New function.
30961         * tree-ssa.c (ssa_undefined_value_p): Removed.
30962         (warn_uninit): Changed to extern.
30963         (warn_uninitialized_phi): Removed.
30964         (warn_uninitialized_vars): Changed to extern.
30965         (execute_late_warn_uninitialized): Removed
30966         * tree-flow.h: Add new prototypes.
30967         * timevar.def: Add new time variable.
30968         * Makefile.in: Add new build file.
30969
30970 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
30971
30972         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
30973         type if available.
30974
30975 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30976
30977         PR target/22224
30978         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
30979
30980 2010-04-28  Martin Jambor  <mjambor@suse.cz>
30981
30982         * cgraph.h (struct cgraph_node): New field indirect_calls.
30983         (struct cgraph_indirect_call_info): New type.
30984         (struct cgraph_edge): Removed field indirect_call. New fields
30985         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
30986         (cgraph_create_indirect_edge): Declare.
30987         (cgraph_make_edge_direct): Likewise.
30988         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
30989         * ipa-prop.h (struct ipa_param_call_note): Removed.
30990         (struct ipa_node_params): Removed field param_calls.
30991         (ipa_create_all_structures_for_iinln): Declare.
30992         * cgraph.c: Described indirect edges and uids in initial comment.
30993         (cgraph_add_edge_to_call_site_hash): New function.
30994         (cgraph_edge): Search also among the indirect edges, use
30995         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
30996         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
30997         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
30998         site hash.
30999         (initialize_inline_failed): Assign a reason to indirect edges.
31000         (cgraph_create_edge_1): New function.
31001         (cgraph_create_edge): Moved some functionality to
31002         cgraph_create_edge_1.
31003         (cgraph_create_indirect_edge): New function.
31004         (cgraph_edge_remove_callee): Add an assert checking for
31005         non-indirectness.
31006         (cgraph_edge_remove_caller): Special-case indirect edges.
31007         (cgraph_remove_edge): Likewise.
31008         (cgraph_set_edge_callee): New function.
31009         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
31010         (cgraph_make_edge_direct): New function.
31011         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
31012         the declaration of the call statement matches.
31013         (cgraph_node_remove_callees): Special-case indirect edges.
31014         (cgraph_clone_edge): Likewise.
31015         (cgraph_clone_node): Clone also the indirect edges.
31016         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
31017         indirect_call, dump count of indirect_calls edges.
31018         * ipa-prop.c (iinlining_processed_edges): New variable.
31019         (ipa_note_param_call): Create indirect edges instead of
31020         creating notes.  New parameter node.
31021         (ipa_analyze_call_uses): New parameter node, pass it on to
31022         ipa_note_param_call.
31023         (ipa_analyze_stmt_uses): Likewise.
31024         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
31025         (print_edge_addition_message): Work on edges rather than on notes.
31026         (update_call_notes_after_inlining): Likewise, renamed to
31027         update_indirect_edges_after_inlining.
31028         (ipa_create_all_structures_for_iinln): New function.
31029         (ipa_free_node_params_substructures): Do not free notes.
31030         (ipa_edge_duplication_hook): Propagate bits within
31031         iinlining_processed_edges bitmap.
31032         (ipa_node_duplication_hook): Do not duplicate notes.
31033         (free_all_ipa_structures_after_ipa_cp): Renamed to
31034         ipa_free_all_structures_after_ipa_cp.
31035         (free_all_ipa_structures_after_iinln): Renamed to
31036         ipa_free_all_structures_after_iinln.
31037         (ipa_write_param_call_note): Removed.
31038         (ipa_read_param_call_note): Removed.
31039         (ipa_write_indirect_edge_info): New function.
31040         (ipa_read_indirect_edge_info): Likewise.
31041         (ipa_write_node_info): Do not stream notes, do stream information
31042         in indirect edges.
31043         (ipa_read_node_info): Likewise.
31044         (lto_ipa_fixup_call_notes): Removed.
31045         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
31046         * ipa-inline.c (pass_ipa_inline): Likewise.
31047         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
31048         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
31049         * tree-inline.c (copy_bb): Removed an unnecessary double check for
31050         is_gimple_call.
31051         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
31052         edges.
31053         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
31054         (output_cgraph): Stream also indirect edges.
31055         (lto_output_edge): Added capability to stream indirect edges.
31056         (input_edge): Likewise.
31057         (input_cgraph_1): Likewise.
31058         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
31059         of indirect edges.
31060
31061 2010-04-28  Richard Guenther  <rguenther@suse.de>
31062
31063         PR tree-optimization/43879
31064         PR tree-optimization/43909
31065         * tree-ssa-structalias.c (struct variable_info): Add
31066         only_restrict_pointers flag.
31067         (new_var_info): Initialize it.  Increment stats.total_vars here.
31068         (create_function_info_for): Do not increment stats.total_vars here.
31069         (get_function_part_constraint): Fix build with C++.
31070         (insert_into_field_list): Remove.
31071         (push_fields_onto_fieldstack): Properly merge fields.
31072         (create_variable_info_for): Split and simplify.
31073         (create_variable_info_for_1): New piece.
31074         (intra_create_variable_infos): Properly make restrict constraints
31075         from parameters.
31076
31077 2010-04-28  Richard Guenther  <rguenther@suse.de>
31078
31079         PR c++/43880
31080         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
31081
31082 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31083             Jan Hubicka  <hubicka@ucw.cz>
31084
31085         * doc/invoke.texi (-Wsuggest-attribute=const,
31086         -Wsuggest-attribute=pure): Document.
31087         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
31088         (function_always_visible_to_compiler_p,
31089         suggest_attribute, warn_function_pure, warn_function_const):
31090         New functions.
31091         (check_call): Improve debug info.
31092         (analyze_function): Do not check availability.
31093         (add_new_function): Check availability.
31094         (propagate): Output warnings.
31095         (skip_function_for_local_pure_const): New function.
31096         (local_pure_const): Use it; output warnings.
31097         * common.opt (Wsuggest-attribute=const,
31098         Wsuggest-attribute=pure): New.
31099
31100 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31101
31102         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
31103         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
31104         or DW_CFA_def_cfa_offset{,_sf}.
31105
31106 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31107
31108         * tree.h: Fix truncated long macros.
31109
31110 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
31111
31112         * collect2.c (TARGET_64BIT): Redefine to target's default.
31113         * tlink.c: Likewise.
31114         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
31115         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
31116         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
31117         for underscoring __USER_LABEL_PREFIX__.
31118         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
31119         (SUB_LINK_ENTRY32): New.
31120         (SUB_LINK_ENTRY64): New.
31121         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
31122         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
31123         (SUB_LINK_ENTRY64): New.
31124         (SUB_LINK_ENTRY): New.
31125         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
31126         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
31127         x64 target is choosen.
31128         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
31129         * configure: Regenerated.
31130         * configure.ac (leading-mingw64-underscores): Option added.
31131
31132 2010-04-27  Jan Hubicka  <jh@suse.cz>
31133
31134         * doc/invoke.texi (-fipa-profile): Document.
31135         * opts.c (decode_options): Enable ipa-profile at -O1.
31136         * timevar.def (TV_IPA_PROFILE): Define.
31137         * common.opt (fipa-profile): Add.
31138         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
31139         flag for clones.
31140         (cgraph_propagate_frequency): Handle only local ones.
31141         * tree-pass.h (pass_ipa_profile): Declare.
31142         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
31143         (pass_ipa_profile): Use TV_IPA_PROFILE.
31144         * ipa.c (ipa_profile): New function.
31145         (gate_ipa_profile): Likewise.
31146         (pass_ipa_profile): New global variable.
31147         * passes.c (pass_ipa_profile): New.
31148
31149 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
31150
31151         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
31152
31153 2010-04-27  Martin Jambor  <mjambor@suse.cz>
31154
31155         PR middle-end/43812
31156         * ipa.c (dissolve_same_comdat_group_list): New function.
31157         (function_and_variable_visibility): Call
31158         dissolve_same_comdat_group_list when comdat group contains external or
31159         newly local nodes.
31160         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
31161         lists are circular and that they contain only DECL_ONE_ONLY nodes.
31162
31163 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31164
31165         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
31166         (const_hash_1) <VECTOR_CST>: New case.
31167         (compare_constant) <VECTOR_CST>: Likewise.
31168         <ADDR_EXPR>: Deal with LABEL_REFs.
31169         (copy_constant) <VECTOR_CST>: New case.
31170
31171 2010-04-27  Jan Hubicka  <jh@suse.cz>
31172
31173         * cgraph.c (cgraph_propagate_frequency): New function.
31174         * cgraph.h (cgraph_propagate_frequency): Declare.
31175         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
31176         cgraph_propagate_frequency.
31177
31178 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31179
31180         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
31181
31182 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
31183
31184         PR target/40657
31185         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
31186         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
31187         here to determine which regs to push and how much stack to reserve.
31188
31189 2010-04-27  Jie Zhang  <jie@codesourcery.com>
31190
31191         * doc/gimple.texi (gimple_statement_with_ops): Remove
31192         addresses_taken field.
31193         (gimple_statement_with_memory_ops): Likewise.
31194
31195 2010-04-27  Jan Hubicka  <jh@suse.cz>
31196
31197         * tree-inline.c (eni_inlining_weights): Remove.
31198         (estimate_num_insns): Special case more builtins.
31199
31200 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
31201
31202         PR c/32207
31203         * c-typeck.c (build_binary_op): Move forward check for comparison
31204         pointer with null pointer constant and adjust the diagnostic message.
31205
31206 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
31207
31208         PR lto/42776
31209         * configure.ac (gcc_cv_as_section_has_align): Set if installed
31210         binutils supports extended .section directive needed by LTO, or
31211         warn if older binutils found.
31212         (LTO_BINARY_READER): New AC_SUBST'd variable.
31213         (LTO_USE_LIBELF): Likewise.
31214         * config.gcc (lto_binary_reader): New target-specific configure
31215         variable.
31216         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
31217         (LTO_USE_LIBELF): Likewise.
31218         * configure: Regenerate.
31219
31220         * collect2.c (is_elf): Rename from this ...
31221         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
31222          object files in addition to ELF-formatted ones.
31223         (scan_prog_file): Caller updated.  Also allow for LTO info marker
31224         symbol to be prefixed or not by an extra underscore.
31225
31226         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
31227         * config/i386/winnt.c: Also #include lto-streamer.h
31228         (i386_pe_asm_named_section): Specify 1-byte section alignment for
31229         LTO named sections.
31230         (i386_pe_asm_output_aligned_decl_common): Add comment.
31231         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
31232
31233 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
31234
31235         PR target/43889
31236         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
31237         Add missing earlyclobber for second alternative.
31238
31239 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
31240
31241         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
31242         bits for artificial defs at the top of the block.
31243         * fwprop.c (single_def_use_enter_block): Don't call it.
31244
31245 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
31246
31247         PR 43715
31248         * configure.ac: Use "$gcc_cv_nm -g" on darwin
31249         instead of "$gcc_cv_objdump -T".
31250         Use "-undefined dynamic_lookup" on darwin.
31251         * configure: Regenerate.
31252
31253 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
31254
31255         PR c/43893
31256         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
31257
31258 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31259
31260         * c-parser.c (struct c_token): Move location field up.
31261         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
31262         (struct c_declspecs): Convert typespec_word, storage_class, and
31263         default_int_p into bitfields.
31264         (struct c_declarator): Move loc field up.
31265
31266 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31267
31268         * cfgloop.h (struct loop): Move can_be_parallel field up.
31269         * ipa-prop.h (struct ip_node_params): Move bitfields up.
31270         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
31271         down.
31272         (struct iv_cand): Convert pos field into a bitfield.
31273         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
31274         field up.
31275         (struct _stmt_vec_info): Shuffle fields for better packing.
31276
31277 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31278
31279         * varasm.c (IN_NAMED_SECTION): Remove guard.
31280         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
31281         (IN_NAMED_SECTION_P): ...this.
31282         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
31283         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
31284
31285 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31286
31287         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
31288         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
31289         of shadowing it.  Fix comments.
31290
31291 2010-04-26  Jan Hubicka  <jh@suse.cz>
31292
31293         * cgraph.c (cgraph_create_node): Set node frequency to normal.
31294         (cgraph_clone_node): Copy function frequency.
31295         * cgraph.h (node_frequency): New enum
31296         (struct cgraph_node): Add.
31297         * final.c (rest_of_clean_state): Update.
31298         * lto-cgraph.c (lto_output_node): Output node frequency.
31299         (input_overwrite_node): Input node frequency.
31300         * tre-ssa-loop-ivopts (computation_cost): Update.
31301         * lto-streamer-out.c (output_function): Do not output function
31302         frequency.
31303         * predict.c (maybe_hot_frequency_p): Update and handle functions
31304         executed once.
31305         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
31306         attribute lookup.
31307         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
31308         (compute_function_frequency): Set noreturn functions to be executed
31309         once.
31310         (choose_function_section): Update.
31311         * lto-streamer-in.c (input_function): Do not input function frequency.
31312         * function.c (allocate_struct_function): Do not initialize function
31313         frequency.
31314         * function.h (function_frequency): Remove.
31315         (struct function): Remove function frequency.
31316         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
31317         (try_update): Update.
31318         * tree-inline.c (initialize_cfun): Do not update function frequency.
31319         * passes.c (pass_init_dump_file): Update.
31320         * i386.c (ix86_compute_frame_layout): Update.
31321         (ix86_pad_returns): Update.
31322
31323 2010-04-26  Jie Zhang  <jie@codesourcery.com>
31324
31325         PR tree-optimization/43833
31326         * tree-vrp.c (range_int_cst_p): New.
31327         (range_int_cst_singleton_p): New.
31328         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
31329         when both operands are constants.  Use range_int_cst_p in
31330         BIT_IOR_EXPR case.
31331
31332 2010-04-26  Jan Hubicka  <jh@suse.cz>
31333
31334         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
31335
31336 2010-04-26  Richard Guenther  <rguenther@suse.de>
31337
31338         PR lto/43080
31339         * gimple.c (gimple_decl_printable_name): Deal gracefully
31340         with a NULL DECL_NAME.
31341
31342 2010-04-26  Richard Guenther  <rguenther@suse.de>
31343
31344         PR lto/42425
31345         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
31346         if emitting debug information and it is either a function
31347         or a namespace decl.
31348
31349 2010-04-26  Ira Rosen  <irar@il.ibm.com>
31350
31351         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
31352         determine if the statement is vectorizable, and a macro to access it.
31353         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31354         Skip statements that can't be vectorized. If the analysis fails,
31355         mark the statement as unvectorizable if vectorizing basic block.
31356         (vect_compute_data_refs_alignment): Likewise.
31357         (vect_verify_datarefs_alignment): Skip statements marked as
31358         unvectorizable. Add print.
31359         (vect_analyze_group_access): Skip statements that can't be
31360         vectorized. If the analysis fails, mark the statement as
31361         unvectorizable if vectorizing basic block.
31362         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
31363         * tree-vect-stmts.c (vectorizable_store): Fix the number of
31364         generated stmts for SLP.
31365         (new_stmt_vec_info): Initialize the new field.
31366         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
31367         statements marked as unvectorizable.
31368
31369 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
31370
31371         * c-common.c (flag_isoc1x): New.
31372         (flag_isoc99): Update comment.
31373         * c-common.h (flag_isoc1x): New.
31374         (flag_isoc99): Update comment.
31375         * c-cppbuiltin.c (builtin_define_float_constants): Also define
31376         __<type>_DECIMAL_DIG__.
31377         * c-opts.c (set_std_c1x): New.
31378         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
31379         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
31380         * c.opt (-std=c1x, -std=gnu1x): New options.
31381         * doc/cpp.texi: Mention -std=c1x.
31382         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
31383         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
31384         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
31385         * doc/standards.texi: Mention C1X.
31386         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
31387         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
31388         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
31389         Define for C1X.
31390
31391 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
31392
31393         * config/i386/gmon-sol2.c (_mcleanup): Change format string
31394         placeholder from 0x%x to %#x.
31395         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
31396         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
31397         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
31398         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
31399         * config/i386/i386.c (ix86_target_string): Ditto.
31400         (output_pic_addr_const): Ditto.
31401         (print_operand): Ditto.
31402
31403 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
31404
31405         * combine.c (find_split_point): Add third argument.  Use it
31406         to find nested multiply-accumulate instructions.  Adjust calls.
31407         (try_combine): Adjust call to find_split_point.
31408
31409 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
31410
31411         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
31412
31413 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
31414
31415         PR tree-optimization/41442
31416         * fold-const.c (merge_truthop_with_opposite_arm): New function.
31417         (fold_binary_loc): Call it.
31418
31419 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31420
31421         * toplev.c (general_init): Set default for fdiagnostics-show-option.
31422         * opts.c (common_handle_option): Allow disabling it.
31423         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
31424
31425 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
31426
31427         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
31428         between modes if both types are integral.
31429
31430 2010-04-23  Richard Guenther  <rguenther@suse.de>
31431
31432         PR tree-optimization/43572
31433         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
31434
31435 2010-04-23  Richard Guenther  <rguenther@suse.de>
31436
31437         PR lto/43455
31438         * tree-inline.c (tree_can_inline_p): Also check compatibility
31439         of return types.
31440
31441 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31442
31443         PR tree-optimization/43846
31444         * tree-sra.c (struct access): New flag grp_assignment_read.
31445         (build_accesses_from_assign): Set grp_assignment_read.
31446         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
31447         (enum mark_read_status): New type.
31448         (analyze_access_subtree): Propagate grp_assignment_read, create
31449         accesses also if both direct_read and root->grp_assignment_read.
31450
31451 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31452
31453         PR middle-end/43835
31454         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
31455         function does not have type attributes.
31456
31457 2010-04-23  Richard Guenther  <rguenther@suse.de>
31458
31459         PR lto/42653
31460         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
31461         of FUNCTION_DECLs.
31462
31463 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31464
31465         * sese.h (create_if_region_on_edge): Remove.
31466
31467         * sese.c (create_if_region_on_edge): Make static.
31468
31469         * tree-inline.c: Do not include ggc.h.
31470
31471         * expr.c: Do not include ggc.h.
31472
31473         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
31474         dependencies.
31475
31476 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
31477
31478         PR target/43744
31479         * config/sh/sh.c (find_barrier): Don't emit a constant pool
31480         in the middle of insns for casesi_worker_2.
31481
31482 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
31483
31484         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
31485
31486 2010-04-22  Ira Rosen  <irar@il.ibm.com>
31487
31488         PR tree-optimization/43842
31489         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
31490         loop unrolling in update of exit phis. Fix comment.
31491         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
31492         least two reduction statements in the loop before starting SLP
31493         analysis.
31494
31495 2010-04-22  Nick Clifton  <nickc@redhat.com>
31496
31497         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
31498
31499 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
31500
31501         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
31502         to simplify a + ~a.
31503
31504 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31505
31506         * tree-parloops.c (loop_parallel_p): New argument
31507         parloop_obstack.  Pass it down.
31508         (parallelize_loops): New variable parloop_obstack.  Initialize it,
31509         pass it down, free it.
31510
31511         * tree-loop-linear.c (linear_transform_loops): Pass down
31512         lambda_obstack.
31513
31514         * tree-data-ref.h (lambda_compute_access_matrices): New argument
31515         of type struct obstack *.
31516
31517         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
31518         scratch_obstack.  Initialize it, pass down, free it.
31519
31520         * lambda.h (lambda_loop_new): Remove.
31521         (lambda_matrix_new, lambda_matrix_inverse)
31522         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
31523         argument of type struct obstack *.
31524
31525         * lambda-trans.c (lambda_trans_matrix_new): New argument
31526         lambda_obstack.  Pass it down, use obstack allocation for ret.
31527         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
31528         it down.
31529
31530         * lambda-mat.c (lambda_matrix_get_column)
31531         (lambda_matrix_project_to_null): Remove.
31532         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
31533         allocation for mat.
31534         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
31535         lambda_obstack.
31536
31537         * lambda-code.c (lambda_loop_new): New function.
31538         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
31539         (lambda_compute_auxillary_space, lambda_compute_target_space)
31540         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
31541         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
31542         (build_access_matrix): New argument lambda_obstack.  Use obstack
31543         allocation for am.
31544         (lambda_compute_step_signs, lambda_compute_access_matrices): New
31545         argument lambda_obstack.  Pass it down.
31546
31547 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31548
31549         * optabs.h (expand_widening_mult): Declare.
31550
31551 2010-04-22  Richard Guenther  <rguenther@suse.de>
31552
31553         PR tree-optimization/43845
31554         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
31555         lookup the CALL_EXPR function and arguments.
31556
31557 2010-04-22  Nick Clifton  <nickc@redhat.com>
31558
31559         * config/stormy16/stormy16.c
31560         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
31561         * config/stormy16/stormy16.h: Tidy up formatting.
31562         (DONT_USE_BUILTIN_SETJMP): Remove definition.
31563         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
31564         (ineqbranchsi): Delete pattern.
31565         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
31566         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
31567         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
31568         stormy16-lib2-ucmpsi2.c.
31569
31570 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31571
31572         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
31573         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
31574         extra set merge_set_noclobber, and use it to relax the final test
31575         slightly.
31576         * df.h (df_simulate_find_noclobber_defs): Declare.
31577         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
31578         conditional defs.
31579         (df_simulate_find_noclobber_defs): New function.
31580
31581 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
31582
31583         * config/i386/i386.md: Use {} around multi-line preparation statements.
31584
31585 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31586
31587         * c-tree.h (push_init_level, pop_init_level, set_init_index)
31588         (process_init_element): New argument of type struct obstack *.
31589
31590         * c-typeck.c (push_init_level, pop_init_level, set_designator)
31591         (set_init_index, set_init_label, set_nonincremental_init)
31592         (set_nonincremental_init_from_string, find_init_member)
31593         (output_init_element, output_pending_init_elements)
31594         (process_init_element): New argument braced_init_obstack.  Pass it
31595         down.
31596         (push_range_stack, add_pending_init): New argument
31597         braced_init_obstack.  Use obstack allocation.
31598
31599         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
31600         braced_init_obstack.  Pass it down.
31601         (c_parser_braced_init): New variables ret, braced_init_obstack.
31602         Initialize obstack, pass it down and finally free it.
31603
31604 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31605
31606         PR middle-end/29274
31607         * tree-pass.h (pass_optimize_widening_mul): Declare.
31608         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
31609         gate_optimize_widening_mul): New static functions.
31610         (pass_optimize_widening_mul): New.
31611         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
31612         <case MULT_EXPR>: Remove support for widening multiplies.
31613         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
31614         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
31615         simplify_gen_unary rather than directly building extensions.
31616         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
31617         WIDEN_MULT_EXPR.
31618         * expmed.c (expand_widening_mult): New function.
31619         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
31620
31621 2010-04-21  Jan Hubicka  <jh@suse.cz>
31622
31623         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
31624         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
31625         * lto-wpa-fixup.c: Remove.
31626         * Makefile.in (lto-wpa-fixup.o): Remove.
31627         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
31628         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
31629         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
31630
31631 2010-04-21  Jan Hubicka  <jh@suse.cz>
31632
31633         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
31634         add write_optimization_summary, read_optimization_summary.
31635         (ipa_write_summaries_of_cgraph_node_set): Remove.
31636         (ipa_write_optimization_summaries): Declare.
31637         (ipa_read_optimization_summaries): Declare.
31638         * ipa-cp.c (pass_ipa_cp): Update.
31639         * ipa-reference.c (pass_ipa_reference): Update.
31640         * ipa-pure-const.c (pass_ipa_pure_const): Update.
31641         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
31642         Update.
31643         * ipa-inline.c (pass_ipa_inline): Update.
31644         * ipa.c (pass_ipa_whole_program): Update.
31645         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
31646         * passes.c (ipa_write_summaries_1): Do not test wpa.
31647         (ipa_write_optimization_summaries_1): New.
31648         (ipa_write_optimization_summaries): New.
31649         (ipa_read_summaries): Do not test ltrans.
31650         (ipa_read_optimization_summaries_1): New.
31651         (ipa_read_optimization_summaries): New.
31652
31653 2010-04-21  Jan Hubicka  <jh@suse.cz>
31654
31655         * lto-cgraph.c (lto_output_node): Do not output comdat groups
31656         for boundary nodes.
31657         (output_cgraph): Do not arrange comdat groups for boundary nodes.
31658
31659 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31660
31661         PR debug/40040
31662         * dwarf2out.c (add_name_and_src_coords_attributes): Add
31663         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
31664
31665 2010-04-21  Jan Hubicka  <jh@suse.cz>
31666
31667         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
31668
31669 2010-04-21  Jan Hubicka  <jh@suse.cz>
31670
31671         * varpool.c (decide_is_variable_needed): Variable is always needed
31672         during ltrans.
31673
31674 2010-04-21  Jan Hubicka  <jh@suse.cz>
31675
31676         * opts.c (decode_options): Enable pure-const pass for whopr.
31677
31678 2010-04-21  Jan Hubicka  <jh@suse.cz>
31679
31680         * cgraph.c (dump_cgraph_node): Dump also assembler name.
31681         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
31682         at WPA dumping.
31683         (cgraph_decide_inlining): Do not expect callee to be removed in all
31684         cases.
31685
31686 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
31687
31688         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
31689
31690 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31691
31692         * config/i386/i386.md (x86_shrd): Add athlon_decode and
31693         amdfam10_decode attributes.
31694
31695 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31696
31697         PR middle-end/43570
31698         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
31699         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
31700         (lower_copyprivate_clauses): Use private var in outer
31701         context instead of original var.  Make sure the types
31702         are correct for VLAs.
31703
31704 2010-04-21  Richard Guenther  <rguenther@suse.de>
31705
31706         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
31707         to non-pointer objects.
31708
31709 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31710
31711         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
31712         last chain entry if it starts with the still current label.
31713         (add_location_or_const_value_attribute): Check that
31714         loc_list->first->next is NULL instead of comparing ->first with ->last.
31715         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
31716         to add_var_loc_to_decl.
31717
31718         * dwarf2out.c (output_call_frame_info): For dw_cie_version
31719         >= 4 add also address size and segment size fields into CIE header.
31720
31721         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
31722         long as address size is the same as sizeof (void *) and
31723         segment size is 0.
31724         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
31725         address size or segment size is unexpected, return DW_EH_PE_omit.
31726         (classify_object_over_fdes): If get_cie_encoding returned
31727         DW_EH_PE_omit, return -1.
31728         (init_object): If classify_object_over_fdes returned -1,
31729         pretend there were no FDEs at all.
31730
31731 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31732
31733         * config/i386/i386.md (bswap<mode>2): Macroize expander from
31734         bswap{si,di}2 using SWI48 mode iterator.
31735         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
31736         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
31737         set modrm attribute of bswap insn to 0 and remove length attribute.
31738         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
31739         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
31740         set mode attribute to <MODE> and remove length attribute.
31741
31742 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
31743
31744         PR rtl-optimization/43520
31745         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
31746         zero available registers.
31747
31748 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31749
31750         * builtins.c (fold_builtin_cproj): Fold more cases.
31751
31752 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31753
31754         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
31755         (fold_builtin_1): Fold builtin cproj.
31756         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
31757         Use ATTR_CONST_NOTHROW_LIST.
31758
31759 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
31760
31761         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
31762         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
31763         ffsi2_no_cmove for !TARGET_CMOVE.
31764         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
31765         (ffssi2): Remove expander.
31766         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
31767         mode iterator.
31768         (ctz<mode>2): Ditto from ctz{si,di}2.
31769         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
31770         mode iterator.
31771         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
31772         mode iterator.
31773
31774 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31775
31776         * dwarf2out.c (AT_linkage_name): Define.
31777         (clone_as_declaration): Handle DW_AT_linkage_name.
31778         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
31779         of DW_AT_MIPS_linkage_name.
31780         (move_linkage_attr): Likewise.
31781         (dwarf2out_finish): Likewise.
31782
31783 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
31784
31785         PR middle-end/41952
31786         * fold-const.c (fold_comparison): New folding rule.
31787
31788 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
31789
31790         * double-int.h (double_int_setbit): Declare.
31791         * double-int.c (double_int_setbit): New function.
31792         * rtl.h (immed_double_int_const): Declare.
31793         * emit-rtl.c (immed_double_int_const): New function.
31794         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
31795         and immed_double_int_const functions.
31796         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
31797         expand_copysign_bit): (Ditto.).
31798         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
31799         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
31800         * dojump.c (prefer_and_bit_test): (Ditto.).
31801         * expr.c (convert_modes, reduce_to_bit_field_precision,
31802         const_vector_from_tree): (Ditto.).
31803         * expmed.c (mask_rtx, lshift_value): (Ditto.).
31804
31805 2010-04-20  Jan Hubicka  <jh@suse.cz>
31806
31807         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
31808         (dump_cgraph_node): Dump new flags.
31809         * cgraph.h (struct cgraph_node): Add flags
31810         reachable_from_other_partition and in_other_partition.
31811         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
31812         other partition can not be removed.
31813         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
31814         the other partition must be output; silence sanity checking on
31815         leaking functions bodies from other paritition.
31816         * lto-cgraph.c (reachable_from_other_partition_p): New function.
31817         (lto_output_node): Output new flags; do not sanity check that inline
31818         clones are output; drop lto_forced_extern_inline_p code; do not mock
31819         visibility flags at partition boundaries.
31820         (add_node_to): New function.
31821         (output_cgraph): Use it to sort functions so masters appear before
31822         clones.
31823         (input_overwrite_node): Input new flags.
31824         * passes.c (ipa_write_summaries): Do not call
31825         lto_new_extern_inline_states.
31826         * lto-section-out.c (forced_extern_inline,
31827         lto_new_extern_inline_states lto_delete_extern_inline_states,
31828         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
31829         * lto-streamer.h (lto_new_extern_inline_states,
31830         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
31831         lto_forced_extern_inline_p): Kill.
31832
31833 2010-04-20  Richard Guenther  <rguenther@suse.de>
31834
31835         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
31836         from vars that can have pointers.
31837         (process_constraint): Dump useless constraints.
31838
31839 2010-04-20  Richard Guenther  <rguenther@suse.de>
31840
31841         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
31842         (dump_sa_points_to_info): Remove asserts.
31843         (init_base_vars): nothing_id isn't an escape point nor does it
31844         have pointers.
31845
31846 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31847
31848         * tree.h (TYPE_REF_IS_RVALUE): Define.
31849         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
31850         should_move_die_to_comdat, prune_unused_types_walk): Handle
31851         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
31852         (modified_type_die, gen_reference_type_die): Emit
31853         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
31854         if TYPE_REF_IS_RVALUE and -gdwarf-4.
31855
31856 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31857
31858         PR target/43635
31859         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
31860         calls for -fpic -m31 if they have been sibcall optimized.
31861
31862 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
31863
31864         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
31865         ar.lc fixed and call-used.
31866
31867         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
31868
31869 2010-04-19  Jan Hubicka  <jh@suse.cz>
31870
31871         * opts.c (decode_options): Disable whpr incompatible passes.
31872         * lto/lto.c (lto_1_to_1_map): Skip clones.
31873         (read_cgraph_and_symbols): Do not mark everything as needed.
31874         (do_whole_program_analysis): Do map only after optimizing;
31875         set proper cgraph_state; use passmanager.
31876
31877 2010-04-19  DJ Delorie  <dj@redhat.com>
31878
31879         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
31880         POINTER_PLUS_EXPR and fix them.
31881
31882 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
31883
31884         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
31885         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
31886         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
31887         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
31888         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
31889         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
31890         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
31891         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
31892         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
31893         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
31894         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
31895
31896 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
31897
31898         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
31899         (check_cond_move_block): Likewise.
31900         (cond_move_process_if_block): Likewise.
31901         (noce_find_if_block): Improve formatting.
31902         (find_if_header): Pass 0 to memset and tweak conditions.
31903         (cond_exec_find_if_block): Fix long lines and tweak conditions.
31904
31905 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31906
31907         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
31908         for -gdwarf-4.
31909
31910         PR middle-end/43337
31911         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
31912         with non-local decl doesn't need chain.
31913
31914 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
31915
31916         * ira-color.c (allocno_reload_assign): Avoid accumulating
31917         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
31918
31919 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31920
31921         * gimple.h (create_tmp_reg): Declare.
31922         * gimplify.c (create_tmp_reg): New function.
31923         (gimplify_return_expr): Use create_tmp_reg.
31924         (gimplify_omp_atomic): Likewise.
31925         (gimple_regimplify_operands): Likewise.
31926         * tree-dfa.c (make_rename_temp): Likewise.
31927         * tree-predcom.c (predcom_tmp_var): Likewise.
31928         (reassociate_to_the_same_stmt): Likewise.
31929         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
31930         (get_replaced_param_substitute): Likewise.
31931         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
31932         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
31933         * tree-ssa-pre.c (get_representative_for): Likewise.
31934         (create_expression_by_pieces): Likewise.
31935         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
31936         (create_tailcall_accumulator): Likewise.
31937
31938 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31939
31940         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
31941         new_stmt.
31942         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
31943
31944 2010-04-19  Richard Guenther  <rguenther@suse.de>
31945
31946         PR tree-optimization/43796
31947         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
31948         from SCEV in the lattice.
31949         (vrp_visit_phi_node): Dump change.
31950
31951 2010-04-19  Richard Guenther  <rguenther@suse.de>
31952
31953         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
31954         * configure: Re-generated.
31955
31956 2010-04-19  Richard Guenther  <rguenther@suse.de>
31957
31958         PR tree-optimization/43783
31959         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
31960         constant ARRAY_REF operands two and three if possible.
31961
31962 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
31963
31964         PR target/43766
31965         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
31966
31967 2010-04-19  Jie Zhang  <jie@codesourcery.com>
31968
31969         PR target/43662
31970         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
31971
31972 2010-04-19  Ira Rosen  <irar@il.ibm.com>
31973
31974         PR tree-optimization/37027
31975         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
31976         and macro to access it.
31977         (vectorizable_reduction): Add argument.
31978         (vect_get_slp_defs): Likewise.
31979         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
31980         statements for possible use in SLP.
31981         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
31982         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
31983         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
31984         add new argument.
31985         (vectorizable_reduction): Likewise.
31986         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
31987         vect_get_slp_defs.
31988         (vectorizable_type_demotion, vectorizable_type_promotion,
31989         vectorizable_store): Likewise.
31990         (vect_analyze_stmt): Update call to vectorizable_reduction.
31991         (vect_transform_stmt): Likewise.
31992         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
31993         (vect_build_slp_tree): Fix indentation. Check that there are no loads
31994         from different interleaving chains in same node.
31995         (vect_slp_rearrange_stmts): New function.
31996         (vect_supported_load_permutation_p): Allow load permutations for
31997         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
31998         inside SLP nodes if necessary.
31999         (vect_analyze_slp_instance): Handle reductions.
32000         (vect_analyze_slp): Try to build SLP instances originating from groups
32001         of reductions.
32002         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
32003         (vect_get_constant_vectors): Create initial vectors for reductions
32004         according to reduction code. Add new argument.
32005         (vect_get_slp_defs): Add new argument, pass it to
32006         vect_get_constant_vectors.
32007         (vect_schedule_slp_instance): Remove SLP tree root statements.
32008
32009 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
32010
32011         * tree.h (ENUM_IS_SCOPED): Define.
32012         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
32013         for ENUM_IS_SCOPED enums.
32014
32015 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
32016
32017         * fold-const.c (fold_comparison): Use ssizetype.
32018         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
32019         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
32020         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
32021         * tree-object-size.c (compute_object_sizes): Use size_type_node.
32022
32023         * tree.h (initialize_sizetypes): Remove parameter.
32024         (build_common_tree_nodes): Remove second parameter.
32025         * stor-layout.c (initialize_sizetypes): Remove parameter.
32026         Always create an unsigned type.
32027         (set_sizetype): Assert that the passed type is unsigned and simplify.
32028         * tree.c (build_common_tree_nodes): Remove second parameter.
32029         Adjust call to initialize_sizetypes.
32030         * c-decl.c (c_init_decl_processing): Remove second argument in call to
32031         build_common_tree_nodes.
32032
32033 2010-04-18  Matthias Klose  <doko@ubuntu.com>
32034
32035         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
32036
32037 2010-04-18  Ira Rosen  <irar@il.ibm.com>
32038
32039         PR tree-optimization/43771
32040         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
32041         load permutation doesn't have gaps.
32042
32043 2010-04-18  Jan Hubicka  <jh@suse.cz>
32044
32045         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
32046         (sse_prologue_save_insn expander): Use new pattern.
32047         (sse_prologue_save_insn1): New pattern and splitter.
32048         (sse_prologue_save_insn): Update to deal also with 64bit aligned
32049         blocks.
32050         * i386.c (setup_incoming_varargs_64): Do not compute jump
32051         destination here.
32052         (ix86_gimplify_va_arg): Update alignment needed.
32053         (ix86_local_alignment): Do not align all local arrays to 128bit.
32054
32055 2010-04-17  Jan Hubicka  <jh@suse.cz>
32056
32057         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
32058
32059 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32060
32061         * arm.md (negdi2): Remove redundant code to force values into a
32062         register.
32063
32064 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32065
32066         * arm/bpabi.S: Add EABI alignment attributes to objects.
32067         * arm/bpabi-v6m.S: Likewise.
32068         * arm/crti.asm: Likewise.
32069         * arm/crtn.asm: Likewise.
32070         * arm/lib1funcs.asm: Likewise.
32071         * arm/libunwind.S: Likewise.
32072
32073 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32074
32075         * arm-protos.h (tune_params): New structure.
32076         * arm.c (current_tune): New variable.
32077         (arm_constant_limit): Delete.
32078         (struct processors): Add pointer to the tune parameters.
32079         (arm_slowmul_tune): New tuning option.
32080         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
32081         (all_cores): Adjust to pick up the tuning model.
32082         (arm_constant_limit): New function.
32083         (arm_override_options): Select the appropriate tuning model.  Delete
32084         initialization of arm_const_limit.
32085         (arm_split_constant): Use the new constant-limit model.
32086         (arm_rtx_costs): Pick up the current tuning model.
32087         * arm.md (is_strongarm, is_xscale): Delete.
32088         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
32089         for Xscale variant architectures.
32090         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
32091
32092 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32093
32094         * config/arm/arm.c (arm_gen_constant): Remove unused variable
32095         can_shift.
32096         (arm_rtx_costs_1): Remove unused variable extra_cost.
32097         (arm_unwind_emit_set): Use variable offset.
32098         (thumb1_output_casesi): Remove unused variable flags.
32099
32100 2010-04-16  Jeff Law  <law@redhat.com>
32101
32102         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
32103         needing assignment rather than doing a two-phase assignment.  Remove
32104         unused variable 'm'.
32105
32106 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32107
32108         PR bootstrap/43767
32109         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
32110
32111 2010-04-16  Doug Kwan  <dougkwan@google.com>
32112
32113         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
32114         (next_operand_entry_id): New static variable.
32115         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
32116         (add_to_ops_vec): Assigned unique ID to operand entry.
32117         (struct oecount_s): New field ID.
32118         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
32119         (undistribute_ops_list): Assign unique IDs to oecounts.
32120         (init_reassoc): reset next_operand_entry_id.
32121
32122 2010-04-16  Doug Kwan  <dougkwan@google.com>
32123
32124         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
32125         missing left parenthesis.
32126
32127 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
32128
32129         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
32130         *btdi_rex64 using SWI48 mode iterator.
32131         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
32132         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
32133         *jcc_btdi_mask_rex64.
32134
32135 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
32136
32137         * double-int.h (tree_to_double_int): Convert to macro.
32138         * double-int.c (tree_to_double_int): Remove.
32139
32140 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32141
32142         PR debug/43762
32143         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
32144         with want_address 2 and in case a single element list might be
32145         possible, call it again with want_address 0.
32146
32147 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32148
32149         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
32150         case 'W' print operands for HI mode.
32151         * config/h8300/h8300.h (Y0, Y2) : New constraints.
32152         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
32153         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
32154         * config/h8300/predicate.md (bit_register_indirect_operand): New.
32155
32156         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
32157
32158         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
32159         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
32160         #xx:3 and #xx:4 mode.
32161
32162         * config/h8300/h8300.md (inverted load with HImode dest): Add
32163         support for H8300SX.
32164
32165         * config/h8300/predicate.md (bit_operand): Allow immediate values that
32166         satisfy 'U' constraint.
32167
32168 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32169
32170         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
32171         * configure: Regenerate.
32172         * config.in: Regenerate.
32173         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
32174         works.
32175
32176 2010-04-16  Richard Guenther  <rguenther@suse.de>
32177
32178         * tree.h (struct tree_decl_minimal): Move pt_uid ...
32179         (struct tree_decl_common): ... here.
32180         (DECL_PT_UID): Adjust.
32181         (SET_DECL_PT_UID): Likewise.
32182         (DECL_PT_UID_SET_P): Likewise.
32183
32184 2010-04-16  Richard Guenther  <rguenther@suse.de>
32185
32186         PR tree-optimization/43572
32187         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
32188         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
32189         * tree-flow.h (is_call_clobbered): Remove.
32190         * tree-flow-inline.h (is_call_clobbered): Likewise.
32191         * tree-dfa.c (dump_variable): Do not dump call clobber state.
32192         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
32193         (execute_return_slot_opt): Adjust.
32194         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
32195         check for call clobbered vars here.
32196         (find_tail_calls): Move tailcall verification to the
32197         proper place.
32198
32199 2010-04-16  Diego Novillo  <dnovillo@google.com>
32200
32201         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
32202
32203 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32204
32205         PR target/40603
32206         * config/arm/arm.md (cbranchqi4): New pattern.
32207         * config/arm/predicates.md (const0_operand,
32208         cbranchqi4_comparison_operator): New predicates.
32209
32210 2010-04-16  Richard Guenther  <rguenther@suse.de>
32211
32212         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
32213         (dump_gimple_stmt): Likewise.
32214
32215 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32216
32217         * recog.h (struct recog_data): New field is_operator.
32218         (struct insn_operand_data): New field is_operator.
32219         * recog.c (extract_insn): Set recog_data.is_operator.
32220         * genoutput.c (output_operand_data): Emit code to set the
32221         is_operator field.
32222         * reload.c (find_reloads): Use it rather than testing for an
32223         empty constraint string.
32224
32225         PR target/41514
32226         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
32227         If the previous insn is a cbranchsi4_insn with the same arguments,
32228         omit the compare instruction.
32229
32230         * config/arm/arm.md (addsi3_cbranch): If destination is a high
32231         register, inputs must be low registers and we need a low register
32232         scratch.  Handle alternative 2 like alternative 3.
32233
32234 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32235
32236         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
32237         don't call get_addr on both.  If one expression is a VALUE and
32238         the other a REG, check VALUE's locs if the REG isn't among them.
32239
32240 2010-04-16  Christian Bruel  <christian.bruel@st.com>
32241
32242         * config/sh/sh.h (sh_frame_pointer_required): New function.
32243         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
32244         (flag_omit_frame_pointer) Set.
32245         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
32246         (rounded_frame_size): Adjust size with outgoing_args_size.
32247         (sh_set_return_address): Must return from stack pointer.
32248         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
32249         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
32250         (ACCUMULATE_OUTGOING_ARGS): Define.
32251         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
32252         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
32253
32254 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32255
32256         PR target/43471
32257         * config/sh/sh.c (sh_legitimize_reload_address): Use
32258         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
32259         Remove a unneeded check for offset_base.
32260
32261 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
32262
32263         * configure: Regenerated.
32264
32265 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32266
32267         * config/s390/s390.c (s390_call_save_register_used): Switch back
32268         to HARD_REGNO_NREGS.
32269
32270 2010-04-15  Richard Guenther  <rguenther@suse.de>
32271
32272         * alias.c (alias_set_subset_of): Handle alias-set zero
32273         child properly.
32274
32275 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
32276             Julian Brown  <julian@codesourcery.com>
32277
32278         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
32279         alternatives according to use of high and low regs.
32280         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
32281         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
32282         optimizing for size on Thumb-2.
32283
32284 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
32285
32286         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
32287
32288 2010-04-15  Richard Guenther  <rguenther@suse.de>
32289
32290         * tree-ssa-structalias.c (struct variable_info): Add
32291         is_fn_info flag.
32292         (new_var_info): Initialize it.
32293         (dump_constraints): Support printing last added constraints.
32294         (debug_constraints): Adjust.
32295         (dump_constraint_graph): Likewise.
32296         (make_heapvar_for): Check for NULL cfun.
32297         (get_function_part_constraint): New function.
32298         (get_fi_for_callee): Likewise.
32299         (find_func_aliases): Properly implement IPA PTA constraints.
32300         (process_ipa_clobber): New function.
32301         (find_func_clobbers): Likewise.
32302         (insert_into_field_list_sorted): Remove.
32303         (create_function_info_for): Properly allocate vars for IPA mode.
32304         Do not use insert_into_field_list_sorted.
32305         (create_variable_info_for): Properly generate constraints for
32306         global vars in IPA mode.
32307         (dump_solution_for_var): Always dump the solution.
32308         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
32309         (find_what_var_points_to): Adjust.
32310         (pt_solution_set): Change.
32311         (pt_solution_ior_into): New function.
32312         (pt_solution_empty_p): Export.
32313         (pt_solution_includes_global): Adjust.
32314         (pt_solution_includes_1): Likewise.
32315         (pt_solutions_intersect_1): Likewise.
32316         (dump_sa_points_to_info): Check some invariants.
32317         (solve_constraints): Move constraint dumping ...
32318         (compute_points_to_sets): ... here.
32319         (ipa_pta_execute): ... and here.
32320         (compute_may_aliases): Do not re-compute points-to info
32321         locally if IPA info is available.
32322         (ipa_escaped_pt): New global var.
32323         (ipa_pta_execute): Properly implement IPA PTA.
32324         * tree-into-ssa.c (dump_decl_set): Support dumping
32325         decls not in referenced-vars.
32326         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
32327         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
32328         (dump_points_to_solution): Likewise.
32329         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
32330         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
32331         (remap_gimple_stmt): Reset call clobber/use information if necessary.
32332         (copy_decl_to_var): Copy DECL_PT_UID.
32333         (copy_result_decl_to_var): Likewise.
32334         * tree.c (make_node_stat): Initialize DECL_PT_UID.
32335         (copy_node_stat): Copy it.
32336         * tree.h (DECL_PT_UID): New macro.
32337         (SET_DECL_PT_UID): Likewise.
32338         (DECL_PT_UID_SET_P): Likewise.
32339         (struct tree_decl_minimal): Add pt_uid member.
32340         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
32341         (pt_solution_empty_p): Declare.
32342         (pt_solution_set): Adjust.
32343         (ipa_escaped_pt): Declare.
32344         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
32345         * gimple-pretty-print.c (pp_points_to_solution): New function.
32346         (dump_gimple_call): Dump call clobber/use information.
32347         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
32348         * tree-pass.h (TDF_ALIAS): New dump option.
32349         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
32350         * doc/invoke.texi (-fipa-pta): Update documentation.
32351
32352 2010-04-15  Richard Guenther  <rguenther@suse.de>
32353
32354         * Makefile.in (OBJS-common): Add gimple-fold.o.
32355         (gimple-fold.o): New rule.
32356         * tree.h (maybe_fold_offset_to_reference,
32357         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
32358         prototypes ...
32359         * gimple.h: ... here.
32360         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
32361         may_propagate_address_into_dereference): Move prototypes ...
32362         * gimple.h: ... here.
32363         * tree-ssa-ccp.c (get_symbol_constant_value,
32364         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
32365         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
32366         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
32367         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
32368         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
32369         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
32370         gimplify_and_update_call_from_tree): Move ...
32371         * gimple-fold.c: ... here.  New file.
32372         (ccp_fold_builtin): Rename to ...
32373         (gimple_fold_builtin): ... this.
32374         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
32375
32376 2010-04-15  Richard Guenther  <rguenther@suse.de>
32377
32378         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
32379         fit_double_type, force_fit_type_double, add_double_with_sign,
32380         neg_double, mul_double_with_sign, lshift_double, rshift_double,
32381         lrotate_double, rrotate_double, div_and_round_double): Move ...
32382         * double-int.c: ... here.
32383         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
32384         add_double, neg_double, mul_double_with_sign, mul_double,
32385         lshift_double, rshift_double, lrotate_double, rrotate_double,
32386         div_and_round_double): Move prototypes ...
32387         * double-int.h: ... here.
32388
32389 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
32390
32391         PR target/43742
32392         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
32393         matching constraints to ensure inputs match the output.
32394
32395 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32396
32397         PR target/43742
32398         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
32399         in an input-only operand.
32400
32401 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
32402
32403         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
32404         (double_int_not, double_int_lshift, double_int_rshift): Declare.
32405         (double_int_negative_p): Convert to static inline function.
32406         * double-int.c (double_int_lshift, double_int_lshift): New functions.
32407         (double_int_negative_p): Remove.
32408         * tree.h (lshift_double, rshift_double):
32409         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
32410         * fold-const.c (fold_convert_const_int_from_real,
32411         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
32412         (lshift_double): Change type of arith argument to bool.
32413         (rshift_double): Change type of arith argument to bool. Correct
32414         comment.
32415         * expmed.c (mask_rtx, lshift_value): (Ditto.).
32416
32417 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
32418
32419         PR target/21803
32420         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
32421         at the start and end of the then/else blocks, and omit them from the
32422         conversion.
32423         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
32424         argument; all callers changed.  Pass zero to old_insns_match_p instead.
32425         (flow_find_head_matching_sequence): New function.
32426         (old_insns_match_p): Check REG_EH_REGION notes for calls.
32427         * basic-block.h (flow_find_cross_jump,
32428         flow_find_head_matching_sequence): Declare functions.
32429
32430 2010-04-14  Jason Merrill  <jason@redhat.com>
32431
32432         PR c++/36625
32433         * c-common.c (attribute_takes_identifier_p): New fn.
32434         * c-common.h: Declare it.
32435
32436 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32437
32438         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
32439         splitter condition.
32440         (*udivmod<mode>4): Ditto.
32441
32442 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32443
32444         * config/i386/i386.md (maxmin_int): Rename code attribute from
32445         maxminiprefix and update all users.
32446         (maxmin_float): Ditto from maxminfprefix.
32447         (logic): Ditto from logicprefix.
32448         (absneg_mnemonic): Ditto from absnegprefix.
32449         * config/i386/mmx.md: Update all users of maxminiprefix,
32450         maxminfprefix and logicprefix for rename.
32451         * config/i386/sse.md: Ditto.
32452         * config/i386/sync.md (sync_<code><mode>): Update for
32453         logicprefix rename.
32454
32455 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32456
32457         PR 42966
32458         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
32459         warnings converted to errors.
32460
32461 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32462
32463         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
32464         used insn_type variable.
32465         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
32466         to avoid set-but-not-used warning.
32467
32468 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32469
32470         * df-core.c (df_ref_debug): Change format string placeholder
32471         from 0x%x to %#x.
32472         * dwarf2asm.c (dw2_asm_output_data_raw,
32473         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
32474         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
32475         * dwarf2out.c (output_cfi, output_cfi_directive,
32476         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
32477         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
32478         Ditto.
32479         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
32480         * print-rtl.c (print_rtx): Ditto.
32481
32482 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
32483
32484         PR middle-end/42694
32485         * builtins.c (expand_builtin_pow_root): New function to expand pow
32486         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
32487         series of sqrt and cbrt calls under -ffast-math.
32488         (expand_builtin_pow): Call it.
32489
32490 2010-04-14  Michael Matz  <matz@suse.de>
32491
32492         PR tree-optimization/42963
32493         * tree-cfg.c (touched_switch_bbs): New static variable.
32494         (group_case_labels_stmt): New function broken out from ...
32495         (group_case_labels): ... here, use the above.
32496         (start_recording_case_labels): Allocate touched_switch_bbs.
32497         (end_recording_case_labels): Deallocate it, call
32498         group_case_labels_stmt.
32499         (gimple_redirect_edge_and_branch): Remember index of affected BB.
32500
32501 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32502
32503         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
32504         from insn template.
32505
32506 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32507
32508         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
32509
32510 2010-04-13  Jan Hubicka  <jh@suse.cz>
32511
32512         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
32513         of optimized out static functions.
32514         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
32515         cost computation.  Also sanity check for overflows.
32516         (update_caller_keys): Update cgraph_edge_badness call; properly
32517         update fibheap and sanity check that it is up to date.
32518         (add_new_edges_to_heap): Update cgraph_edge_badness.
32519         (cgraph_decide_inlining_of_small_function): Likewise;
32520         add sanity checking that badness in heap is up to date;
32521         improve dumping of reason; Update badness of calls to the
32522         offline copy of function currently inlined; dump badness
32523         of functions not inlined because of unit growth limits.
32524
32525 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32526
32527         PR middle-end/32628
32528         * c-common.c (pointer_int_sum): Disregard overflow that occured only
32529         because of sign-extension change when converting to sizetype here...
32530         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
32531
32532         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
32533         the folding to constants.  Remove redundant final conversion.
32534         (fold_binary) <associate>: Do not associate if the re-association of
32535         constants alone overflows.
32536         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
32537         to the end of the list.
32538         (multiple_of_p) <COND_EXPR>: New case.
32539
32540 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32541
32542         * opt-functions.awk (opt_sanitized_name): New.
32543         (opt_enum): New.
32544         * optc-gen.awk: Use it
32545         * opth-gen.awk: Use it.
32546
32547 2010-04-13  Martin Jambor  <mjambor@suse.cz>
32548
32549         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
32550         (sra_modify_assign): Delete stmts loading dead data even if racc has no
32551         children.  Call replace_uses_with_default_def_ssa_name to handle
32552         SSA_NAES on lhs.
32553
32554 2010-04-13  Michael Matz  <matz@suse.de>
32555
32556         PR middle-end/43730
32557         * builtins.c (expand_builtin_interclass_mathfn): Also create
32558         a register if the predicate doesn't match.
32559
32560 2010-04-13  Diego Novillo  <dnovillo@google.com>
32561
32562         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
32563         * c-pch.c: Include timevar.h.
32564         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
32565         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
32566         * ggc-common.c: Include timevar.h.
32567         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
32568         * timevar.def (TV_PCH_SAVE): Define.
32569         (TV_PCH_CPP_SAVE): Define.
32570         (TV_PCH_PTR_REALLOC): Define.
32571         (TV_PCH_PTR_SORT): Define.
32572         (TV_PCH_RESTORE): Define.
32573         (TV_PCH_CPP_RESTORE): Define.
32574
32575 2010-04-13  Michael Matz  <matz@suse.de>
32576
32577         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
32578         into MINUS_EXPRs.
32579         (can_reassociate_p): New function.
32580         (break_up_subtract_bb, reassociate_bb): Use it.
32581
32582 2010-04-13  Richard Guenther  <rguenther@suse.de>
32583
32584         PR bootstrap/43737
32585         * builtins.c (c_readstr): Fix assert.
32586
32587 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
32588
32589         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
32590         when generating cltd insn.
32591
32592         (*ashl<mode>3_1): Remove special handling for register operand 2.
32593         (*ashlsi3_1_zext): Ditto.
32594         (*ashlhi3_1): Ditto.
32595         (*ashlhi3_1_lea): Ditto.
32596         (*ashlqi3_1): Ditto.
32597         (*ashlqi3_1_lea): Ditto.
32598         (*<shiftrt_insn><mode>3_1): Ditto.
32599         (*<shiftrt_insn>si3_1_zext): Ditto.
32600         (*<shiftrt_insn>qi3_1_slp): Ditto.
32601         (*<rotate_insn><mode>3_1): Ditto.
32602         (*<rotate_insn>si3_1_zext): Ditto.
32603         (*<rotate_insn>qi3_1_slp): Ditto.
32604
32605 2010-04-13  Richard Guenther  <rguenther@suse.de>
32606
32607         * tree-ssa-structalias.c (callused_id): Remove.
32608         (call_stmt_vars): New.
32609         (get_call_vi): Likewise.
32610         (lookup_call_use_vi): Likewise.
32611         (lookup_call_clobber_vi): Likewise.
32612         (get_call_use_vi): Likewise.
32613         (get_call_clobber_vi): Likewise.
32614         (make_transitive_closure_constraints): Likewise.
32615         (handle_const_call): Adjust to do per-call call-used handling.
32616         (handle_pure_call): Likewise.
32617         (find_what_var_points_to): Remove general callused handling.
32618         (init_base_vars): Likewise.
32619         (init_alias_vars): Initialize call_stmt_vars.
32620         (compute_points_to_sets): Process call-used and call-clobbered
32621         vars for call statements.
32622         (delete_points_to_sets): Free call_stmt_vars.
32623
32624 2010-04-13  Richard Guenther  <rguenther@suse.de>
32625
32626         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
32627         Only add RW dependence for dependence distance zero.
32628         Adjust maximal vectorization factor according to dependences.
32629         Move alignment handling ...
32630         (vect_find_same_alignment_drs): ... here.  New function.
32631         (vect_analyze_data_ref_dependences): Adjust.
32632         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
32633         (vect_analyze_data_refs): Adjust minimal vectorization factor
32634         according to data references.
32635         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
32636         dependences before determining the vectorization factor.
32637         Analyze alignment after determining the vectorization factor.
32638         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
32639         dependences before alignment.
32640         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
32641         Adjust prototype.
32642         (vect_analyze_data_refs): Likewise.
32643         (MAX_VECTORIZATION_FACTOR): New define.
32644
32645 2010-04-13  Duncan Sands  <baldrick@free.fr>
32646
32647         * except.h (lang_eh_type_covers): Remove.
32648         * except.c (lang_eh_type_covers): Likewise.
32649
32650 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32651             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32652
32653         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
32654         * config/s390/s390.c: Replace UNTIS_PER_WORD with
32655         UNITS_PER_LONG where it is ABI relevant.
32656         (s390_return_addr_rtx): Likewise.
32657         (s390_back_chain_rtx): Likewise.
32658         (s390_frame_area): Likewise.
32659         (s390_frame_info): Likewise.
32660         (s390_initial_elimination_offset): Likewise.
32661         (save_gprs): Likewise.
32662         (s390_emit_prologue): Likewise.
32663         (s390_emit_epilogue): Likewise.
32664         (s390_function_arg_advance): Likewise.
32665         (s390_function_arg): Likewise.
32666         (s390_va_start): Likewise.
32667         (s390_gimplify_va_arg): Likewise.
32668         (s390_function_profiler): Likewise.
32669         (s390_optimize_prologue): Likewise.
32670         (s390_rtx_costs): Likewise.
32671         (s390_secondary_reload): Likewise.
32672         (s390_promote_function_mode): Likewise.
32673         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
32674         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
32675         registers available.
32676         (s390_unwind_word_mode): New function.
32677         (s390_function_value): Split 64 bit values into register pair if
32678         used as return value.
32679         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
32680         function call parameters.  Handle parallels.
32681         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
32682         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
32683         (DWARF_CIE_DATA_ALIGNMENT): New macro.
32684         (s390_expand_setmem): Remove unused variable src_addr.
32685         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
32686         deal with 64 bit registers.
32687         * config/s390/s390.h: Define __zarch__ predefined macro.
32688         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
32689         (UNITS_PER_LONG): New macro.
32690         * libjava/include/s390-signal.h: Define extended ucontext
32691         structure containing the upper halfs of the 64 bit registers.
32692
32693 2010-04-13  Simon Baldwin  <simonb@google.com>
32694
32695         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
32696
32697 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32698
32699         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
32700         rvalue on the RHS if the LHS is of a non-renamable type.
32701         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
32702
32703 2010-04-13  Matthias Klose  <doko@ubuntu.com>
32704
32705         * gcc.c (cc1_options): Handle -iplugindir before processing
32706         the cc1 spec. Only add -iplugindir once.
32707         (cpp_unique_options): Add -iplugindir option if -fplugin* options
32708         found.
32709         * common.opt (iplugindir): Remove `Separate' property, initialize.
32710         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
32711         option.
32712         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
32713         (distclean): Remove plugin dir.
32714         * doc/invoke.texi: Document -iplugindir.
32715
32716 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
32717
32718         * doc/plugins.texi (Loading Plugins): Document short
32719         -fplugin=foo option.
32720         (Plugin API): Mention default_plugin_dir_name function.
32721
32722         * gcc.c (find_file_spec_function): Add new declaration.
32723         (static_spec_func): Use it for "find-file".
32724         (find_file_spec_function): Add new function.
32725         (cc1_options): Add -iplugindir option if -fplugin* options found.
32726
32727         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
32728
32729         * plugin.c (add_new_plugin): Updated comment, and handle short
32730         plugin name.
32731         (default_plugin_dir_name): Added new function.
32732
32733         * common.opt (iplugindir): New option to set the plugin directory.
32734
32735 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
32736
32737         * config/i386/i386.md (any_rotate): New code iterator.
32738         (rotate_insn): New code attribute.
32739         (rotate): Ditto.
32740         (SWIM124): New mode iterator.
32741         (<rotate_insn>ti3): New expander.
32742         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
32743         any_rotate code iterator.
32744         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
32745         using any_rotate code iterator and SWIM124 mode iterator.
32746         (ix86_rotlti3): New insn_and_split pattern.
32747         (ix86_rotrti3): Ditto.
32748         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
32749         ix86_rotl{di,ti}3 patterns.
32750         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
32751         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
32752         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
32753         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
32754         code iterator and SWI mode iterator.
32755         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
32756         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
32757         code iterator.
32758         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
32759         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
32760         (bswap rotatert splitter): Add splitter.
32761         (bswap splitter): Macroize splitter using any_rotate code iterator.
32762         Add insn predicate to split only for TARGET_USE_XCHGB or when
32763         optimizing function for size.
32764
32765 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32766
32767         * config/pa/pa.c (emit_move_sequence): Remove use of
32768         deleted variable flag_argument_noalias.
32769
32770 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32771
32772         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
32773         configurations.
32774         Add to unsupported targets list.
32775         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
32776         sparc*-sun-solaris2.[567]* from target lists.
32777         * configure: Regenerate.
32778         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
32779         removal.
32780         Remove Solaris 7 patch references.
32781         (Specific, sparc-sun-solaris2.7): Removed.
32782         (sparc-sun-solaris2*): Update Solaris 7 example.
32783         (sparc64-*-solaris2*): Likewise.
32784
32785 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32786
32787         * config.build (alpha*-dec-osf4*): Remove.
32788         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
32789         of obsolete configurations.
32790         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
32791         support.
32792         * config/alpha/t-osf4: Renamed to ...
32793         * config/alpha/t-osf5: ... this.
32794         * config/alpha/osf.h: Renamed to ...
32795         * config/alpha/osf5.h: ... this.
32796         Merged old osf5.h contents.
32797         Update comments.
32798         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
32799         (EXTRA_SPECS): Removed.
32800         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
32801         reflect removal of Tru64 UNIX V4.0/V5.0 support.
32802         Document that.
32803
32804 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32805
32806         * doc/contrib.texi (Contributors, Rainer Orth): Update.
32807
32808 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
32809
32810         PR/43702
32811         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
32812         __thiscall convention.
32813
32814 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32815
32816         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
32817         orig_base.
32818         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
32819
32820 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32821
32822         * function.c (assign_parms_initialize_all): Add unused attribute
32823         to fntype.
32824
32825 2010-04-12  Richard Guenther  <rguenther@suse.de>
32826
32827         * gsstruct.def (GSS_CALL): New.
32828         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
32829         * gimple.h: Include tree-ssa-alias.h.
32830         (struct gimple_statement_call): New.
32831         (union gimple_statement_struct_d): Add gimple_call member.
32832         (gimple_call_reset_alias_info): Declare.
32833         (gimple_call_use_set): New function.
32834         (gimple_call_clobber_set): Likewise.
32835         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
32836         * gimple.c (gimple_call_reset_alias_info): New function.
32837         (gimple_build_call_1): Call it.
32838         * lto-streamer-in.c (input_gimple_stmt): Likewise.
32839         * tree-inline.c (remap_gimple_stmt): Likewise.
32840         (expand_call_inline): Remove callused handling.
32841         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
32842         * tree-dfa.c (dump_variable): Likewise.
32843         * tree-parloops.c (parallelize_loops): Likewise.
32844         * tree-ssa.c (init_tree_ssa): Likewise.
32845         (delete_tree_ssa): Likewise.
32846         * tree-flow-inline.h (is_call_used): Remove.
32847         * tree-flow.h (struct gimple_df): Remove callused member.
32848         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
32849         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
32850         (ref_maybe_used_by_call_p_1): Simplify.
32851         (call_may_clobber_ref_p_1): Likewise.
32852         * tree-ssa-structalias.c (compute_points_to_sets): Set
32853         the call stmt used and clobbered sets.
32854         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
32855         (find_tail_calls): Verify the tail call.
32856
32857 2010-04-12  Richard Guenther  <rguenther@suse.de>
32858
32859         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
32860         single-iteration always-inline inlining.
32861         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
32862         (cgraph_decide_inlining): Do not handle always-inline specially.
32863         (try_inline): Remove always-inline cycle detection special case.
32864         Do not recurse on always-inlines.
32865         (cgraph_early_inlining): Do not iterate if not optimizing.
32866         (cgraph_gate_early_inlining): remove.
32867         (pass_early_inline): Run unconditionally.
32868         (gate_cgraph_decide_inlining): New function.
32869         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
32870         not inlining or optimizing.
32871         (cgraph_decide_inlining_of_small_functions): Also consider
32872         always-inline functions.
32873         (cgraph_default_inline_p): Return true for nodes which should
32874         disregard inline limits.
32875         (estimate_function_body_sizes): Assume zero size and time for
32876         nodes which are marked as disregarding inline limits.
32877         (cgraph_decide_recursive_inlining): Do not perform recursive
32878         inlining on always-inline nodes.
32879
32880 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
32881
32882         PR bootstrap/43699
32883         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
32884         for exprs satisfying handled_component_p.
32885
32886 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
32887
32888         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
32889         non-constant aggregate elements.
32890
32891         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
32892         is a real initialization.
32893
32894 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
32895
32896         PR c/36774
32897         * c-decl.c (start_function): Move forward check for nested function.
32898
32899 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
32900
32901         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
32902         * config/sh/sh.c: Include reload.h.
32903         (sh_legitimize_reload_address): New.
32904         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
32905         sh_legitimize_reload_address.
32906
32907 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32908
32909         * config/sh/sh.md (*movqi_pop): New insn pattern.
32910         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
32911
32912 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32913
32914         * config/i386/i386.md (any_shiftrt): New code iterator.
32915         (shiftrt_insn): New code attribute.
32916         (shiftrt): Ditto.
32917         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
32918         using any_shiftrt code iterator.
32919         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
32920         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
32921         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
32922         pattern from corresponding peephole2 patterns.
32923         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
32924         using any_shiftrt code iterator.
32925         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
32926         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
32927         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
32928         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
32929         *{ashr,lshr}<mode>3_cmp_zext.
32930         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
32931
32932 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32933
32934         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
32935         scratch register.
32936         (*lshr<mode>3_cconly): Ditto.
32937
32938 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32939
32940         * config/i386/i386.md (lshr<mode>3): Macroize expander from
32941         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32942         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32943         pattern from *lshr{di,ti}3_1 and corresponding splitters using
32944         DWI mode iterator.
32945         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32946         from corresponding peephole2 patterns.
32947         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
32948         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
32949         and *lshrdi3_1_rex64 using SWI mode iterator.
32950         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
32951         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
32952         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
32953         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
32954         and *lshrdi3_cmp_rex64 using SWI mode iterator.
32955         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
32956         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
32957         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
32958         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
32959         SWI mode iterator.
32960
32961 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
32962
32963         * config/i386/i386.md (ashr<mode>3): Macroize expander from
32964         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32965         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32966         pattern from *ashr{di,ti}3_1 and corresponding splitters using
32967         DWI mode iterator.
32968         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32969         from corresponding peephole2 patterns.
32970         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
32971         (ashrsi3_cvt): Rename from ashrsi3_31.
32972         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
32973         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
32974         and x86_64_shift_adj_3 using SWI48 mode iterator.
32975         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
32976         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
32977         and *ashrdi3_1_rex64 using SWI mode iterator.
32978         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
32979         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
32980         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
32981         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
32982         and *ashrdi3_cmp_rex64 using SWI mode iterator.
32983         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
32984         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
32985         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
32986         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
32987         SWI mode iterator.
32988         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
32989         * config/i386/i386.c (ix86_split_ashr): Update for renamed
32990         x86_shift<mode>_adj_3 expanders.
32991
32992 2010-04-10  Wei Guozhi  <carrot@google.com>
32993
32994         PR target/42601
32995         * config/arm/arm.c (arm_pic_static_addr): New function.
32996         (legitimize_pic_address): Call arm_pic_static_addr when it detects
32997         a static symbol.
32998         (arm_output_addr_const_extra): Output expression for new pattern.
32999         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
33000
33001 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
33002
33003         * ira-costs.c (record_reg_classes): Ignore alternatives that are
33004         not enabled.
33005
33006         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
33007         * web.c: Include "insn-config.h" and "recog.h".
33008         (union_match_dups): New function.
33009         (web_main): Call it.
33010         (union_defs): Don't try to recognize match_dups.
33011
33012         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
33013         if doing so would replace the entire pattern.
33014
33015 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33016
33017         PR target/43707
33018         PR target/43709
33019         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
33020         and splitter pattern.  Change splitter operand 1 predicate to
33021         nonmemory_operand.
33022
33023 2010-04-09  Martin Jambor  <mjambor@suse.cz>
33024
33025         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
33026         lattices are addresses of CONST_DECLs with the same initial value.
33027         (ipcp_print_all_lattices): Print values of CONST_DECLs.
33028         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
33029
33030 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
33031             Bernd Schmidt  <bernds@codesourcery.com>
33032
33033         * loop-invariant.c (replace_uses): New static function.
33034         (move_invariant_reg): Use it to ensure we can replace the uses.
33035
33036 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
33037
33038         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
33039         function template.
33040         (picochip_override_options): Enable section anchors only above -O1.
33041         (picochip_reorg): Fixed a couple of build warnings.
33042
33043 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33044
33045         * configure.ac (plugin -rdynamic test): Log result.
33046         * configure: Regenerate.
33047         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
33048         (RDYNAMIC_SPEC): Define.
33049         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
33050
33051 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33052
33053         * configure.ac: Determine Sun ld version numbers.
33054         (comdat_group): Restrict GNU ld version checks to gld.
33055         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
33056         (enable_comdat): Support --enable-comdat.
33057         * configure: Regenerate.
33058         * doc/install.texi (Configuration): Document --enable-comdat.
33059
33060 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33061
33062         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
33063         * config/sol2-gld.h: ... here.
33064         * config.gcc (sparc*-*-solaris2*): Reflect this.
33065         (i[34567]86-*-solaris2*): Use it.
33066
33067 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
33068
33069         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
33070         setup_clocks_p.
33071         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
33072
33073 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33074
33075         PR 42965
33076         * diagnostic.c (diagnostic_initialize): Initialize
33077         some_warnings_are_errors.
33078         (diagnostic_finish): New.
33079         (diagnostic_action_after_output): Call it before exiting.
33080         (diagnostic_report_diagnostic): Do not print message here. Set
33081         some_warnings_are_errors.
33082         * diagnostic.h (diagnostic_context): Delete
33083         issue_warnings_are_errors_message. Add some_warnings_are_errors.
33084         (diagnostic_finish): Declare.
33085         * toplev.c (toplev_main): Call it before exit.
33086
33087 2010-04-09  Jason Merrill  <jason@redhat.com>
33088
33089         PR c++/42623
33090         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
33091         for incomplete type.
33092
33093         PR c++/41788
33094         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
33095         based on a warning flag.
33096
33097 2010-04-09  Richard Guenther  <rguenther@suse.de>
33098
33099         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
33100
33101 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
33102
33103         PR bootstrap/43684
33104         * varasm.c (default_assemble_visibility): Wrap vars that are
33105         set, but unused, by targets without GAS.
33106         * config/rs6000/rs6000.c (paired_emit_vector_compare):
33107         Remove set, but unused, vars.
33108         (rs6000_legitimize_tls_address): Likewise.
33109         (altivec_expand_dst_builtin): Likewise.
33110         * config/darwin.c (machopic_classify_symbol): Likewise.
33111         (machopic_indirection_name): Likewise.
33112
33113 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33114
33115         * config/i386/i386.md (DWI): New mode iterator.
33116         (S): New mode attribute.
33117         (shift_operand): Ditto.
33118         (shift_immediate_operand): Ditto.
33119         (ashl_input_operand): Ditto.
33120         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
33121         using SDWIM mode iterator.
33122         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33123         pattern from *ashl{di,ti}3_1 and corresponding splitters using
33124         DWI mode iterator.
33125         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
33126         from corresponding peephole2 patterns.
33127         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
33128         and x86_64_shift_adj_1 using SWI48 mode iterator.
33129         (x86_shift<mode>_adj_2): Ditto.
33130         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
33131         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
33132         using SWI48 mode iterator.
33133         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
33134         *ashldi3_cmp_rex64 using SWI mode iterator.
33135         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
33136         *ashldi3_cconly_rex64 using SWI mode iterator.
33137         * config/i386/i386.c (ix86_split_ashl): Update for renamed
33138         x86_shift<mode>_adj_{1,2}.
33139         (ix86_split_ashr): Ditto.
33140         (ix86_split_lshr): Ditto.
33141
33142 2010-04-09  Richard Guenther  <rguenther@suse.de>
33143
33144         * target.h (builtin_conversion): Pass in input and output types.
33145         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
33146         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
33147         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
33148         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
33149
33150         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
33151         Handle AVX modes.
33152         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
33153
33154 2010-04-09  Richard Guenther  <rguenther@suse.de>
33155
33156         PR target/43152
33157         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
33158
33159 2010-04-09  Richard Guenther  <rguenther@suse.de>
33160
33161         * tree-vectorizer.h (struct _stmt_vec_info): Document
33162         that vectype is the type of the LHS.
33163         (supportable_widening_operation, supportable_narrowing_operation):
33164         Get both input and output vector types as arguments.
33165         (vect_is_simple_use_1): Declare.
33166         (get_same_sized_vectype): Likewise.
33167         * tree-vect-loop.c (vect_determine_vectorization_factor):
33168         Set STMT_VINFO_VECTYPE to the vector type of the def.
33169         (vectorizable_reduction): Adjust.
33170         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
33171         Adjust.  Specify the output vector type.
33172         (vect_pattern_recog_1): Adjust.
33173         * tree-vect-stmts.c (get_same_sized_vectype): New function.
33174         (vectorizable_call): Adjust.
33175         (vectorizable_conversion): Likewise.
33176         (vectorizable_operation): Likewise.
33177         (vectorizable_type_demotion): Likewise.
33178         (vectorizable_type_promotion): Likewise.
33179         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
33180         the def.
33181         (vect_is_simple_use_1): New function.
33182         (supportable_widening_operation): Get both input and output
33183         vector types.
33184         (supportable_narrowing_operation): Likewise.
33185         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
33186
33187 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
33188
33189         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
33190         __thiscall and _thiscall as predefined macros.
33191         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
33192         thiscall attribute handling.
33193         (ix86_comp_type_attributes): Likewise.
33194         (ix86_function_regparm): Likewise.
33195         (ix86_return_pops_args): Likewise.
33196         (init_cumulative_args): Likewise.
33197         (find_drap_reg): Likewise.
33198         (ix86_static_chain): Likewise.
33199         (x86_this_parameter): Likewise.
33200         (x86_output_mi_thunk): Likewise.
33201         (ix86_attribute_table): Add description for thiscall attribute.
33202         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
33203         * doc/extend.texi: Add documentation for thiscall.
33204
33205 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33206
33207         PR c++/28584
33208         * c.opt (Wint-to-pointer-cast): Available in C++.
33209         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
33210
33211 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
33212
33213         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
33214         * calls.c (expand_call): Pass the function type to aggregate_value_p.
33215         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
33216         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
33217         function type instead.  Reorder and simplify checks.
33218
33219         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
33220
33221 2010-04-08  Jing Yu  <jingyu@google.com>
33222             Zdenek Dvorak  <ook@ucw.cz>
33223
33224         PR tree-optimization/42720
33225         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
33226         loop unswitch conditions here from ...
33227         (tree_unswitch_single_loop): ... here.
33228
33229 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33230
33231         * tree-if-conv.c: Fix comments and simplify logic.
33232
33233 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33234
33235         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
33236         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
33237         (main_tree_if_conversion): Update call to tree_if_conversion.
33238
33239 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33240
33241         PR 42485
33242         * doc/invoke.texi (-b,-V): Delete.
33243         * doc/tm.texi: Do not mention -b.
33244         * gcc.c (display_help): Delete -b and -V.
33245         (process_command): Delete -b and -V.
33246         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
33247
33248 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
33249             Wolfgang Gellerich  <gellerich@de.ibm.com>
33250
33251         Implement target hook for loop unrolling
33252         * target.h (loop_unroll_adjust): Add a new target hook function.
33253         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
33254         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
33255         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
33256         (s390_loop_unroll_adjust): Implement the new target hook for s390.
33257         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
33258         target hook.
33259         (decide_unroll_stupid): Likewise.
33260
33261 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33262
33263         PR target/43643
33264         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
33265
33266 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33267
33268         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
33269         (Specific, *-*-solaris2*): Likewise.
33270         Don't prefer Sun as over GNU as.
33271
33272 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
33273
33274         * config/s390/s390.c (override_options): Adjust the z10 defaults
33275         for max-unroll-times, max-completely-peeled-insns
33276         and max-completely-peel-times.
33277
33278 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33279
33280         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
33281         instructions for z10.
33282         (s390_expand_setmem): Likewise.
33283         (s390_expand_cmpmem): Likewise.
33284
33285 2010-04-08  Richard Guenther  <rguenther@suse.de>
33286
33287         PR tree-optimization/43679
33288         * tree-ssa-pre.c (eliminate): Only propagate copies.
33289
33290 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33291
33292         PR bootstrap/43681
33293         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
33294         set but not used variable warning.
33295
33296 2010-04-08  Wei Guozhi  <carrot@google.com>
33297
33298         PR target/41653
33299         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
33300         (arm_size_rtx_costs): Call the new function when optimized for size.
33301
33302 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33303
33304         PR debug/43670
33305         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
33306         op0 is not a MEM, just return NULL instead of assertion
33307         failure.
33308         (discover_nonconstant_array_refs): Don't walk debug stmts.
33309
33310 2010-04-08  Doug Kwan  <dougkwan@google.com>
33311
33312         * configure.ac: Recognize gold and do not use its version number
33313         to test ld features.
33314         * configure: Regenerate.
33315
33316 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
33317
33318         PR middle-end/40815
33319         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
33320         (negate_value): Move code to push elements to broken_up_substracts ...
33321         (eliminate_plus_minus_pair): ... here.  Push operands that have no
33322         negative pair to plus_negates.
33323         (repropagate_negates, init_reassoc, fini_reassoc): Update.
33324
33325 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33326
33327         * doc/install.texi (Configuration): Move description of
33328         --enable-lto, --with-libelf*, --enable-gold from Java section to
33329         general section.
33330
33331         * doc/generic.texi (Working with declarations)
33332         (Function Properties, C and C++ Trees): Fix typos.
33333         * doc/sourcebuild.texi (Top Level): Likewise.
33334
33335 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33336
33337         PR c/18624
33338         * tree.h (DECL_READ_P): Define.
33339         (struct tree_decl_common): Add decl_read_flag.
33340         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
33341         a set but not used warning.
33342         (merge_decls): Merge DECL_READ_P flag.
33343         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
33344         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
33345         * c-common.c (handle_used_attribute, handle_unused_attribute):
33346         Likewise.
33347         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
33348         New prototypes.
33349         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
33350         New functions.
33351         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
33352         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
33353         c_parser_binary_expression, c_parser_cast_expression,
33354         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
33355         Call default_function_array_read_conversion instead of
33356         default_function_array_conversion where needed.
33357         (c_parser_unary_expression, c_parser_conditional_expression,
33358         c_parser_postfix_expression_after_primary, c_parser_initelt):
33359         Likewise.  Call mark_exp_read where needed.
33360         (c_parser_statement_after_labels, c_parser_asm_operands,
33361         c_parser_typeof_specifier, c_parser_sizeof_expression,
33362         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
33363         where needed.
33364         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
33365         New.
33366         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
33367         (warn_unused_but_set_parameter): Default to warn_unused
33368         && extra_warnings.
33369         * doc/invoke.texi: Document -Wunused-but-set-variable and
33370         -Wunused-but-set-parameter.
33371
33372         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
33373         used count variable.
33374         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
33375         when operandN variables aren't used in the body of the expander
33376         or splitter.
33377         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
33378         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
33379         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
33380         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
33381         FOR_EACH_IMM_USE_ON_STMT): Likewise.
33382         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
33383         * tree.c (PROCESS_ARG): Likewise.
33384
33385 2010-04-07  Simon Baldwin  <simonb@google.com>
33386
33387         * diagnostic.h (diagnostic_override_option_index): New macro to
33388         set a diagnostic's option_index.
33389         * c-tree.h (c_cpp_error): Add warning reason argument.
33390         * opts.c (_warning_as_error_callback): New.
33391         (register_warning_as_error_callback): Store callback for
33392         warnings enabled via enable_warning_as_error.
33393         (enable_warning_as_error): Call callback, minor code tidy.
33394         * opts.h (register_warning_as_error_callback): Declare.
33395         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
33396         response to -Werror=.
33397         (c_common_init_options): Register warning_as_error_callback in opts.c.
33398         * common.opt: Add -Wno-cpp option.
33399         * c-common.c (struct reason_option_codes_t): Map cpp warning
33400         reason codes to gcc option indexes.
33401         * (c_option_controlling_cpp_error): New function, lookup the gcc
33402         option index for a cpp warning reason code.
33403         * (c_cpp_error): Add warning reason argument, call
33404         c_option_controlling_cpp_error for diagnostic_override_option_index.
33405         * doc/invoke.texi: Document -Wno-cpp.
33406
33407 2010-04-07  Richard Guenther  <rguenther@suse.de>
33408
33409         * ipa-reference.c (mark_load): Use get_base_address.
33410         (mark_store): Likewise.
33411
33412         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
33413         inserting GIMPLE_NOPs into the IL.
33414         * tree-ssa-structalias.c (get_constraint_for_component_ref):
33415         Explicitly strip handled components and indirect references.
33416
33417         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
33418         folding address expressions.
33419         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
33420         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
33421         operand_equal_p to compare decls.
33422         (ptr_deref_may_alias_decl_p): Likewise.
33423         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
33424         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
33425         Handle reversed comparison ops.
33426         * tree-sra.c (asm_visit_addr): Use get_base_address.
33427         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
33428         * ipa-reference.c (mark_address): Use get_base_address.
33429
33430 2010-04-07  Richard Guenther  <rguenther@suse.de>
33431
33432         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
33433         Propagate constants everywhere.
33434
33435 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33436
33437         PR debug/43516
33438         * tree.c (MAX_INT_CACHED_PREC): Define.
33439         (nonstandard_integer_type_cache): New array.
33440         (build_nonstandard_integer_type): Cache results for precision
33441         <= MAX_INT_CACHED_PREC.
33442
33443 2010-04-07  Richard Guenther  <rguenther@suse.de>
33444
33445         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
33446         -fargument-noalias-global, -fargument-noalias-anything): Remove.
33447         * common.opt: Likewise.
33448         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
33449         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
33450         (nonoverlapping_memrefs_p): Likewise.
33451         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
33452         * opts.c (common_handle_option): Handle OPT_fargument_alias,
33453         OPT_fargument_noalias, OPT_fargument_noalias_anything and
33454         OPT_fargument_noalias_global for backward compatibility.
33455
33456 2010-04-07  Richard Guenther  <rguenther@suse.de>
33457
33458         PR tree-optimization/43270
33459         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
33460         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
33461         * tree-ssa-pre.c (phi_translate_1): Adjust.
33462         (fully_constant_expression): Split out vn_reference handling to ...
33463         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
33464         Fold reads from constant strings.
33465         (vn_reference_lookup): Handle fully constant references.
33466         (vn_reference_lookup_pieces): Likewise.
33467         * Makefile.in (expmed.o-warn): Add -Wno-error.
33468
33469 2010-04-07  Martin Jambor  <mjambor@suse.cz>
33470
33471         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
33472
33473 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
33474
33475         PR driver/41594
33476         * gcc.c: Add -static-libstdc++ to list of recognized options.
33477
33478 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33479
33480         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
33481
33482 2010-04-07  Richard Guenther  <rguenther@suse.de>
33483
33484         PR middle-end/42617
33485         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
33486         bases build simple mem attributes to retain points-to information.
33487
33488 2010-04-07  Richard Guenther  <rguenther@suse.de>
33489
33490         PR middle-end/42617
33491         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
33492         preserve points-to related information.
33493
33494 2010-04-07  Richard Guenther  <rguenther@suse.de>
33495
33496         PR middle-end/42617
33497         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
33498         discard plain indirect references.
33499         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
33500         * tree.c (tree_nop_conversion): Likewise.
33501
33502 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
33503
33504         PR debug/43628
33505         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
33506
33507 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
33508
33509         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
33510         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
33511
33512 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33513
33514         * tree-if-conv.c: Fix indentation and comments.
33515
33516 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33517
33518         * tree-if-conv.c: Sort static functions in topological order.
33519
33520 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33521
33522         * tree-if-conv.c: Fix indentation and comments.
33523
33524 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33525
33526         PR middle-end/43519
33527         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
33528         lang_hooks.types.type_for_size instead of
33529         build_nonstandard_integer_type.
33530         When converting an unsigned type to signed, double its precision.
33531         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
33532         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
33533         (graphite_create_new_loop_guard): When ub + 1 wraps around,
33534         use lb <= ub.
33535
33536 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33537
33538         PR middle-end/43519
33539         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
33540         POINTER_PLUS_EXPR for pointer types.
33541
33542 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33543
33544         PR middle-end/43519
33545         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
33546         * graphite-clast-to-gimple.c: Include langhooks.h.
33547         (max_signed_precision_type): New.
33548         (max_precision_type): Takes two types as arguments.
33549         (precision_for_value): New.
33550         (precision_for_interval): New.
33551         (gcc_type_for_interval): New.
33552         (gcc_type_for_value): New.
33553         (gcc_type_for_clast_term): New.
33554         (gcc_type_for_clast_red): New.
33555         (gcc_type_for_clast_bin): New.
33556         (gcc_type_for_clast_expr): Split up into several functions.
33557         (gcc_type_for_clast_eq): Rewritten.
33558         (compute_bounds_for_level): New.
33559         (compute_type_for_level_1): New.
33560         (compute_type_for_level): New.
33561         (gcc_type_for_cloog_iv): Removed.
33562         (gcc_type_for_iv_of_clast_loop): Rewritten.
33563         (graphite_create_new_loop): Compute the lower and upper bound types
33564         with gcc_type_for_clast_expr.
33565         (graphite_create_new_loop_guard): Same.
33566         (find_cloog_iv_in_expr): Removed.
33567         (compute_cloog_iv_types_1): Removed.
33568         (compute_cloog_iv_types): Removed.
33569         (gloog): Do not call compute_cloog_iv_types.
33570         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
33571         GBB_CLOOG_IV_TYPES.
33572         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
33573         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
33574         (GBB_CLOOG_IV_TYPES): Removed.
33575
33576 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33577
33578         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
33579         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
33580         (detect_commutative_reduction): Same.
33581
33582 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33583
33584         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
33585         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
33586         argument.
33587         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
33588         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
33589         (rewrite_commutative_reductions_out_of_ssa): Same.
33590         * passes.c (execute_function_todo): Call verify_ssa for every pass
33591         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
33592         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
33593         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
33594         with an extra argument.
33595         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
33596         verify_ssa only when the extra argument is true.
33597         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
33598         with an extra argument.
33599         (tree_transform_and_unroll_loop): Same.
33600
33601 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33602
33603         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
33604         for all the passes of the LNO having LOOP_CLOSED_SSA.
33605         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
33606         * tree-loop-distribution.c (pass_loop_distribution): Same.
33607         * tree-pass.h (TODO_verify_loops): Removed.
33608         * tree-ssa-loop.c (pass_tree_loop_init): Same.
33609         (pass_lim): Same.
33610         (pass_tree_unswitch): Same.
33611         (pass_predcom): Same.
33612         (pass_vectorize): Same.
33613         (pass_linear_transform): Same.
33614         (pass_graphite_transforms): Same.
33615         (pass_iv_canon): Same.
33616         (pass_complete_unroll): Same.
33617         (pass_complete_unrolli): Same.
33618         (pass_parallelize_loops): Same.
33619         (pass_loop_prefetch): Same.
33620         (pass_iv_optimize): Same.
33621
33622 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
33623
33624         PR middle-end/32824
33625         * passes.c (init_optimization_passes): Move pass_lim before
33626         pass_copy_prop and pass_dce_loop.
33627
33628 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33629
33630         PR target/43667
33631         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
33632         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
33633         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
33634         MULTI_* defines for 4 argument vpermil2p* builtins.
33635
33636 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33637
33638         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
33639         * config/i386/i386.c (x86_maybe_negate_const_int): New.
33640         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
33641         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
33642         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
33643         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
33644         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
33645         Use x86_maybe_negate_const_int to output insn mnemonic.
33646         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
33647         check from instruction predicate.  Update comments.
33648         * config/i386/sync.md (sync_add<mode>): Use
33649         x86_maybe_negate_const_int to output insn mnemonic.
33650
33651 2010-04-06  Jan Hubicka  <jh@suse.cz>
33652
33653         PR tree-optimization/42906
33654         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
33655         IGNORE_SELF argument.  Set visited_control_parents for fully
33656         processed BBs.
33657         (find_obviously_necessary_stmts): Update call of
33658         mark_control_dependent_edges_necessary.
33659         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
33660
33661 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33662
33663         * config/i386/i386.md: Remove comment about 'e' and 'E'
33664         operand modifier.
33665
33666 2010-04-06  Richard Guenther  <rguenther@suse.de>
33667
33668         PR tree-optimization/43627
33669         * tree-vrp.c (extract_range_from_unary_expr): Widenings
33670         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
33671         not varying.
33672
33673 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33674
33675         * BASE-VER: Change to 4.6.0.
33676
33677         PR target/43638
33678         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
33679         handling.
33680
33681 2010-04-06  Richard Guenther  <rguenther@suse.de>
33682
33683         PR middle-end/43661
33684         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
33685
33686 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33687
33688         * doc/invoke.texi (Optimize Options): Document that LTO
33689         won't remove object access purely due to incompatible
33690         declarations.
33691
33692 2010-04-04  Matthias Klose  <doko@ubuntu.com>
33693
33694         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
33695         Initialize variable.
33696
33697 2010-04-03  Richard Guenther  <rguenther@suse.de>
33698
33699         PR middle-end/42509
33700         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
33701         require a non-NULL MEM_OFFSET.
33702
33703 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
33704
33705         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
33706         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
33707         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
33708         config/alpha/predicates.md, config/arm/arm.md,
33709         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
33710         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
33711         config/darwin9.h, config/darwin.c, config/darwin.h,
33712         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
33713         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
33714         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
33715         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
33716         config/mips/mips.md, config/mn10300/mn10300.c,
33717         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
33718         config/rs6000/aix.h, config/rs6000/dfp.md,
33719         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
33720         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
33721         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
33722         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
33723         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
33724         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
33725         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
33726         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
33727         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
33728         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
33729         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
33730         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
33731         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
33732         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
33733         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
33734         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
33735         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
33736         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
33737         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
33738         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
33739         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
33740         opt-functions.awk, opth-gen.awk, params.def, passes.c,
33741         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
33742         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
33743         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
33744         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
33745         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
33746         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
33747         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
33748         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
33749         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
33750         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
33751         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
33752         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
33753         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
33754         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
33755
33756 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33757
33758         PR other/43620
33759         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
33760         * aclocal.m4: Regenerate.
33761
33762 2010-04-02  Richard Guenther  <rguenther@suse.de>
33763
33764         PR tree-optimization/43629
33765         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
33766         if we have seen a constant value.
33767
33768 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
33769
33770         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
33771
33772 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
33773
33774         PR target/43469
33775         * arm.c (legitimize_tls_address): Adjust call to
33776         gen_tls_load_dot_plus_four.
33777         (arm_note_pic_base): New function.
33778         (arm_cannot_copy_insn_p): Use it.
33779         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
33780         constraint.
33781
33782 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33783
33784         PR bootstrap/43531
33785
33786         Revert:
33787         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33788
33789         * Makefile.in ($(out_object_file)): Depend on
33790         gt-$(basename $(notdir $(out_file))).h.
33791
33792 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
33793
33794         * config.gcc (lm32-*-rtems*): Add t-lm32.
33795
33796 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
33797
33798         * config.gcc: Add lm32-*-rtems*.
33799         * config/lm32/rtems.h: New file.
33800
33801 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
33802
33803         PR target/42609
33804         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
33805
33806 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
33807
33808         * dwarf2out.c (output_compilation_unit_header): For
33809         -gdwarf-4 use version 4 instead of version 3.
33810         (output_line_info): For version 4 and above emit additional
33811         maximum ops per insn header field.
33812         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
33813
33814         * dwarf2out.c (is_c_family, is_java): Remove.
33815         (lower_bound_default): New function.
33816         (add_bound_info, gen_descr_array_type_die): Use it.
33817
33818 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
33819
33820         PR debug/43325
33821         * dwarf2out.c (gen_variable_die): Allow debug info for variable
33822         re-declaration when it happens in a function.
33823
33824 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
33825
33826         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
33827         (cgraph_remove_function_insertion_hook): Same.
33828         (cgraph_call_function_insertion_hooks): Same.
33829
33830 2010-04-01  Richard Guenther  <rguenther@suse.de>
33831
33832         PR middle-end/43614
33833         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
33834         and TREE_THIS_VOLATILE.
33835         (copy_ref_info): Likewise.
33836         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
33837         * tree.c (build6_stat): Ignore side-effects of all but arg5
33838         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
33839         TARGET_MEM_REF.
33840
33841 2010-04-01  Richard Guenther  <rguenther@suse.de>
33842
33843         PR tree-optimization/43607
33844         * ipa-type-escape.c (check_call): Do not access non-existing
33845         arguments.
33846
33847 2010-04-01  Richard Guenther  <rguenther@suse.de>
33848
33849         PR middle-end/43602
33850         Revert
33851         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
33852                     Jack Howarth  <howarth@bromo.med.uc.edu>
33853
33854         * tree-profile.c (tree_init_ic_make_global_vars): Make static
33855         variables TLS.
33856
33857 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33858
33859         * doc/install.texi (Prerequisites): Document libelf usability on
33860         IRIX 5/6 and Solaris 2.
33861         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
33862         Update GNU as, GNU ld requirements.
33863         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
33864         Document Sun Studio compiler download.
33865         Update and simplify as, ld recommendations.
33866         (Specific, *-*-solaris2.7): Note obsoletion, removal.
33867
33868 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33869
33870         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
33871         with_tune_32 to pentium4.
33872
33873 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
33874
33875         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
33876
33877 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33878
33879         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
33880         obsoletion, removal.
33881         Update IDO URL.
33882         Document GNU as requirement.
33883         Update configure requirements.
33884         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
33885         Recomment IRIX 6.5.18+.
33886         Document IDF/IDL requirement.
33887         Document GNU as requirement.
33888         Document GNU ld bootstrap failure.
33889         Remove freeware.sgi.com reference.
33890
33891 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33892
33893         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
33894         UNIX V4.0, V5.0 obsoletion, removal.
33895         Remove --with-gc=simple reference.
33896         Update VM requirements during bootstrap.
33897         Remove -oldas bootstrap description.
33898         Update binutils reference.
33899         Remove comparison failure note.
33900
33901 2010-03-31  Richard Guenther  <rguenther@suse.de>
33902             Zdenek Dvorak  <ook@ucw.cz>
33903             Sebastian Pop  <sebastian.pop@amd.com>
33904
33905         PR middle-end/43464
33906         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
33907         with multiple arguments.
33908         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
33909
33910 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33911
33912         * graphite-dependences.c (print_pddr): Call print_pdr with an
33913         extra argument.
33914         * graphite-poly.c (debug_pdr): Add an extra argument for the
33915         verbosity level.
33916         (print_pdr): Same.
33917         (print_pbb_domain): Same.
33918         (print_pbb): Same.
33919         (print_scop_context): Same.
33920         (print_scop): Same.
33921         (print_cloog): Same.
33922         (debug_pbb_domain): Same.
33923         (debug_pbb): Same.
33924         (print_pdrs): Same.
33925         (debug_pdrs): Same.
33926         (debug_scop_context): Same.
33927         (debug_scop): Same.
33928         (debug_cloog): Same.
33929         (print_scop_params): Same.
33930         (debug_scop_params): Same.
33931         (print_iteration_domain): Same.
33932         (print_iteration_domains): Same.
33933         (debug_iteration_domain): Same.
33934         (debug_iteration_domains): Same.
33935         (print_scattering_function): Same.
33936         (print_scattering_functions): Same.
33937         (debug_scattering_function): Same.
33938         (debug_scattering_functions): Same.
33939         * graphite-poly.h (debug_pdr): Update declaration.
33940         (print_pdr): Same.
33941         (print_pbb_domain): Same.
33942         (print_pbb): Same.
33943         (print_scop_context): Same.
33944         (print_scop): Same.
33945         (print_cloog): Same.
33946         (debug_pbb_domain): Same.
33947         (debug_pbb): Same.
33948         (print_pdrs): Same.
33949         (debug_pdrs): Same.
33950         (debug_scop_context): Same.
33951         (debug_scop): Same.
33952         (debug_cloog): Same.
33953         (print_scop_params): Same.
33954         (debug_scop_params): Same.
33955         (print_iteration_domain): Same.
33956         (print_iteration_domains): Same.
33957         (debug_iteration_domain): Same.
33958         (debug_iteration_domains): Same.
33959         (print_scattering_function): Same.
33960         (print_scattering_functions): Same.
33961         (debug_scattering_function): Same.
33962         (debug_scattering_functions): Same.
33963
33964 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33965
33966         * graphite-poly.c (print_scattering_function_1): New.
33967         (print_scattering_function): Call it.
33968         (print_scop_params): Remove spaces at the end of lines.
33969         (print_cloog): New.
33970         (debug_cloog): New.
33971         * graphite-poly.h (print_cloog): Declared.
33972         (debug_cloog): Declared.
33973
33974 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33975
33976         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
33977         in loop->header.
33978         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
33979         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
33980         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
33981         to switch between adding the IV bump in loop->latch or in loop->header.
33982
33983 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33984
33985         * graphite-poly.c (print_scattering_function): Pretty print following
33986         the scoplib format.
33987         (print_pdr): Same.
33988         (print_pbb_domain): Same.
33989         (dump_gbb_cases): Same.
33990         (dump_gbb_conditions): Same.
33991         (print_pdrs): Same.
33992         (print_pbb): Same.
33993         (print_scop_params): Same.
33994         (print_scop_context): Same.
33995         (print_scop): Same.
33996         (print_pbb_body): New.
33997         (lst_indent_to): New.
33998         (print_lst): Start new lines with a #.
33999         * graphite-poly.h (pbb_bb): New.
34000         (pbb_index): Use pbb_bb.
34001         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
34002         disjuncts.
34003         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
34004
34005 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
34006
34007         * dwarf2out.c (size_of_die): For -gdwarf-4 use
34008         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
34009         and 0 instead of 1 for dw_val_class_flag.
34010         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
34011         dw_val_class_range_list, dw_val_class_loc_list,
34012         dw_val_class_lineptr and dw_val_class_macptr, use
34013         DW_FORM_flag_present for dw_val_class_flag and
34014         DW_FORM_exprloc for dw_val_class_loc.
34015         (output_die): For -gdwarf-4 print dw_val_class_loc
34016         size as uleb128 instead of 1 or 2 bytes and don't print
34017         anything for dw_val_class_flag.
34018
34019         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
34020         instead of cselib_lookup following by tweaking locs->setting_insn.
34021
34022         PR bootstrap/43596
34023         * cselib.c (cselib_process_insn): Clear cselib_current_insn
34024         even before returning from label, setjmp call or volatile asm
34025         handling.
34026
34027 2010-03-31  Richard Guenther  <rguenther@suse.de>
34028
34029         PR middle-end/43600
34030         * cgraphunit.c (cgraph_output_in_order): Do not allocate
34031         temporary data on stack.
34032
34033 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34034
34035         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
34036         (PUSHSECTION_ASM_OP): Remove.
34037         (POPSECTION_ASM_OP): Remove.
34038         (PUSHSECTION_FORMAT): Remove.
34039         * config/sol2.h (PUSHSECTION_FORMAT): Define.
34040         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
34041         * config/sol2.c (solaris_output_init_fini): Use it.
34042
34043 2010-03-31  Jie Zhang  <jie@codesourcery.com>
34044
34045         PR 43574
34046         * opt-functions.awk (var_type_struct): Use signed char type
34047         for simple variables.
34048
34049 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34050
34051         * config/sol2.c: Include output.h.
34052         (solaris_assemble_visibility): New function.
34053         * config/t-sol2 (sol2.o): Add output.h dependency.
34054         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
34055         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
34056         Redefine.
34057
34058 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
34059
34060         PR target/43580
34061         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
34062         V2SImode or XFmode on PRE_DEC.
34063
34064         PR debug/43557
34065         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
34066         BLKmode.
34067
34068 2010-03-31  Jie Zhang  <jie@codesourcery.com>
34069
34070         PR 43562
34071         * reload.h (caller_save_initialized_p): Declare.
34072         * toplev.c (backend_init_target): Don't call
34073         init_caller_save but set caller_save_initialized_p to false.
34074         * caller-save.c (caller_save_initialized_p): Define.
34075         (init_caller_save): Check caller_save_initialized_p.
34076         * ira.c (ira): Call init_caller_save if flag_caller_saves.
34077
34078 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34079
34080         PR target/39048
34081         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
34082         and soft-fp/t-softfp to tmake_file.
34083         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
34084         (LIBGCC2_TF_CEXT): Define.
34085         (TF_SIZE): Define.
34086
34087 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
34088
34089         PR debug/42977
34090         * cselib.c (n_useless_values): Document handling of debug locs.
34091         (n_useless_debug_values, n_debug_values): New variables.
34092         (new_elt_loc_list): Don't add to debug values, keep count.
34093         (promote_debug_loc): New.
34094         (cselib_reset_table): Zero new variables.
34095         (entry_and_rtx_equal_p): Promote debug locs.
34096         (discard_useless_locs): Increment n_useless_debug_values for
34097         debug values.
34098         (remove_useless_values): Adjust n_useless_values and n_debug_values
34099         with n_useless_debug_values.
34100         (add_mem_for_addr): Promote debug locs.
34101         (cselib_lookup_mem): Likewise.
34102         (cselib_lookup_addr): Renamed to...
34103         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
34104         (cselib_log_lookup): ... this.  Turn into...
34105         (cselib_lookup_addr): ... new wrapper.
34106         (cselib_lookup_from_insn): New.
34107         (cselib_invalidate_regno): Increment n_useless_debug_values for
34108         debug values.
34109         (cselib_invalidate_mem): Likewise.
34110         (cselib_process_insn): Take n_deleted and n_debug_values into
34111         account to guard remove_useless_value call.
34112         (cselib_finish): Zero n_useless_debug_values.
34113         * cselib.h (cselib_lookup_from_insn): Declare.
34114         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
34115         (sched_analyze_2): Likewise.
34116
34117 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
34118
34119         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
34120         functions.
34121         (adjust_mems): Replace narrowing SUBREG of expression containing
34122         just PLUS, MINUS, MULT and ASHIFT of registers and constants
34123         with operations in the narrower mode.
34124
34125         PR debug/43593
34126         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
34127         regs_invalidated_by_call instead all call_used_reg_set registers.
34128
34129 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
34130
34131         PR middle-end/43430
34132         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
34133         pointer comparisons with types_compatible_p.
34134         * tree-vect-stmts.c (vectorizable_call): Same.
34135         (vectorizable_condition): Same.
34136
34137 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34138
34139         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
34140         stack check if the mask would be zero.
34141
34142 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34143             Jack Howarth  <howarth@bromo.med.uc.edu>
34144
34145         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34146         variables TLS.
34147
34148 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
34149
34150         PR other/25232
34151         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
34152         and __unordtf2.
34153         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
34154         Include ___unordxf2 and ___unordtf2.
34155         * config/i386/libgcc-glibc.ver: Do not define inheritance from
34156         GCC_4.4.0 here.
34157
34158 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
34159
34160         * config/lm32/t-lm32: New file.
34161         * config.gcc: Use the above file when targetting lm32.
34162
34163 2010-03-28  Duncan Sands  <baldrick@free.fr>
34164
34165         * Makefile.in (PLUGIN_HEADERS): Add except.h.
34166
34167 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34168
34169         PR middle-end/43431
34170         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
34171         Improve vectorization cost model diagnostic.
34172
34173 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34174
34175         PR middle-end/43436
34176         * tree-vect-data-refs.c (vect_analyze_data_refs): When
34177         compute_data_dependences_for_loop returns false, early exit
34178         and output an extra diagnostic for the failed data reference
34179         analysis.
34180
34181 2010-03-29  Richard Guenther  <rguenther@suse.de>
34182
34183         PR tree-optimization/43560
34184         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
34185         (can_sm_ref_p): Treat stores to readonly locations as trapping.
34186
34187 2010-03-29  Jie Zhang  <jie@codesourcery.com>
34188
34189         PR 43564
34190         * toplev.c (process_options): Set optimization_default_node
34191         and optimization_current_node.
34192         * opts.c (decode_options): Don't set optimization_default_node
34193         and optimization_current_node.
34194
34195 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
34196
34197         * config/rtems.h: Abandon -qrtems_debug.
34198
34199 2010-03-28  Jan Hubicka  <jh@suse.cz>
34200
34201         PR tree-optimization/43505
34202         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
34203         map should not be copied.
34204
34205 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34206
34207         PR middle-end/41674
34208         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
34209         cdtors, set DECL_PRESERVE_P.
34210         * ipa.c (cgraph_externally_visible_p): Return true if declaration
34211         should be preseved.
34212
34213 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
34214
34215         PR tree-optimization/43528
34216         * stor-layout.c (place_field): Check that constant fits into
34217         unsigned HWI when skipping calculation of MS bitfield layout.
34218
34219 2010-03-27  Jan Hubicka  <jh@suse.cz>
34220
34221         PR middle-end/43391
34222         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
34223         notice_global_symbol work.
34224
34225 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
34226
34227         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
34228         instead of dwarf2out_decl.
34229         (struct var_loc_node): Remove section_label field.
34230         (dwarf2out_function_decl): New function.
34231         (dwarf2out_var_location): Don't set section_label field.
34232         (dwarf2out_begin_function): Don't empty decl_loc_table here.
34233
34234 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
34235
34236         PR tree-optimization/43544
34237         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
34238         First argument for builtin vectorized function hook is now a
34239         tree to be able to distinguish between machine specific and
34240         standard builtins.
34241         * targhooks.c (default_builtin_vectorized_function): Ditto.
34242         * targhooks.h (default_builtin_vectorized_function): Ditto.
34243         * target.h (struct gcc_target): Ditto.
34244         * tree-vect-stmts.c (vectorizable_function): Ditto.
34245         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
34246         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
34247         Ditto.
34248
34249 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
34250
34251         PR c/43381
34252         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
34253         nested binding iff it is a FUNCTION_DECL.
34254         (store_parm_decls_newstyle): Pass nested=true to bind for
34255         FUNCTION_DECLs amongst parameters.
34256
34257 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34258
34259         * var-tracking.c (vt_expand_loc_callback): Don't run
34260         cselib_expand_value_rtx_cb in dummy mode if
34261         cselib_dummy_expand_value_rtx_cb returned false.
34262
34263         * var-tracking.c (emit_note_insn_var_location): For one part
34264         notes with offset 0, don't add EXPR_LIST around the location.
34265         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
34266         add_location_or_const_value_attribute): Adjust for that change.
34267
34268         PR debug/43540
34269         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
34270         into first operand and location into second.
34271         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
34272         dw_cfi_oprnd_loc for DW_CFA_expression.
34273         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
34274         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
34275         assume first argument is regnum and second argument is location.
34276
34277 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34278
34279         PR target/42113
34280         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
34281         of scratch register to DImode.  Split to DImode comparison operator.
34282         Use SImode subreg of scratch register in the multiplication.
34283         (*cmp_sadd_sidi): Ditto.
34284         (*cmp_ssub_si): Ditto.
34285         (*cmp_ssub_sidi): Ditto.
34286
34287 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34288
34289         PR target/43524
34290         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
34291         Remove invalid assert and wrong comment.
34292
34293 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34294
34295         PR debug/43516
34296         * flags.h (final_insns_dump_p): New extern.
34297         * final.c (final_insns_dump_p): New variable.
34298         (rest_of_clean_state): Set it before -fdump-final-insns=
34299         dumping, clear afterwards.
34300         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
34301         MEM_ALIAS_SET on MEMs.
34302
34303 2010-03-26  David S. Miller  <davem@davemloft.net>
34304
34305         * configure.ac: Fix sparc GOTDATA_OP bug check.
34306         * configure: Rebuild.
34307
34308 2010-03-26  Alan Modra  <amodra@gmail.com>
34309
34310         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
34311
34312 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34313
34314         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
34315         TLS_SECTION_ASM_FLAG.
34316
34317 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
34318
34319         PR bootstrap/43511
34320         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
34321         Clear first_function_block_is_cold.
34322
34323         PR c/43385
34324         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
34325         argument if the argument is truth_value_p.
34326
34327 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
34328
34329         * config/rs6000/constraints.md: Update copyright year for my changes.
34330
34331         PR target/43484
34332         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
34333         used in reg+reg addressing, swap registers.
34334
34335 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34336
34337         PR debug/43293
34338         * target.h (struct gcc_target): Add code_end hook.
34339         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
34340         if not yet defined.
34341         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
34342         * toplev.c (compile_file): Call targetm.asm_out.code_end
34343         hook before unwind info/debug info output.
34344         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
34345         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
34346         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34347         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
34348         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34349         * config/i386/i386.c (ix86_file_end): Renamed to...
34350         (ix86_code_end): ... this.  Make static.  Don't call
34351         file_end_indicate_exec_stack.  Emit unwind info using
34352         final_start_function/final_end_function.
34353         (darwin_x86_file_end): Remove.
34354         (TARGET_ASM_CODE_END): Define.
34355         * config/i386/i386.h (TARGET_ASM_FILE_END,
34356         NEED_INDICATE_EXEC_STACK): Don't define.
34357         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
34358         (TARGET_ASM_FILE_END): Define to darwin_file_end.
34359         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
34360         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
34361
34362         PR target/43498
34363         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
34364         at the beginning and final_end_function at the end.
34365         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
34366
34367 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34368
34369         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
34370         and Sun as TLS syntax.
34371         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
34372         * configure: Regenerate.
34373         * config.in: Regenerate.
34374         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
34375         (default_elf_asm_named_section): Use it.
34376         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
34377         (i386_output_dwarf_dtprel): Likewise.
34378         (output_addr_const_extra): Likewise.
34379         (output_pic_addr_const): Lowercase @GOTTPOFF.
34380         (output_addr_const_extra): Likewise.
34381         (output_pic_addr_const): Lowercase @GOTNTPOFF.
34382         (output_addr_const_extra): Likewise.
34383         (output_pic_addr_const): Lowercase @INDNTPOFF.
34384         (output_addr_const_extra): Likewise.
34385         (output_pic_addr_const): Lowercase @NTPOFF.
34386         (output_addr_const_extra): Likewise.
34387         (output_pic_addr_const): Lowercase @TPOFF.
34388         (output_addr_const_extra): Likewise.
34389         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
34390         (*tls_global_dynamic_64): Likewise.
34391         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
34392         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
34393
34394         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
34395         (ASM_OUTPUT_TLS_COMMON): Use it.
34396         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
34397
34398         PR target/38118
34399         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
34400         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
34401         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
34402         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
34403         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34404         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
34405
34406 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34407
34408         * config/i386/i386.c (override_options): Don't accept
34409         -mtls-dialect=sun any longer.
34410         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
34411         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
34412         (*tls_local_dynamic_base_32_sun): Likewise.
34413         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34414
34415 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34416
34417         PR debug/43508
34418         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
34419         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
34420
34421         PR debug/43479
34422         * ira.c (adjust_cleared_regs): New function.
34423         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
34424
34425         PR debug/19192
34426         PR debug/43479
34427         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
34428         from gimple_block.
34429         * expr.c (expand_expr_real): Restore previous
34430         curr_insn_source_location and curr_insn_block after
34431         expand_expr_real_1 call.
34432         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
34433         instead of expand_expr_real_1.
34434
34435 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
34436
34437         PR rtl-optimization/43413
34438         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
34439         hard regs too.
34440
34441 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
34442
34443         PR target/43348
34444         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
34445         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
34446
34447 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
34448
34449         * config/i386/i386.c (ix86_target_string): Add -mfma.
34450         Fix a typo in comment.
34451
34452 2010-03-22  Mike Stump  <mikestump@comcast.net>
34453
34454         PR target/23071
34455         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
34456         Don't overly align based upon packed packed fields.
34457
34458 2010-03-22  Jason Merrill  <jason@redhat.com>
34459
34460         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
34461         Use () rather than [], and move before the element type.
34462
34463 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34464
34465         * doc/configfiles.texi (Configuration Files): Removed
34466         fixinc/Makefile*, intl/Makefile.*.
34467         * doc/makefile.texi: Fixed markup. Abstract from version
34468         control system used.
34469         (Makefile): Removed obsolete java/parse.y example.
34470         * doc/sourcebuild.texi: Likewise.
34471         (Top Level): Added config, gnattools, libdecnumber, libgcc,
34472         libgomp, libssp.  Removed fastjar.
34473         (Miscellaneous Docs): Clarify location.
34474         Added COPYING3, COPYING3.LIB.
34475         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
34476
34477 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34478
34479         PR target/38085
34480         * config/i386/i386.c (x86_function_profiler)
34481         [!NO_PROFILE_COUNTERS]: Fix typo.
34482         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
34483         instead of callq.
34484
34485 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
34486             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34487
34488         * doc/sourcebuild.texi (Test Directives): Split into six
34489         subsections, with most of the current text in new subsections
34490         Directives, Selectors, and Final Actions.
34491         (Directives): Split list of test directives into multiple
34492         subsubsections.
34493         (Selectors): Describe use and syntax of selectors.
34494         (Effective-Target Keywords): Describe all existing keywords.
34495         (Add Options): Describe features for dg-add-options.
34496         (Require Support): Describe variants of dg-require-support.
34497         (Final Actions): Describe commands to use in dg-final.
34498
34499 2010-03-22  Michael Matz  <matz@suse.de>
34500
34501         PR middle-end/43475
34502         * recog.c (validate_replace_rtx_group): Replace also in
34503         REG_EQUAL and REG_EQUIV notes.
34504
34505 2010-03-22  Richard Guenther  <rguenther@suse.de>
34506
34507         PR tree-optimization/43390
34508         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
34509         sure vector extracts are type correct.
34510
34511 2010-03-22  Richard Guenther  <rguenther@suse.de>
34512
34513         PR middle-end/40106
34514         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
34515         x * sqrt (x) even when optimizing for size if the target
34516         has native support for sqrt.
34517
34518 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
34519
34520         * varasm.c (make_decl_rtl_for_debug): Also clear
34521         flag_mudflap for the duration of make_decl_rtl call.
34522
34523         PR debug/43443
34524         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
34525         locs from preserved VALUEs.
34526
34527 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34528
34529         PR middle-end/42718
34530         * pa.md (movmemsi): Set align to one if zero.
34531         (movmemdi): Likewise.
34532
34533 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
34534
34535         PR target/42321
34536         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
34537         with their corresponding prologue pushes.
34538
34539 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
34540
34541         PR target/43156
34542         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
34543         at the begining or end.
34544         (spu_expand_epilogue): Likewise.
34545
34546 2010-03-20  Richard Guenther  <rguenther@suse.de>
34547
34548         PR rtl-optimization/43438
34549         * combine.c (make_extraction): Properly zero-/sign-extend an
34550         extraction of the low part of a CONST_INT.  Also handle
34551         CONST_DOUBLE.
34552
34553 2010-03-19  Mike Stump  <mikestump@comcast.net>
34554
34555         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
34556         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
34557         (override_options): Use SUBTARGET32_DEFAULT_CPU.
34558
34559 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
34560
34561         PR c/43211
34562         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
34563         an error.
34564
34565 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
34566
34567         PR rtl-optimization/42258
34568         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
34569         use that may match DEF.
34570
34571         PR target/40697
34572         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
34573         the cost of loading the constant rather than assuming
34574         COSTS_N_INSNS (1).
34575         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
34576         outer code is AND, do the same tests as the andsi3 expander and
34577         return COSTS_N_INSNS (1) if and is cheap.
34578
34579         * optabs.c (avoid_expensive_constant): Fix formatting.
34580
34581 2010-03-19  Michael Matz  <matz@suse.de>
34582
34583         PR c++/43116
34584         * attribs.c (decl_attributes): When rebuilding a function pointer
34585         type use the same qualifiers as the original pointer type.
34586
34587 2010-03-19  Martin Jambor  <mjambor@suse.cz>
34588
34589         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
34590         and is_gimple_ip_invariant_address.
34591
34592 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34593
34594         Revert
34595         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34596
34597         * config/arm/arm.c (arm_override_options): Turn off
34598         flag_dwarf2_cfi_asm for AAPCS variants.
34599
34600 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34601
34602         PR target/43399
34603         * config/arm/arm.c (emit_multi_reg_push): Update comments.
34604         Use PRE_MODIFY instead of PRE_DEC.
34605         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
34606         (vfp_emit_fstmd): Likewise.
34607
34608 2010-03-19  Michael Matz  <matz@suse.de>
34609
34610         PR target/43305
34611         * builtins.c (expand_builtin_interclass_mathfn,
34612         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
34613         if that fails.
34614
34615 2010-03-19  Richard Guenther  <rguenther@suse.de>
34616
34617         PR tree-optimization/43415
34618         * tree-ssa-pre.c (phi_translate): Split out worker to ...
34619         (phi_translate_1): ... this.
34620         (phi_translate): Move all caching here.  Cache all NARY
34621         and REFERENCE translations.
34622
34623 2010-03-19  David S. Miller  <davem@davemloft.net>
34624
34625         With help from Eric Botcazou.
34626         * config/sparc/sparc.c: Include dwarf2out.h.
34627         (emit_pic_helper): Delete.
34628         (pic_helper_symbol_name): Delete.
34629         (pic_helper_emitted_p): Delete.
34630         (pic_helper_needed): New.
34631         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
34632         (get_pc_thunk_name): New.
34633         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
34634         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
34635         Set pic_helper_needed to true.  Don't call emit_pic_helper.
34636         (sparc_expand_prologue): Update load_pic_register call.
34637         (sparc_output_mi_thunk): Likewise.
34638         (sparc_file_end): Emit a hidden comdat symbol for the PIC
34639         thunk if possible.  Output CFI information as needed.
34640
34641 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
34642             Jack Howarth  <howarth@bromo.med.uc.edu>
34643
34644         PR target/36399
34645         * config/i386/i386.h: Fix ABI on darwin x86-32.
34646
34647 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
34648
34649         * tree.h: Declare make_decl_rtl_for_debug.
34650         * varasm.c (make_decl_rtl_for_debug): New.
34651         * dwarf2out.c (rtl_for_decl_location): Call it.
34652         * cfgexpand.c (expand_debug_expr): Call it.
34653
34654 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34655
34656         PR bootstrap/43399
34657         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
34658         mem_mode.
34659
34660         PR bootstrap/43403
34661         * var-tracking.c (vt_init_cfa_base): Do nothing if
34662         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
34663
34664 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
34665
34666         PR debug/42873
34667         * var-tracking.c (canonicalize_vars_star): New.
34668         (dataflow_post_merge_adjust): Use it.
34669
34670 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34671
34672         PR debug/43058
34673         * var-tracking.c (non_suitable_const): New function.
34674         (add_uses): For DEBUG_INSNs with constants, don't record any
34675         value, instead just the constant value itself.
34676         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
34677         is not VAR_LOC_UNKNOWN_P, set var to the constant.
34678         (emit_notes_in_bb): Likewise.
34679         (emit_note_insn_var_location): For onepart variables if
34680         cur_loc is a VOIDmode constant, use DECL_MODE.
34681
34682 2010-03-18  Martin Jambor  <mjambor@suse.cz>
34683
34684         PR middle-end/42450
34685         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
34686         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
34687         all non-clones.  Moved call redirection...
34688         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
34689         (cgraph_materialize_all_clones): Dispose of all
34690         combined_args_to_skip bitmaps.
34691         (verify_cgraph_node): Do not check for edges pointing to wrong
34692         nodes in inline clones.
34693         * tree-inline.c (copy_bb): Call
34694         cgraph_redirect_edge_call_stmt_to_callee.
34695         * ipa.c (cgraph_remove_unreachable_nodes): Call
34696         cgraph_node_remove_callees even when there are used clones.
34697
34698 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34699
34700         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
34701
34702 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34703
34704         PR target/43383
34705         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
34706         for 32bit.
34707
34708 2010-03-18  Michael Matz  <matz@suse.de>
34709
34710         PR middle-end/43419
34711         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
34712         into sqrt(x) if we need to preserve signed zeros.
34713
34714 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
34715             Eric Botcazou  <ebotcazou@adacore.com>
34716
34717         PR rtl-optimization/43360
34718         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
34719         note if we don't know its invariant status.
34720
34721 2010-03-18  Michael Matz  <matz@suse.de>
34722
34723         PR tree-optimization/43402
34724         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
34725         PHI chains of ssa names registered for update.
34726
34727 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
34728
34729         PR target/42427
34730         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
34731         non-offsettable and pre_modify update addressing.
34732         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
34733         and "2" alternatives "#".
34734         (*movdd_softfloat32): Make all alternatives "#";
34735         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
34736         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
34737         (*movdf_softfloat32): Make all alternatives "#";
34738         (movdi): Use the new DIFD mode iterator to create a common splitter
34739         for movdi, movdf and movdd patterns.
34740
34741 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
34742
34743         * common.opt (dumpdir): Remove redundant tab.
34744
34745 2010-03-17  Martin Jambor  <mjambor@suse.cz>
34746
34747         PR tree-optimization/43347
34748         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
34749         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
34750
34751 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
34752
34753         PR rtl-optimization/42216
34754         * regrename.c (create_new_chain): New function, broken out from...
34755         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
34756         appending a use to an empty chain.
34757         (build_def_use): Remove previous changes that convert OP_INOUT to
34758         OP_OUT operands; instead detect the case where an OP_INOUT operand
34759         uses a previously untracked register and create an empty chain for it.
34760
34761 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34762
34763         * doc/extend.texi (Function Attributes): Rewrite unfinished
34764         sentence in ms_abi documentation.
34765
34766 2010-03-17  Alan Modra  <amodra@gmail.com>
34767
34768         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
34769         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
34770         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
34771         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
34772
34773 2010-03-16  Richard Henderson  <rth@redhat.com>
34774
34775         PR middle-end/43365
34776         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
34777         (lower_try_finally): Save and restore eh_seq around the expansion
34778         of the try-finally.
34779
34780 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34781
34782         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
34783         statements before splitting block.
34784
34785 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34786
34787         * doc/sourcebuild.texi (Testsuites): Fix markup.
34788         Use pathnames relative to gcc/testsuite.
34789         (Test Directives): Move description of how timeout is determined.
34790         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
34791         (C Tests): Correct gcc.misc-tests directory.
34792         Framework tests now live in gcc.test-framework.
34793
34794 2010-03-16  Richard Guenther  <rguenther@suse.de>
34795
34796         PR middle-end/43379
34797         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
34798         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
34799
34800 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34801             Alexandre Oliva  <aoliva@redhat.com>
34802
34803         PR tree-optimization/42917
34804         * lambda-code.c (remove_iv): Skip debug statements.
34805         (lambda_loopnest_to_gcc_loopnest): Likewise.
34806         (not_interesting_stmt): Debug statements are not interesting.
34807
34808 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
34809
34810         PR debug/43051
34811         PR debug/43092
34812         * cselib.c (cselib_preserve_constants,
34813         cfa_base_preserved_val): New static variables.
34814         (preserve_only_constants): New function.
34815         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
34816         clear its REG_VALUES.  If cselib_preserve_constants, don't
34817         empty the whole hash table, but preserve there VALUEs with constants,
34818         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
34819         (cselib_preserve_cfa_base_value): New function.
34820         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
34821         (cselib_init): Change argument to int bitfield.  Set
34822         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
34823         is in it.
34824         (cselib_finish): Clear cselib_preserve_constants and
34825         cfa_base_preserved_val.
34826         * cselib.h (enum cselib_record_what): New enum.
34827         (cselib_init): Change argument to int.
34828         (cselib_preserve_cfa_base_value): New prototype.
34829         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
34830         * dse.c (dse_step1): Likewise.
34831         * cfgcleanup.c (thread_jump): Likewise.
34832         * sched-deps.c (sched_analyze): Likewise.
34833         * gcse.c (local_cprop_pass): Likewise.
34834         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
34835         If FN is non-NULL, call the callback always and whenever it returns
34836         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
34837         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
34838         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
34839         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
34840         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
34841         * var-tracking.c: Include recog.h.
34842         (bb_stack_adjust_offset): Remove.
34843         (vt_stack_adjustments): Don't call it, instead just gather the
34844         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
34845         (adjust_stack_reference): Remove.
34846         (compute_cfa_pointer): New function.
34847         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
34848         (struct adjust_mem_data): New type.
34849         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
34850         functions.
34851         (get_address_mode): New function.
34852         (replace_expr_with_values): Use it.
34853         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
34854         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
34855         (adjust_sets): Remove.
34856         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
34857         Use get_address_mode.
34858         (get_adjusted_src): Remove.
34859         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
34860         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
34861         (add_with_sets): Don't call adjust_sets.
34862         (fp_setter, vt_init_cfa_base): New functions.
34863         (vt_initialize): Change return type to bool.  Move most of pool etc.
34864         initialization to the beginning of the function from end.  Pass
34865         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
34866         If !frame_pointer_needed, call vt_stack_adjustment before mos
34867         vector is filled, call vt_init_cfa_base if argp/framep has been
34868         eliminated to sp.  If frame_pointer_needed and argp/framep has
34869         been eliminated to hard frame pointer, set
34870         hard_frame_pointer_adjustment and call vt_init_cfa_base after
34871         encountering fp setter in the prologue.  For MO_ADJUST, call
34872         log_op_type before pusing the op into mos vector, not afterwards.
34873         Call adjust_insn before cselib_process_insn/add_with_sets,
34874         call cancel_changes (0) afterwards.
34875         (variable_tracking_main_1): Adjust for vt_initialize calling
34876         vt_stack_adjustments and returning whether it succeeded or not.
34877
34878 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
34879
34880         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
34881         debug statements.
34882
34883 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
34884
34885         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
34886         has been set.
34887         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
34888         drap_reg has not been set.
34889
34890 2010-03-15  Michael Matz  <matz@suse.de>
34891
34892         PR middle-end/43300
34893         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
34894         use it to expand block copies.
34895         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
34896         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
34897         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
34898
34899 2010-03-15  Richard Guenther  <rguenther@suse.de>
34900
34901         PR tree-optimization/43367
34902         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
34903         elimination check.
34904
34905 2010-03-15  Richard Guenther  <rguenther@suse.de>
34906
34907         PR tree-optimization/43317
34908         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
34909
34910 2010-03-15  Martin Jambor  <mjambor@suse.cz>
34911
34912         PR tree-optimization/43141
34913         * tree-sra.c (create_abstract_origin): New function.
34914         (modify_function): Call create_abstract_origin.
34915
34916 2010-03-15  Chris Demetriou  <cgd@google.com>
34917
34918         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
34919         wasn't copied.
34920
34921 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34922
34923         PR middle-end/43354
34924         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
34925         call insert_out_of_ssa_copy for default definitions.
34926
34927 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34928
34929         * graphite-clast-to-gimple.c (my_long_long): Defined.
34930         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
34931         * graphite-sese-to-poly.c (my_long_long): Defined.
34932         (scop_ivs_can_be_represented): Use it.
34933
34934 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34935
34936         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
34937         graphite-max-bbs-per-function, and loop-block-tile-size.
34938         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
34939         with "maximum".
34940         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
34941
34942 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34943
34944         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
34945         forward declaration.
34946         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
34947         (add_upper_bounds_from_estimated_nit): New.
34948         (build_loop_iteration_domains): Use it.
34949
34950 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34951
34952         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
34953
34954 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34955
34956         PR middle-end/43306
34957         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
34958         should be an INTEGER_CST.  Also handle CASE_CONVERT.
34959
34960 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34961
34962         * graphite.c (graphite_initialize): To bound the number of bbs per
34963         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
34964         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
34965         * doc/invoke.texi: Document it.
34966
34967 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34968
34969         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
34970         * graphite-sese-to-poly.h (build_poly_scop): Same.
34971
34972 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34973
34974         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
34975         the number of parameters in the scop.  Use as an upper bound
34976         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
34977         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
34978         * doc/invoke.texi: Document it.
34979
34980 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
34981
34982         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
34983         * doc/c-tree.texi: Remove.
34984         * doc/generic.texi: Merge c-tree.texi here.
34985         * doc/gccint.texi (Trees): Remove menu entry.
34986         (c-tree.texi): Remove @include.
34987         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
34988         * doc/languages.texi (Reading RTL): Ditto.
34989
34990 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
34991
34992         PR target/42869
34993         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
34994
34995 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
34996
34997         PR middle-end/42431
34998         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
34999         code added to work around reload clobbering CONST insns.
35000
35001 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
35002
35003         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
35004         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
35005         (cselib_preserve_only_values): Remove retain argument, don't
35006         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
35007         * cselib.h (cselib_preserve_only_values): Remove retain argument.
35008         * var-tracking.c (micro_operation): Move insn field before union.
35009         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
35010         (struct variable_tracking_info_def): Remove n_mos field, change
35011         mos into a vector of micro_operations.
35012         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
35013         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
35014         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
35015         changing into a vector.
35016         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
35017         come before all other uops generated by add_stores.
35018         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
35019         argument removal.
35020         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
35021         a vector.  Run just one pass over the bbs instead of separate counting
35022         and computation phase.
35023         (vt_finalize): Free VTI (bb)->mos vector instead of array.
35024
35025         PR debug/43329
35026         * tree-inline.c (remap_decls): Put old_var rather than origin_var
35027         into *nonlocalized_list vector.
35028         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
35029         even if origin is non-NULL.
35030         (gen_variable_die): Likewise.
35031         (process_scope_var): Don't change origin.
35032         (gen_decl_die): Likewise.
35033         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
35034         before adding new edges instead of after it, fix moving over
35035         debug stmts.
35036
35037 2010-03-11  David S. Miller  <davem@davemloft.net>
35038
35039         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
35040         of four.
35041         * configure: Rebuild.
35042
35043 2010-03-11  Martin Jambor  <mjambor@suse.cz>
35044
35045         PR tree-optimization/43257
35046         * tree.c (assign_assembler_name_if_neeeded): New function.
35047         (free_lang_data_in_cgraph): Assembler name assignment moved to the
35048         above new function.
35049         * tree.h (assign_assembler_name_if_neeeded): Declare.
35050         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
35051         the function if needed.
35052
35053 2010-03-11  Chris Demetriou  <cgd@google.com>
35054
35055         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
35056         include/stdint-gcc.h, and include/stdint.h world-readable.
35057
35058 2010-03-11  Richard Guenther  <rguenther@suse.de>
35059
35060         PR tree-optimization/43255
35061         * tree-vrp.c (process_assert_insertions_for): Do not insert
35062         asserts for trivial conditions.
35063
35064 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35065
35066         PR tree-optimization/43280
35067         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
35068         generation.  Move calculation of size out of the if branch.
35069         (find_bswap): Modify compare number generation.
35070
35071 2010-03-11  Richard Guenther  <rguenther@suse.de>
35072
35073         PR lto/43200
35074         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
35075         (input_gimple_stmt): Fixup handled component types during
35076         operand read.  Also fix up decls in ADDR_EXPRs.
35077
35078 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
35079
35080         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
35081         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
35082
35083 2010-03-10  Jan Hubicka  <jh@suse.cz>
35084
35085         PR c/43288
35086         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
35087         * varasm.c (get_variable_section): Don't do that here...
35088         (make_decl_rtl): ... and here.
35089         (do_assemble_alias): Produce decl RTL.
35090         (assemble_alias): Likewise.
35091
35092 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35093
35094         PR debug/43290
35095         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
35096         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
35097         of fde->vdrap_reg.
35098         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
35099         (based_loc_descr): Only express drap or vdrap regno based expressions
35100         using DW_OP_fbreg when not optimizing.
35101         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
35102         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
35103         REG_CFA_SET_VDRAP note.
35104
35105 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
35106
35107         PR tree-optimization/43236
35108         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
35109         error in calculation of base address in reverse iteration case.
35110         (generate_builtin): Take number of latch executions if the statement
35111         is in the latch.
35112
35113 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
35114
35115         PR middle-end/42859
35116         * tree-eh.c: Include pointer-set.h.
35117         (lower_eh_dispatch): Filter out duplicate case labels and
35118         remove the unneeded edge when the label is unused.  Return
35119         true when some edges are removed.
35120         (execute_lower_eh_dispatch): When any lowering resulted in
35121         removing an edge, also delete unreachable blocks.
35122
35123 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35124
35125         PR bootstrap/43287
35126         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
35127         UNSPEC_MACHOPIC_OFFSET.
35128
35129 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
35130
35131         PR target/43294
35132         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
35133         (m68k_delegitimize_address): New function.
35134
35135 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
35136
35137         PR debug/43299
35138         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
35139
35140         PR debug/43299
35141         * var-tracking.c (adjust_sets): New function.
35142         (count_with_sets, add_with_sets): Use it.
35143         (get_adjusted_src): New inline function.
35144         (add_stores): Use it.
35145
35146         PR debug/43304
35147         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
35148         call cselib_dummy_expand_value_rtx_cb instead of
35149         cselib_expand_value_rtx_cb.
35150
35151         PR debug/43293
35152         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
35153         * config/i386/i386.c: Include debug.h and dwarf2out.h.
35154         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
35155         and .cfi_endproc around the pic thunks.
35156         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
35157         all queued unwind info register saves are saved before the call.
35158         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
35159         considered as sp-=4 for unwind info and the pop as sp+=4 which
35160         also clobbers dest, but doesn't actually restore it.
35161
35162         PR debug/43290
35163         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
35164         RTX_FRAME_RELATED_P.
35165
35166 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35167
35168         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
35169         whitespaces in output template.
35170
35171 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35172
35173         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
35174         out array boundary.
35175
35176 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35177
35178         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
35179         builtins.exp in a separate job.
35180
35181 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35182
35183         * graphite-sese-to-poly.c (add_param_constraints): Use
35184         lower_bound_in_type and upper_bound_in_type.
35185
35186 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35187
35188         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
35189         instead of unsigned_type_node.
35190
35191 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35192             Reza Yazdani  <reza.yazdani@amd.com>
35193
35194         PR middle-end/43065
35195         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
35196         on pointer type parameters.
35197
35198 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35199
35200         PR middle-end/42644
35201         PR middle-end/42130
35202         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
35203         handle conversions from pointer to integers.
35204         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
35205         induction variable, to be able to work with code generated by CLooG.
35206         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
35207         (build_poly_scop): Bail out if we cannot codegen a loop.
35208
35209 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35210
35211         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
35212         code generation with gloog_error.
35213
35214 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35215
35216         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
35217         Call fold_convert on all the returned values.
35218         (expand_scalar_variables_expr): Pass to
35219         expand_scalar_variables_ssa_name the type of the resulting expression.
35220
35221 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35222
35223         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
35224         ppl_min_for_le_pointset.
35225         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
35226         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
35227
35228 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35229
35230         * graphite-dependences.c (map_into_dep_poly): Removed.
35231         (dependence_polyhedron_1): Use combine_context_id_scat.
35232
35233 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35234
35235         * graphite-poly.h (struct poly_scattering): Add layout documentation.
35236         (struct poly_bb): Same.
35237         (combine_context_id_scat): New.
35238
35239 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35240
35241         PR middle-end/42326
35242         * sese.c (name_defined_in_loop_p): Return false for default
35243         definitions.
35244
35245 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35246
35247         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
35248         and clean up the logic.
35249
35250 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35251
35252         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
35253         early return.
35254
35255 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35256
35257         * var-tracking.c (remove_cselib_value_chains): Define only for
35258         ENABLE_CHECKING.
35259         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
35260         delete_slot_part, emit_notes_for_differences_1): Don't call
35261         remove_cselib_value_chains here.
35262         (set_slot_part, emit_notes_for_differences_2): Don't call
35263         add_cselib_value_chains here.
35264         (preserved_values): New vector.
35265         (preserve_value): New function.
35266         (add_uses, add_stores, vt_add_function_parameters): Use it
35267         instead of cselib_preserve_value.
35268         (changed_values_stack): New vector.
35269         (check_changed_vars_0): New function.
35270         (check_changed_vars_1, check_changed_vars_2): Use it.
35271         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
35272         changed_values_stack VALUEs.
35273         (vt_emit_notes): For all preserved_values call
35274         add_cselib_value_chains.  If ENABLE_CHECKING call
35275         remove_cselib_value_chains before verifying value_chains is empty.
35276         Initialize and free changed_values_stack.
35277         (vt_initialize): Initialize preserved_values.
35278         (vt_finalize): Free preserved_values.
35279
35280 2010-03-08  Richard Guenther  <rguenther@suse.de>
35281
35282         PR tree-optimization/43269
35283         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
35284         region detection.
35285
35286 2010-03-08  Martin Jambor  <mjambor@suse.cz>
35287
35288         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
35289         (ipa_is_param_called): Removed.
35290         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
35291         (ipa_print_node_params): Do not print the called flag.
35292         (ipa_write_node_info): Do not stream the called flag.
35293         (ipa_read_node_info): Likewise.
35294
35295 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
35296
35297         PR debug/43176
35298         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
35299         * cselib.c (struct expand_value_data): Add dummy field.
35300         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
35301         dummy to false.
35302         (cselib_dummy_expand_value_rtx_cb): New function.
35303         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
35304         any rtl.
35305         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
35306         * var-tracking.c: Include pointer-set.h.
35307         (variable): Change n_var_parts to char from int.  Add
35308         cur_loc_changed and in_changed_variables fields.
35309         (variable_canonicalize): Remove.
35310         (shared_var_p): New inline function.
35311         (unshare_variable): Maintain cur_loc_changed and
35312         in_changed_variables fields.  If var was in changed_variables,
35313         replace it there with new_var.  Just copy cur_loc instead of
35314         resetting it to something else.
35315         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
35316         (dataflow_set_union): Don't call variable_canonicalize.
35317         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
35318         of their DEBUG_EXPR_TREE_DECLs.
35319         (canonicalize_loc_order_check): Verify that cur_loc is NULL
35320         and in_changed_variables and cur_loc_changed is false.
35321         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
35322         and cur_loc_changed.  Don't update cur_loc here.
35323         (variable_merge_over_src): Don't call variable_canonicalize.
35324         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
35325         removing loc that is equal to cur_loc, clear cur_loc,
35326         set cur_loc_changed and ensure variable_was_changed is called.
35327         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
35328         compare pointers in cur_loc check, if it is equal to loc,
35329         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
35330         (variable_different_p): Remove compare_current_location argument,
35331         don't compare cur_loc.
35332         (dataflow_set_different_1): Adjust variable_different_p caller.
35333         (variable_was_changed): If dv had some var in changed_variables
35334         already, reset in_changed_variables flag for it and propagate
35335         cur_loc_changed over to the new variable.  On empty var
35336         always set cur_loc_changed.  Set in_changed_variables on whatever
35337         var is added to changed_variables.
35338         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
35339         Use shared_var_p.  When removing loc that is equal to cur_loc,
35340         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
35341         end, don't set it to something else, just call variable_was_changed.
35342         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
35343         loc being removed, clear cur_loc and set cur_loc_changed.
35344         Set cur_loc_changed if all locations have been removed.
35345         (struct expand_loc_callback_data): New type.
35346         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
35347         allocated.  Always create SUBREGs if simplify_subreg failed.
35348         Prefer to use cur_loc, when that fails and still in
35349         changed_variables (and seen first time) recompute it.  Set
35350         cur_loc_changed of variables which had to change cur_loc and
35351         compute elcd->cur_loc_changed if any of the subexpressions used
35352         had to change cur_loc.
35353         (vt_expand_loc): Adjust to pass arguments in
35354         expand_loc_callback_data structure.
35355         (vt_expand_loc_dummy): New function.
35356         (emitted_notes): New variable.
35357         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
35358         that weren't used for any other decl in current
35359         emit_notes_for_changes call call vt_expand_loc_dummy to update
35360         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
35361         first loc_chain location if NULL before.  Always use just
35362         cur_loc instead of first loc_chain location.  When cur_loc_changed
35363         is false, when not --enable-checking=rtl just don't emit any note.
35364         When rtl checking, compute the note and assert it is the same
35365         as previous note.  Clear cur_loc_changed and in_changed_variables
35366         at the end before removing from changed_variables.
35367         (check_changed_vars_3): New function.
35368         (emit_notes_for_changes): Traverse changed_vars to call
35369         check_changed_vars_3 on each changed var.
35370         (emit_notes_for_differences_1): Clear cur_loc_changed and
35371         in_changed_variables.  Recompute cur_loc of new_var.
35372         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
35373         (vt_emit_notes): Initialize and destroy emitted_notes.
35374
35375 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
35376
35377         PR rtl-optimization/42220
35378         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
35379         Use verify_reg_tracked to determine if we should use OP_OUT rather
35380         than OP_INOUT.
35381         (build_def_use): If we see an in-out operand for a register that we
35382         know nothing about, treat is an output if possible, fail the block if
35383         not.
35384
35385 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35386
35387         PR debug/42897
35388         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
35389         permanently.
35390
35391 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35392
35393         PR debug/42897
35394         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
35395         uses of relevant DEFs that are dead outside the loop too.
35396
35397 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35398
35399         * var-tracking.c (dataflow_set_merge): Swap src and src2.
35400         Reverted:
35401         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
35402         PR debug/41371
35403         * var-tracking.c (values_to_unmark): New variable.
35404         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
35405         values_to_unmark vector.  Moved body to...
35406         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
35407         instead queue it into values_to_unmark vector.
35408         (vt_find_locations): Free values_to_unmark vector.
35409
35410 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
35411
35412         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
35413         (site.exp): Export them when plugins are enabled.
35414
35415 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
35416
35417         PR middle-end/42326
35418         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
35419         that contain scevs.
35420         (chrec_fold_multiply): Same.
35421
35422 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
35423
35424         PR c/43248
35425         * c-decl.c (build_compound_literal): Return early if init is
35426         an error_mark_node.
35427
35428 2010-03-04  Martin Jambor  <mjambor@suse.cz>
35429
35430         PR tree-optimization/43164
35431         PR tree-optimization/43191
35432         * tree-sra.c (type_consists_of_records_p): Reject records with
35433         zero-size bit-fields at the end.
35434
35435 2010-03-04  Mike Stump  <mikestump@comcast.net>
35436
35437         * Makefile.in (TAGS): Remove *.y.
35438
35439 2010-03-04  Richard Guenther  <rguenther@suse.de>
35440
35441         PR tree-optimization/40761
35442         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
35443         in reverse order.
35444         (my_rev_post_order_compute): New function.
35445         (init_pre): Call it.
35446
35447 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
35448
35449         PR middle-end/43209
35450         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
35451         decrease the cost of an IV candidate when the cost is infinite.
35452
35453 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35454
35455         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
35456         Use '3DNow!' for the extension of that name, ensure normal space
35457         after the string.
35458         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
35459
35460 2010-03-03  Jeff Law  <law@redhat.com>
35461
35462         * PR middle-end/32693
35463         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
35464         than gen_rtx_SUBREG.
35465         (extract_bit_field_1): Likewise.
35466
35467 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
35468
35469         * doc/sourcebuild.texi (Test directives): Document that arguments
35470         include-opts and exclude-opts are now optional for dg-skip-if,
35471         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
35472
35473 2010-03-03  Jason Merrill  <jason@redhat.com>
35474
35475         PR c++/12909
35476         * cgraph.h (varpool_node): Add extra_name field.
35477         * varpool.c (varpool_extra_name_alias): New.
35478         (varpool_assemble_decl): Emit extra name aliases.
35479         (varpool_mark_needed_node): Look past an extra name alias.
35480         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
35481         * lto-streamer-in.c (lto_input_tree): Read it.
35482         * lto-streamer-out.c (output_unreferenced_globals): Write it.
35483
35484 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
35485
35486         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
35487         (sparc*-*-solaris2*): ...this.
35488
35489 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
35490
35491         PR debug/43229
35492         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
35493         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
35494         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
35495         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
35496
35497         PR debug/43237
35498         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
35499         fallthrough to default handling, just with want_address 0 instead of 2.
35500         For single element lists, add_AT_loc directly, otherwise create an
35501         artificial variable DIE and stick location list to it.
35502
35503         PR debug/43177
35504         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
35505         (VAL_EXPR_HAS_REVERSE): Define.
35506         (reverse_op): New function.
35507         (add_stores): For reversible operations add an extra MO_VAL_USE.
35508
35509 2010-03-02  Jason Merrill  <jason@redhat.com>
35510
35511         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
35512
35513 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
35514
35515         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
35516         (sparc64-*-linux*): Likewise.
35517         (sparc64-*-solaris2*): Include assembler files before linker ones.
35518         (sparc-*-solaris2*): Simplify and reorder to match previous case.
35519         * config/sparc/gas.h: Delete.
35520         * config/sparc/sol2-64.h: Add copyright notice.
35521         * config/sparc/sol2-gas-bi.h: Likewise.
35522         * config/sparc/sol2-gld.h: Likewise.
35523         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
35524         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
35525         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
35526         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
35527         (sparc_elf_asm_named_section): Rename into...
35528         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
35529
35530 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
35531
35532         * config/alpha/alpha.c (override_options): Fix -mtune error message.
35533
35534 2010-03-02  Jeff Law  <law@redhat.com>
35535
35536         PR middle-end/42431
35537         * reload1.c (rtx_p, substitute_stack): Declare.
35538         (substitute): Record addresses of changed rtxs.
35539         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
35540         Restore the original rtx when complete.
35541         (reload): Free subsitute_stack when complete.
35542
35543 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
35544
35545         * doc/gccint.texi (menu): Add Testsuites as a chapter.
35546         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
35547         new chapter.
35548         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
35549         LTO Testing, gcov Testing, profopt Testing, compat Testing,
35550         Torture Tests): Change from subsection to section.
35551
35552 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
35553             Steven Bosscher  <steven@gcc.gnu.org>
35554
35555         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
35556         instead of bb.
35557
35558 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
35559
35560         PR middle-end/42640
35561         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
35562         the assignment from the new induction variable to the assignment
35563         of the value from the original loop PHI function.
35564
35565 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
35566             Daniel Jacobowitz  <dan@codesourcery.com>
35567
35568         * doc/sourcebuild.texi (Test directives): Clarify options to
35569         dg-skip-if.
35570
35571 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35572
35573         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
35574         Disable cfi directives unless GCC and gas agree on using read-only
35575         .eh_frame sections for 64-bit.
35576         * configure: Regenerate.
35577
35578 2010-03-01  Richard Guenther  <rguenther@suse.de>
35579
35580         PR tree-optimization/43220
35581         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
35582         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
35583
35584 2010-03-01  Richard Guenther  <rguenther@suse.de>
35585             Martin Jambor  <mjambor@suse.cz>
35586
35587         PR middle-end/41250
35588         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
35589         gimplified parameters.
35590
35591 2010-03-01  Christian Bruel  <christian.bruel@st.com>
35592
35593         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
35594
35595 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
35596
35597         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
35598
35599 2010-03-01  Richard Guenther  <rguenther@suse.de>
35600
35601         PR middle-end/43213
35602         * expr.c (expand_assignment): Use the alias-oracle to tell
35603         if the rhs aliases the result decl.
35604
35605 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35606
35607         PR pch/14940
35608         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
35609         to sol_gt_pch_get_address.
35610         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
35611         64-bit, SPARC and x86.
35612         (sol_gt_pch_get_address): New function.
35613
35614 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
35615
35616         * toplev.h (inform_n, error_n): Declare.
35617         * diagnostic.c (inform_n, error_n): New function.
35618
35619 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
35620
35621         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
35622         has no rtl yet when processing local_decls, queue it and recheck
35623         if deferred stack allocation hasn't assigned it rtl.
35624
35625 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
35626
35627         * config/sh/sh.c (unspec_bbr_uid): New.
35628         (gen_block_redirect): Use it instead of INSN_UID.
35629         (gen_far_branch): Likewise.
35630
35631 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
35632
35633         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
35634         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
35635
35636 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35637
35638         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
35639         (Warning Options): -Wno-conversion-null is valid for
35640         Objective-C++ as well.
35641         * doc/tm.texi (Named Address Spaces): Likewise.
35642         * doc/plugins.texi (Plugins): Replace TABs with spaces.
35643         * doc/tree-ssa.texi (Tree SSA): Likewise.
35644
35645 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35646
35647         PR bootstrap/43202
35648         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
35649         by default.  Don't set the default arch for
35650         i[34567]86-*-darwin*|x86_64-*-darwin*.
35651
35652 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35653
35654         PR bootstrap/43202
35655         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
35656         default.  Set the default 32bit/64bit archs with $with_arch
35657         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
35658
35659 2010-02-27  Richard Guenther  <rguenther@suse.de>
35660
35661         PR tree-optimization/43186
35662         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
35663         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
35664         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
35665         unroller iterations.
35666
35667 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35668
35669         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
35670         required and i[34567]86-*-* targets don't support 64bit ISA.
35671
35672 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
35673
35674         PR ada/43096
35675         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
35676         the same alias set.
35677
35678 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35679
35680         * config.gcc: Set the default arch at least to Prescott for
35681         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
35682         if SSE math is enabled.
35683
35684 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35685
35686         * diagnostic.c (diagnostic_initialize): Update.
35687         (diagnostic_report_diagnostic): Test inhibit_notes_p for
35688         informative notes.
35689         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
35690         (diagnostic_inhibit_notes): New.
35691         * toplev.c (process_options): inhibit notes with -fcompare-debug.
35692
35693 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35694
35695         PR c/20631
35696         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
35697         * doc/standards.texi: Likewise.
35698         * doc/extend.texi: Likewise.
35699         * doc/trouble.texi: Likewise.
35700         * doc/cppopts.texi: Likewise.
35701         * doc/install.texi: Likewise.
35702         * c.opt (std=c90,std=gnu90): New options.
35703         * c-opts.c (c_common_handle_option): Handle them.
35704
35705 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35706
35707         PR c/24577
35708         * c-decl.c (undeclared_variable): Use an informative note.
35709
35710 2010-02-26  Richard Guenther  <rguenther@suse.de>
35711
35712         PR tree-optimization/43186
35713         * gimple.h (gimple_fold): Remove.
35714         * gimple.c (gimple_fold): Remove.  Inline into single user ...
35715         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
35716         Try harder for conditions.
35717
35718 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35719
35720         PR debug/43190
35721         * function.c (used_types_insert): Don't skip through named pointer
35722         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
35723         and it is different from the main variant's type.
35724
35725 2010-02-26  Nick Clifton  <nickc@redhat.com>
35726
35727         * config/rx/rx.md (sminsi3): Remove bogus alternative.
35728
35729 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35730
35731         * config.gcc: Support --with-fpmath=sse for x86.
35732
35733         * config/i386/ssemath.h: New.
35734
35735         * doc/install.texi (--with-fpmath=sse): Documented.
35736
35737 2010-02-26  Richard Guenther  <rguenther@suse.de>
35738
35739         PR tree-optimization/43188
35740         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
35741         vector types of over-aligned element type.
35742
35743 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
35744
35745         PR target/43175
35746         * config/i386/i386.c (expand_vec_perm_blend): Use correct
35747         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
35748
35749 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
35750
35751         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
35752
35753 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35754
35755         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
35756         * var-tracking.c: Include diagnostic.h.
35757         (debug_dv): New function.
35758         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
35759
35760         PR debug/43160
35761         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
35762         (add_value_chain, add_value_chains, remove_value_chain,
35763         remove_value_chains): Handle DEBUG_EXPRs.
35764         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
35765
35766         PR debug/43161
35767         * regcprop.c (struct queued_debug_insn_change): New type.
35768         (struct value_data_entry): Add debug_insn_changes field.
35769         (struct value_data): Add n_debug_insn_changes field.
35770         (debug_insn_changes_pool): New variable.
35771         (free_debug_insn_changes, apply_debug_insn_changes,
35772         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
35773         (kill_value_one_regno): Call free_debug_insn_changes if needed.
35774         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
35775         fields.
35776         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
35777         changes for them.
35778         (copyprop_hardreg_forward_1): Don't call apply_change_group for
35779         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
35780         changes, call cprop_find_used_regs via note_stores.
35781         (copyprop_hardreg_forward): When copying vd from predecessor
35782         which has any queued DEBUG_INSN changes, make sure the pointers are
35783         cleared.  At the end call df_analyze and then if there are any
35784         DEBUG_INSN changes queued at the end of some basic block for still
35785         live registers, apply them.
35786         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
35787
35788 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
35789
35790         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
35791         (arm*-*-*): Ditto.
35792
35793 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
35794
35795         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
35796         targets.  Set the default with_cpu/with_arch from arch/cpu.
35797         Allow x86-64 and native for with_cpu/with_arch.
35798
35799 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
35800
35801         * ebitmap.c: Change calls to verify_popcount with calls to
35802         sbitmap_verify_popcount.
35803         (ebitmap_clear_bit): Fixed map->cacheindex test and
35804         map>cache update when bit clearing results in an empty
35805         element.
35806
35807 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
35808
35809         PR target/43154
35810         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
35811         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
35812         and support both V2DF and V2DI modes.
35813         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
35814         support both V2DF and V2DI modes.
35815         (general): Delete trailing whitespace from a few patterns.
35816
35817         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
35818         V2DF/V2DI interleave high/low builtins.
35819
35820         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
35821         new VSX builtins.
35822
35823         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
35824         interleave high/low functions.
35825
35826 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
35827
35828         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
35829         #pragma extern_prefix.
35830
35831 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
35832
35833         PR debug/43166
35834         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
35835         BLKmode, assert op0 is a MEM and just adjust its mode.
35836
35837         PR debug/43165
35838         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
35839         if bitpos isn't multiple of mode's bitsize.
35840
35841 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35842
35843         * c.opt (-ftemplate-depth=): New.
35844         (-ftemplate-depth-): Deprecate.
35845         * optc-gen.awk: Handle -ftemplate-depth=.
35846         * opth-gen.awk: Likewise.
35847         * c-opts.c (c_common_handle_option): Likewise.
35848         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
35849
35850 2010-02-24  Jason Merrill  <jason@redhat.com>
35851
35852         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
35853
35854 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35855
35856         * cfg.c (alloc_aux_for_block): Remove inline.
35857         (alloc_aux_for_edge): Likewise.
35858
35859 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35860
35861         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
35862
35863 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35864
35865         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
35866         * config/i386/sol2-gas.h: New file.
35867         * config.gcc (i[34567]86-*-solaris2*): Use it.
35868
35869 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35870
35871         PR c/43128
35872         * c-typeck.c (ep_convert_and_check): New.
35873         (build_conditional_expr): Use it.
35874         (build_binary_op): Likewise.
35875
35876 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
35877
35878         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
35879
35880         PR debug/43150
35881         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
35882         bounds even for -O+.
35883         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
35884         expr needs to have DECL_NAME set.
35885
35886 2010-02-24  Nick Clifton  <nickc@redhat.com>
35887
35888         * config/mep/mep.c: Include gimple.h.
35889         (mep_function_uses_sp): Delete unused function.
35890         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
35891         parameters.  Use unsigned integers to count args.  Return a
35892         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
35893
35894 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35895
35896         PR target/43107
35897         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
35898         greater or equal to nelt instead of 2 * nelt.
35899         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
35900         with nelt - 1.
35901
35902 2010-02-23  Jason Merrill  <jason@redhat.com>
35903
35904         PR debug/42800
35905         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
35906         in cfun->local_decls even if they have register types.
35907
35908         PR c++/42837
35909         * stor-layout.c (place_field): Don't warn about unnecessary
35910         DECL_PACKED if the type is packed.
35911
35912 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35913
35914         PR target/43139
35915         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
35916         GOTOFF relocs, even when the base reg isn't pic pointer.
35917
35918 2010-02-23  Michael Matz  <matz@suse.de>
35919
35920         PR debug/43077
35921         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
35922         (expand_gimple_basic_block): Generate and use debug temps if there
35923         are debug uses left after the last real use of TERed ssa names.
35924         Unlink debug immediate uses when they are expanded.
35925
35926 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35927
35928         PR 43123
35929         * config/i386/i386.c (override_options): Reorganise to provide
35930         better error messages.
35931
35932 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35933
35934         PR middle-end/43083
35935         * graphite-scop-detection.c (create_single_exit_edge): Move
35936         the call to find_single_exit_edge to....
35937         (create_sese_edges): ...here.  Don't handle multiple edges
35938         exiting the function.
35939         (build_graphite_scops): Don't handle multiple edges
35940         exiting the function.
35941
35942 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35943
35944         PR middle-end/43097
35945         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
35946         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
35947
35948 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35949
35950         PR middle-end/43026
35951         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
35952
35953 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35954
35955         PR c++/43126
35956         * c-typeck.c (convert_arguments): Print declaration location.
35957         * c-common.c (validate_nargs): Rename as
35958         builtin_function_validate_nargs.
35959         (check_builtin_function_arguments): Update.
35960
35961 2010-02-22  Richard Guenther  <rguenther@suse.de>
35962
35963         PR lto/43045
35964         * tree-inline.c (declare_return_variable): Use the type of
35965         the call stmt lhs if available.
35966
35967 2010-02-22  Duncan Sands  <baldrick@free.fr>
35968
35969         * passes.c (register_pass): Always consider all pass lists when
35970         ref_pass_instance_number is zero.
35971
35972 2010-02-22  Richard Guenther  <rguenther@suse.de>
35973
35974         PR tree-optimization/42749
35975         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
35976         parameter.  Do arithmetic in the original type.
35977         (update_accumulator_with_ops): Likewise.
35978         (adjust_accumulator_values): Adjust.
35979
35980 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35981
35982         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
35983         (QI to BLKmode splitter): New splitter.
35984
35985 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
35986
35987         * config/i386/i386.c (initial_ix86_tune_features): Turn on
35988         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
35989
35990 2010-02-22  Richard Guenther  <rguenther@suse.de>
35991
35992         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
35993
35994 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
35995
35996         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
35997         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
35998         ($(T)crti.o, $(T)crtn.o): Remove rules.
35999
36000 2010-02-21  Tobias Burnus  <burnus@net-b.de>
36001
36002         PR fortran/35259
36003         * doc/invoke.texi (-fassociative-math): Document that this
36004         option is automatically enabled for Fortran.
36005
36006 2010-02-20  David S. Miller  <davem@davemloft.net>
36007
36008         * configure.ac: Test if linker and assembler properly support
36009         GOTDATA_OP relocations.
36010         * configure: Rebuild.
36011         * config.in: Likewise.
36012         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
36013         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
36014         (movsi_high_pic): Likewise.
36015         (movdi_lo_sum_pic): Likewise.
36016         (movdi_high_pic): Likewise.
36017         (movsi_pic_gotdata_op): New pattern.
36018         (movdi_pic_gotdata_op): Likewise.
36019         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
36020         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
36021
36022 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
36023
36024         PR target/43067
36025         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
36026         attribute to ssemul.
36027         (xop_mulv2div2di3_high): Ditto.
36028
36029 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36030
36031         PR c++/35669
36032         * c.opt (Wconversion-null): New option.
36033         * doc/invoke.texi (Wconversion-null): Document.
36034
36035 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36036
36037         * common.opt (Wlarger-than-): Add Undocumented.
36038
36039 2010-02-19  Mike Stump  <mikestump@comcast.net>
36040
36041         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
36042
36043 2010-02-19  Jason Merrill  <jason@redhat.com>
36044
36045         PR target/40332
36046         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
36047         * configure: Likewise.
36048
36049 2010-02-20  Alan Modra  <amodra@gmail.com>
36050
36051         PR middle-end/42344
36052         * cgraph.h (cgraph_make_decl_local): Declare.
36053         * cgraph.c (cgraph_make_decl_local): New function.
36054         (cgraph_make_node_local): Use it.
36055         * cgraphunit.c (cgraph_function_versioning): Likewise.
36056         * ipa.c (function_and_variable_visibility): Likewise.
36057
36058 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36059
36060         PR bootstrap/43121
36061         * except.c (sjlj_emit_function_enter): Don't call
36062         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
36063         directly.
36064         * rtl.h (add_reg_br_prob_note): Remove prototype.
36065
36066 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36067
36068         PR 41779
36069         * c-common.c (conversion_warning): Remove widening conversions
36070         before checking the conversion of integers to reals.
36071
36072 2010-02-19  Mike Stump  <mikestump@comcast.net>
36073
36074         PR middle-end/43125
36075         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
36076
36077         PR objc/43061
36078         * cgraphunit.c (process_function_and_variable_attributes): Check
36079         DECL_PRESERVE_P instead of looking up attribute "used".
36080         * ipa-pure-const.c (check_decl): Likewise.
36081         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
36082         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
36083         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
36084         instead of attribute "used".
36085         * config/sol2-c.c (solaris_pragma_init): Likewise.
36086         (solaris_pragma_fini): Likewise.
36087
36088 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36089
36090         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
36091         Use XCNEW instead of xcalloc.
36092         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
36093         XNEW instead of xmalloc.
36094         (get_fields): Use XNEWVEC instead of xmalloc.
36095
36096         PR debug/43084
36097         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
36098         populate vars array.
36099         (create_new_general_access): For debug stmts just reset value.
36100         (get_stmt_accesses): For accesses within debug stmts just record them
36101         using add_access_to_acc_sites instead of preventing the peeling or
36102         counting them as accesses.
36103
36104         PR middle-end/42233
36105         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
36106
36107 2010-02-19  Richard Guenther  <rguenther@suse.de>
36108
36109         PR tree-optimization/42916
36110         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
36111         instructions.
36112
36113 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
36114
36115         * configure.ac: Replace all uses of changequote in macro arguments
36116         with proper quoting.
36117
36118 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36119
36120         PR middle-end/42233
36121         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
36122
36123 2010-02-19  Richard Guenther  <rguenther@suse.de>
36124
36125         PR tree-optimization/42944
36126         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
36127         test for aliasing with errno.
36128
36129 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36130
36131         PR middle-end/42233
36132         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
36133         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
36134         * dojump.c: Include output.h.
36135         (inv): New inline function.
36136         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
36137         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
36138         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
36139         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
36140         argument, pass it down to other calls.
36141         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
36142         add REG_BR_PROB note to the conditional jump.
36143         * cfgexpand.c (add_reg_br_prob_note): Removed.
36144         (expand_gimple_cond): Don't call it, add the probability
36145         as last argument to jumpif_1/jumpifnot_1.
36146         * Makefile.in (dojump.o): Depend on output.h.
36147         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
36148         callers.
36149         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
36150         * stmt.c (do_jump_if_equal): Likewise.
36151         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
36152         * loop-unswitch.c (compare_and_jump_seq): Likewise.
36153         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
36154         Likewise.
36155         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
36156         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
36157         jumpifnot_1 callers.
36158         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
36159         callers.
36160         (store_expr): Adjust jumpifnot caller.
36161         (store_constructor): Adjust jumpif caller.
36162
36163         PR middle-end/42233
36164         * gimplify.c (gimple_boolify): For __builtin_expect call
36165         gimple_boolify also on its first argument.
36166
36167 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
36168
36169         * configure.ac (gnu-unique-object): Wrap regexps using [] in
36170         changequote block.
36171         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
36172         * configure: Regenerated.
36173
36174 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
36175
36176         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
36177         lang_hooks.types_compatible_p instead of comptypes.
36178
36179 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
36180
36181         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
36182         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
36183         if __prefer_thumb__ is defined.
36184
36185 2010-02-18  Martin Jambor  <mjambor@suse.cz>
36186
36187         PR tree-optimization/43066
36188         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
36189         array with zero-sized element type.
36190
36191 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
36192
36193         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
36194         rtx, allocate struct var_loc_node here and return it to the
36195         caller, and only if it is actually needed.
36196         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
36197         move it earlier and return immediately if it returns NULL.
36198
36199 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
36200
36201         * config/sparc/gas.h: New file.  Restore
36202         TARGET_ASM_NAMED_SECTION to its ELF default.
36203         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
36204         check !HAVE_GNU_AS.
36205         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36206         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
36207         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
36208         after sparc/sysv4.h.
36209
36210 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
36211
36212         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
36213
36214 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
36215
36216         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
36217         patterns from predicated pattern.
36218
36219 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
36220
36221         PR target/43103
36222         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
36223         for insn mnemonic suffix.
36224
36225 2010-02-17  Richard Guenther  <rguenther@suse.de>
36226
36227         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
36228         to loop PHI nodes.
36229
36230 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
36231
36232         PR debug/42918
36233         * caller-save.c (save_call_clobbered_regs): If BB ends with
36234         a DEBUG_INSN, move any notes in between last real insn and the last
36235         DEBUG_INSN after the last DEBUG_INSN.
36236
36237 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
36238
36239         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
36240         Fix return type.  Fix argument type.  Explain meaning of return value.
36241
36242 2010-02-16  Richard Guenther  <rguenther@suse.de>
36243
36244         PR tree-optimization/41043
36245         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
36246         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
36247         statements ...
36248         (vrp_visit_phi_node): ... but only for loop PHI nodes.
36249
36250 2010-02-16  Ira Rosen  <irar@il.ibm.com>
36251
36252         PR tree-optimization/43074
36253         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
36254         * tree-vect-loop.c (vect_analyze_loop_operations): Add
36255         vectorizable cycles in hybrid SLP check.
36256         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
36257
36258 2010-02-16  Richard Guenther  <rguenther@suse.de>
36259
36260         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
36261         (true_dependence): If memrefs_conflict_p computes must-alias
36262         trust it.  Move TBAA check after offset-based disambiguation.
36263         (canon_true_dependence): Likewise.
36264
36265 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
36266
36267         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
36268         * doc/invoke.texi: Document it.
36269         * var-tracking.c: Include toplev.h and params.h.
36270         (vt_find_locations): Return bool indicating success.  Compute
36271         hash sizes unconditionally.  Check new parameter, report.
36272         (variable_tracking_main_1): Check vt_find_locations results and
36273         retry.  Renamed from...
36274         (variable_tracking_main): ... this.  New wrapper to preserve
36275         flag_var_tracking_assignments.
36276         * Makefile.in (var-tracking.o): Adjust dependencies.
36277
36278 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
36279             Jakub Jelinek  <jakub@redhat.com>
36280
36281         PR target/42854
36282         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
36283         if weak_import attribute is present.
36284         * config/darwin.c (machopic_select_section): Likewise.
36285
36286 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
36287
36288         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
36289         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
36290         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
36291         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
36292
36293         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
36294         types.
36295
36296         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
36297         Fix argument types.
36298
36299         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
36300         Rewrite text to refer to the names.
36301
36302 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
36303
36304         * config/i386/i386-builtin-types.def
36305         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
36306         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
36307         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
36308         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
36309         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
36310         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
36311         IX86_BUILTIN_VPERMIL2PS256.
36312         (MULTI_ARG_4_DF2_DI_I): Defined.
36313         (MULTI_ARG_4_DF2_DI_I1): Defined.
36314         (MULTI_ARG_4_SF2_SI_I): Defined.
36315         (MULTI_ARG_4_SF2_SI_I1): Defined.
36316         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
36317         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
36318         __builtin_ia32_vpermil2ps256.
36319         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36320         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36321         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
36322         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36323         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36324         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
36325         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
36326         CODE_FOR_xop_vpermil2v8sf3.
36327         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
36328         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
36329         * config/i386/xopintrin.h (_mm_permute2_pd): New.
36330         (_mm256_permute2_pd): New.
36331         (_mm_permute2_ps): New.
36332         (_mm256_permute2_ps): New.
36333
36334 2010-02-15  Nick Clifton  <nickc@redhat.com>
36335
36336         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
36337         boolean parameters.  Use emit_jump_insn when emitting a pop
36338         instruction containing a return insn.
36339         (push): Use 'true' rather than '1' as second parameter to F.
36340         (h8300_expand_prologue): Likewise.
36341         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
36342         (h8300_expand_epilogue): Likewise.
36343
36344 2010-02-15  Richard Guenther  <rguenther@suse.de>
36345
36346         PR middle-end/43068
36347         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
36348         if that is zero.
36349
36350 2010-02-15  Nick Clifton  <nickc@redhat.com>
36351
36352         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
36353         delta.
36354
36355 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
36356
36357         * intl.c (fake_ngettext): New function.
36358         * intl.h (fake_ngettext): Declare.
36359         (ngettext): Define macro.
36360         * collect2.c (notice_translated): New function.
36361         (main): Use notice_translated and ngettext.
36362         * collect2.h (notice_translated): Declare.
36363
36364 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
36365
36366         * reorg.c (delete_computation): Comment fixes.
36367         * caller-save.c (setup_save_areas): Idem.
36368         * sel-sched-dump.c (dump_lv_set): Idem.
36369         * rtl.def: Idem.
36370
36371 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36372
36373         * config/s390/s390.c (s390_sched_init): New function.
36374         (TARGET_SCHED_INIT): Target hook defined.
36375
36376 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
36377             Jack Howarth  <howarth@bromo.med.uc.edu>
36378             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
36379
36380         PR target/42982
36381         Partial revert of unintended change in fix for PR41605.
36382         * config/darwin.h: Fix typo.
36383         * config/darwin9.h: Same.
36384
36385 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36386
36387         * c-pch.c (pch_init): Clear v.
36388
36389 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36390
36391         PR middle-end/42930
36392         * graphite-scop-detection.c (graphite_can_represent_scev): Call
36393         graphite_can_represent_init for MULT_EXPR.
36394
36395 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36396
36397         PR middle-end/42914
36398         PR middle-end/42530
36399         * graphite-sese-to-poly.c (remove_phi): New.
36400         (translate_scalar_reduction_to_array): Call remove_phi.
36401
36402 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36403
36404         PR middle-end/42771
36405         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
36406         * graphite-clast-to-gimple.h (gloog): Update declaration.
36407         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
36408         * graphite-poly.h (struct poly_bb): Add missing comments.
36409         (struct scop): Add poly_scop_p field.
36410         (POLY_SCOP_P): New.
36411         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
36412         * graphite.c (graphite_transform_loops): Build the polyhedral
36413         representation for each scop before code generation.
36414         * sese.c (rename_variables_in_operand): Removed.
36415         (rename_variables_in_expr): Return the renamed expression.
36416         (rename_sese_parameters): New.
36417         * sese.h (rename_sese_parameters): Declared.
36418
36419 2010-02-11  Richard Guenther  <rguenther@suse.de>
36420
36421         PR tree-optimization/42998
36422         * tree-ssa-pre.c (create_expression_by_pieces): Treat
36423         POINTER_PLUS_EXPR properly.
36424
36425 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36426             Changpeng Fang  <changpeng.fang@amd.com>
36427
36428         PR middle-end/40886
36429         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
36430         the cost of an IV candidate when the IV is used in a test against zero.
36431
36432         * gcc.dg/tree-ssa/ivopts-3.c: New.
36433
36434 2010-02-11  Richard Guenther  <rguenther@suse.de>
36435
36436         PR lto/41664
36437         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
36438         pointer-vs-decl case by swapping refs.  Handle some cases
36439         of pointer-vs-decl disambiguations more conservatively.
36440         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
36441         to false after expanding.
36442
36443 2010-02-11  Richard Guenther  <rguenther@suse.de>
36444
36445         PR driver/43021
36446         * gcc.c (process_command): Handle LTO file@offset case more
36447         appropriately.
36448
36449 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36450
36451         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
36452         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
36453         of DEBUG_INSNs.
36454         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
36455
36456         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
36457         if MEM's mode size isn't DWARF2_ADDR_SIZE.
36458         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
36459         Optimize eq/ne comparisons when both arguments are known to be
36460         zero-extended.
36461         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
36462         Don't mask operands unnecessarily if they are known to be already
36463         zero-extended.
36464
36465 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
36466
36467         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
36468         instead of loop.
36469
36470 2010-02-10  Richard Guenther  <rguenther@suse.de>
36471
36472         PR tree-optimization/43017
36473         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
36474         for wrapping signed arithmetic.
36475
36476 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36477
36478         PR debug/43010
36479         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
36480         if no debug info should be emitted for it.
36481
36482 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
36483
36484         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
36485         note when flag_exceptions is set.
36486
36487 2010-02-10  Duncan Sands  <baldrick@free.fr>
36488
36489         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
36490
36491 2010-02-10  Richard Guenther  <rguenther@suse.de>
36492
36493         PR c/43007
36494         * tree.c (get_unwidened): Handle constants.
36495         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
36496
36497 2010-02-10  Martin Jambor  <mjambor@suse.cz>
36498
36499         PR lto/42985
36500         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
36501         check for variable argument counts independently.
36502
36503 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36504
36505         PR target/42841
36506         * config/sh/sh.c (find_barrier): Increase length for non delayed
36507         conditional branches.
36508
36509 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36510
36511         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
36512
36513 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36514
36515         * builtins.c (set_builtin_user_assembler_name): Also handle
36516         ffs if int is smaller than word.
36517
36518 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
36519
36520         PR middle-end/42973
36521         * ira-conflicts.c (get_dup): Remove.
36522         (process_reg_shuffles): Add new parameter.  Use it as an
36523         additional guard for copy generation.
36524         (add_insn_allocno_copies): Rewrite.
36525
36526 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
36527
36528         * common.opt (fsched2-use-traces): Preserved for backward
36529         compatibility.
36530         * doc/invoke.texi: Remove the documentation about option
36531         -fsched2-use-traces.
36532         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
36533         flag_sched2_use_traces.
36534         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
36535         the backward compatibility flag section.
36536
36537 2010-02-09  Richard Guenther  <rguenther@suse.de>
36538
36539         PR tree-optimization/43008
36540         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
36541         make HEAP variables initialized from global memory if they
36542         are not known builtin functions.
36543         (find_func_aliases): Adjust.
36544
36545 2010-02-09  Richard Guenther  <rguenther@suse.de>
36546
36547         PR tree-optimization/43000
36548         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
36549         arithmetic manually.
36550
36551 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
36552
36553         PR tree-optimization/42931
36554         * tree-loop-linear.c (try_interchange_loops): Don't call
36555         double_int_mul if estimated_loop_iterations failed.
36556
36557 2010-02-08  Martin Jambor  <mjambor@suse.cz>
36558
36559         PR middle-end/42898
36560         * tree-sra.c (build_accesses_from_assign): Do not mark in
36561         should_scalarize_away_bitmap if stmt has volatile ops.
36562         (sra_modify_assign): Do not process assigns piecemeal if if stmt
36563         has volatile ops.
36564
36565 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
36566
36567         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
36568
36569 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
36570
36571         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
36572         before the pattern.
36573
36574 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
36575
36576         PR middle-end/42946
36577         * df-core.c (df_finish_pass): Change type of saved_flags to int.
36578
36579 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36580
36581         PR middle-end/42988
36582         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
36583         to unknown_dependence.
36584         (graphite_legal_transform_dr): Handle the unknown_dependence.
36585         (graphite_carried_dependence_level_k): Same.
36586
36587 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36588
36589         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
36590
36591 2010-02-07  Richard Guenther  <rguenther@suse.de>
36592
36593         PR middle-end/42991
36594         * expr.c (get_inner_reference): Always initialize *pbitsize.
36595
36596 2010-02-07  Richard Guenther  <rguenther@suse.de>
36597
36598         PR middle-end/42956
36599         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
36600         new ARRAY_REFs on variable size element or minimal index arrays.
36601         Complete.
36602         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
36603         gimple_fold_indirect_ref.
36604
36605 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
36606
36607         PR target/42957
36608         * arm.c (arm_override_options): Just return if the user has specified
36609         an invalid fpu name.
36610
36611 2010-02-03  Jason Merrill  <jason@redhat.com>
36612
36613         PR c++/42870
36614         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
36615         i386_pe_maybe_record_exported_symbol.
36616
36617 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
36618
36619         PR target/42924
36620         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36621         (pa_delegitimize_address): New function.
36622
36623 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
36624
36625         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
36626         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
36627
36628 2010-02-05  Richard Guenther  <rguenther@suse.de>
36629
36630         PR lto/42762
36631         * lto-streamer-in.c (get_resolution): Deal with references
36632         to undefined functions.
36633
36634 2010-02-05  Richard Guenther  <rguenther@suse.de>
36635
36636         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
36637         (fold_const_aggregate_ref): Likewise.
36638         (ccp_fold_stmt): Substitute loads.
36639         (maybe_fold_reference): Verify types before substituting.
36640         Unshare properly.
36641         (fold_gimple_assign): Unshare properly.
36642         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
36643
36644 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
36645
36646         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
36647         for rs6000_gen_cell_microcode.
36648
36649 2010-02-04  Richard Guenther  <rguenther@suse.de>
36650
36651         PR rtl-optimization/42952
36652         * dse.c (const_or_frame_p): Remove MEM handling.
36653
36654 2010-02-04  Nick Clifton  <nickc@redhat.com>
36655
36656         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
36657         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
36658         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
36659         (mn10300_asm_output_mi_thunk): New function.
36660         (mn10300_can_output_mu_thunk): New function.
36661         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
36662         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
36663         (FUNCTION_ARG): Delete incorrect comment.
36664
36665 2010-02-03  Jason Merrill  <jason@redhat.com>
36666
36667         PR c++/40138
36668         * fold-const.c (operand_equal_p): Handle erroneous types.
36669
36670 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
36671
36672         * config/h8300/h8300.md (can_delay): Fix attibute condition.
36673
36674 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
36675
36676         PR rtl-optimization/42941
36677         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
36678         of xmalloc.
36679
36680 2010-02-03  Jason Merrill  <jason@redhat.com>
36681
36682         PR c++/35652
36683         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
36684
36685 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
36686
36687         PR debug/42896
36688         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
36689         (cselib_reset_table): Renamed from...
36690         (cselib_reset_table_with_next_value): ... this.
36691         (cselib_get_next_uid): Renamed from...
36692         (cselib_get_next_unknown_value): ... this.
36693         * cselib.c (next_uid): Renamed from...
36694         (next_unknown_value): ... this.
36695         (cselib_clear_table): Adjust.
36696         (cselib_reset_table): Adjust.  Renamed from...
36697         (cselib_reset_table_with_next_value): ... this.
36698         (cselib_get_next_uid): Adjust.  Renamed from...
36699         (cselib_get_next_unknown_value): ... this.
36700         (get_value_hash): Use hash.
36701         (cselib_hash_rtx): Likewise.
36702         (new_cselib_val): Adjust.  Set and dump uid.
36703         (cselib_lookup_mem): Pass next_uid as hash.
36704         (cselib_subst_to_values): Likewise.
36705         (cselib_log_lookup): Dump uid.
36706         (cselib_lookup): Pass next_uid as hash.  Adjust.
36707         (cselib_process_insn): Adjust.
36708         (cselib_init): Initialize next_uid.
36709         (cselib_finish): Adjust.
36710         (dump_cselib_table): Likewise.
36711         * dse.c (canon_address): Dump value uid.
36712         * print-rtl.c (print_rtx): Print value uid.
36713         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
36714         (dvuid): New type.
36715         (dv_uid): New function, sort of renamed from...
36716         (dv_htab_hash): ... this, reimplemented in terms of it and...
36717         (dv_uid2hash): ... this.  New.
36718         (variable_htab_eq): Drop excess assertions.
36719         (tie_break_pointers): Removed.
36720         (canon_value_cmp): Compare uids.
36721         (variable_post_merge_New_vals): Print uids.
36722         (vt_add_function_parameters): Adjust.
36723         (vt_initialize): Reset table.  Adjust.
36724
36725 2010-02-03  Richard Guenther  <rguenther@suse.de>
36726
36727         PR tree-optimization/42944
36728         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
36729         (call_may_clobber_ref_p_1): Likewise.  Properly handle
36730         malloc and calloc clobbering errno.
36731
36732 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
36733
36734         * doc/invoke.texi: Fix name of sched1 dump.
36735
36736         * opts.c (decode_options): Set flag_tree_switch_conversion
36737         only conditionally on optimize >= 2.
36738
36739         * gcse.c: Assorted comment fixes in pass description.
36740
36741 2010-02-03  Anthony Green  <green@moxielogic.com>
36742
36743         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
36744         nop padding in order to maintain alignment of storage location of
36745         target function address.
36746         (moxie_trampoline_init): Store target function address at newly
36747         aligned location.
36748         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
36749         to 32.
36750         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
36751
36752 2010-02-03  Richard Guenther  <rguenther@suse.de>
36753
36754         PR middle-end/42927
36755         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
36756
36757 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36758
36759         * config.gcc: Reenable check for obsolete targets.
36760         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
36761         mips-sgi-irix6.[0-4]*.
36762
36763 2010-02-02  Nick Clifton  <nickc@redhat.com>
36764
36765         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
36766         constant size of 4 as being the same as 0.
36767         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
36768         can take values in the range 0..4.
36769
36770 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
36771
36772         PR java/41991
36773         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
36774         as _darwin10_Unwind_FindEnclosingFunction().
36775         * libgcc-libsystem.ver: New.
36776
36777 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
36778
36779         PR target/41399
36780         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
36781         implicitly set registers.
36782
36783 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
36784
36785         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
36786         (arm_override_options): Allow automatic selection of the thread
36787         pointer register if thumb2.
36788         (legitimize_pic_address): Improve code sequences for Thumb2.
36789         (arm_call_tls_get_addr): Likewise.
36790         (legitimize_tls_address): Likewise.
36791         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
36792         (pic_load_addr_32bit): ... this.  New named pattern.
36793         * thumb2.md (pic_load_addr_thumb2): Delete.
36794         (pic_load_dot_plus_four): Delete.
36795         (tls_load_dot_plus_four): New named pattern.
36796
36797 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36798
36799         PR libgomp/29986
36800         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
36801         Document fix for TLS bug.
36802
36803 2010-01-31  Richard Guenther  <rguenther@suse.de>
36804
36805         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
36806         conservatively correct.
36807
36808 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36809
36810         PR target/42850
36811         Revert:
36812         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36813
36814         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
36815
36816 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
36817
36818         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
36819
36820 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
36821
36822         * config.gcc: Adjust order of makefile fragments for mingw targets.
36823
36824 2010-01-31  Richard Guenther  <rguenther@suse.de>
36825
36826         PR middle-end/42898
36827         * gimplify.c (gimplify_init_constructor): For volatile LHS
36828         initialize a temporary.
36829
36830 2010-01-31  Matthias Klose  <doko@ubuntu.com>
36831
36832         * configure.ac: Fix __stack_chk_fail check for cross builds configured
36833         --with-headers
36834         * configure: Regenerate.
36835
36836 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
36837
36838         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
36839         the same alias set and their sizes different constantness.
36840         (aliasing_component_refs_p): Revert 2009-10-24 change.
36841
36842 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36843
36844         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
36845         unused.
36846
36847 2010-01-29  Richard Guenther  <rguenther@suse.de>
36848
36849         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
36850         Assert we successfully updated the call.
36851
36852 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
36853
36854         PR rtl-optimization/42889
36855         * df.h (df_set_bb_dirty_nonlr): New prototype.
36856         * df-core.c (df_set_bb_dirty_nonlr): New function.
36857         * df-scan.c (df_insn_rescan): Call it instead of
36858         df_set_bb_dirty for DEBUG_INSNs.
36859
36860 2010-01-29  Richard Guenther  <rguenther@suse.de>
36861
36862         PR middle-end/37448
36863         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
36864         quadratic behavior in most cases.
36865
36866 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
36867
36868         PR target/42891
36869         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
36870         in the call to gen_x86_movsicc_0_m1.
36871
36872 2010-01-28  Richard Guenther  <rguenther@suse.de>
36873
36874         PR tree-optimization/42871
36875         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
36876
36877 2010-01-28  Richard Guenther  <rguenther@suse.de>
36878
36879         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
36880         into call arguments.
36881
36882 2010-01-28  Richard Guenther  <rguenther@suse.de>
36883
36884         PR middle-end/42883
36885         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
36886         the forwarder if the destination is an EH landing pad.
36887
36888 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
36889
36890         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
36891         block list passed to gimple_duplicate_sese_tail.
36892         (parallelize_loops): Avoid parallelization when the function
36893         has_nonlocal_label.
36894         Avoid parallelization when the preheader is IRREDUCIBLE.
36895         Try to optimize when estimated_loop_iterations_int is unresolved.
36896         Add the loop's location to the dump file.
36897         * tree-cfg.c (add_phi_args_after_redirect): Remove.
36898         (gimple_duplicate_sese_tail): Remove the check for the latch.
36899         Redirect nexits to the exit block.
36900         Remove handling of the incoming edges to the latch.
36901         Redirect the backedge from the copied latch to the exit bb.
36902
36903 2010-01-28  Michael Matz  <matz@suse.de>
36904
36905         PR target/42881
36906         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
36907         Wrap force_reg into a sequence, emit it before user.
36908
36909 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
36910
36911         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
36912         (arm_rev): New.
36913         (arm_legacy_rev): Likewise.
36914         (thumb_legacy_rev): Likewise.
36915
36916 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36917
36918         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
36919         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
36920         on MEM's address failed, try avoid_constant_pool_reference and
36921         recurse if it returned something different.
36922         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
36923         address, try avoid_constant_pool_reference and recurse if it
36924         returned something different.
36925         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
36926         address and avoid_constant_pool_reference returned something
36927         different, don't set have_address.
36928
36929 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
36930
36931         PR debug/42861
36932         * var-tracking.c (val_store): Add modified argument, obey it.
36933         Adjust callers.
36934         (count_uses): Move down logging of main.
36935         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
36936         don't need resolution.
36937         (emit_notes_in_bb): Likewise.
36938
36939 2010-01-27  Richard Guenther  <rguenther@suse.de>
36940
36941         PR middle-end/42878
36942         * tree-inline.c (remap_decl): Delay remapping of SSA name
36943         default definitions until we need them.
36944
36945 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36946
36947         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36948         (rs6000_delegitimize_address): New function.
36949
36950         * config/s390/s390.c (s390_delegitimize_address): Call
36951         delegitimize_mem_from_attrs.
36952
36953         PR middle-end/42874
36954         * tree-inline.c (cannot_copy_type_1): Removed.
36955         (copy_forbidden): Don't forbid copying of functions containing
36956         records/unions with variable length fields.
36957
36958 2010-01-27  Christian Bruel  <christian.bruel@st.com>
36959
36960         Revert:
36961         PR target/42841
36962         * config/sh/sh.c (find_barrier): Increase length for non delayed
36963         conditional branches.
36964
36965 2010-01-27  Matthias Klose  <doko@ubuntu.com>
36966
36967         * configure.ac (gnu-unique-object): Fix ldd version check.
36968         * configure: Regenerate.
36969
36970 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36971
36972         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
36973         HAVE_GNU_AS value.
36974         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
36975         Test for HAVE_GNU_AS value.
36976
36977 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36978
36979         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
36980         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
36981         INT64_TYPE): Define.
36982         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
36983         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
36984         INT_LEAST64_TYPE): Define.
36985         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
36986         UINT_LEAST64_TYPE): Define.
36987         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
36988         INT_FAST64_TYPE): Define.
36989         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
36990         UINT_FAST64_TYPE): Define.
36991         (INTMAX_TYPE, UINTMAX_TYPE): Define.
36992         (INTPTR_TYPE, UINTPTR_TYPE): Define.
36993         (SIG_ATOMIC_TYPE): Define.
36994
36995 2010-01-26  Richard Guenther  <rguenther@suse.de>
36996
36997         * df-scan.c (df_scan_set_bb_info): Remove assert.
36998         (df_insn_rescan_debug_internal): Merge asserts.
36999         (df_install_ref): Likewise.
37000         (df_mark_reg): Use bitmap_set_range.
37001         (df_hard_reg_used_p): Remove assert.
37002         (df_hard_reg_used_count): Likewise.
37003
37004 2010-01-26  Richard Guenther  <rguenther@suse.de>
37005
37006         PR rtl-optimization/42685
37007         * web.c (web_main): Ignore DEBUG_INSNs.
37008
37009 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
37010
37011         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
37012
37013         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
37014         Fix types of fndecl and arglist parameters.
37015
37016 2010-01-26  Richard Guenther  <rguenther@suse.de>
37017
37018         PR middle-end/42806
37019         * tree-eh.c (unsplit_eh): Skip debug insns.
37020
37021 2010-01-26  Richard Guenther  <rguenther@suse.de>
37022
37023         PR tree-optimization/42250
37024         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
37025
37026 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
37027
37028         PR fortran/42866
37029         * omp-low.c (expand_omp_sections): Only use single_pred if
37030         l2_bb is single_pred_p.
37031
37032 2010-01-25  Christian Bruel  <christian.bruel@st.com>
37033
37034         PR target/42841
37035         * config/sh/sh.c (find_barrier): Increase length for non delayed
37036         conditional branches.
37037         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
37038
37039 2010-01-24  David S. Miller  <davem@davemloft.net>
37040
37041         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
37042         define if not using GAS.
37043         * config/sparc/sparc.c (sparc_elf_asm_named_section):
37044         Likewise.  Delete SECTION_MERGE code, which is only applicable
37045         when using GAS.
37046
37047 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
37048
37049         PR c++/42748
37050         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
37051         mangling of va_list in system headers.
37052
37053 2010-01-23  Toon Moene  <toon@moene.org>
37054
37055         * tree-predcom.c (combine_chains): Return NULL, not false.
37056
37057 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
37058
37059         * tree-loop-distribution.c (distribute_loop): Fix declaration and
37060         initialization of variable res to agree with return type.
37061
37062 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
37063
37064         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
37065         * tree-sra.c: Add include of expr.h.
37066
37067 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
37068
37069         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
37070         insert the debug stmt on the single non-EH edge from the stmt.
37071
37072 2010-01-22  Richard Henderson  <rth@redhat.com>
37073
37074         PR tree-opt/42833
37075         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
37076         the RHS until after generate_subtree_copies has insertted its
37077         code before the current statement.
37078
37079 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
37080
37081         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
37082
37083         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
37084
37085 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37086
37087         PR tree-optimization/42585
37088         * tree-sra.c (struct access): New field grp_total_scalarization.
37089         (dump_access): Dump the new field.
37090         (should_scalarize_away_bitmap): New variable.
37091         (cannot_scalarize_away_bitmap): Likewise.
37092         (sra_initialize): Allocate new bitmaps.
37093         (sra_deinitialize): Free new bitmaps.
37094         (create_access_1): New function.
37095         (create_access): Parts moved to create_access_1.
37096         (type_consists_of_records_p): New function.
37097         (completely_scalarize_record): Likewise.
37098         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
37099         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
37100         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
37101         access.
37102         (analyze_all_variable_accesses): Completely scalarize small eligible
37103         records.
37104
37105 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37106
37107         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
37108
37109 2010-01-21  Andrew Haley  <aph@redhat.com>
37110
37111         * gcc.c (process_command): Move lang_specific_driver before
37112         setting cc_libexec_prefix.
37113
37114 2010-01-21  Richard Guenther  <rguenther@suse.de>
37115
37116         PR middle-end/19988
37117         * fold-const.c (negate_expr_p): Pretend only negative
37118         real constants are easily negatable.
37119
37120 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
37121             Jason Merrill  <jason@redhat.com>
37122
37123         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
37124         (TYPE_TRANSPARENT_AGGR): this, for union and record.
37125         * calls.c (initialize argument_information): Handle it.
37126         * c-common.c (handle_transparent_union_attribute): Use new name.
37127         * c-decl.c (finish_struct): Ditto.
37128         * c-typeck.c (type_lists_compatible_p): Ditto.
37129         (convert_for_assignment): Use new name and also handle record.
37130         * function.c (aggregate_value_p): Handle it.
37131         (pass_by_reference): Ditto.
37132         (assign_parm_data_types): Ditto.
37133         * print-tree.c (print_node): Ditto.
37134         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
37135         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
37136         * tree.c (first_field): New fn.
37137
37138 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
37139
37140         PR target/42818
37141         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
37142         even when linking statically, for now.
37143
37144 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37145
37146         PR debug/42715
37147         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
37148         without a cselib val.
37149         (count_uses): Accept MO_VAL_SET with no val on stores.
37150         (add_stores): Likewise.
37151
37152 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37153
37154         * var-tracking.c (check_value_val): Add a compile time assertion.
37155         (dv_is_decl_p): Simplify.
37156         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
37157         gcc_assert if ENABLE_CHECKING.
37158
37159 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37160
37161         PR debug/42782
37162         * var-tracking.c: Include tree-flow.h.
37163         (mem_dies_at_call): New.
37164         (dataflow_set_preserve_mem_locs): Use it.
37165         (dataflow_set_remove_mem_locs): Likewise.
37166         (dump_var): Renamed from dump_variable.  Adjust all callers.
37167         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
37168         * Makefile.in (var-tracking.o): Adjust deps.
37169
37170 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
37171
37172         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
37173
37174 2010-01-20  Richard Guenther  <rguenther@suse.de>
37175
37176         PR tree-optimization/42717
37177         * tree-ssa-dce.c (get_live_post_dom): Remove.
37178         (forward_edge_to_pdom): Take an arbitrary edge to copy
37179         degenerate PHI args from.
37180         (remove_dead_stmt): Use the first post-dominator even if it
37181         does not contain live statements as redirection destination.
37182
37183 2010-01-20  Richard Guenther  <rguenther@suse.de>
37184
37185         * tree-inline.c (estimate_num_insns): Handle EH builtins.
37186
37187 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37188
37189         * sel-sched.c (create_speculation_check): Remove set but not used
37190         variable twin.
37191         (try_transformation_cache): Remove set but not used variable ds.
37192         (calculate_privileged_insns): Remove set but not used variables
37193         cur_insn and min_spec_insn.
37194         (find_best_expr): Remove set but not used variable avail_n.
37195         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
37196         variable e.
37197         * cgraphunit.c (assemble_thunk): Remove set but not used variable
37198         false_label.
37199         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
37200         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
37201         new_scop_exit_edge.
37202
37203 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
37204
37205         PR bootstrap/42786
37206         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
37207         cpu types.  Add support for *-sse3 cpu types.
37208         (x86_64-*-*): Ditto.
37209
37210 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37211
37212         PR middle-end/42803
37213         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
37214         argument, call initializer_constant_valid_p_1 instead of
37215         initializer_constant_valid_p, pass CACHE to it, return NULL
37216         immediately if first call returns NULL.
37217         (initializer_constant_valid_p_1): New function.
37218         (initializer_constant_valid_p): Use it.
37219
37220 2010-01-20  Thomas Quinot  <quinot@adacore.com>
37221
37222         * tree.def (PLACEHOLDER_EXPR): Fix comment.
37223
37224 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37225
37226         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
37227         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
37228         (loc_list_from_tree): Don't handle unsigned division.  Handle
37229         signed modulo using DW_OP_{over,over,div,mul,minus}.
37230         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
37231         modulo instead of signed.
37232
37233 2010-01-20  DJ Delorie  <dj@redhat.com>
37234
37235         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
37236         (Fpa): Pass it
37237         (h8300_emit_stack_adjustment): Propogate it.
37238         (push): Pass it.
37239         (h8300_expand_prologue): Likewise.
37240         (h8300_expand_epilogue): Likewise.
37241
37242 2010-01-19  Michael Matz  <matz@suse.de>
37243
37244         PR tree-optimization/41783
37245         * tree-data-ref.c (toplevel): Include flags.h.
37246         (dump_data_dependence_relation):  Also dump the inputs if the
37247         result will be unknown.
37248         (split_constant_offset_1): Look through some conversions.
37249         * tree-predcom.c (determine_roots_comp): Restart a new chain if
37250         the offset from last element is too large.
37251         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
37252         (reassociate_to_the_same_stmt): Handle vector registers.
37253         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
37254         (e.g. conversions).
37255         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
37256         wide_prolog_niters argument, emit widening instructions.
37257         (vect_do_peeling_for_alignment): Adjust caller, use widened
37258         variant of the iteration cound.
37259         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
37260
37261 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37262
37263         PR target/38697
37264         * config/arm/neon-testgen.m (emit_automatics): New parameter
37265         features. Adjust for Fixed_return_reg feature.
37266         (test_intrinsic): Call emit_automatics with new feature.
37267         * config/arm/neon.ml: Update copyright years.
37268         (features): New Fixed_return_reg feature.
37269         (ops): Update feature for Vget_low.
37270
37271 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
37272
37273         PR tree-optimization/42719
37274         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
37275         stmt uses.
37276
37277         PR debug/42728
37278         * fwprop.c (all_uses_available_at): Return false if def_set dest
37279         is a REG that is used in def_insn.
37280
37281 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
37282
37283         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
37284
37285         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
37286         Add argument names.
37287
37288         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
37289
37290         * target.h (struct gcc_target) <secondary_reload>: Change type
37291         of last argument to secondary_reload_info *.
37292
37293 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
37294
37295         PR target/42774
37296         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
37297         memory references with unaligned offsets.  Remove CQImode handling.
37298         (unaligned_memory_operand): Return 1 for memory references with
37299         unaligned offsets.  Remove CQImode handling.
37300
37301 2010-01-18  Richard Guenther  <rguenther@suse.de>
37302
37303         PR middle-end/39954
37304         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
37305         builtin calls.
37306
37307 2010-01-18  Richard Guenther  <rguenther@suse.de>
37308
37309         PR tree-optimization/42781
37310         * tree-ssa-structalias.c (find_what_var_points_to): Skip
37311         restrict processing only if the original variable was artificial.
37312
37313 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
37314
37315         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
37316         find number of popped argument bytes.
37317
37318         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
37319         Fix the text that describes the return value for invalid insns.
37320
37321         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
37322
37323         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
37324         Clarify what 'cost of the -dependence' is.  Fix quoting.
37325
37326         * toplev.c (default_get_pch_validity): Rename argument to "sz".
37327         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
37328
37329 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
37330
37331         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
37332         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
37333
37334 2010-01-17  Richard Guenther  <rguenther@suse.de>
37335
37336         PR middle-end/42248
37337         * function.c (split_complex_args): Take a VEC to modify.
37338         (assign_parms_augmented_arg_list): Build a VEC instead of
37339         a chain of PARM_DECLs.
37340         (assign_parms_unsplit_complex): Take a VEC of arguments.
37341         Do not fixup unmodified parms.
37342         (assign_parms): Deal with the VEC.
37343         (gimplify_parameters): Likewise.
37344
37345 2010-01-17  Richard Guenther  <rguenther@suse.de>
37346
37347         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
37348         node existence check.
37349         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
37350         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
37351         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
37352         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
37353         (gimple_execute_on_growing_pred): Likewise.
37354
37355 2010-01-17  Richard Guenther  <rguenther@suse.de>
37356
37357         PR tree-optimization/42773
37358         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
37359         (compute_antic_aux): Likewise.
37360         (compute_partial_antic_aux): Likewise.
37361
37362 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
37363
37364         PR debug/42767
37365         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
37366         and US_TRUNCATE.
37367
37368 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
37369
37370         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
37371         appearance.
37372
37373         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
37374         Fix markup for strict argument.
37375
37376         (TARGET_SCHED_REORDER2): Fix argument types.
37377
37378         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
37379         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
37380
37381         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
37382         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
37383
37384         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
37385         Add argument name.
37386
37387         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
37388         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
37389         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
37390         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
37391         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
37392
37393         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
37394
37395         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
37396
37397         (TARGET_ASM_RELOC_RW_MASK): Add return type.
37398         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
37399
37400         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
37401
37402         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
37403         Use prototype.
37404
37405         (TARGET_ASM_NAMED_SECTION): Fix argument list.
37406
37407         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
37408         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
37409
37410         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
37411
37412         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
37413
37414         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
37415         referring to it.  Fix language.
37416
37417         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
37418
37419         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
37420
37421         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
37422
37423         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
37424
37425         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
37426         '@var{stream}.  Remove stray 'and'.
37427
37428         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
37429
37430         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
37431
37432         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
37433
37434         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
37435         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
37436
37437         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
37438         Fix description of return value.
37439         Rename argument "sz" to "len."
37440
37441         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
37442         Clarify meaning of 'true' return value.
37443
37444         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
37445
37446         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
37447         rep_mode versus mode_rep.
37448
37449         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
37450
37451         (TARGET_BUILTIN_DECL): Fix name.
37452
37453         (TARGET_COMMUTATIVE_P): Fix type of first argument.
37454
37455         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
37456
37457         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
37458
37459         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
37460
37461         (TARGET_RELAXED_ORDERING): Use @deftypevr.
37462
37463         (TARGET_GET_DRAP_RTX): Note that this is a hook.
37464         Clarify language.
37465
37466         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
37467         Rename argument tm_fn to md_fn.
37468
37469         (TARGET_OPTION_PRINT): Fix argument list.
37470
37471 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
37472
37473         PR target/42664
37474         * config/i386/i386.c (ix86_fixup_binary_operands):
37475         Revert FMA4 fixup of operands.
37476
37477 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37478
37479         PR other/42525
37480         * Makefile.in (write_entries_to_file, install-plugin):
37481         Use \012 instead of \n with tr.
37482
37483 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
37484
37485         * configure.ac (HAVE_AS_REF): New C macro.
37486         * configure: Regenerate.
37487         * config.in: Likewise.
37488         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
37489         if HAVE_AS_REF.
37490         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
37491         if HAVE_AS_REF.
37492
37493 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
37494
37495         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
37496
37497         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
37498
37499         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
37500
37501         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
37502
37503         (TARGET_IN_SMALL_DATA_P): Fix argument type.
37504
37505         (TARGET_BINDS_LOCAL_P): Fix argument type.
37506
37507         (TARGET_ASM_FILE_END): Use prototype.
37508
37509         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
37510
37511         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
37512
37513         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
37514
37515         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
37516
37517         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
37518         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
37519
37520         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
37521         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
37522
37523         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
37524         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
37525         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
37526         (TARGET_ADDR_SPACE_CONVERT): Likewise.
37527
37528         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
37529
37530         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
37531
37532         (TARGET_INIT_BUILTINS): Use prototype.
37533
37534         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
37535         Put 'const char *' in braces.  Fix parameter types.
37536         (TARGET_INVALID_CONVERSION): Fix parameter types.
37537         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
37538         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
37539
37540         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
37541         Fix argument type.
37542
37543         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
37544
37545         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
37546
37547 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
37548
37549         * doc/tm.texi (TARGET_HELP): Fix return type.
37550
37551         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
37552         in braces.  Fix argument types.
37553
37554         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
37555
37556         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
37557
37558         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
37559
37560         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
37561         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
37562
37563         (TARGET_MANGLE_TYPE): Fix argument types.
37564
37565         (TARGET_IRA_COVER_CLASSES): Use prototype.
37566
37567         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
37568
37569         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
37570
37571         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
37572
37573         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
37574
37575         (TARGET_CALLEE_COPIES): Fix argument types.
37576
37577         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
37578
37579         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
37580
37581         (TARGET_FUNCTION_VALUE): Fix argument types.
37582
37583         (TARGET_RETURN_IN_MSB): Fix argument type.
37584
37585         (TARGET_RETURN_IN_MEMORY): Fix argument types.
37586
37587         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
37588
37589         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
37590
37591         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
37592         agree with return type.
37593
37594         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
37595
37596 2010-01-15  Jing Yu  <jingyu@google.com>
37597
37598         PR rtl-optimization/42691
37599         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
37600         a pseudo to a constant and are merged, and adjust comments.
37601
37602 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
37603
37604         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
37605
37606 2010-01-15  Richard Guenther  <rguenther@suse.de>
37607
37608         PR middle-end/42739
37609         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
37610         labels of computed or non-local gotos to the destination.
37611         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
37612         landing pad label is the first label.
37613
37614 2010-01-15  Richard Guenther  <rguenther@suse.de>
37615
37616         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
37617
37618 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
37619
37620         PR target/42747
37621         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
37622         to allow generation of the xssqrtdp instruction on power7.
37623         (sqrtdf2_fpr): Ditto.
37624
37625 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37626
37627         PR middle-end/42674
37628         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
37629         functions with noreturn attribute.
37630
37631         PR c++/42608
37632         * varasm.c (declare_weak): Add weak attribute to decl if it
37633         doesn't have one already.
37634         (assemble_external): Only add decls to weak_decls if they also
37635         have weak attribute.
37636
37637 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
37638
37639         * var-tracking.c (var_reg_delete): Don't delete the association
37640         between REGs and values or one-part variables if the register
37641         isn't clobbered.
37642
37643 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37644
37645         PR debug/42657
37646         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
37647         because its first operand is a non-localized variable.
37648
37649 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37650
37651         PR tree-optimization/42706
37652         * tree-sra.c (encountered_recursive_call): New variable.
37653         (encountered_unchangable_recursive_call): Likewise.
37654         (sra_initialize): Initialize both new variables.
37655         (callsite_has_enough_arguments_p): New function.
37656         (scan_function): Call decl and flags check only for IPA-SRA, check
37657         whether there is a recursive call and whether it has enough arguments.
37658         (all_callers_have_enough_arguments_p): New function.
37659         (convert_callers): Look for recursive calls only when
37660         encountered_recursive_call is set.
37661         (ipa_early_sra): Bail out either if
37662         !all_callers_have_enough_arguments_p or
37663         encountered_unchangable_recursive_call.
37664
37665 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37666
37667         * sel-sched.c: Add 2010 to copyright years.
37668         * sel-sched-ir.c: Likewise.
37669         * sel-sched-ir.h: Likewise.
37670
37671 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37672
37673         PR tree-optimization/42714
37674         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
37675         constructors specially.
37676
37677 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37678
37679         * config/i386/drivers-i386.c (detect_caches_intel):
37680         Add l2sizekb parameter and fill in.
37681         (host_detect_local_cpu): Add l2sizekb, fill in.
37682         Add Atom small cache heuristic.
37683
37684 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37685
37686         * config/i386/drivers-i386.c (detect_caches_cpuid4):
37687         Add level3 parameter and fill in.
37688         (detect_caches_intel): Handle level3 cache.
37689
37690 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37691
37692         * config/i386/drivers-i386.c (host_detect_local_cpu):
37693         Fix core duo detection.
37694
37695 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37696
37697         * config/i386/drivers-i386.c (host_detect_local_cpu):
37698         Fix Atom detection.
37699
37700 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37701
37702         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
37703         (rs6000_variable_issue_1): this.  Use...
37704         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
37705
37706 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37707
37708         * sel-sched-ir.c (sel_restore_other_notes): Rename to
37709         sel_restore_notes.  Update all callers.  Call reemit_notes
37710         for all insns.
37711
37712 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37713
37714         PR rtl-optimization/42246
37715         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
37716         loops.
37717
37718 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37719
37720         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
37721         all successors is the same as number of successors in current region.
37722
37723 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37724
37725         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
37726         to rename is not separable.  Otherwise check that its LHS is not NULL.
37727
37728 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37729
37730         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
37731
37732 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37733
37734         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
37735         available registers when failed to discover LHS register class.
37736         Fix indentation.  Update comment.
37737
37738 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37739             Alexander Monakov  <amonakov@ispras.ru>
37740
37741         PR rtl-optimization/42389
37742         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
37743         to can_issue_more.
37744         (advance_state_on_fence): Likewise.
37745         (sel_target_adjust_priority): Print debug output only when
37746         sched_verbose >= 4, not 2.
37747         (get_expr_cost): Do not issue all unique insns on the next cycle.
37748         (fill_insns): Initialize can_issue_more from the value saved
37749         with the fence.
37750         * sel-sched-ir.c (flist_add): New parameter issue_more.
37751         Init FENCE_ISSUE_MORE with it.
37752         (merge_fences): Likewise.
37753         (init_fences): Update call to flist_add.
37754         (add_to_fences, add_clean_fence_to_fences)
37755         (add_dirty_fence_to_fences): Likewise.
37756         (move_fence_to_fences): Update call to merge_fences.
37757         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
37758         sched groups.
37759         * sel-sched-ir.h (struct _fence): New field issue_more.
37760         (FENCE_ISSUE_MORE): New accessor macro.
37761
37762 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37763
37764         PR rtl-optimization/42388
37765         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
37766         that have no predecessors nor successors.  Do not call move_bb_info
37767         for empty blocks outside of current region.
37768
37769 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37770
37771         PR rtl-optimization/42294
37772         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
37773         * sel-sched.c (move_exprs_to_boundary): Transitively add all
37774         originators' originators.
37775
37776 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37777
37778         PR rtl-optimization/39453
37779         PR rtl-optimization/42246
37780         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
37781         for pipelining_p.
37782         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
37783
37784 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37785             Alexander Monakov  <amonakov@ispras.ru>
37786
37787         PR middle-end/42245
37788         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
37789         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
37790         argument.  Update all callers.
37791         (tidy_control_flow): ... and here.  Recompute topological order
37792         of basic blocks in region if necessary.
37793         (sel_redirect_edge_and_branch): Change return type.  Return true
37794         if topological order might have been invalidated.
37795         (purge_empty_blocks): Export and move from...
37796         * sel-sched.c (purge_empty_blocks): ... here.
37797         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
37798         (maybe_tidy_empty_bb): Delete prototype.
37799         (purge_empty_blocks): Declare.
37800
37801 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37802
37803         PR rtl-optimization/42249
37804         * sel-sched.c (try_replace_dest_reg): When chosen register
37805         and original register is the same, do not bail out early, but
37806         still check all original insns for validity of replacing destination
37807         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
37808         in this case.
37809
37810 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37811
37812         PR c/42721
37813         Port from no-undefined-overflow branch:
37814         2009-03-09  Richard Guenther  <rguenther@suse.de>
37815
37816         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
37817
37818 2010-01-14  Richard Guenther  <rguenther@suse.de>
37819
37820         PR lto/42665
37821         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
37822
37823 2010-01-14  Ira Rosen  <irar@il.ibm.com>
37824
37825         PR tree-optimization/42709
37826         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
37827         as scalar type in creation of constant vector operand.
37828
37829 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37830
37831         PR testsuite/42414
37832         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
37833         (check-parallel-%): Match `testsuite' directory component only
37834         at the end.
37835
37836 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
37837
37838         PR translation/39521
37839         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
37840         strings with _().
37841
37842 2010-01-13  Richard Guenther  <rguenther@suse.de>
37843
37844         PR tree-optimization/42730
37845         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
37846         offset zero.
37847
37848 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
37849
37850         PR target/pr42542
37851         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
37852         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
37853         them signed.
37854
37855 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
37856
37857         * config/bfin/libgcc-bfin.ver: Regenerate based on current
37858         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
37859         ___umulsi3_highpart.
37860
37861         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
37862         rather than schedule_insns if the pass is enabled.
37863
37864 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37865
37866         PR tree-optimization/42704
37867         * tree-sra.c (sra_modify_assign): Do not delete assignments to
37868         SSA_NAMEs.
37869
37870 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37871
37872         PR tree-optimization/42703
37873         * tree-sra.c (analyze_access_subtree): Check that we can build a
37874         reference to the original data within the aggregate.
37875
37876 2010-01-13  Richard Guenther  <rguenther@suse.de>
37877
37878         PR tree-optimization/42705
37879         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
37880
37881 2010-01-13  Richard Guenther  <rguenther@suse.de>
37882
37883         PR middle-end/42716
37884         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
37885
37886 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
37887
37888         PR debug/41371
37889         * var-tracking.c (values_to_unmark): New variable.
37890         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
37891         values_to_unmark vector.  Moved body to...
37892         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
37893         instead queue it into values_to_unmark vector.
37894         (vt_find_locations): Free values_to_unmark vector.
37895
37896 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
37897
37898         * config/s390/s390.c (override_options): Set
37899         default of max-pending-list-length to 256
37900
37901 2010-01-13  Richard Guenther  <rguenther@suse.de>
37902
37903         PR lto/42678
37904         * tree-pass.h (PROP_gimple_lcx): New.
37905         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
37906         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
37907         before the final cleanup_eh.
37908         (dump_properties): Dump PROP_gimple_lcx.
37909         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
37910         (tree_lower_complex_O0): Remove.
37911         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
37912         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
37913         tree_lower_complex, schedule TODO_update_ssa.
37914         * lto-streamer-out.c (output_function): Stream the functions
37915         properties.
37916         * lto-streamer-in.c (input_function): Likewise.
37917         (lto_read_body): Do not override them here.
37918
37919 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
37920
37921         PR c/42708
37922         * c-typeck.c (build_c_cast): Fold value cast to union type before
37923         wrapping it in a CONSTRUCTOR.
37924
37925 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37926
37927         PR rtl-optimization/42699
37928         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
37929         involved.
37930
37931 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37932
37933         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37934         SUBTARGET_WARN_UNUSED_SPEC): Move ...
37935         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37936         SUBTARGET_WARN_UNUSED_SPEC): ... here
37937         * config/mips/iris5.h (LIBGCC_SPEC): Define.
37938
37939 2010-01-12  Julian Brown  <julian@codesourcery.com>
37940
37941         * config/arm/neon-schedgen.ml (Utils): Don't try to
37942         open missing module.
37943         (find_with_result): New.
37944
37945 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37946
37947         PR debug/42662
37948         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
37949         sharing when canonicalizing ({lt,ge}u (plus a b) b).
37950
37951         PR tree-optimization/42645
37952         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
37953         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
37954         decl_map, set processing_debug_stmt to -1 and return name without
37955         any remapping.
37956
37957 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
37958
37959         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
37960         binutils version, and reword target configuration description.
37961
37962 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
37963
37964         * config/avr/avr.h (LINKER_NAME): Remove.
37965
37966 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
37967
37968         PR target/42416
37969         * config/rs6000/rs6000.c (rs6000_override_options): On targets
37970         that support VSX, warn for -mno-altivec if vsx is not disabled,
37971         and disable vsx.
37972
37973 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
37974             Shujing Zhao  <pearly.zhao@oracle.com>
37975
37976         PR translation/42469
37977         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
37978         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
37979         character between option name and help text.
37980         * c.opt (imultilib): Likewise.
37981
37982 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
37983
37984         * lto-streamer-out.c (output_unreferenced_globals): Output static
37985         variables.
37986
37987 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
37988
37989         PR rtl-optimization/42621
37990         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
37991         optimizing for size.
37992         (duplicate_computed_gotos): Remove now-redundant check.
37993
37994 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
37995
37996         PR target/37454
37997         * configure.ac: Save and restore LDFLAGS and LIBS
37998         * configure: Regenerate.
37999
38000 2010-01-10  Richard Guenther  <rguenther@suse.de>
38001
38002         PR middle-end/42667
38003         * builtins.c (fold_builtin_strlen): Add type argument and
38004         convert the resulting length to it.
38005         (fold_builtin_1): Adjust.
38006
38007 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
38008
38009         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
38010         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
38011         1 insn.
38012         (num_insns_constant_wide): Adjust for that change.
38013
38014 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38015
38016         PR debug/42631
38017         * web.c (union_defs): Add used argument, to combine uses of
38018         uninitialized regs.
38019         (entry_register): Adjust type and tests of used argument.
38020         (web_main): Widen used for new use.  Pass it to union_defs.
38021         * df.h (union_defs): Adjust prototype.
38022
38023 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38024
38025         PR debug/42630
38026         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
38027         uses in new incoming argument.  Free body.
38028         (reset_debug_uses_in_loop): New.
38029         (analyze_insn_to_expand_var): Call the latter if the former found
38030         anything.  Fix whitespace.  Reject invalid dest overlaps before
38031         going through all insns in the loop.
38032
38033 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38034
38035         PR debug/42629
38036         * haifa-sched.c (dying_use_p): Debug insns don't count.
38037
38038 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38039
38040         PR middle-end/42363
38041         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
38042         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
38043         (verify_gimple_call): Reject LHS in noreturn calls.
38044
38045 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38046
38047         PR debug/42604
38048         PR debug/42395
38049         * tree-vect-loop-manip.c (adjust_info): New type.
38050         (adjust_vec): New pointer to vector.
38051         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
38052         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
38053         (slpeel_update_phis_for_duplicate_loop): Use them.
38054         (slpeel_update_phi_nodes_for_guard1): Likewise.
38055         (slpeel_update_phi_nodes_for_guard2): Likewise.
38056         (slpeel_tree_peel_loop_to_edge): Likewise.
38057         (vect_update_ivs_after_vectorizer): Likewise.
38058
38059 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38060
38061         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
38062         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
38063
38064 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38065
38066         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
38067         bogus uninitialized warning.
38068
38069 2010-01-09  Richard Guenther  <rguenther@suse.de>
38070
38071         PR middle-end/42512
38072         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
38073         the evolution is compatible with the initial condition.
38074
38075 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
38076
38077         * gcc.c (process_command): Update copyright notice dates.
38078         * gcov.c (print_version): Likewise.
38079         * gcov-dump.c (print_version): Likewise.
38080         * mips-tfile.c (main): Likewise.
38081         * mips-tdump.c (main): Likewise.
38082
38083 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
38084
38085         PR target/41885
38086         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
38087         (rotlhi3): Delete.
38088         (rotlhi3_8): Delete.
38089         (rotlsi3): Delete.
38090         (rotlsi3_8): Delete.
38091         (rotlsi3_16): Delete.
38092         (rotlsi3_24): Delete.
38093         (rotl<mode>3): New.
38094         (*rotw<mode>3): New.
38095         (*rotb<mode>3): New.
38096         * config/avr/avr.c (avr_rotate_bytes): New function.
38097         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
38098
38099 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
38100
38101         PR target/37454
38102         * configure.ac: Modify -rdynamic check.
38103         * configure: Regenerate.
38104
38105 2010-01-08  DJ Delorie  <dj@redhat.com>
38106
38107         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
38108         register popping order.
38109
38110 2010-01-08  Richard Guenther  <rguenther@suse.de>
38111
38112         PR lto/42528
38113         * c.opt (fsigned-char): Also let LTO handle this option.
38114         (funsigned-char): Likewise.
38115
38116 2010-01-07  Richard Guenther  <rguenther@suse.de>
38117
38118         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
38119         (gimple_op): Likewise.
38120         (gimple_op_ptr): Likewise.
38121         (gimple_assign_set_lhs): Remove gcc_assert.
38122         (gimple_assign_set_rhs1): Likewise.
38123         (gimple_assign_set_rhs2): Likewise.
38124         (gimple_call_set_lhs): Likewise.
38125         (gimple_call_set_fn): Likewise.
38126         (gimple_call_set_fndecl): Likewise.
38127         (gimple_call_fndecl): Likewise.
38128         (gimple_call_return_type): Likewise.
38129         (gimple_call_set_chain): Likewise.
38130         (gimple_call_num_args): Likewise.
38131         (gimple_call_set_arg): Likewise.
38132         (gimple_cond_set_code): Likewise.
38133         (gimple_cond_set_lhs): Likewise.
38134         (gimple_cond_set_rhs): Likewise.
38135         (gimple_cond_set_true_label): Likewise.
38136         (gimple_cond_set_false_label): Likewise.
38137         (gimple_label_set_label): Likewise.
38138         (gimple_goto_set_dest): Likewise.
38139         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
38140         (gimple_debug_bind_get_value): Likewise.
38141         (gimple_debug_bind_get_value_ptr): Likewise.
38142         (gimple_debug_bind_set_var): Likewise.
38143         (gimple_debug_bind_set_value): Likewise.
38144         (gimple_debug_bind_reset_value): Likewise.
38145         (gimple_debug_bind_has_value_p): Likewise.
38146         (gimple_return_retval_ptr): Remove gcc_assert.
38147         (gimple_return_retval): Likewise.
38148         (gimple_return_set_retval): Likewise.
38149         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
38150         (safe_referenced_var_iterator): Remove.
38151         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
38152         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
38153         (fill_referenced_var_vec): Remove.
38154         (first_readonly_imm_use): Remove redundant gcc_assert.
38155         (phi_arg_index_from_use): Combine gcc_asserts.
38156         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
38157         (first_imm_use_stmt): Remove redundant gcc_assert.
38158         * tree-cfg.c (verify_gimple_call): Verify function and chain
38159         operands.  Verify arguments.
38160         (verify_types_in_gimple_stmt): Verify condition code and labels.
38161
38162 2010-01-07  Richard Guenther  <rguenther@suse.de>
38163
38164         PR tree-optimization/42641
38165         * sese.c (rename_map_elt_info): Use the SSA name version, do
38166         not hash pointers.
38167
38168 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
38169
38170         PR tree-optimization/42625
38171         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
38172         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
38173
38174 2010-01-07  Duncan Sands  <baldrick@free.fr>
38175
38176         * Makefile.in (PLUGIN_HEADERS): Add version.h.
38177
38178 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
38179
38180         PR target/42511
38181         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
38182         note itself is not function_invariant_p.
38183
38184 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
38185
38186         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
38187         Do not add the DF_NOTE problem.
38188         * store-motion.c (execute_rtl_store_motion): Likewise.
38189
38190 2010-01-07  Martin Jambor  <mjambor@suse.cz>
38191
38192         PR tree-optimization/42157
38193         * tree-sra.c (compare_access_positions): Stabilize sort if both
38194         accesses have integer types, return zero immediately if they are the
38195         same.
38196
38197 2010-01-06  Richard Henderson  <rth@redhat.com>
38198
38199         PR middle-end/41883
38200         * haifa-sched.c (add_to_note_list): Merge into ...
38201         (concat_note_lists): ... here, and ...
38202         (unlink_other_notes, rm_other_notes): Merge into...
38203         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
38204         NOTE_INSN_EPILOGUE_BEG.
38205
38206 2010-01-06  Richard Guenther  <rguenther@suse.de>
38207
38208         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
38209         not inline regular functions into always-inline functions.
38210
38211 2010-01-06  Nick Clifton  <nickc@redhat.com>
38212
38213         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
38214         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
38215         used together.
38216         (OVERRIDE_OPTIONS): Delete.
38217         (OPTIMIZATION_OPTIONS): Define.
38218         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
38219         * config/rx/rx.c (rx_handle_option): Issue an error message if
38220         -mcpu=rx200 and -fpu are used together.
38221         (rx_set_optimization_options): New function.  Issue an error
38222         message if an optimization attribute attempts to reset the FPU/
38223         math optimization pairing.
38224         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
38225         * config/rx/rx.opt: Set the default to 32-bit doubles.
38226         * config/rx/t-rx: Add multilibs for -nofpu option.
38227         * doc/invoke.texi: Update documentation of RX options.
38228
38229 2010-01-06  Richard Guenther  <rguenther@suse.de>
38230
38231         * tree-ssa-pre.c (name_to_id): New global.
38232         (alloc_expression_id): Simplify SSA name handling.
38233         (lookup_expression_id): Likewise.
38234         (init_pre): Zero name_to_id.
38235         (fini_pre): Free it.
38236
38237 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
38238
38239         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
38240
38241 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
38242
38243         PR target/42542
38244         * config/i386/sse.md (smaxv2di3): New.
38245         (umaxv2di3): Likewise.
38246         (sminv2di3): Likewise.
38247         (uminv2di3): Likewise.
38248
38249 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
38250
38251         PR target/42564
38252         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
38253         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
38254         (legitimize_tls_address): Likewise.
38255         (sparc_tls_referenced_p): Likewise.
38256         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
38257         and adjust calls to legitimize_pic_address.
38258         (legitimate_constant_p) Use sparc_tls_referenced_p.
38259         (legitimate_pic_operand_p): Likewise.
38260         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
38261         (sparc_tls_symbol_ref_1): Delete.
38262         (sparc_tls_referenced_p): Make static, recognize specific patterns.
38263         (legitimize_tls_address): Make static, handle CONST patterns.
38264         (legitimize_pic_address): Make static, remove unused parameter and
38265         adjust recursive calls.
38266         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
38267         and adjust call to legitimize_pic_address.
38268         (sparc_output_mi_thunk): Likewise.
38269
38270 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
38271             H.J. Lu  <hongjiu.lu@intel.com>
38272
38273         PR target/42542
38274         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
38275         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
38276         operands to make them signed.
38277
38278         Revert:
38279         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38280
38281         PR target/42542
38282         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38283         GTU to GT for V4SI and V2DI.
38284
38285         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38286         (umin<mode>3): Removed.
38287         (uminv8hi3): New.
38288         (uminv4si3): Likewise.
38289
38290 2010-01-05  Martin Jambor  <mjambor@suse.cz>
38291
38292         PR tree-optimization/42462
38293         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
38294         current_function_decl to helper functions and macros.
38295
38296 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38297
38298         PR bootstrap/41771
38299         * flags.h: Don't include real.h.
38300         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
38301         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
38302         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
38303         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
38304         * dominance.c: Update copyright.
38305         * gimple.c (walk_gimple_op): Remove inline.
38306         * tree-ssa-reassoc.c: Include real.h.
38307         * Makefile.in (FLAGS_H): Remove $(REAL_H).
38308         (tree-ssa-reassoc.o): Depend on $(REAL_H).
38309
38310 2010-01-05  Nick Clifton  <nickc@redhat.com>
38311
38312         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
38313         register to push into the stack frame when the accumulator has to
38314         be saved during interrupts.
38315
38316 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
38317
38318         * doc/invoke.texi: Remove the documentation about option
38319         -Wunreachable-code.
38320         * common.opt (Wunreachable-code):  Preserved for backward
38321         compatibility.
38322         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
38323         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
38324         the backward compatibility flag section.
38325
38326 2010-01-05  Richard Guenther  <rguenther@suse.de>
38327
38328         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
38329
38330 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
38331
38332         PR other/42611
38333         * cfgexpand.c (expand_one_var): Diagnose too large variables.
38334
38335         PR tree-optimization/42508
38336         * tree-sra.c (convert_callers): Check for recursive call
38337         by comparing cgraph nodes instead of decls.
38338         (modify_function): Call ipa_modify_formal_parameters also
38339         on all same_body aliases.
38340
38341         * cgraphunit.c (cgraph_materialize_all_clones): Compare
38342         cgraph nodes when checking for same_body aliases.
38343
38344 2010-01-05  Richard Guenther  <rguenther@suse.de>
38345
38346         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
38347         allocation and lookup.
38348         (get_or_alloc_expr_for_constant): Likewise.
38349         (phi_translate): Sink allocation.
38350
38351 2010-01-04  Richard Guenther  <rguenther@suse.de>
38352
38353         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
38354         a new entry only if needed.
38355         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
38356         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
38357         hashtable lookup.
38358         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
38359         the result array.
38360         (phi_translate): Handle CONSTANTs early.
38361
38362 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38363
38364         PR tree-optimization/42398
38365         * tree-sra.c (struct access): Removed flag grp_different_types.
38366         (dump_access): Do not dump the removed flag.
38367         (sort_and_splice_var_accesses): Do not set the removed flag.
38368         (sra_modify_expr): Check for type compatibility directly.
38369
38370 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38371
38372         PR tree-optimization/42366
38373         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
38374         edges with variable number of parameters.
38375         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
38376         flag instead of asserting it.
38377         (ipa_read_node_info): Read uses_analysis_done flag.
38378
38379 2010-01-04  Richard Guenther  <rguenther@suse.de>
38380
38381         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
38382         iterative_hash_* as intended.
38383         (vn_reference_compute_hash): Likewise.  Simplify hashing
38384         SSA names.
38385         (vn_reference_lookup_2): Likewise.
38386         (vn_nary_op_compute_hash): Likewise.
38387         (vn_phi_compute_hash): Likewise.
38388         (expressions_equal_p): Remove strange code.
38389         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
38390         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
38391         (bitmap_insert_into_set_1): Take value-id as parameter.
38392         (add_to_value): Pass it.
38393         (bitmap_insert_into_set): Likewise.
38394         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
38395
38396 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
38397
38398         PR driver/42442
38399         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
38400         (do_self_spec): For switches with SWITCH_IGNORE set set also
38401         SWITCH_IGNORE_PERMANENTLY.
38402         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
38403         of SWITCH_IGNORE.
38404
38405 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
38406
38407         * lto-streamer-out.c (output_unreferenced_globals): Output the full
38408         tree of an unreferenced global var.
38409
38410 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38411
38412         PR target/42542
38413         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38414         GTU to GT for V4SI and V2DI.
38415
38416         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38417         (umin<mode>3): Removed.
38418         (uminv8hi3): New.
38419         (uminv4si3): Likewise.
38420
38421 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38422
38423         PR lto/42581
38424         * collect2.c (main): Turn on trace in collect2 if -v is passed
38425         to gcc with LTO.
38426
38427 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
38428
38429         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
38430         description of expression operand.
38431
38432 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
38433
38434         * configure.ac: Add install-html to target_list for Make-hooks.
38435         * configure: Regenerate.
38436         * fortran/Make-lang.in (F95_HTMLFILES): New.
38437         (fortran.html): Use it.
38438         (fortran.install-html): New.
38439         * Makefile.in (install-html): Add lang.install-html.
38440         * java/Make-lang.in (JAVA_HTMLFILES): New.
38441         (java.html): Use it.
38442         (java.install-html): New.
38443         * objc/Make-lang.in (objc.install-html): New.
38444         * objcp/Make-lang.in (obj-c++.install-html): New.
38445         * cp/Make-lang.in (c++.install-html): New.
38446         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
38447         * lto/Make-lang.in (lto.install-html): New.
38448
38449 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38450
38451         PR lto/42520
38452         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
38453
38454 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38455
38456         PR rtl-optimization/41862
38457         * store-motion.c (store_killed_in_insn, compute_store_table,
38458         remove_reachable_equiv_notes, replace_store_insn,
38459         build_store_vectors): Ignore all DEBUG_INSNs.
38460
38461 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38462
38463         PR lto/41564
38464         * common.opt: Add dumpdir.
38465
38466         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
38467         isn't specified.
38468         (option_map): Add --dumpdir.
38469
38470         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
38471
38472         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
38473
38474         * opts.c (decode_options): Try dump_dir_name first if
38475         dump_base_name isn't an absolute path.
38476         (common_handle_option): Handle OPT_dumpdir.
38477
38478         * toplev.c (dump_dir_name): New.
38479         (print_switch_values): Also ignore -dumpdir.
38480
38481         * toplev.h (dump_dir_name): New.
38482
38483 2010-01-03  Richard Guenther  <rguenther@suse.de>
38484
38485         PR tree-optimization/42589
38486         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
38487         double-word expansion of bswap32.
38488
38489 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38490
38491         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
38492         with BLOCK_FOR_INSN.
38493         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
38494         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
38495         noce_process_if_block): Likewise.
38496         * gcse.c (compute_local_properties, insert_expr_in_table,
38497         insert_set_in_table, canon_list_insert, find_avail_set,
38498         pre_insert_copy_insn): Likewise.
38499
38500         * basic-block.h (BLOCK_NUM): Move from here...
38501         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
38502
38503 2010-01-03  Richard Guenther  <rguenther@suse.de>
38504
38505         PR tree-optimization/42438
38506         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
38507         contains_may_not_return_call flag.
38508         (BB_MAY_NOTRETURN): New.
38509         (valid_in_sets): Trapping nary operations are not valid
38510         in blocks that may not return.
38511         (insert_into_preds_of_block): Remove check for trapping expressions.
38512         (compute_avail): Compute also BB_MAY_NOTRETURN.
38513
38514 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
38515
38516         * doc/invoke.texi: Add 2010 to copyright years.
38517
38518 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
38519
38520         * config/sparc/sparc.c: Fix formatting nits.
38521
38522 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
38523             Alexander Monakov  <amonakov@ispras.ru>
38524
38525         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
38526
38527 2010-01-02  Richard Guenther  <rguenther@suse.de>
38528
38529         PR middle-end/42577
38530         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
38531         (simplify_switch_using_ranges): Mark to be removed edges
38532         as non-executable.
38533
38534 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38535
38536         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
38537
38538         * collect2.c (scan_libraries): Add missing argument in call to
38539         scan_prog_file.
38540
38541 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
38542
38543         PR target/42448
38544         * config/alpha/predicates.md (aligned_memory_operand): Return false
38545         for CQImode.
38546         (unaligned_memory_operand): Return true for CQImode.
38547         * config/alpha/alpha.c (get_aligned_mem): Assert that location
38548         doesn not cross aligned SImode word boundary.
38549
38550 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
38551
38552         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
38553         Remove.
38554         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
38555         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
38556
38557 2010-01-02  Richard Guenther  <rguenther@suse.de>
38558
38559         PR lto/41597
38560         * toplev.c (compile_file): Emit LTO marker properly.  Change
38561         it to __gnu_lto_v1.
38562         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
38563
38564 2010-01-01  Richard Guenther  <rguenther@suse.de>
38565
38566         PR debug/42455
38567         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
38568
38569 2010-01-01  Richard Guenther  <rguenther@suse.de>
38570
38571         PR c/42570
38572         * c-decl.c (grokdeclarator): For zero-size arrays force
38573         structural equality checks as layout_type does.
38574
38575 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38576
38577         * builtins.c: Update copyright to 2010.
38578
38579 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38580
38581         PR lto/42531
38582         * lto-streamer-out.c (produce_asm): Revert the last change.
38583         (copy_function): Likewise.
38584
38585         * lto-streamer.c (lto_get_section_name): Skip any leading
38586         asterisk in name.
38587
38588 2010-01-01  Richard Guenther  <rguenther@suse.de>
38589
38590         PR middle-end/42559
38591         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
38592         for LABEL_DECLs.
38593
38594 \f
38595 Copyright (C) 2010 Free Software Foundation, Inc.
38596
38597 Copying and distribution of this file, with or without modification,
38598 are permitted in any medium without royalty provided the copyright
38599 notice and this notice are preserved.