pdp11.c (output_jump): Map unsigned to signed opcodes if CC_NO_OVERFLOW is set.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-12-02  Paul Koning  <ni1d@arrl.net>
2
3         * config/pdp11/pdp11.c (output_jump): Map unsigned to signed
4         opcodes if CC_NO_OVERFLOW is set.
5         (notice_update_cc_on_set): Correct setting of CC0 as a side
6         effect; set CC_NO_OVERFLOW for cases where C flag is not
7         meaningful.
8
9 2010-12-02  Ian Lance Taylor  <iant@google.com>
10
11         * doc/install.texi (Configuration): Update default for
12         --with-boot-ldflags.
13
14 2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>
15
16         PR c/45062
17         * c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
18         !funcdef_flag.
19
20 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
21
22         PR tree-optimization/45199
23         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
24         (stores_zero_from_loop): Call
25         mem_write_stride_of_same_size_as_unit_type_p.
26         * tree-data-ref.h (stride_of_unit_type_p): New.
27         * tree-loop-distribution.c (generate_memset_zero): Simplified.
28         Call stride_of_unit_type_p.
29         (build_rdg_partition_for_component): Do not call
30         rdg_flag_similar_memory_accesses when
31         flag_tree_loop_distribute_patterns is set.
32
33 2010-12-02  Richard Guenther  <rguenther@suse.de>
34
35         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
36         sign-changing conversions for induction detection.
37
38 2010-12-02  Richard Guenther  <rguenther@suse.de>
39
40         PR tree-optimization/46723
41         * tree-vect-loop.c (get_initial_def_for_induction): Strip
42         conversions from the induction evolution and apply it to
43         the result instead.
44         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
45         assigns for induction defs.
46
47 2010-12-02  Richard Guenther  <rguenther@suse.de>
48
49         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
50         the case we need to split the edge and not the block.
51
52 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
53
54         DFA model for Core 2 and Core i7 scheduling.
55
56         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
57         * config/i386/i386.c (ix86_option_override_internal): Update entries
58         for Core 2 and Core i7.
59         (ix86_issue_rate): Set issue rate to 3 [be realistic].
60         * config/i386/i386.md: Include "core2.md".
61         (define_attr cpu): Add "corei7".
62
63 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
64
65         Define tuning for Core 2 and Core i7.
66
67         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
68         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
69         (m_CORE2): Replace with m_CORE2_{32,64}.
70         (m_CORE2I7{,_32,_64}): New macros.
71         (m_GENERIC32, m_GENERIC64): Update.
72         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
73         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
74         set m_CORE2I7_64 iff m_GENERIC64.
75         (processor_target_table): Use generic costs for Core 2 and Core i7.
76         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
77         (ix86_issue_rate): Remove entry for Core 2.
78         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
79         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
80         (TARGET_CORE2): Update.
81         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
82         (PROCESSOR_CORE2): Remove.
83
84 2010-12-02  Richard Guenther  <rguenther@suse.de>
85
86         * lto-streamer.h (LTO_major_version): Bump to 2.
87
88 2010-12-02  Richard Guenther  <rguenther@suse.de>
89
90         PR lto/44871
91         * gimple.c (canonical_type_hash_cache): New hashtable.
92         (gimple_type_hash): Make a wrapper around ...
93         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
94         (gimple_canonical_type_hash): Likewise.
95         (gtc_visit): Take a gtc_mode argument.
96         (gimple_types_compatible_p_1): Likewise. Do not compare struct
97         tag names or field names when computing canonical types.
98         (gimple_types_compatible_p): Adjust.
99         (visit): Take a gtc_mode argument.
100         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
101         names or field names when computing hashes of canonical types.
102         (gimple_register_canonical_type): Use gimple_canonical_type_hash
103         for the hash.
104         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
105         (free_gimple_type_tables): Free canonical_type_hash_cache.
106
107 2010-12-02  Richard Guenther  <rguenther@suse.de>
108             Ira Rosen  <irar@il.ibm.com>
109
110         PR tree-optimization/46663
111         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
112         FUNCTION_DECL exists and that it's a builtin.
113
114 2010-12-02  Jie Zhang  <jie@codesourcery.com>
115
116         PR middle-end/46674
117         * varasm.c (compute_visible_aliases): Handle user set
118         assembler name.
119
120 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
121
122         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
123         thinko regarding setting -mno-<xxx> debug switches.
124         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
125
126 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
127
128         * intl.c: Don't include tm.h.
129         * Makefile.in (intl.o): Don't depend on $(TM_H).
130
131 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
132
133         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
134         unused warning.
135         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
136
137 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
138
139         * graphite-sese-to-poly.c (analyze_drs): Removed.
140         (build_scop_drs): Do not call analyze_drs.
141         (analyze_drs_in_stmts): New.
142         (insert_stmts): New.
143         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
144         (insert_out_of_ssa_copy_on_edge): Same.
145         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
146         (rewrite_phi_out_of_ssa): Same.
147         (rewrite_cross_bb_scalar_dependence): Same.
148         (split_reduction_stmt): Move data references in the new basic blocks.
149         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
150
151 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
152
153         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
154
155 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
156
157         PR middle-end/45297
158         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
159         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
160         * graphite-poly.h (new_poly_bb): Update declaration.
161         (gbb_from_bb): Moved here...
162         (pbb_from_bb): New.
163         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
164         Removed.
165         (graphite_stmt_p): Removed.
166         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
167         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
168         new_poly_bb.
169         (build_scop_bbs_1): Do not pass in sbitmap reductions.
170         (build_scop_bbs): Same.
171         (gbb_from_bb): ... from here.
172         (add_conditions_to_constraints): Moved up.
173         (analyze_drs): New.
174         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
175         not contain data references.
176         (new_pbb_from_pbb): New.
177         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
178         block is split.
179         (rewrite_close_phi_out_of_ssa): Update call to
180         insert_out_of_ssa_copy_on_edge.
181         (rewrite_reductions_out_of_ssa): Now static.
182         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
183         (split_pbb): New.
184         (split_reduction_stmt): Call split_pbb.
185         (translate_scalar_reduction_to_array): Pass in the scop, do not
186         pass in the sbitmap reductions.
187         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
188         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
189         (rewrite_commutative_reductions_out_of_ssa): Same.
190         (build_poly_scop): Call build_scop_bbs,
191         rewrite_commutative_reductions_out_of_ssa,
192         rewrite_reductions_out_of_ssa, and
193         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
194         before scop_to_lst.
195         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
196         Removed declaration.
197         (rewrite_reductions_out_of_ssa): Same.
198         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
199         (build_scop_bbs): Same.
200         * graphite.c (graphite_transform_loops): Do not initialize reductions.
201         Do not call build_scop_bbs,
202         rewrite_commutative_reductions_out_of_ssa,
203         rewrite_reductions_out_of_ssa, and
204         rewrite_cross_bb_scalar_deps_out_of_ssa.
205         * sese.h (struct gimple_bb): Add field pbb.
206         (GBB_PBB): New.
207
208 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
209
210         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
211         New.
212         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
213         handle_scalar_deps_crossing_scop_limits.
214         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
215         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
216
217 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
218
219         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
220         when replacing a constant in an ADDR_EXPR.
221
222 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
223
224         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
225         for the stride.
226         (lst_do_strip_mine): Same.
227         (scop_do_strip_mine): Same.
228         * graphite-poly.c (apply_poly_transforms): Update call to
229         scop_do_strip_mine.
230         * graphite-poly.h (scop_do_strip_mine): Update declaration.
231
232 2010-12-01  Jan Hubicka  <jh@suse.cz>
233
234         * tree.c (build_common_builtin_nodes): Do not initialize
235         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
236         * builtins.c (expand_builtin_profile_func): Remove.
237         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
238         BUILT_IN_PROFILE_FUNC_EXIT.
239         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
240         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
241         * gimplify.c (gimplify_function_tree): Reorganize code calling
242         profiling functions.
243
244 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
245
246         * opts.c: Expand comment on tm.h include.
247
248 2010-12-01  Yao Qi  <yao@codesourcery.com>
249
250         * config/arm/predicates.md ("vfp_register_operand"): Return true for
251         VFP_D0_D7_REGS classes.
252
253 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
254
255         * common.opt (flag_stack_check): New Variable entry.
256         (fcompare-debug-second): Use Var.
257         * flags.h (flag_compare_debug, flag_stack_check): Remove.
258         * opts.c (flag_compare_debug): Remove.
259         (common_handle_option): Don't handle OPT_fcompare_debug_second.
260         Set opts->x_flag_stack_check for OPT_fstack_check_.
261         * toplev.c (flag_stack_check): Remove.
262
263 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
264
265         * common.opt (main_input_filename, main_input_basename,
266         main_input_baselength): New Variable entries.  From toplev.c.
267         * final.c (output_quoted_string): Move from toplev.c.
268         * output.h (output_quoted_string): Move from toplev.h.
269         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
270         access main_input_filename, main_input_baselength and
271         main_input_basename.
272         * targhooks.c: Include intl.h and opts.h.
273         (option_affects_pch_p, default_get_pch_validity): Move from
274         toplev.c.
275         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
276         Move from toplev.h.
277         * toplev.c (main_input_filename, main_input_basename,
278         main_input_baselength): Move to common.opt.
279         (output_quoted_string): Move to final.c.
280         (warn_deprecated_use): Move to tree.c.
281         (option_affects_pch_p, default_get_pch_validity,
282         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
283         * toplev.h (skip_leading_substring): Move to tree-dump.c.
284         (warn_deprecated_use): Move to tree.h.
285         (output_quoted_string): Move to output.h.
286         (main_input_filename, main_input_basename, main_input_baselength):
287         Move to common.opt.
288         (default_get_pch_validity, default_pch_valid_p): Move to
289         targhooks.c.
290         * tree-dump.c (skip_leading_substring): Move from toplev.h.
291         * tree.c (warn_deprecated_use): Move from toplev.c.
292         * tree.h (warn_deprecated_use): Move from toplev.h.
293         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
294         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
295         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
296         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
297         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
298         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
299         config/mcore/mcore.c, config/mep/mep.c,
300         config/microblaze/microblaze.c, config/mips/mips.c,
301         config/mmix/mmix.c, config/mn10300/mn10300.c,
302         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
303         config/picochip/picochip.c, config/s390/s390.c,
304         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
305         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
306         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
307         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
308         varasm.c, xcoffout.c: Don't include toplev.h.
309         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
310         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
311         varasm.o, xcoffout.o): Update dependencies.
312         * config/arm/t-arm (arm.o): Update dependencies.
313         * config/spu/t-spu-elf (spu.o): Update dependencies.
314
315 2010-12-01  Richard Guenther  <rguenther@suse.de>
316
317         PR tree-optimization/46730
318         * value-prof.c (gimple_ic): Always generate a separate merge BB.
319
320 2010-11-30  Ian Lance Taylor  <iant@google.com>
321
322         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
323         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
324         * config/i386/linux64.h (ASM_SPEC): Likewise.
325         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
326         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
327         * config/i386/vxworks.h (ASM_SPEC): Likewise.
328         * config/i386/x86-64.h (ASM_SPEC): Likewise.
329         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
330         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
331
332 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
333
334         * c-decl.c (finish_function): Call objc_finish_function in
335         Objective-C.
336         * c-typeck.c (convert_for_assignment): Do not call
337         objc_type_quals_match().
338
339 2010-11-30  Richard Guenther  <rguenther@suse.de>
340
341         PR tree-optimization/46722
342         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
343         operands as arguments.
344         (execute_optimize_widening_mul): Also handle power of two as
345         multiplication.
346
347 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
348
349         PR middle-end/46709
350         * cgraphunit.c (process_function_and_variable_attributes): Fix
351         cut'n'pasteo.
352
353 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
354
355         * hwint.c:  New.  Extracted from toplev.c.
356         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
357         Move from toplev.h.
358         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
359         Move to hwint.c.
360         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
361         Move to hwint.h.
362         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
363         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
364         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
365         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
366         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
367         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
368         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
369         tree-vrp.c: Don't include toplev.h.
370         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
371         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
372         toplev.h in generated output.
373         * Makefile.in (OBJS-common): Add hwint.o.
374         Dependencies for above files changed to remove toplev.h.
375         (hwint.o): New.
376         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
377         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
378         toplev.h.
379         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
380         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
381
382 2010-11-30  Richard Guenther  <rguenther@suse.de>
383
384         PR tree-optimization/46717
385         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
386         call.  Manually create EH edges for the direct call and update
387         target PHI nodes.
388
389 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
390
391         * diagnostic-core.h: Include bversion.h.
392         * toplev.h: Don't include input.h or bversion.h.
393         (parse_optimize_options): Don't declare here.
394         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
395         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
396         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
397         config/host-darwin.c, config/i386/host-cygwin.c,
398         config/i386/host-mingw32.c, config/i386/msformat-c.c,
399         config/i386/netware.c, config/i386/nwld.c,
400         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
401         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
402         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
403         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
404         config/score/score3.c, config/score/score7.c,
405         config/sh/symbian-base.c, config/sh/symbian-c.c,
406         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
407         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
408         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
409         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
410         graphite-blocking.c, graphite-clast-to-gimple.c,
411         graphite-dependences.c, graphite-flattening.c,
412         graphite-interchange.c, graphite-poly.c,
413         graphite-scop-detection.c, graphite.c, haifa-sched.c,
414         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
415         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
416         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
417         lto-opts.c, lto-section-in.c, lto-section-out.c,
418         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
419         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
420         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
421         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
422         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
423         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
424         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
425         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
426         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
427         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
428         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
429         include toplev.h.
430         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
431         toplev.h.  Dependencies for above files and c-family files changed
432         to remove $(TOPLEV_H) or toplev.h.
433         (C_TREE_H): Don't include $(TOPLEV_H).
434         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
435         bversion.h.
436         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
437         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
438         config/t-darwin, config/t-sol2,
439         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
440         Dependencies for above files changed to remove $(TOPLEV_H) or
441         toplev.h.
442
443 2010-11-30  Richard Guenther  <rguenther@suse.de>
444
445         PR lto/44986
446         * gcc.c (main): Use the first input with a compiler as infile
447         for link spec processing.
448
449 2010-11-30  Richard Guenther  <rguenther@suse.de>
450
451         PR lto/45949
452         * cgraphunit.c (ipa_passes): Stop after errors from
453         small IPA passes.
454
455 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
456
457         * gcc-plugin.h: Include coretypes.h.
458         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
459
460 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
461
462         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
463         * ggc-none.c (ggc_internal_alloc_zone_stat)
464         (ggc_internal_cleared_alloc_zone_stat): New.
465
466 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
467
468         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
469         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
470         (rs6000_emit_prologue): Don't set PIC register if
471         TARGET_SINGLE_PIC_BASE.
472         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
473         * doc/invoke.texi (msingle-pic-base): Document.
474
475 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
476
477         PR driver/46712
478         * exec-tool.in (id): New.
479         Check and export LT_RCU_$id instead of LT_RCU.
480
481 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
482
483         PR tree-optimization/46675
484         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
485         in offset calculation.
486
487 2010-11-29  Jan Hubicka  <jh@suse.cz>
488
489         * collect2.c (main): Do not imply verbose output with
490         LTO and linker plugin.
491
492 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
493
494         * dwarf2out.c (print_die): Print the address of the current DIE or
495         of any DIE referenced by the current one.
496
497 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
498
499         PR debug/46101
500         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
501         function.
502         (scope_die_for, gen_type_die_for_member): Replace uses of
503         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
504
505 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
506
507         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
508         (darwin_asm_declare_object_name): Correct spelling.
509         (darwin_output_aligned_bss): Likewise.
510
511 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
512             Mike Stump  <mrs@gcc.gnu.org>
513
514         PR target/26427
515         PR target/33120
516         PR testsuite/35710
517         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
518         (ASM_OUTPUT_LOCAL): Likewise.
519         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
520         (darwin_output_aligned_bss): Likewise.
521         (darwin_asm_output_aligned_decl_local): Likewise.
522         (darwin_asm_output_aligned_decl_common): Likewise.
523         (darwin_use_anchors_for_symbol_p): Likewise.
524         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
525         (TARGET_ASM_OUTPUT_ANCHOR): Define.
526         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
527         (DARWIN_SECTION_ANCHORS): Set to 1.
528         * config/darwin.c (emit_aligned_common): New var.
529         (darwin_init_sections): Check that the Darwin private zero-size section
530         marker is in range.
531         (darwin_text_section): Check for zero-sized objects.
532         (darwin_mergeable_string_section): Likewise.
533         (darwin_mergeable_constant_section): Likewise.
534         (machopic_select_section): Adjust to check for zero-sized objects.
535         Assert that OBJC meta data are non-zero sized.
536         (darwin_asm_declare_object_name): New.
537         (darwin_asm_declare_constant_name): Adjust for zero-sized
538         object sections.
539         (BYTES_ZFILL): Define.
540         (darwin_emit_weak_or_comdat): New.
541         (darwin_emit_local_bss): New.
542         (darwin_emit_common): New.
543         (darwin_output_aligned_bss): New.
544         (darwin_asm_output_aligned_decl_common): New.
545         (darwin_asm_output_aligned_decl_local): New.
546         (darwin_file_end): Disable subsections_via_symbols when section
547         anchoring is active.
548         (darwin_asm_output_anchor): Re-enable.
549         (darwin_use_anchors_for_symbol_p): New.
550         (darwin_override_options): Check for versions that can emit
551         aligned common.  Update usage of flags to current.
552         * config/darwin-sections.def: Update comments and flags for
553         non-anchor sections.  zobj_const_section, zobj_data_section,
554         zobj_bss_section, zobj_const_data_section: New.
555         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
556         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
557         (L2_MAX_OFILE_ALIGNMENT): Define.
558         (ASM_OUTPUT_ALIGNED_BSS): Define.
559         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
560         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
561         (SECTION_NO_ANCHOR): Define.
562         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
563         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
564
565 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
566
567         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
568         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
569         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
570         Conditionally define.
571         (GET_ENVIRONMENT): Poison.
572         * configure.ac: Don't test for mincore.
573         * configure: Regenerate.
574         * config.in: Regenerate.
575         * collect2-aix.c: Don't include <sys/mman.h>.
576         * collect2.c: Don't include <signal.h>.
577         (SIGCHLD): Don't define.
578         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
579         * config/alpha/alpha.c: Include "splay-tree.h" instead of
580         <splay-tree.h>.
581         * config/arm/arm.c (arm_target_help): Use getenv instead of
582         GET_ENVIRONMENT.
583         * config/avr/driver-avr.c: Don't include <stdlib.h>.
584         * config/frv/frv.c: Don't include <ctype.h>.
585         * config/host-darwin.c: Don't include <sys/mman.h>.
586         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
587         (MAP_FAILED): Don't define.
588         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
589         * config/host-solaris.c: Don't include <sys/mman.h>.
590         * config/i386/cygming.h: Don't include <stdio.h>.
591         * config/i386/driver-i386.c: Don't include <stdlib.h>.
592         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
593         * config/iq2000/iq2000.c: Don't include <signal.h>.
594         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
595         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
596         * config/mep/mep-pragma.c: Don't include <stdio.h>.
597         * config/microblaze/microblaze.c: Don't include <signal.h>.
598         * config/mips/mips.c: Don't include <signal.h>.
599         * config/rs6000/host-darwin.c: Don't include <signal.h>.
600         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
601         * defaults.h (GET_ENVIRONMENT): Don't define.
602         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
603         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
604         (SIGCHLD, MAP_FAILED, kill): Don't define.
605         (process_command): Use getenv instead of GET_ENVIRONMENT.
606         * genhooks.c: Don't include <string.h>.
607         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
608         <sys/types.h>.
609         (MAP_FAILED): Don't define.
610         * ggc-page.c Don't include <sys/mman.h>.
611         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
612         * ggc-zone.c: Don't include <sys/mman.h>.
613         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
614         * graph.c: Include "config.h" instead of <config.h>.
615         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
616         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
617         (SIGCHLD, kill): Don't define.
618         * mips-tfile.c: Don't include <signal.h>.
619         * opts.c: Don't include <signal.h> or <sys/resource.h>.
620         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
621         * passes.c: Don't include <signal.h>, <sys/resource.h> or
622         <sys/times.h>.
623         * sparseset.h: Don't include <assert.h>.
624         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
625         * tlink.c: Don't include "libiberty.h".
626         * toplev.c: Don't include <signal.h> or <sys/times.h>.
627         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
628         * tree-switch-conversion.c: Don't include <signal.h>.
629         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
630
631 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
632
633         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
634         c_parser_objc_try_catch_finally_statement for consistency with the
635         C++ parser.  Parse @catch(...) and pass NULL_TREE to
636         objc_begin_catch_clause() in that case.  Improved error recovery.
637         Reorganized code to be almost identical to
638         cp_parser_objc_try_catch_finally_statement.
639
640 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
641
642         PR tree-optimization/46621
643         * gimple.h: Don't include tm.h or hard-reg-set.h .
644         * Makefile.in (GIMPLE_H): Remove $(TM_H).
645
646         PR bootstrap/44756
647         * cppbuiltin.c: Include target.h .
648         (define_builtin_macros_for_type_sizes):
649         Use targetm.float_words_big_endian.
650
651 2010-11-27  Jan Hubicka  <jh@suse.cz>
652
653         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
654         and output cold_text_section_label.
655         (dwarf2out_init): Don't do that there.
656         (dwarf2out_finish): Handle cold section end label only if cold
657         section was used.
658
659 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
660
661         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
662         VLA variables.
663
664 2010-11-27  Richard Guenther  <rguenther@suse.de>
665
666         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
667         (gimple_assign_ssa_name_copy_p): Likewise.
668         (gimple_assign_unary_nop_p): Use is_gimple_assign.
669         (is_gimple_cast): Remove.
670         (gimple_assign_single_p): Move ...
671         * gimple.h (gimple_assign_single_p): ... here.
672         (is_gimple_cast): Remove.
673         (gimple_assign_rhs_code): Simplify.
674         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
675         instead of is_gimple_cast.
676         * ipa-type-escape.c (look_for_casts): Likewise.
677
678 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
679
680         * doc/options.texi (Enum, EnumValue): Document new record types.
681         (Enum): Document new option flag.
682         * opt-functions.awk
683         * optc-gen.awk: Handle enumerated option arguments.
684         * opth-gen.awk: Handle enumerated option arguments.
685         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
686         enum_value_to_arg): New.
687         (decode_cmdline_option): Handle enumerated arguments.
688         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
689         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
690         * opts.c (print_filtered_help, print_specific_help): Take
691         lang_mask arguments.
692         (print_filtered_help): Handle printing values of enumerated
693         options.  Print possible arguments for enumerated options.
694         (print_specific_help): Update call to print_filtered_help.
695         (common_handle_option): Update calls to print_specific_help.  Use
696         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
697         handle OPT_ffp_contract_, OPT_fexcess_precision_,
698         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
699         OPT_fira_region_ here.
700         * opts.h (enum cl_var_type): Add CLVC_ENUM.
701         (struct cl_option): Add var_enum.
702         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
703         struct cl_enum, cl_enums, cl_enums_count): New.
704         (CL_ERR_ENUM_ARG): Define.
705         (CL_ERR_NEGATIVE): Update value.
706         (enum_value_to_arg): Declare.
707         * common.opt (flag_ira_algorithm, flag_ira_region,
708         flag_fp_contract_mode, flag_excess_precision_cmdline,
709         default_visibility, flag_tls_default): Remove Variable entries.
710         (help_enum_printed): New Variable.
711         (fdiagnostics-show-location=): Use Enum.  Add associated
712         SourceInclude, Enum and EnumValue entries.
713         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
714         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
715         associated Enum and EnumValue entries.
716
717 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
718
719         PR target/46623
720         * config/microblaze/microblaze.c (microblaze_block_move_straight):
721         Use XALLOCAVEC.
722         (microblaze_option_override): Don't use C++ style comments.
723         (save_restore_insns): Remove unused variable base_offset.
724         (microblaze_expand_prologue): Remove unused variable insn.
725         (microblaze_secondary_reload): Adjust type to match target.h .
726         (microblaze_elf_in_small_data_p): Move declarations to start of block.
727         (microblaze_expand_move): Likewise.
728         * config/microblaze/microblaze.h (LARGE_INT):
729         Avoid signed / unsigned comparisons.
730         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
731         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
732         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
733
734 2010-11-26  Michael Matz  <matz@suse.de>
735
736         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
737
738         * passes.c (init_optimization_passes): Remove superfluous
739         copy-prop pass.
740
741 2010-11-26  Richard Guenther  <rguenther@suse.de>
742
743         PR lto/46648
744         * gimple.c (gtc_visit): Do not return true for members of an
745         SCC still being processed but the current lattice value of
746         the member.  Treat SCC members comparison state as lattice,
747         starting at equal, eventually dropping to unequal.
748         (gimple_types_compatible_p_1): Likewise.
749
750 2010-11-26  Richard Guenther  <rguenther@suse.de>
751
752         PR middle-end/46559
753         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
754         for location list processing.
755
756 2010-11-26  Richard Guenther  <rguenther@suse.de>
757
758         PR lto/46560
759         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
760         flags manually.
761
762 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
763
764         * config/s390/s390.c (print_operand_address): Replace assert with
765         error message.
766         (print_operand): Replace assertions, gcc_unreachable and
767         fatal_insn with error messages.
768
769 2010-11-26  Richard Guenther  <rguenther@suse.de>
770
771         PR tree-optimization/46665
772         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
773
774 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
775
776         * config/arm/arm.c (arm_option_override): enable loop array
777         prefetching at -O3 for suitable targets, and configure params.
778         * config/arm/arm-protos.h (struct tune_params): Add fields for
779         configuring loop array prefetching.
780
781 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
782
783         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
784
785 2010-11-26  Richard Guenther  <rguenther@suse.de>
786
787         PR tree-optimization/46664
788         * tree-affine.c (aff_combination_to_tree): Add rest last.
789
790 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
791
792         PR target/33637
793         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
794         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
795         * configure: Regenerated.
796         * exec-tool.in: Not quoting command, may have extra arguments.
797
798 2010-11-26  Richard Guenther  <rguenther@suse.de>
799
800         PR tree-optimization/46528
801         PR debug/46338
802         * profile.c (branch_prob): Do not split blocks based on locations
803         from debug statements.
804
805 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
806
807         PR middle-end/46647
808         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
809         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
810
811         PR bootstrap/45700
812         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
813         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
814         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
815         build6_loc): Define.
816         * fold-const.c (protected_set_expr_location_unshare): New inline.
817         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
818         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
819         pedantic_omit_one_operand_loc, omit_two_operands_loc,
820         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
821         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
822         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
823         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
824         instead of buildN followed by SET_EXPR_LOCATION or
825         protected_set_expr_location.
826         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
827         Use buildN_stat_loc instead of buildN_stat followed by
828         SET_EXPR_LOCATION.
829
830 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
831
832         * Makefile.in (s-tm-texi): Remove spurous tab.
833
834 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
835
836         PR debug/46258
837         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
838         debug stmts.
839
840 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
841
842         * toplev.c (finalize): Add no_backend parameter.  Don't finish
843         passes when preprocessing only.  Adjust...
844         (do_compile): ... caller.
845
846 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
847
848         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
849         flag_unsafe_math_optimizations.
850         (negsf2): Likewise.
851         Move fnegabs related patterns together.  Only use fmpynfadd instruction
852         to negate a multiply if !flag_signed_zeros is true.
853
854 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
855
856         * gengtype-state.c (read_state_structures): Initialize "previous".
857
858 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
859             Jeremie Salvucci  <jeremie.salvucci@free.fr>
860
861         * gengtype-state.c: Add new file.
862
863         * gengtype.c (type count): New variable.
864         (new_structure, find_param_structure, create_pointer)
865         (create_array): Use it to set state_number in types.
866         (dump_everything): Improve comment.
867         (main): Call read_state and write_state. Print type_count.
868
869         * gengtype.h (type_lineloc): New function.
870         (read_state, write_state): New declarations.
871
872         * Makefile.in (GENGTYPE_FLAGS): New variable.
873         (s-gtype): Run gengtype twice and generate gtype.state.
874         (build/gengtype-state.o): New rule.
875         (build/gengtype$(build_exeext)): Link gengtype-state.o.
876         (mostlyclean): Update comment.  Remove gtype.state.
877
878 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
879
880         PR middle-end/46637
881         * combine.c (try_combine): When substing i2dest for i2src, pass
882         1 as last argument even if
883         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
884
885 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
886
887         PR middle-end/46647
888         * builtins.c (target_char_cast): Check INTEGER_CST instead of
889         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
890
891 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
892
893         * target.def (supports_split_stack, except_unwind_info): Take
894         gcc_options parameters.
895         * targhooks.c (default_except_unwind_info,
896         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
897         gcc_options parameters.
898         * targhooks.h (default_except_unwind_info,
899         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
900         prototypes.
901         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
902         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
903         Document that hooks must not be modified.
904         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
905         * doc/tm.texi: Regenerate.
906         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
907         &global_options to targetm.except_unwind_info.
908         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
909         dwarf2out_begin_prologue, dwarf2out_frame_init,
910         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
911         &global_options to targetm.except_unwind_info.
912         * except.c (init_eh, finish_eh_generation,
913         gate_convert_to_eh_region_ranges,
914         output_one_function_exception_table): Pass &global_options to
915         targetm.except_unwind_info.
916         * expr.c (build_personality_function): Pass &global_options to
917         targetm.except_unwind_info.
918         * function.c (expand_function_end): Pass &global_options to
919         targetm.except_unwind_info.
920         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
921         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
922         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
923         and targetm.supports_split_stack.  Remove assertions about opts
924         and opts_set.
925         (common_handle_option): Remove assertions about opts, opts_set and dc.
926         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
927         &global_options to targetm.except_unwind_info.
928         * tree.c (build_common_builtin_nodes: Pass &global_options to
929         targetm.except_unwind_info.
930         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
931         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
932         thumb1_expand_prologue, thumb1_output_function_prologue,
933         arm_unwind_emit, arm_output_fn_unwind): Update calls to
934         arm_except_unwind_info.
935         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
936         parameter.
937         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
938         parameter.
939         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
940         ia64_reorg, ia64_asm_unwind_emit): Update calls to
941         ia64_except_unwind_info.
942         * config/pa/pa.c (pa_option_override): Pass &global_options to
943         targetm.except_unwind_info.
944         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
945         Remove prototype.
946
947 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
948
949         * cgraphunit.c (process_function_and_variable_attributes):
950         Mark dllexport-ed function/variables as needed.
951         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
952         as externally visible.
953
954 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
955
956         PR rtl-optimization/46585
957         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
958         (vinsn_init): Skip computation of dependencies for local NOPs.
959         (vinsn_delete): Don't try to free regsets for local NOPs.
960         (setup_nop_and_exit_insns): Change definition of nop_pattern.
961
962 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
963
964         PR rtl-optimization/46602
965         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
966         (tidy_control_flow): Here.
967
968 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
969             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
970
971         PR bootstrap/45888
972         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
973         Fix target.def pathname in timestamp comparison.
974
975 2010-11-24  Richard Henderson  <rth@redhat.com>
976
977         * config/ia64/predicates.md (pmpyshr_operand): New.
978         * config/ia64/ia64.c (ia64_expand_unpack): New.
979         (ia64_expand_widen_mul_v4hi): New.
980         (ia64_expand_widen_sum): Update for pattern renames.
981         (ia64_expand_dot_prod_v8qi): Likewise.
982         * config/ia64/ia64-protos.h: Update.
983         * config/ia64/vect.md (vecwider): New mode attribute.
984         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
985         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
986         (pmpyshr2, pmpyshr2_u): New.
987         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
988         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
989         (mulv2si3): New.
990         (vec_pack_ssat_v4hi): Rename from pack2_sss.
991         (vec_pack_usat_v4hi): Rename from *pack2_uss.
992         (vec_pack_ssat_v2si): Rename from pack4_sss.
993         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
994         vec_select operation.
995         (vec_interleave_highv8qi): Similarly.
996         (mux1_alt): Rename from *mux1_alt.
997         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
998         (vec_interleave_lowv4hi): Rename from unpack2_l.
999         (vec_interleave_highv4hi): Rename from unpack2_h.
1000         (mix2_r): Rename from *mix2_r.
1001         (mix2_l): Similarly.
1002         (vec_extract_evenodd_helper): New.
1003         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
1004         (vec_interleave_lowv2si): Rename from *unpack4_l.
1005         (vec_interleave_highv2si): Rename from *unpack4_h.
1006         (vec_extract_evenv2si, vec_extract_oddv2si): New.
1007         (vec_interleave_lowv2sf): Rename from fmix_r.
1008         (vec_interleave_highv2sf): Rename from *fmix_l.
1009         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
1010         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
1011         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
1012         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
1013
1014 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1015
1016         * targhooks.c (default_except_unwind_info): Remove
1017         MUST_USE_SJLJ_EXCEPTIONS case.
1018         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1019         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1020         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1021         * doc/tm.texi: Regenerate.
1022         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
1023
1024 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1025
1026         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
1027         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
1028         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
1029         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
1030         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
1031
1032 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1033
1034         PR target/46519
1035         * config/i386/i386.c (ix86_expand_call): Don't check
1036         TREE_THIS_VOLATILE.
1037
1038 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1039
1040         PR target/46519
1041         * config/i386/i386.c (upper_128bits_state): New.
1042         (block_info_def): Remove upper_128bits_set and done.  Add state,
1043         referenced, count, processed and rescanned.
1044         (check_avx256_stores): Updated.
1045         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
1046         Call note_stores only if needed.  Set referenced and count.
1047         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
1048         (rescan_move_or_delete_vzeroupper): New.
1049         (move_or_delete_vzeroupper):  Process and rescan all all basic
1050         blocks instead of predecessor blocks of all exit points.
1051         (ix86_option_override_internal): Enable vzeroupper optimization
1052         only for -fexpensive-optimizations and not optimizing for size.
1053         (use_avx256_p): Removed.
1054         (init_cumulative_args): Don't set use_avx256_p.
1055         (ix86_function_arg): Likewise.
1056         (ix86_expand_move): Likewise.
1057         (ix86_expand_vector_move_misalign): Likewise.
1058         (ix86_local_alignment): Likewise.
1059         (ix86_minimum_alignment): Likewise.
1060         (ix86_expand_epilogue): Don't check use_avx256_p when generating
1061         vzeroupper.
1062         (ix86_expand_call): Likewise.
1063
1064         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
1065         and use_avx256_p.  Add rescan_vzeroupper_p.
1066
1067 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1068
1069         * toplev.c: Include <signal.h>.
1070
1071 2010-11-24  Richard Guenther  <rguenther@suse.de>
1072
1073         PR lto/43218
1074         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
1075         conflicting function signatures as non-inlineable.
1076
1077 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1078
1079         PR rtl-optimization/46614
1080         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
1081          (deps_analyze_insn): Mark JUMP_INSNs in
1082         last_pending_memory_flush that weren't added through
1083         flush_pending_lists with NON_FLUSH_JUMP_KIND.
1084         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
1085         on INSN_LIST instead of JUMP_P check on its operand.
1086         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
1087
1088 2010-11-24  Richard Guenther  <rguenther@suse.de>
1089
1090         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
1091
1092 2010-11-24  Richard Guenther  <rguenther@suse.de>
1093
1094         PR lto/46606
1095         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
1096         a FIELD_DECL that is type correct issue a warning and fixup
1097         with a VIEW_CONVERT_EXPR.
1098
1099 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
1100
1101         * doc/invoke.texi (Options for Debugging Your Program or GCC):
1102         Explain static numbering of dump files.
1103
1104 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1105
1106         * common.opt (user_vect_verbosity_level): New Variable entry.
1107         (ftree-vectorizer-verbose=): Mark as UInteger.
1108         * flag-types.h (enum vect_verbosity_levels): Move from enum
1109         verbosity_levels in tree-vectorizer.h.
1110         * opts.c: Don't include tree.h.
1111         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
1112         gcc_options parameter; take integer option argument.
1113         (common_handle_option): Update call to vect_set_verbosity_level.
1114         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
1115         (vect_set_verbosity_level): Move to opts.c.
1116         (vect_verbosity_level, vect_print_dump_info): Update for change of
1117         enum name.
1118         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
1119         (vect_print_dump_info): Update for change of enum name.
1120         * tree.h (vect_set_verbosity_level): Remove.
1121         * Makefile.in (opts.o): Update dependencies.
1122
1123 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1124
1125         PR middle-end/46629
1126         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
1127         instead of insn with any_condjump_p.
1128
1129 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
1130
1131         * config/mips/loongson.md: Change the description comment of the file
1132         and update the copyright years.
1133         (define_insn "<u>div<mode>3): Add loongson3a support.
1134         (define_insn "<u>mod<mode>3"): Likewise.
1135         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
1136         mul<mode>3_mul3_loongson.
1137         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
1138         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
1139
1140 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1141
1142         * common.opt (initial_max_fld_align, flag_debug_asm,
1143         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
1144         flag_print_asm_name, graph_dump_format, help_printed,
1145         help_columns, flag_opts_finished): New Variable entries.
1146         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
1147         frandom-seed=): Mark deferred.
1148         (fsched-verbose=): Use UInteger and Var.
1149         * flags.h (set_struct_debug_option, flag_print_asm_name,
1150         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
1151         graph_dump_format): Don't declare here.
1152         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
1153         * opts-global.c: Include dbgcnt.h and debug.h.
1154         (decode_options): Pass location to finish_options.
1155         (handle_common_deferred_options): Check flag_dump_all_passed.
1156         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
1157         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
1158         OPT_fstack_limit.
1159         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
1160         (set_struct_debug_option): Add location_t parameter.  Update
1161         recursive call.  Use error_at.
1162         (default_options_optimization): Use error_at.
1163         (finish_options): Add location_t parameter.  Use
1164         opts->x_flag_opts_finished instead of first_time_p.  Use
1165         opts->x_optimize instead of optimize.  Use error_at.  Pass
1166         location to inform.
1167         (print_filtered_help): Use opts->x_help_printed to track what
1168         options have been printed.
1169         (print_specific_help): Use opts->x_help_columns to track number of
1170         columns.
1171         (common_handle_option): Pass locations and gcc_options pointers to
1172         more functions.  Use warning_at instead of fnotice and warning.
1173         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
1174         OPT_fdebug_prefix_map_.  Use error_at.  Set
1175         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
1176         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
1177         OPT_fsched_verbose_.
1178         (handle_param): Add location_r parameter.  Use error_at.
1179         (set_debug_level): Add location_r parameter.  Use error_at and
1180         warning_at.
1181         (setup_core_dumping): Add diagnostic_context parameter.
1182         (decode_d_option): Add gcc_options, location_t and
1183         diagnostic_context parameters and use them instead of global
1184         state.  Use warning_at.
1185         (enable_warning_as_error): Use error_at.
1186         * opts.h (finish_options): Update prototype.
1187         (set_struct_debug_option): Declare here.
1188         * rtl.h (fix_sched_param): Remove.
1189         * stor-layout.c (initial_max_fld_align): Remove.
1190         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
1191         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
1192         (process_options): Set maximum_field_alignment.
1193         * tree.h (initial_max_fld_align) Don't declare here.
1194         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1195
1196 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1197
1198         * flag-types.h (struct visibility_flags): Don't declare here.
1199         * flags.h (strip_off_ending, fast_math_flags_set_p,
1200         fast_math_flags_struct_set_p): Declare here.
1201         (visibility_options): Don't declare here.
1202         * opts-common.c (option_enabled, get_option_state): Move from
1203         opts.c.
1204         * opts-global.c: Include diagnostic.h instead of
1205         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
1206         and toplev.h.
1207         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1208         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1209         print_ignored_options, unknown_option_callback,
1210         post_handling_callback, lang_handle_option, add_input_filename,
1211         read_cmdline_options, initial_lang_mask, init_options_once,
1212         decode_cmdline_options_to_array_default_mask,
1213         set_default_handlers, decode_options): Move from opts.c.
1214         (print_ignored_options): Use warning_at instead of saving and
1215         restoring input_location.
1216         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
1217         instead of expr.h.  Don't include langhooks.h, except.h or
1218         lto-streamer.h.  Add more comments on includes.
1219         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
1220         toplev.c.
1221         (visibility_options): Move to c-family/c-common.c.
1222         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1223         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1224         print_ignored_options, unknown_option_callback,
1225         post_handling_callback, lang_handle_option, add_input_filename,
1226         read_cmdline_options, initial_lang_mask, init_options_once,
1227         decode_cmdline_options_to_array_default_mask,
1228         set_default_handlers, decode_options): Move to opts-global.c.
1229         (target_handle_option, default_options_optimization,
1230         finish_options, common_handle_option): Remove static.
1231         (option_enabled, get_option_state): Move to opts-common.c.
1232         * opts.h (common_handle_option, target_handle_option,
1233         finish_options, default_options_optimization): Declare.
1234         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
1235         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
1236         opts.c.
1237         * toplev.h (strip_off_ending, decode_d_option,
1238         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
1239         declare here.
1240         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1241
1242 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
1243
1244         PR driver/42690
1245         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
1246         options, replace by call of pass-through-libs spec function to process
1247         link_gcc_c_sequence spec.
1248         (lto_libgcc_spec): Delete variable.
1249         (static_specs[]): Remove related entry.
1250         (static_spec_functions[]): Add new entry for pass-through-libs.
1251         (main): Don't generate deleted lto_libgcc_spec.
1252         (pass_through_libs_spec_func): New function to implement the new
1253         pass-through-libs spec function.
1254         * doc/invoke.texi (pass-through-libs): Document new spec function.
1255
1256 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1257
1258         * doc/options.texi (Warning, Optimization): Document.
1259
1260 2010-11-23  Jan Hubicka  <jh@suse.cz>
1261
1262         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
1263         (tree_decl_with_vis): Add implicit_section_name_p.
1264         * targhooks.h (default_function_section): Declare.
1265         * target.def (function_section): New hook.
1266         * defaults.h (HOT_TEXT_SECTION_NAME,
1267         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1268         * predict.c (choose_function_section): Remove.
1269         (estimate_bb_frequencies): Do not use choose_function_section.
1270         * coretypes.h (enum node_frequency): Move here from cgraph.h
1271         * cgraph.h (enum node_frequency): Remove.
1272         * varasm.c (initialize_cold_section_name, unlikely_text_section,
1273         unlikely_text_section_p): Remove.
1274         (named_subsection_entry): New structure.
1275         (get_text_section): New function.
1276         (default_function_section): New function.
1277         (function_section_1): Break out from ...; handle profile info.
1278         (function_section): ... here.
1279         (unlikely_text_section): Remove.
1280         (unlikely_text_section_p): Use function_section_1.
1281         (assemble_start_function): Do not initialize cold section.
1282         (default_section_type_flags): Do not special case cold subsection.
1283         (switch_to_section): Likewise.
1284         * output.h (get_text_section): Define.
1285         * config/i386/winnt.c: Do not special case cold section.
1286         * config/darwin-protos.h (darwin_function_section): Declare.
1287         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
1288         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1289         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
1290         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1291         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
1292         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
1293         * config/darwin.c (machopic_select_section): Use
1294         darwin_function_section.
1295         (darwin_function_section): New function.
1296         * config/darwin.h (HOT_TEXT_SECTION_NAME,
1297         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1298         (TARGET_ASM_FUNCTION_SECTION): Define.
1299         * system.h (HOT_TEXT_SECTION_NAME,
1300         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
1301
1302 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
1303
1304         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
1305         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
1306
1307 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
1308
1309         PR middle-end/46499
1310         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
1311         following unconditional jumps.
1312
1313 2010-11-23  Richard Guenther  <rguenther@suse.de>
1314
1315         * doc/md.texi (386 constraints): Clarify A constraint documentation.
1316
1317 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1318             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1319
1320         * gengtype.c (enum typekind, struct options)
1321         (struct nested_ptr_data, struct pair, NUM_PARAM)
1322         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
1323         Move to gengtype.h.
1324         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
1325         Remove static, add zero state_number.
1326         (typedefs, structures, param_structs, variables): Remove static.
1327         (create_option): Remove.
1328         (create_string_option, create_type_option, create_nested_option):
1329         New functions.
1330         (create_nested_ptr_option): Use create_nested_option.
1331         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
1332         new create*option functions.
1333         (process_gc_options): Adjust for discriminated option.
1334         (output_mangled_typename): Handle TYPE_NONE.
1335         (walk_type): Test option kinds.
1336         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
1337         (write_func_for_structure, write_type, write_local, write_root)
1338         (write_roots, note_def_vec, dump_options): Adjust for
1339         discriminated option.
1340
1341         * gengtype.h (typedefs, structures, param_structs, variables
1342         enum typekind): Move from gengtype.c
1343         (enum option_kind): New discriminating enumeration.
1344         (struct options): Becomes discriminated.
1345         (struct nested_ptr_data): Nove from gengtype.c
1346         (create_string_option, create_type_option, create_nested_option)
1347         (create_nested_ptr_option): New functions
1348         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
1349         (UNION_OR_STRUCT_P): Move from gengtype.c
1350
1351         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
1352         discriminated options.
1353
1354 2010-11-23  Richard Guenther  <rguenther@suse.de>
1355
1356         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
1357         twice.  Avoid re-allocating the ops vector all the time.
1358
1359 2010-11-23  Richard Guenther  <rguenther@suse.de>
1360
1361         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
1362         is_gimple_min_invariant, group tree code checks to allow
1363         combining them.
1364         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
1365         of is_gimple_reg.
1366
1367 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
1368
1369         * config.gcc (sparc*-*-*): Reorder.
1370
1371 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1372
1373         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
1374         Remove ENABLE_CHECKING around DBGPRINTF.
1375
1376 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
1377
1378         * common.opt (exit_after_options, write_symbols, debug_info_level,
1379         use_gnu_debug_info_extensions): New Variable entries.
1380         (fprofile-dir=): Use Var.
1381         * flag-types.h (enum debug_info_level): Rename to enum
1382         debug_info_levels.
1383         * flags.h (write_symbols, debug_info_level,
1384         use_gnu_debug_info_extensions): Remove declarations.
1385         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
1386         (set_struct_debug_option): Make static variables const.
1387         (use_gnu_debug_info_extensions): Remove.
1388         (set_debug_level, print_filtered_help, print_specific_help,
1389         fast_math_flags_set_p): Take gcc_options parameters and use them
1390         in place of global variables.
1391         (print_filtered_help): Make new_help non-static.
1392         (print_specific_help): Update call to print_filtered_help.
1393         (common_handle_option): Update calls to print_specific_help.  Use
1394         gcc_options structure for more settings.  Make --help table
1395         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
1396         set_debug_level.
1397         * toplev.c (profile_data_prefix): Remove.
1398         * toplev.h (profile_data_prefix, exit_after_options): Remove
1399         declarations.
1400         (fast_math_flags_set_p): Update prototype.
1401         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
1402         Update call to fast_math_flags_set_p.
1403
1404 2010-11-22  Richard Henderson  <rth@redhat.com>
1405
1406         PR target/46434
1407         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
1408         return the address register extracted.
1409         (crx_decompose_address): Update the extracted address register.
1410
1411 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
1412
1413         PR driver/43335
1414         * gcc.c (main): Don't crash when lto-wrapper program is not found.
1415
1416 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
1417
1418         PR target/46608
1419         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
1420         * config/picochip/picochip-protos.h: Don't include "target.h" .
1421         (picochip_secondary_reload): Don't declare.
1422
1423         PR target/46613
1424         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
1425         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
1426         static.
1427
1428 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
1429
1430         PR bootstrap/46609
1431         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
1432         (source_dot_c_frul): Likewise.
1433
1434 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
1435
1436         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
1437
1438 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
1439
1440         PR bootstrap/44970
1441         * Makefile.in (fwprop.o) Add sparseset.h.
1442         * fwprop.c: Include sparseset.h
1443         (struct find_occurrence_data, find_occurrence_callback,
1444         find_occurrence): Remove.
1445         (active_defs, active_defs_check, register_active_defs,
1446         update_df_init, update_uses): New.
1447         (update_df): Rewrite.
1448         (try_fwprop_subst, forward_propagate_asm): Add calls to
1449         update_df_init and update_df.
1450         (fwprop_init): Allocate active_defs and active_defs_check.
1451         (fwprop_done): Free them.
1452         (fwprop, fwprop_addr): Adjust comments.
1453         * df.h (df_uses_create): Declare.
1454         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
1455         (df_ref_create): Return result of df_ref_create_structure directly.
1456         (df_ref_create_structure): Call df_install_ref_incremental when
1457         no collection_rec is passed.
1458         (df_ref_record): Do not create multiword hard reg info when no
1459         collection_rec is passed.
1460         (df_uses_create): New.
1461
1462 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1463
1464         PR middle-end/43057
1465         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
1466         setting location.
1467
1468 2010-11-22  Richard Guenther  <rguenther@suse.de>
1469
1470         * gimple-fold.c (maybe_fold_reference): When canonicalizing
1471         MEM_REFs, preserve volatileness.
1472         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
1473         addresses.
1474
1475 2010-11-22  Richard Guenther  <rguenther@suse.de>
1476
1477         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
1478
1479 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
1480
1481         PR rtl-optimization/45652
1482         * alias.c (get_reg_base_value): New.
1483         * rtl.h (get_reg_base_value): Add prototype.
1484         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
1485         non-null REG_BASE_VALUE for renaming.
1486
1487 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
1488             Basile Starynkevitch  <basile@starynkevitch.net>
1489
1490         * gengtype.c: Include xregex.h and obstack.h
1491         Added comments about role of get_output_file_with_visibility and
1492         our regexpr machinery.
1493         (frul_actionrout_t, struct file_rule_st): New.
1494         (hader_dot_h_frul, source_dot_c_frul): New functions.
1495         (NULL_REGEX,  NULL_FRULACT): New.
1496         (files_rules): New.
1497         (matching_file_name_substitute): New function.
1498         (get_output_file_with_visibility): Updated comments and rewritten
1499         to use the new files_rules machinery.
1500
1501         * Makefile.in (XREGEX_H): Added variable.
1502         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
1503
1504 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1505
1506         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
1507
1508 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1509
1510         * target.def (conditional_register_usage): Define.
1511         * reginfo.c (init_reg_sets_1): Call
1512         targetm.conditional_register_usage.
1513         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
1514         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
1515         for making it a hook.
1516         * doc/tm.texi: Regenerate.
1517         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1518         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
1519         New function.
1520         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1521         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1522         * config/arc/arc.c (arc_conditional_register_usage): ...here.
1523         New function.
1524         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1525         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1526         * config/arm/arm.c (arm_conditional_register_usage): ...here.
1527         New function.
1528         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1529         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
1530         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
1531         * config/bfin/bfin.c (conditional_register_usage): Move code into...
1532         (bfin_conditional_register_usage): ...here.  New function.
1533         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1534         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
1535         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
1536         * config/cris/cris.c (cris_conditional_register_usage): Make static.
1537         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1538         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
1539         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
1540         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
1541         * config/frv/frv.c (frv_conditional_register_usage): Make static.
1542         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1543         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1544         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
1545         New function.
1546         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1547         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
1548         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
1549         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
1550         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1551         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
1552         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
1553         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
1554         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1555         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1556         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
1557         New function.
1558         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1559         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
1560         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
1561         Delete.
1562         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
1563         static.
1564         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1565         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
1566         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
1567         * config/mep/mep.c (mep_conditional_register_usage): Make static.
1568         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1569         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
1570         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
1571         * config/mips/mips.c (mips_conditional_register_usage): Make static.
1572         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1573         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
1574         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
1575         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
1576         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1577         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1578         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
1579         ...here.  New function.
1580         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1581         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1582         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
1583         * config/pa/pa.c (pa_conditional_register_usage): ...here.
1584         New function.
1585         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1586         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1587         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
1588         New function.
1589         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1590         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
1591         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
1592         Delete.
1593         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
1594         static.
1595         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1596         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
1597         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
1598         * config/rx/rx.c (rx_conditional_register_usage): Make static.
1599         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1600         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
1601         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
1602         * config/s390/s390.c (s390_conditional_register_usage): Make static.
1603         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1604         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1605         * config/score/score.c (score_conditional_register_usage): ...here.
1606         New function.
1607         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1608         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1609         * config/sh/sh.c (sh_conditional_register_usage): ...here.
1610         New function.
1611         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1612         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1613         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
1614         New function.
1615         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1616         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
1617         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
1618         * config/spu/spu.c (spu_conditional_register_usage): Make static.
1619         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1620         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1621         * config/v850/v850.c (v850_conditional_register_usage): ...here.
1622         New function.
1623         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1624
1625 2010-11-21  Jan Hubicka  <jh@suse.cz>
1626             Dominique d'Humieres <dominiq@lps.ens.ft>
1627
1628         PR target/46510
1629         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
1630         finalize external decls.
1631
1632 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
1633
1634         * system.h (strerror): Poison.
1635
1636 2010-11-21  Richard Henderson  <rth@redhat.com>
1637
1638         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
1639         for infq/huge_valq.
1640
1641 2010-11-21  Richard Henderson  <rth@redhat.com>
1642
1643         PR rtl-optimization/46571
1644         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
1645         (compute_hash_table_work): Use NONDEBUG_INSN_P.
1646
1647 2010-11-21  Paul Koning  <ni1d@arrl.net>
1648
1649         * config/mips/pdp11.md (negsi2): Fix wrong code.
1650
1651 2010-11-21  Paul Koning  <ni1d@arrl.net>
1652
1653         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
1654         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1655
1656 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
1657
1658         * config/mips/mips.c (machine_function): Rename load_label_length to
1659         load_label_num_insns.
1660         (mips_load_label_length): Rename to...
1661         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
1662         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
1663
1664 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1665
1666         PR target/46533
1667         * config/alpha/predicates.md (direct_call_operand): Return false
1668         for !TARGET_SMALL_TEXT targets.
1669
1670 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
1671
1672         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
1673         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
1674         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
1675         * doc/tm.texi: Regenerate.
1676         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
1677         HANDLE_PRAGMA_WEAK): Poison.
1678         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1679         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1680         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
1681         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
1682         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1683         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1684         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1685         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
1686         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1687         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
1688         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1689         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
1690         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1691         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1692         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1693         (HANDLE_PRAGMA_WEAK): Don't undefine.
1694         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1695         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
1696         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1697         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
1698         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1699         (HANDLE_PRAGMA_WEAK): Don't undefine.
1700         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1701         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
1702         (HANDLE_PRAGMA_PACK): Don't undefine.
1703         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
1704         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1705         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1706         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1707         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
1708         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1709         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1710         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1711         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
1712         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1713         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
1714         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1715         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1716         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1717         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1718         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
1719         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1720
1721 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1722
1723         PR target/31100
1724         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
1725         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
1726         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
1727
1728 2010-11-20  Jan Hubicka  <jh@suse.cz>
1729
1730         * cgraph.c (ld_plugin_symbol_resolution_names): New.
1731         (dump_cgraph_node): Dump resolution.
1732         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
1733         (cgraph_comdat_can_be_unshared_p): Dclare.
1734         * lto-streamer-out.c (produce_symtab): Use
1735         cgraph_comdat_can_be_unshared_p.
1736         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
1737         (cgraph_comdat_can_be_unshared_p): New function based on logic
1738         in cgraph_externally_visible_p.
1739         (cgraph_externally_visible_p): Use it.
1740         (varpool_externally_visible_p): Virtual tables can be unshared.
1741         * varpool.c (dump_varpool_node): Dump resolution.
1742
1743 2010-11-20  Jan Hubicka  <jh@suse.cz>
1744
1745         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
1746
1747 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1748
1749         PR other/46202
1750         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
1751         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
1752         shell quoting.
1753         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
1754         (install-strip): New target.
1755         (STRIPPROG): New variable, exported if STRIP is set.
1756         * doc/install.texi (Final install): Minor markup and code style
1757         fixes.  Document install-strip target.
1758
1759 2010-11-20  Paul Koning  <ni1d@arrl.net>
1760
1761         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
1762         pdp11_regno_reg_class): New functions.
1763         * config/pdp11/pdp11.md (define_constants): Add register numbers.
1764         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
1765         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
1766         functions.
1767         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
1768         frame pointer and argument pointer pseudo-registers.
1769         (ARG_POINTER_REGNUM): Define.
1770         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
1771         argument pointer.
1772         (FIRST_PARM_OFFSET): Update for argument pointer.
1773         (INITIAL_FRAME_POINTER_OFFSET): Delete.
1774         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
1775         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
1776         frame pointer and argument pointer.
1777
1778 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
1779
1780         PR debug/46561
1781         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
1782         when looking for immediate uses.
1783
1784         PR tree-optimization/45830
1785         * stmt.c (expand_switch_using_bit_tests_p): New function.
1786         (expand_case): Use it.
1787         * tree.h (expand_switch_using_bit_tests_p): New prototype.
1788         * tree-switch-conversion.c (struct switch_conv_info): Add
1789         bit_test_uniq, bit_test_count and bit_test_bb fields.
1790         (check_range): Fix a comment.
1791         (check_process_case): Compute bit_test_uniq and bit_test_count.
1792         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
1793         allocation.
1794         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
1795         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
1796         (array_value_type): New function.
1797         (build_one_array): Use it, if it returned different type,
1798         fold_convert all constructor fields and convert back to the
1799         wider type in the generated code.
1800         (process_switch): Initialize bit_test_uniq, bit_test_count and
1801         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
1802         returned true.
1803
1804 2010-11-19  Michael Matz  <matz@suse.de>
1805
1806         PR tree-optimization/46077
1807         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
1808
1809 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
1810
1811         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1812         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
1813         function.
1814         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1815
1816 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
1817
1818         * mode-switching.c (optimize_mode_switching): Use
1819         FOR_BB_INSNS instead of open-coded loop.
1820         * cfgrtl.c (redirect_branch_edge): Ditto.
1821
1822 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
1823
1824         PR target/46436
1825         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
1826         to accomodate 32 bit HOST_WIDE_INT.
1827         (m68hc11_emit_logical): Remove unused variable insn.
1828         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
1829         this_insn_uses_iy before use.
1830
1831         PR target/46434
1832         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
1833
1834 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1835
1836         PR c/46547
1837         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
1838         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
1839
1840 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
1841
1842         * doc/extend.texi (Function attributes): Document PowerPC target
1843         attributes that are supported.
1844         (Pragmas): Document that PowerPC now supports target pragmas.
1845
1846         * doc/options.texi (TargetVariable): Document TargetVariable,
1847         HeaderInclude, and SourceInclude.
1848
1849         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
1850         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
1851         -ffp-contract=off.
1852
1853         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
1854         SourceInclude directives.  Fix a cut+paste error with target save
1855         enum variables.  Sort enums in the structures after ints and
1856         before shorts.
1857         * opth-gen.awk: Ditto.
1858
1859         * configure.ac: Add support for HeaderInclude and SourceInclude option
1860         directives to add the appropriate files to the dependency lists.
1861         * configure: Regenerate.
1862         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
1863         (OPTIONS_C_EXTRA): New variable for SourceInclude.
1864         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
1865         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
1866         (gcc-options.o): Ditto.
1867         * opt-include.awk: New awk script to handle HeaderInclude and
1868         TargetInclude.
1869
1870         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
1871         gets saved in the target options.
1872         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
1873         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
1874         (-mprototype): Ditto.
1875         (-mbit-word): ditto.
1876         (-mregnames): Ditto.
1877         (-msecure-plt): Ditto.
1878         (-mbss-plt): Ditto.
1879         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
1880         (-mpowerpc-gfxopt): Ditto.
1881         (-mmfcrf): Ditto.
1882         (-mpopcntb): Ditto.
1883         (-mfprnd): Ditto.
1884         (-mcmpb): Ditto.
1885         (-mmmfpgpr): Ditto.
1886         (-maltivec): Ditto.
1887         (-mhard-dfp): Ditto.
1888         (-mmulhw): Ditto.
1889         (-mdlmzb): Ditto.
1890         (-mmultiple): Ditto.
1891         (-mstring): Ditto.
1892         (-mpopcntd): Ditto.
1893         (-mfriz): Ditto.
1894         (-mvsx): Ditto.
1895         (-mno-update): Ditto.
1896         (-mavoid-indexed-addresses): Ditto.
1897         (-mtls-markers): Ditto.
1898         (-msched-epilog): Ditto.
1899         (-msched-prolog): Ditto.
1900         (-maix-struct-return): Ditto.
1901         (-msvr4-struct-return): Ditto.
1902         (-mxl-compat): Ditto.
1903         (-mrecip-precision): Ditto.
1904         (-mfp-in-toc): Ditto.
1905         (-msum-in-toc): Ditto.
1906         (-mvrsave): Ditto.
1907         (-mblock-move-inline-limit=): Ditto.
1908         (-misel): Ditto.
1909         (-mpaired): Ditto.
1910         (-mlongcall): Ditto.
1911         (-mgen-cell-microcode): Ditto.
1912         (-mwarn-cell-microcode): Ditto.
1913         (-mwarn-altivec-long): Ditto.
1914         (-mprioritize-restricted-insns=): Ditto.
1915         (-msingle-float): Ditto.
1916         (-mdouble-float): Ditto.
1917         (-msimple-fpu): Ditto.
1918         (-mxilinx-fpu): Ditto.
1919         * config/rs6000/aix64.opt (-mpe): Ditto.
1920
1921         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
1922         (rs6000_cpu): Move variable to be a target variable.  Rename
1923         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
1924         -mdebug=<xxx> variables into a single int.
1925         (rs6000_always_hint): Ditto.
1926         (rs6000_sched_groups): Ditto.
1927         (rs6000_align_branch_targets): Ditto.
1928         (rs6000_sched_costly_dep): Ditto.
1929         (rs6000_sched_insert_nops): Ditto.
1930         (rs6000_long_double_type_size): Ditto.
1931         (rs6000_ieeequad): Ditto.
1932         (rs6000_altivec_abi): Ditto.
1933         (rs6000_spe): Ditto.
1934         (rs6000_spe_abi): Ditto.
1935         (rs6000_float_gprs): Ditto.
1936         (rs6000_darwin64_abi): Ditto.
1937         (can_override_loop_align): Ditto.
1938         (rs6000_sdata): Ditto.
1939         (rs6000_tls_size): Ditto.
1940         (rs6000_current_abi): Ditto.
1941         (rs6000_traceback): Ditto.
1942         (rs6000_alignment_flags): Ditto.
1943         (rs6000_current_cmodel): Ditto.
1944         (rs6000_recip_control): Ditto.
1945         (rs6000_cpu_index): Ditto.
1946         (rs6000_tune_index): Ditto.
1947         (rs6000_debug): Ditto.
1948         (rs6000_target_flags_explict): Ditto.
1949
1950         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
1951         declaration.
1952
1953         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
1954         cmodel.  Change all uses.
1955
1956         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
1957         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
1958         Rename cmodel to rs6000_current_cmodel.
1959         (rs6000_sched_groups): Ditto.
1960         (rs6000_align_branch_targets): Ditto.
1961         (rs6000_sched_costly_dep): Ditto.
1962         (rs6000_sched_insert_nops): Ditto.
1963         (rs6000_long_double_type_size): Ditto.
1964         (rs6000_ieeequad): Ditto.
1965         (rs6000_altivec_abi): Ditto.
1966         (rs6000_spe): Ditto.
1967         (rs6000_spe_abi): Ditto.
1968         (rs6000_float_gprs): Ditto.
1969         (rs6000_darwin64_abi): Ditto.
1970         (can_override_loop_align): Ditto.
1971         (rs6000_sdata): Ditto.
1972         (rs6000_tls_size): Ditto.
1973         (rs6000_current_abi): Ditto.
1974         (rs6000_traceback): Ditto.
1975         (rs6000_alignment_flags): Ditto.
1976         (rs6000_current_cmodel): Ditto.
1977         (rs6000_recip_control): Ditto.
1978         (rs6000_cpu_index): Ditto.
1979         (rs6000_tune_index): Ditto.
1980         (rs6000_debug): Ditto.
1981         (rs6000_target_flags_explict): Ditto.
1982         (rs6000_sched_insert_nops_str): Make static.
1983         (rs6000_sched_costly_dep_str): Ditto.
1984         (rs6000_recip_name): Ditto.
1985         (rs6000_abi_name): Ditto.
1986         (rs6000_sdata_name): Ditto.
1987         (enum rs6000_traceback_name): Move to rs6000-opts.h.
1988         (rs6000_parse_tls_size_option): Delete.
1989         (rs6000_valid_attribute_p): New function for target attributes and
1990         pragmas.
1991         (rs6000_function_specific_save): Ditto.
1992         (rs6000_function_specific_restore): Ditto.
1993         (rs6000_function_specific_print): Ditto.
1994         (rs6000_can_inline_p): Ditto.
1995         (rs6000_set_current_function): Ditto.
1996         (rs6000_inner_target_options): Ditto.
1997         (rs6000_debug_target_options): Ditto.
1998         (rs6000_pragma_target_parse): Ditto.
1999         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
2000         attributes and pragmas.
2001         (TARGET_OPTION_SAVE): Ditto.
2002         (TARGET_OPTION_RESTORE): Ditto.
2003         (TARGET_OPTION_PRINT): Ditto.
2004         (TARGET_CAN_INLINE_P): Ditto.
2005         (TARGET_SET_CURRENT_FUNCTION): Ditto.
2006         (POWER_MASKS): Move to file level scope from the
2007         rs6000_option_override_internal function.
2008         (POWERPC_MASKS): Ditto.
2009         (ISA_*_MASKS): Ditto.
2010         (struct rs6000_ptt): Ditto.
2011         (processor_target_table): Ditto.
2012         (rs6000_cpu_name_lookup): Map cpu name to an index in
2013         processor_target_table.
2014         (rs6000_debug_reg_global): Print more information on processor
2015         options for -mdebug=reg.
2016         (rs6000_init_hard_regno_mode_ok): Add support for target
2017         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
2018         Allow -mdebug=val1,val2.  Rename cmodel variable.
2019         (rs6000_option_override_internal): Ditto.
2020         (rs6000_option_override): Ditto.
2021         (rs6000_handle_option): Ditto.
2022         (rs6000_conditional_register_usage): Add debug trace message.
2023         (struct rs6000_opt_mask): New for target attribute/pragma support.
2024         (rs6000_opt_masks): Ditto.
2025         (struct rs6000_opt_var): Ditto.
2026         (rs6000_opt_vars): Ditto.
2027         (rs6000_previous_function): Ditto.
2028
2029         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
2030         wasn't already included.
2031         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
2032         (enum processor_type): Ditto.
2033         (rs6000_cpu): Ditto.
2034         (enum fpu_type_t): Ditto.
2035         (fpu_type): Ditto.
2036         (enum rs6000_dependence_cost): Ditto.
2037         (enum rs6000_nop_insertion): Ditto.
2038         (enum group_termination): Ditto.
2039         (rs6000_long_double_type_size): Ditto.
2040         (rs6000_ieeequad): Ditto.
2041         (rs6000_altivec_abi): Ditto.
2042         (rs6000_spe_abi): Ditto.
2043         (rs6000_spe): Ditto.
2044         (rs6000_float_gprs): Ditto.
2045         (rs6000_alignment_flags): Ditto.
2046         (rs6000_sched_insert_nops): Ditto.
2047         (enum rs6000_vector): Ditto.
2048         (enum rs6000_abi): Ditto.
2049         (rs6000_current_opt): Ditto.
2050         (rs6000_debug_*): Delete.
2051         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
2052         (TARGET_DEBUG*): Ditto.
2053
2054         * config/rs6000/rs6000-opts.h: New header file to define the enums
2055         that are used in target variables that are now defined in rs6000.opt.
2056
2057         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
2058         rs6000-opts.h.
2059         (rs6000_sdata): Ditto.
2060         (rs6000_abi_name): Delete.
2061         (rs6000_sdata_name): Ditto.
2062         (rs6000_tls_size_string): Ditto.
2063
2064 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2065
2066         * common.opt (debug_struct_ordinary, debug_struct_generic): New
2067         Variable entries.
2068         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
2069         should_emit_struct_debug): Move from opts.c.
2070         * flag-types.h (enum debug_struct_file): Move from opts.c.
2071         * flags.h (should_emit_struct_debug): Remove.
2072         (base_of_path): Declare.
2073         (set_struct_debug_option): Add gcc_options parameter.
2074         * optc-gen.awk, opth-gen.awk: Handle array variables.
2075         * opts.c (enum debug_struct_file, debug_struct_ordinary,
2076         debug_struct_generic): Remove.
2077         (set_struct_debug_option): Add gcc_options parameter.
2078         (base_of_path): Remove static.
2079         (main_input_basename, main_input_baselength, matches_main_base,
2080         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
2081         Remove.
2082         * toplev.c (main_input_basename, main_input_baselength): Define
2083         here.
2084         * toplev.h (main_input_basename, main_input_baselength): Declare
2085         here.
2086
2087 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2088
2089         * common.opt (flag_instrument_functions_exclude_functions,
2090         flag_instrument_functions_exclude_files): New Variable definitions.
2091         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
2092         * gimplify.c (char_p): Declare type and vectors.
2093         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
2094         * opts.c (flag_instrument_functions_exclude_functions,
2095         flag_instrument_functions_exclude_files): Remove.
2096         (add_comma_separated_to_vector): Take void **.
2097         (flag_instrument_functions_exclude_p): Move to gimplify.c.
2098         (common_handle_option): Use options structure for
2099         -finstrument-functions-exclude- options.
2100
2101 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2102
2103         * doc/options.texi (Var): Document effects of Defer.
2104         (Defer): Document.
2105         * opt-functions.awk (var_type, var_set): Handle deferred options.
2106         * opts-common.c (set_option): Handle CLVC_DEFER.
2107         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
2108         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
2109         fstack-limit-symbol=): Mark as deferred.
2110         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
2111         plugin.h.
2112         (print_filtered_help): Don't report state of CLVC_DEFER options.
2113         (common_handle_option): Move code for OPT_fcall_used_,
2114         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
2115         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
2116         OPT_fstack_limit_symbol_ to opts-global.c.
2117         (option_enabled, get_option_state): Handle CLVC_DEFER.
2118         * opts.h: Include vec.h.
2119         (enum cl_var_type): Add CLVC_DEFER.
2120         (cl_deferred_option): Define type and vectors.
2121         (handle_common_deferred_options): Declare.
2122         * opts-global.c: New.
2123         * toplev.c (toplev_main): Call handle_common_deferred_options
2124         * Makefile.in (OPTS_H): Include $(VEC_H).
2125         (OBJS-common): Include opts-global.o.
2126         (opts.o): Update dependencies.
2127         (opts-global.o): Add dependencies.
2128
2129 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
2130
2131         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
2132         to objc_declare_protocols.
2133
2134 2010-11-19  Richard Guenther  <rguenther@suse.de>
2135
2136         PR lto/45789
2137         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
2138         IDENTIFIERs do not stream TREE_TYPE.
2139         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
2140
2141 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
2142
2143         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
2144
2145 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
2146
2147         PR target/45870
2148         * dwarf2out.c (const_ok_for_output_1): Don't complain about
2149         non-delegitimized TLS UNSPECs.
2150
2151 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
2152             Ian Lance Taylor  <iant@google.com>
2153
2154         * config/darwin-c.c (darwin_additional_format_types): Export.
2155
2156 2010-11-18  Paul Koning  <ni1d@arrl.net>
2157
2158         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
2159         pointer.
2160
2161 2010-11-18  Paul Koning  <ni1d@arrl.net>
2162
2163         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
2164         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
2165         * config/pdp11/pdp11.opt (-mabshi): Delete.
2166
2167 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
2168
2169         * resource.h (struct resources): Fix typo in the comment.
2170
2171 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2172
2173         PR target/46546
2174         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
2175
2176 2010-11-18  Richard Henderson  <rth@redhat.com>
2177
2178         PR middle-end/46515
2179         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
2180         maybe_copy_epilogue_insn; handle prologue insns as well.
2181         * rtl.h, cfglayout.c: Update for rename.
2182         * recog.c (peep2_attempt): Copy prologue/epilogue data for
2183         RTX_FRAME_RELATED_P insns.
2184
2185 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
2186
2187         PR middle-end/46534
2188         * builtins.c (fold_builtin_printf): Don't copy and modify string
2189         before build_string_literal, instead modify what
2190         build_string_literal returned.
2191
2192 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
2193
2194         PR c/33193
2195         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
2196         REALPART_EXPR and IMAGPART_EXPR.
2197
2198 2010-11-18  Richard Guenther  <rguenther@suse.de>
2199
2200         PR tree-optimization/46172
2201         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
2202         function.
2203         (slpeel_tree_peel_loop_to_edge): Call it.
2204
2205 2010-11-18  Jeff Law  <law@redhat.com>
2206
2207         PR middle-end-optimization/46297
2208         * postreload.c (reload_combine_note_store): Deal with embedded
2209         side effects in MEM expressions.
2210
2211 2010-11-18  Richard Guenther  <rguenther@suse.de>
2212
2213         PR lto/45089
2214         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
2215         when checking is not enabled.
2216
2217 2010-11-18  Richard Guenther  <rguenther@suse.de>
2218
2219         PR lto/46525
2220         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
2221         type leaders.
2222         (gimple_register_canonical_type): Also cache the canoncial type
2223         for non type leaders.
2224
2225 2010-11-18  Richard Guenther  <rguenther@suse.de>
2226
2227         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
2228
2229 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
2230
2231         PR middle-end/46518
2232         * sel-sched-ir.c (init_expr): Use the correct type for
2233         target_available.
2234         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
2235
2236 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2237
2238         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
2239         as well as -mrelocatable at the same time.
2240
2241 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
2242
2243         PR target/46422
2244         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
2245         Call the clz builtin.
2246
2247 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
2248             Steve Ellcey  <sje@cup.hp.com>
2249
2250         PR middle-end/31490
2251         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
2252         if section attribute used.
2253
2254 2010-11-17  Jan Hubicka  <jh@suse.cz>
2255
2256         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
2257         expand errno setting variant when optimizing for size.
2258
2259 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
2260
2261         * postreload.c (reload_combine): Call control_flow_insn_p only once.
2262         Reverse backward loop.  Fix formatting issues.
2263
2264 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
2265
2266         * c-parser.c (c_token_is_qualifier,
2267         c_parser_next_token_is_qualifier): New.
2268         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
2269         Improve error message on specs->tagdef_seen_p.
2270         (c_parser_struct_or_union_specifier): Improve error recovery.
2271         (c_parser_declspecs): Move exit condition on C_ID_ID early.
2272         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
2273         using c_parser_next_token_is_qualifier; extend it to cover
2274         a ctsk_tagdef typespec and !typespec_ok in general.
2275
2276 2010-11-17  Richard Guenther  <rguenther@suse.de>
2277
2278         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
2279         (gimple_mod_pow2_value_transform): Likewise.
2280         (gimple_mod_subtract_transform): Likewise.
2281
2282 2010-11-17  Richard Guenther  <rguenther@suse.de>
2283
2284         PR lto/46504
2285         * gimple.c (gimple_register_canonical_type): Make sure to only
2286         make type leaders canonical types.
2287
2288 2010-11-17  Michael Matz  <matz@suse.de>
2289
2290         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
2291         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
2292         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
2293         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
2294         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
2295         (pass_build_ssa): ... but here.
2296         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
2297         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
2298         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
2299         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
2300         * predict.c (rebuild_frequencies): Ditto.
2301         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
2302         * emit-rtl.c (verify_rtl_sharing): Ditto.
2303         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
2304         * tree-ssa-live.c (remove_unused_locals): Ditto.
2305         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
2306         * tree-ssa.c (pass_early_warn_uninitialized,
2307         execute_update_addresses_taken, pass_update_address_taken): Ditto.
2308         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
2309         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
2310         * passes.c (pass_postreload, execute_todo): Ditto.
2311         * tree-ssanames.c (pass_release_ssa_names): Ditto.
2312
2313 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2314
2315         * doc/invoke.texi (-dy): Remove.
2316         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
2317         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
2318         * langhooks.c (lhd_do_nothing_i): Remove.
2319         * langhooks.h (lang_hooks.parse_file): Take no arguments.
2320         * toplev.c (set_yydebug): Remove.
2321         (compile_file): Update call to lang_hooks.parse_file.
2322         (decode_d_option): Don't handle -dy.
2323
2324 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2325
2326         PR rtl-optimization/46440
2327         * combine.c (update_cfg_for_uncondjump): When changing
2328         an indirect jump into unconditional jump, remove BARRIERs
2329         from bb's footer.
2330
2331 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2332
2333         * opts.c (target_handle_option): Do not assert that loc ==
2334         UNKNOWN_LOCATION.
2335
2336 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2337             Richard Guenther  <rguenther@suse.de>
2338
2339         PR middle-end/45838
2340         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2341         call_may_clobber_ref_p_1): Return true for __sync_* and some
2342         OpenMP builtins that act as threading barriers.
2343
2344 2010-11-17  Richard Guenther  <rguenther@suse.de>
2345
2346         PR tree-optimization/46498
2347         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
2348
2349 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2350
2351         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
2352         (xtensa_function_arg_boundary): ...this.
2353         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
2354         thinko in declaration.
2355         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
2356         number of parameters to picochip_function_arg_boundary.
2357         (picochip_arg_advance): Likewise.
2358
2359 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2360
2361         PR target/46512
2362         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
2363         under check for type.
2364
2365 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2366
2367         * ifcvt.c (dead_or_predicable): Fix typo.
2368
2369 2010-11-16  Richard Henderson  <rth@redhat.com>
2370
2371         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
2372         * config/s390/s390.opt (mfused-madd): Remove.
2373         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
2374         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
2375         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
2376         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
2377
2378 2010-11-16  Richard Henderson  <rth@redhat.com>
2379
2380         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
2381         * config/rs6000/rs6000.opt (mfused-madd): Remove.
2382         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
2383         (*altivec_vmaddfp_1): Remove.
2384         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
2385         (altivec_mulv4sf3): Expand to FMA directly.
2386         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
2387         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
2388         * config/rs6000/paired.md (paired_madds0): Use FMA.
2389         (paired_madds1): Likewise.
2390         (*paired_madd): Rename from paired_madd; use FMA.
2391         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
2392         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
2393         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
2394         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
2395         (rs6000_emit_madd): Use fma_optab.
2396         (rs6000_emit_msub): Use fms_optab.
2397         (rs6000_emit_nmsub): Expand the FMA pattern directly.
2398         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
2399         (*fmasf4_fpr): Rename from fmasf4_fpr.
2400         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
2401         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
2402         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
2403         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
2404         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
2405         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
2406         (*fmadf4_fpr): Rename from fmadf4_fpr.
2407         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
2408         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
2409         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
2410         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
2411         (fmasf4, fmadf4): Macroize into...
2412         (fma<FMA_F>4): ... here.
2413         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
2414         (nfma<FMA_F>4, nfms<FMA_F>4): New.
2415         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
2416         TARGET_FUSED_MADD.
2417         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
2418         (*vsx_fmadd<mode>4_1): Remove.
2419         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
2420         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
2421         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
2422         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
2423         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
2424         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
2425         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
2426
2427 2010-11-16  Richard Henderson  <rth@redhat.com>
2428
2429         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
2430         (fmasf4, fnmadf4, fnmasf4): Likewise.
2431         (unnamed plus+mult insns and splitters): Delete.
2432
2433 2010-11-16  Richard Henderson  <rth@redhat.com>
2434
2435         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
2436         (fnma<VSF>4): Rename from fnms_<VSF>.
2437         (fms<VSF>4): Rename from fms_<VSF>.
2438         (fma<VDF>4): Rename from fma_<VDF>.
2439         (fms<VDF>4): Rename from fms_<VDF>.
2440         (nfma<VDF>4): Rename from fnma_<VDF>.
2441         (nfms<VDF>4): Rename from fnms_<VDF>.
2442         (fnma<VDF>4, fnms<VDF>4): New expanders.
2443         (floatunsdisf2): Update for the renames.
2444         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
2445         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
2446
2447 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2448
2449         PR rtl-optimization/46490
2450         * combine.c (expand_compound_operation): Fix thinko.
2451
2452 2010-11-16  Richard Henderson  <rth@redhat.com>
2453
2454         PR target/46470
2455         * recog.c (peep2_attempt): Convert frame-related info when possible.
2456         (peep2_fill_buffer): Allow frame-related insns into the buffer.
2457         (peephole2_optimize): Allow peep2_attempt to fail.
2458
2459 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2460
2461         PR rtl-optimization/46315
2462         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
2463         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
2464         extracted from...
2465         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
2466         (remove_reg_equal_equiv_notes_for_defs): ...this.
2467         (delete_unmarked_insns): Adjust to above renaming.
2468         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
2469         referring to registers set in the insns being moved, if any.
2470
2471         * df-core.c (df_ref_dump): New function extracted from...
2472         (df_refs_chain_dump): ...here.  Call it.
2473         (df_regs_chain_dump): Likewise.
2474         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
2475         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
2476
2477 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
2478
2479         PR rtl-optimization/46395
2480         * postreload.c (reload_combine): Invalidate register use
2481         information on all control flow insns.
2482
2483         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
2484         LABEL_REF in UNSPEC operand.
2485
2486 2010-11-16  Jan Hubicka  <jh@suse.cz>
2487
2488         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
2489         when !flag_toplevel_reorder do not remove unless variable is
2490         COMDAT or ARTIFICIAL.
2491         * ipa.c (varpool_can_remove_if_no_refs): ... here.
2492         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
2493         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
2494         * varpool.c (decide_is_variable_needed): Do not handle visibility
2495         issues.
2496         (varpool_finalize_decl): Likewise.
2497         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
2498         update outdated comment on DECL_RTL_SET_P check.
2499
2500 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2501
2502         * config/sol2.h (NM_FLAGS): Define.
2503         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
2504         * doc/tm.texi: Update.
2505
2506 2010-11-16  Nick Clifton  <nickc@redhat.com>
2507
2508         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
2509         (msubsf4): Rename to fmssf4, and use fma.
2510         (nmaddsf4): Rename to fnmasf4 and use fma.
2511         (nmsubsf4): Rename to fnmssf4 and use fma.
2512
2513 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
2514
2515         PR target/44762
2516         * config/score/score3.c (score3_return_in_memory): Constify arguments.
2517         (score3_in_small_data_p, score3_function_value): Likewise.
2518         (score3_trampoline_init): Use LCT_NORMAL.
2519         (score3_print_operand): Initialize code as UNKNOWN.
2520         * config/score/predicates.md (score_load_multiple_operation):
2521         Remove unused variable.
2522         (score_store_multiple_operation): Likewise.
2523         * config/score/score7.c (score7_return_in_memory): Constify arguments.
2524         (score7_in_small_data_p, score7_function_value): Likewise.
2525         (score7_trampoline_init): Use LCT_NORMAL.
2526         (score7_print_operand): Initialize code as UNKNOWN.
2527         * config/score/score3.h (score3_return_in_memory): Update prototype.
2528         (score3_in_small_data_p, score3_function_value): Likewise.
2529         * config/score/score-protos.h (score_function_value): Likewise.
2530         * config/score/score7.h (score7_return_in_memory): Update prototype.
2531         (score7_in_small_data_p, score7_function_value): Likewise.
2532         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
2533         (score_return_in_memory, score_pass_by_reference): Constify arguments.
2534         (score_output_mi_thunk, score_function_prologue): Don't return a value.
2535         (score_function_epilogue, score_in_small_data_p): Likewise.
2536         (score_option_override, score_asm_trampoline_template): Likewise.
2537         (score_trampoline_init, score_print_operand): Likewise.
2538         (score_print_operand_address, score_prologue): Likewise.
2539         (score_epilogue, score_call, score_call_value): Likewise.
2540         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
2541         (score_function_arg_advance): Likewise. Make static.
2542         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
2543         (score_function_arg, score_legitimate_address_p): Make static.
2544         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
2545         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
2546         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
2547         Allow (W) == HOST_BITS_PER_WIDE_INT.
2548
2549         PR java/46386
2550         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
2551         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
2552
2553 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2554
2555         * config/arc/arc.c: Delete pasto.
2556         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
2557
2558 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
2559
2560         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
2561         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
2562         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
2563         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2564         (mn10300_preferred_reload_class,
2565         mn10300_preferred_output_reload_class): New functions.
2566
2567 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2568
2569         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
2570         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
2571         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
2572         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
2573
2574 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2575
2576         * builtins.c (std_gimplify_va_arg_expr): Use
2577         targetm.calls.function_arg_boundary.
2578         * function.c (assign_parms, locate_and_pad_parm): Likewise.
2579         * calls.c (struct arg_data): Update comment.
2580         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
2581         * target.def (function_arg_boundary): Define.
2582         * targhooks.h (default_function_arg_boundary): Declare.
2583         * targhooks.c (default_function_arg_boundary): Define.
2584         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
2585         TARGET_FUNCTION_ARG_BOUNDARY.
2586         (FUNCTION_ARG_BOUNDARY): Delete.
2587         (TARGET_FUNCTION_ARG_BOUNDARY): New.
2588         * doc/tm.texi: Regenerate.
2589         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
2590         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
2591         * config/arc/arc.c (arc_function_arg_boundary): Define.
2592         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2593         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
2594         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
2595         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
2596         (arm_function_arg_boundary): Define.
2597         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2598         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
2599         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
2600         * config/frv/frv.c (frv_function_arg_boundary): Make static.
2601         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2602         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
2603         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
2604         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
2605         (ix86_compat_function_arg_boundary): Take and return unsigned int.
2606         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2607         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
2608         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
2609         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
2610         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2611         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
2612         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
2613         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2614         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
2615         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
2616         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
2617         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2618         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
2619         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
2620         * config/mips/mips.c (mips_function_arg_boundary): Make static.
2621         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2622         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
2623         * config/pa/pa.c (pa_function_arg_boundary): Define.
2624         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2625         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
2626         * config/picochip/picochip-protos.h
2627         (picochip_get_function_arg_boundary): Delete.
2628         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
2629         Rename to...
2630         (picochip_function_arg_boundary): ...this.  Make static.
2631         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
2632         (picochip_arg_advance): Adjust.
2633         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2634         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
2635         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
2636         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
2637         (rs6000_function_arg_boundary): ...this.  Make static.
2638         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
2639         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2640         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
2641         * config/rx/rx.c (rx_function_arg_boundary): Define.
2642         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2643         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
2644         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
2645         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2646         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
2647         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
2648         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
2649         (xtensa_function_arg_boundary): ...this.  Make static.
2650         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2651
2652 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2653
2654         * expr.c (alignment_for_piecewise_move): New function.
2655         (widest_int_mode_for_size): New function.
2656         (move_by_pieces, move_by_pieces_ninsns): Call them.
2657         (can_store_by_pieces, store_by_pieces_1): Likewise.
2658
2659 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2660
2661         * gcc.c (char_p): Define.  Define a VEC of it.
2662         (n_linker_options, n_assembler_options, n_preprocessor_options):
2663         Delete.
2664         (linker_options, assembler_options, preprocessor_options): Convert
2665         to a VEC.
2666         (add_preprocessor_option): Adjust.
2667         (add_assembler_option): Adjust.
2668         (add_linker_option): Adjust.
2669         (do_specs_vec): New function.
2670         (do_spec_1): Call it.  Adjust for new types.
2671
2672 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2673
2674         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
2675         (sreal.o, statistics.o, stringpool.o): Likewise.
2676
2677 2010-11-16  Richard Guenther  <rguenther@suse.de>
2678
2679         PR tree-optimization/44545
2680         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
2681         statements are not reassociatable.
2682         (reassociate_bb): Likewise.
2683
2684 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2685
2686         * bitmap.c: Delete unnecessary includes.
2687         * ebitmap.c: Likewise.
2688         * et-forest.c: Likewise.
2689         * sreal.c: Likewise.
2690         * statistics.c: Likewise.
2691         * stringpool.c: Likewise.
2692         * double-int.c: Add comment for inclusion of tm.h.
2693
2694 2010-11-16  Richard Guenther  <rguenther@suse.de>
2695
2696         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
2697         (visit_nary_op): ... this.
2698         (visit_binary_op): Remove.
2699         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
2700
2701 2010-11-16  Richard Guenther  <rguenther@suse.de>
2702
2703         PR middle-end/45172
2704         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
2705
2706 2010-11-16  Nick Clifton  <nickc@redhat.com>
2707
2708         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
2709         record is packed.
2710
2711 2010-11-15  Richard Henderson  <rth@redhat.com>
2712
2713         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
2714         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
2715         DOT_PROD_EXPR.
2716
2717 2010-11-15  Richard Henderson  <rth@redhat.com>
2718
2719         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
2720         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
2721         fma rtx_code.
2722
2723 2010-11-15  Richard Henderson  <rth@redhat.com>
2724
2725         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
2726         and *mulsubsf4 respectively.  Use fma rtx_code.
2727
2728 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
2729
2730         * gcc.c: Include "vec.h".
2731         (argbuf): Make into a VEC.
2732         (argbuf_length, argbuf_index): Remove.
2733         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
2734         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
2735         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
2736         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
2737         (gcc.o): Depend on $(VEC_H).
2738
2739 2010-11-15  Richard Henderson  <rth@redhat.com>
2740
2741         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
2742         via FMA if unsafe math.
2743         (insert_var_expansion_initialization): Handle FMA.
2744         (combine_var_copies_in_loop_exit): Likewise.
2745
2746 2010-11-15  Richard Henderson  <rth@redhat.com>
2747
2748         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
2749         * config/ia64/ia64.opt: Remove mfused-madd.
2750         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
2751         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
2752         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
2753         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
2754         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
2755         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
2756         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
2757         (fmav2sf4): Rename from fpma; use FMA code.
2758         (fmsv2sf4): Rename from fpms; use FMA code.
2759         (fnmav2sf4): Rename from *fpnma; use FMA code.
2760         * config/ia64/ia64.md (MODE_SDF): New iterator.
2761         (suffix): New mode attribute.
2762         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
2763         (fmssf4): Rename from *fmssf4.
2764         (fnmasf4): Rename from *nfmasf4.
2765         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
2766         (*nmadddf4, *nmadddf4_truncsf): Remove.
2767         (fmsdf4): Rename from *fmsdf4.
2768         (fnmadf4): Rename from *nfmadf4.
2769         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
2770         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
2771         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
2772         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
2773         (fmsxf4): Rename from *fmsxf4.
2774         (fnmaxf4): Rename from *nfmaxf4.
2775         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
2776         (*fnmaxf_trunc_<MODE_SDF>): New.
2777
2778 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2779
2780         PR tree-optimization/46461
2781         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
2782         a gimple val.
2783
2784 2010-11-15  Ian Lance Taylor  <iant@google.com>
2785
2786         * godump.c: New file.
2787         * common.opt (fdump-go-spec=): New option.
2788         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
2789         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
2790         (TYPE_SYMTAB_IS_DIE): Define.
2791         (struct tree_type): Change GTY for symtab field to use
2792         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
2793         to pick the union field.
2794         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
2795         (dump_go_spec_init): Declare.
2796         * toplev.c (process_options): Handle flag_dump_go_spec.
2797         * debug.c: Include "tree.h".
2798         (do_nothing_debug_hooks): Set tree_type_symtab_field.
2799         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
2800         * dbxout.c (dbx_debug_hooks): Likewise.
2801         (xcoff_debug_hooks): Likewise.
2802         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2803         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
2804         SDB_DEBUGGING_INFO is not defined.
2805         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
2806         (Overall Options): Document -fdump-go-spec.
2807         * Makefile.in (OBJS-common): Add godump.o.
2808         (debug.o): Add dependency on $(TREE_H).
2809         (godump.o): New target.
2810         (GTFILES): Add $(srcdir)/godump.c.
2811
2812 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2813
2814         PR debug/46095
2815         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
2816         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
2817         style < 0, add REG_FRAME_RELATED_EXPR.
2818
2819         PR debug/46387
2820         * rtl.h (vt_equate_reg_base_value): New prototype.
2821         * alias.c (vt_equate_reg_base_value): New function.
2822         * var-tracking.c (vt_init_cfa_base): Use it.
2823
2824 2010-11-15  Jan Hubicka  <jh@suse.cz>
2825             Diego Novillo  <dnovillo@google.com>
2826
2827         PR lto/41528
2828         * doc/lto.texi: Add.
2829         * doc/gccint.texi: Add reference to lto.texi.
2830         * doc/invoke.texi: Update user documentation for LTO.
2831         Move internal flags to lto.texi
2832
2833 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
2834
2835         * c-typeck.c (build_unary_op): Use
2836         objc_build_incr_expr_for_property_ref to build the pre/post
2837         increment/decrement of an Objective-C property ref, and skip the
2838         lvalue_or_else check in that case.
2839
2840 2010-11-15  Martin Jambor  <mjambor@suse.cz>
2841
2842         PR tree-optimization/46349
2843         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
2844         (contains_vce_or_bfcref_p): Likewise.
2845         (sra_modify_assign): Use them.
2846
2847 2010-11-15  Richard Guenther  <rguenther@suse.de>
2848
2849         PR tree-optimization/46467
2850         * tree-ssa-structalias.c (do_structure_copy): Properly treat
2851         variables without subvars.
2852
2853 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
2854
2855         * config/picochip/picochip.c (file header): Picochip name change.
2856         * config/picochip/picochip.md (file header): Likewise.
2857         * config/picochip/predicates.md (file header): Likewise.
2858         * config/picochip/dfa_space.md (file header): Likewise.
2859         * config/picochip/dfa_speed.md (file header): Likewise.
2860         * config/picochip/picochip.h(file header): Likewise.
2861         * config/picochip/constraints.md (file header): Likewise.
2862         * config/picochip/picochip-protos.h (file header): Likewise.
2863         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
2864         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
2865         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
2866         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
2867         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
2868         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
2869         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
2870         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
2871         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
2872         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
2873         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
2874         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
2875         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
2876         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
2877
2878 2010-11-15  Richard Guenther  <rguenther@suse.de>
2879
2880         PR bootstrap/46474
2881         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
2882
2883 2010-11-15  Nick Clifton  <nickc@redhat.com>
2884
2885         * config/stormy16/stormy16.c (direct_return): Do not generate a
2886         direct return for interrupt handlers.
2887
2888 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
2889
2890         * Makefile.in (tm.texi): Replace with rule for:
2891         ($(srcdir)/doc/tm.texi).
2892         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
2893         $(srcdir)/doc/tm.texi .
2894         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
2895         tm.texi .
2896
2897         PR target/46427
2898         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
2899
2900         PR bootstrap/45444
2901         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
2902         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
2903
2904         PR target/46432
2905         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
2906
2907 2010-11-15  Richard Guenther  <rguenther@suse.de>
2908
2909         PR lto/44150
2910         * lto-opts.c (lto_write_options): Write -fexceptions even if
2911         not set by the user.
2912
2913 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2914
2915         PR c/46462
2916         * c-decl.c (declspecs_add_type): Make variables with error types
2917         integers.
2918         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
2919         do not start a declaration before an Objective-C foreach.
2920         (c_parser_declaration_or_fndef): Improve recovery after unknown
2921         type name.
2922         (c_parser_for_statement): Hoist entrance of "foreach context"
2923         before ifs, add corresponding reset where it was missing.  Do
2924         not set objc_could_be_foreach_context for C.
2925
2926 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
2927
2928         PR tree-optimization/45722
2929         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
2930         this is a reference to a component.
2931         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
2932         (ipa_note_param_call): Adjust comment.
2933
2934 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
2935
2936         * config/mips/mips.c (machine_function): Remove
2937         initialized_mips16_gp_pseudo_p.
2938         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
2939         detect whether a pseudo has already been created.  Unconditionally
2940         create a new one if not.
2941         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
2942         expanding to rtl.  Create a new pseudo otherwise, if allowed.
2943
2944 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
2945
2946         PR target/43440
2947         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
2948         * tm.texi: Regenerated.
2949         * output.h (decode_reg_name_and_count): Declare.
2950         * varasm.c (decode_reg_name_and_count): New function.
2951         (decode_reg_name): Reimplement using decode_reg_name_and_count.
2952         * reginfo.c (fix_register): Use decode_reg_name_and_count and
2953         iterate over all regs used.
2954         * stmt.c (expand_asm_operands): Likewise.
2955         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
2956         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
2957         multiple machine registers.
2958
2959 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
2960
2961         * stor-layout.c (place_union_field): Do not put location information
2962         on offset expressions.
2963         (place_field): Likewise.
2964         (finalize_record_size): Likewise on size expressions.
2965         (finalize_type_size): Likewise.
2966         (layout_type): Likewise.
2967
2968 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
2969
2970         PR debug/42889
2971         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
2972         * df-core.c (df_set_bb_dirty_nonrl): Remove.
2973         * df.h (df_set_bb_dirty_nonlr): Likewise.
2974
2975 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
2976
2977         * config/mips/mips.md (call_internal): Pass curr_insn to
2978         mips_split_call.
2979         (call_internal_direct): Ditto.
2980         (call_value_internal): Ditto.
2981         (call_value_internal_direct): Ditto.
2982         (call_value_multiple_internal): Ditto.
2983         * config/mips/mips.c (mips_split_call): Do not copy
2984         CALL_INSN_FUNCTION_USAGE here.
2985
2986 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
2987
2988         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
2989         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
2990         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
2991         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
2992         (TUNE_LOONGSON_3A): Define.
2993         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
2994         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
2995         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
2996         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
2997         (mips_rtx_cost_data): Add Loongson-3A.
2998
2999 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3000
3001         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
3002         switches.
3003
3004 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3005
3006         * dwarf2out.c (macinfo_entry): New struct.
3007         (output_comp_unit): Emit the section start label here and flag that we
3008         will emit an info section.
3009         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
3010         emitting directly.
3011         (dwarf2out_end_source_file): Likewise.
3012         (dwarf2out_define): Likewise.
3013         (dwarf2out_undef): Likewise.
3014         (output_macinfo): New.
3015         (dwarf2out_init): Do not emit debug section switches here, allocate a
3016         vec for macinfo, when required.
3017         (dwarf2out_finish): First switch to debug_abbrev_section here.
3018         debug_line_section,  debug_macinfo_section, Likewise.
3019         Check that the pubtypes table has at least one unpruned entry before
3020         trying to emit it.
3021
3022 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3023
3024         PR c/20385
3025         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
3026         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
3027         token lookahead.
3028         (c_parser_compound_statement_nostart, c_parser_label,
3029         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
3030         (c_parser_declaration_or_fndef): Detect the case now matched by
3031         c_parser_next_tokens_start_declaration, give error and correct it.
3032
3033 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3034
3035         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
3036         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
3037         with typespec_kind.
3038         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
3039         (shadow_tag_warned, check_compound_literal_type): Adjust
3040         uses of tag_defined_p.
3041         (declspecs_add_type): Set typespec_kind.
3042         * c-parser.c (c_parser_declaration_or_fndef,
3043         c_parser_declspecs, c_parser_struct_declaration,
3044         c_parser_parameter_declaration, c_parser_type_name,
3045         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
3046         of type_seen_p.
3047         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
3048         tag_defined_p, pass ctsk_firstref through.
3049
3050 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3051
3052         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
3053         (struct format_wanted_type): Replace field "name" with "kind", add
3054         "format_start" and "format_length".
3055         (check_format_info_main): Fill in new fields.  Fill in
3056         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
3057         after the final NUL outside the while loop.  Do not include
3058         width and precision modifiers in the format_start/format_length
3059         of the main format.
3060         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
3061         arguments.  Compute WANTED_TYPE first so that format_type_warning
3062         can be called for missing arguments.  Adjust calls to
3063         format_type_warning.
3064         (format_type_warning): Fetch as much information as possible
3065         from format_wanted_type.  Adjust printing now that every
3066         warning has a "descr", as well as for missing argument warnings
3067         and to include % sign for format specifiers.
3068
3069 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
3070
3071         PR rtl-optimization/46204
3072         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
3073         Update all callers.  Do not recompute topological order.  Adjust
3074         fallthrough edges following a degenerate conditional jump.
3075
3076 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3077
3078         * opts-common.c (control_warning_option): New.
3079         * opts.c (set_default_handlers): New.
3080         (decode_options): Use set_default_handlers and
3081         control_warning_option.
3082         (common_handle_option): Update call to enable_warning_as_error.
3083         (enable_warning_as_error): Take gcc_options parameters.  Use
3084         control_warning_option.
3085         * opts.h (set_default_handlers, control_warning_option): Declare.
3086
3087 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3088
3089         * Makefile.in (OPTS_H): Define.
3090         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
3091         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
3092         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
3093         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
3094         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
3095         * gcc.c (driver_handle_option): Take location_t parameter.
3096         (process_command, do_self_spec): Update calls to
3097         read_cmdline_option.
3098         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
3099         * langhooks.c (lhd_handle_option): Take location_t parameter.
3100         * langhooks.h (handle_option): Take location_t parameter.
3101         * lto-opts.c (lto_reissue_options): Update call to set_option.
3102         * opts-common.c (handle_option): Make static.  Take location_t
3103         parameter and pass it to other functions.
3104         (handle_generated_option): Take location_t parameter and pass it
3105         to other functions.
3106         (read_cmdline_option): Take location_t parameter and pass it to
3107         other functions.  Use warning_at and error_at.
3108         (set_option): Take location_t parameter and pass it to other
3109         functions.
3110         * opts.c (common_handle_option): Take location_t parameter and
3111         pass it to other functions.
3112         (enable_warning_as_error): Make static.  Take location_t parameter
3113         and pass it to other functions.
3114         (lang_handle_option): Take location_t parameter and pass it to
3115         other functions.
3116         (target_handle_option): Take location_t parameter.
3117         (read_cmdline_options, maybe_default_option,
3118         maybe_default_options, default_options_optimization,
3119         decode_options): Take location_t parameter and pass it to other
3120         functions.
3121         * opts.h: Include input.h.
3122         (struct cl_option_handler_func, decode_options, set_option,
3123         handle_generated_option, read_cmdline_option): Take location_t
3124         parameters.
3125         (handle_option, enable_warning_as_error): Remove.
3126         * toplev.c (toplev_main): Update call to decode_options.
3127
3128 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
3129
3130         * graphite-cloog-util.c (oppose_constraint,
3131         cloog_matrix_to_ppl_constraint,
3132         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
3133         CLooG isl uses unsigned integers.  This triggered a warning.
3134
3135 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3136
3137         PR target/46438
3138         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
3139         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
3140         (xtensa_function_arg_1): De-constify cum.
3141         (xtensa_expand_prologue): Use add_reg_note.
3142
3143         PR target/46435
3144         * config/cris/cris.c (saved_regs_mentioned): Delete.
3145         (cris_reload_address_legitimized): Cast itype to enum reload_type.
3146         Remove unused variable op0p.
3147         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
3148         (cris_emit_movem_store): Use add_reg_note.
3149
3150         PR bootstrap/46456
3151         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
3152
3153 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3154
3155         * function.c (expand_function_end): Set the locator of the prologue on
3156         the stack checking insns.
3157
3158 2010-11-12  Richard Henderson  <rth@redhat.com>
3159
3160         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
3161         * config/xtensa/xtensa.opt (mfused-madd): Remove.
3162         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
3163         MASK_FUSED_MADD.
3164         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
3165         (fnmasf4): Rename from mulsubsf3; use fma.
3166
3167 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3168             Richard Henderson  <rth@redhat.com>
3169
3170         PR target/46428
3171         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
3172         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
3173         comparison.
3174
3175 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
3176
3177         * opts-common.c (decode_cmdline_option): Initialize separate_args.
3178
3179 2010-11-12  Jan Hubicka  <jh@suse.cz>
3180
3181         * doc/invoke.texi (early-inlining-insns): Update default.
3182         * params.def (early-inlining-insns): Default to 10.
3183
3184 2010-11-12  Olivier Hainque  <hainque@adacore.com>
3185
3186         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
3187
3188 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3189
3190         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
3191         (SUPPORTS_INIT_PRIORITY): Define.
3192
3193 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3194
3195         PR target/46430
3196         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
3197         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
3198         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
3199         (avr_device_to_devicelib): Likewise.
3200         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
3201         into block.
3202         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
3203         (zero_extendhidi2, zero_extendsidi2): Likewise.
3204         * config/avr/avr.c (avr_num_arg_regs): Constify type.
3205         (avr_return_addr_rtx): De-constify tem.
3206         (avr_rotate_bytes): Move declarations to start of block.
3207         Don't use variable length array.  Put nested if/else into block.
3208
3209         PR rtl-optimization/46433
3210         * var-tracking.c: Include tm_p.h .
3211
3212         PR bootstrap/44756
3213         PR build/44767
3214         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
3215         should be unsigned.
3216         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
3217         * doc/tm.texi: Regenerate.
3218
3219         PR target/46412
3220         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
3221         * config/bfin/bfin.c: Include sel-sched.h .
3222         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
3223         (expand_interrupt_handler_prologue): Remove unused variable insn.
3224         (bfin_load_pic_reg): Likewise.
3225         (bfin_rtx_costs): Make code / outer_code variables of type
3226         enum rtx_code, copied from re-named parameters.
3227         (bfin_local_alignment): Change align argument and return type
3228         to unsigned.
3229         (bfin_adjust_cost): Remove unused variable insn_type.
3230         Declare variables at start of block.
3231         (struct loop_info): Rename to...
3232         (struct loop_info_d).
3233         (workaround_rts_anomaly): Change type of icode to int.
3234         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
3235         with int-typed variable.
3236         (note_np_check_stores): Likewise.
3237         (trapping_loads_p): Remove unused variable pat.
3238         (bfin_expand_binop_builtin): Use expand_normal.
3239         (bfin_expand_unop_builtin): Likewise.
3240         (bfin_expand_builtin): Likewise.  Set tmode before use.
3241
3242         PR middle-end/44769
3243         * final.c (split_double): Don't use BITS_PER_WORD directly in
3244         shift count.
3245
3246         PR target/46431
3247         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
3248         assignment.
3249
3250         PR target/46450
3251         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
3252         Use add_reg_note.
3253         (xstormy16_function_arg): Dereference cum.
3254         (xstormy16_expand_builtin): Use expand_normal.
3255         Change type of omode to enum machine_mode.
3256         (combine_bnp): Rename and to and_insn.
3257
3258         PR target/46437
3259         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
3260         localreg.
3261
3262 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3263
3264         PR debug/46375
3265         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
3266
3267 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
3268
3269         PR lto/46376
3270         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
3271
3272 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
3273
3274         PR c/44782
3275         * common.opt (fmax-errors=): New option.
3276         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
3277         * diagnostic.h (struct diagnostic_context): Add max_errors field.
3278         * diagnostic.c (diagnostic_initialize): Initialize it.
3279         (diagnostic_action_after_output): Exit if more than max_errors
3280         have been output.
3281         * doc/invoke.texi (Warning Options): Add -fmax-errors.
3282         (-fmax-errors): Document.
3283
3284 2010-11-11  Richard Henderson  <rth@redhat.com>
3285
3286         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
3287
3288 2010-11-11  Richard Henderson  <rth@redhat.com>
3289
3290         * config/fused-madd.opt: New file.
3291         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
3292         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
3293         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
3294         * config/i386/i386.opt (mfused-madd): Remove.
3295         * config/i386/sse.md (split_fma): Remove.
3296         (split_fms, split_fnma, split_fnms): Remove.
3297
3298 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
3299
3300         PR target/46088
3301         * config/i386/i386.md (*ashl<mode>3_cconly,
3302         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
3303         change nonimmediate_operand predicate to register_operand.
3304
3305 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
3306
3307         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
3308
3309 2010-11-11  Jan Hubicka  <jh@suse.cz>
3310
3311         * opts.c (finish_options): Do not error on -flto-partition alone.
3312
3313         * doc/invoke.texi (-fwhopr): Merge into -flto section.
3314         (-flto-partition): Document none.
3315         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
3316         * lto-wrapper.c: Update comment.
3317         (run_gcc): Update LTO option parsing.
3318         * opts.c (finish_options): add support -flto-partition=none
3319         (common_handle_option): Remove fwhopr.
3320         * common.opt: Turn fwhopr into flto.
3321         * collect2.c (main): Update option handling.
3322         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
3323         * ipa-split.c (execute_split_functions): Remove flag_whopr.
3324         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
3325         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
3326         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
3327
3328 2010-11-11  Jan Hubicka  <jh@suse.cz>
3329
3330         PR tree-optimize/40436
3331         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
3332         (eliminated_by_inlining_prob): ... this one; return 50% probability
3333         for SRA.
3334         (estimate_function_body_sizes): Update use of
3335         eliminated_by_inlining_prob; estimate static function size
3336         for 2 instructions.
3337
3338 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
3339
3340         PR target/44749
3341         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
3342         declare.  Change type of argument four to type int.
3343         (mep_secondary_input_reload_class): Returns enum reg_class.
3344         (mep_secondary_output_reload_class): Likewise.
3345         (mep_function_value): Change types of arguments to cont_tree.
3346         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
3347         argument four to type int.
3348         (mep_secondary_input_reload_class): Returns enum reg_class.
3349         (mep_secondary_output_reload_class): Likewise.
3350         (mep_function_value): Change types of arguments to cont_tree.
3351         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
3352         mep_regno_reg_class to enum reg_class.
3353
3354 2010-11-11  Richard Henderson  <rth@redhat.com>
3355
3356         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
3357         that the target has the exact fma operation that we matched.
3358
3359 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3360
3361         * reginfo.c (fix_register): Avoid inserting English word in
3362         diagnostic sentence.  Use %qs for quoting and %'.
3363
3364 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
3365
3366         * config/i386/driver-i386.c (host_detect_local_cpu): Support
3367         Intel processor family 6, model 0x2c.
3368
3369 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3370
3371         * opts.c (warning_as_error_callback,
3372         register_warning_as_error_callback): Remove.
3373         (enable_warning_as_error): Don't use warning_as_error_callback.
3374         * opts.h (register_warning_as_error_callback): Remove.
3375
3376 2010-11-11  Richard Henderson  <rth@redhat.com>
3377
3378         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
3379         in between the MULT and the PLUS/MINUS.
3380
3381 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3382
3383         PR middle-end/46388
3384         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
3385         BLKmode mode for it.
3386         (expand_expr_real_1): Similarly for op0.
3387
3388 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3389
3390         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
3391         Document optional target selector.
3392
3393 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
3394
3395         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
3396         assembling high and low parts of size if not using 32-bit HWINT; else
3397         use DECL_SIZE_UNITS, not DECL_SIZE.
3398
3399 2010-11-11  Martin Jambor  <mjambor@suse.cz>
3400
3401         PR tree-optimization/46383
3402         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
3403         offsets.
3404         (compute_complex_ancestor_jump_func): Likewise.
3405         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
3406
3407 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3408
3409         PR debug/46150
3410         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
3411         true if expr1->hash != expr2->hash.
3412
3413 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3414
3415         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
3416         diagnostics with lowercase letters.
3417         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
3418         lowercase letters.
3419         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
3420         diagnostic.
3421         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3422         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
3423         lowercase letters.
3424         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3425         Remove trailing ' ' from diagnostic.
3426         * config/avr/avr.c (print_operand_address): Start diagnostic with
3427         a lowercase letter and remove trailing '.'.
3428         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
3429         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
3430         with lowercase letters.  Use %' in diagnostics.  Remove trailing
3431         '.' from diagnostics.
3432         (bfin_handle_longcall_attribute): Use %' in diagnostic.
3433         * config/cris/cris.c (cris_split_movdx,
3434         cris_expand_pic_call_address): Start diagnostics with lowercase
3435         letters.
3436         (cris_asm_output_label_ref): Use %' in diagnostic.
3437         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
3438         letter.
3439         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
3440         lowercase letter.
3441         * config/darwin-c.c (version_as_macro): Start diagnostic with a
3442         lowercase letter.
3443         * config/darwin-driver.c (darwin_default_min_version): Use %' in
3444         diagnostic.
3445         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
3446         diagnostic.
3447         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3448         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
3449         diagnostics.
3450         * config/i386/i386.c (ix86_option_override_internal): Write
3451         diagnostic as a single sentence without trailing '.'.  Use %' in
3452         diagnostics.
3453         (ix86_function_sseregparm, classify_argument): Start diagnostics
3454         with lowercase letters.
3455         (ix86_expand_prologue): Use %' in diagnostic.
3456         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
3457         diagnostic.
3458         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
3459         lowercase letter.
3460         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
3461         diagnostic.
3462         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3463         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
3464         '`' in help text.
3465         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
3466         lowercase letter.
3467         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
3468         lowercase letters.
3469         * config/microblaze/microblaze.c (microblaze_handle_option):
3470         Remove trailing '.' from diagnostic.
3471         (print_operand): Start diagnostic with a lowercase letter.
3472         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
3473         lowercase letters.  Avoid '`' in diagnostics.
3474         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
3475         lowercase letters.  Avoid '`' in diagnostics.
3476         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
3477         lowercase letters.  Avoid '`' in diagnostics.
3478         * config/picochip/picochip.c (picochip_option_override,
3479         picochip_emit_save_register, picochip_function_arg,
3480         picochip_output_label, picochip_output_internal_label,
3481         picochip_asm_output_opcode, picochip_output_cbranch,
3482         picochip_output_compare, picochip_output_branch,
3483         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
3484         diagnostics. Start diagnostics with lowercase letters.  Use %' in
3485         diagnostics.
3486         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
3487         "SPE" capitalization.  Start diagnostic with a lowercase letter.
3488         (rs6000_handle_option): Start diagnostics with lowercase letters.
3489         (def_builtin): Remove trailing '.' from diagnostic.
3490         (rs6000_savres_routine_name): Start diagnostic with a lowercase
3491         letter.
3492         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
3493         diagnostic.
3494         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
3495         lowercase letter.
3496         * config/s390/s390.c (s390_option_override) Start diagnostics with
3497         lowercase letters.  Use %' in diagnostic.
3498         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
3499         lowercase letters.
3500         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
3501         diagnostic.
3502         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
3503         diagnostic.
3504         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
3505         diagnostic.
3506         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3507         * config/spu/spu.c (spu_option_override): Start diagnostics with
3508         lowercase letters.  Use %qs for quoting in diagnostics.
3509         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
3510         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
3511         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
3512         from diagnostic.
3513         * convert.c (convert_to_integer, convert_to_vector): Use %' in
3514         diagnostics.
3515         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
3516         letter and use "cannot" spelling.
3517         * expmed.c (extract_fixed_bit_field): Start diagnostic with
3518         lowercase letter and format as a single sentence without '.'.
3519         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
3520         Use %' in diagnostics.
3521         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3522         Use %' in diagnostics.
3523         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3524         Use %' in diagnostics.
3525         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
3526         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
3527         with lowercase letters and remove tailing '.' and '\n'.
3528         * lto-cgraph.c (input_profile_summary): Start diagnostic with
3529         lowercase letter and remove trailing '.'.
3530         (input_cgraph): Start diagnostics with lowercase letters and
3531         remove trailing '\n'.
3532         * opts.c (finish_options, common_handle_option): Start diagnostics
3533         with lowercase letters and remove trailing '.'.  Fix typo in
3534         diagnostic.
3535         * passes.c (position_pass): Start diagnostic with lowercase letter.
3536         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
3537         register_callback, try_init_one_plugin): Start diagnostics with
3538         lowercase letters.
3539         * reload1.c (spill_failure): Use %' in diagnostic.
3540         (gen_reload): Start diagnostic with a lowercase letter.
3541         * stor-layout.c (place_field): Start diagnostic with a lowercase
3542         letter.
3543         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
3544         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
3545         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
3546         Start diagnostics with lowercase letters, remove trailing '.' and
3547         use %' in diagnostics.
3548         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
3549         (verify_ssa): Don't split diagnostic across two error calls.
3550         Spell out "number" and use %' in diagnostic.
3551         * value-prof.c (visit_hist, check_counter): Start diagnostics with
3552         lowercase letters.
3553
3554 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
3555
3556         PR middle-end/46419
3557         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
3558         (_mm_cvtpu16_ps): Ditto.
3559
3560 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3561
3562         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
3563         warn_larger_than, larger_than_size, warn_frame_larger_than,
3564         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
3565         default_visibility, flag_tls_default): New Variable declarations.
3566         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
3567         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
3568         (v): Declare as Common and document here.
3569         * flags.h (default_visibility, flag_generate_lto,
3570         warn_larger_than, larger_than_size, warn_frame_larger_than,
3571         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
3572         flag_shlib, flag_excess_precision_cmdline): Remove.
3573         (set_Wstrict_aliasing): Update prototype.
3574         * gcc.c (verbose_flag): Remove.
3575         (driver_handle_option): Add diagnostic_context parameter.  Don't
3576         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
3577         incrementing it.
3578         * opts-common.c (handle_option): Pass dc to handler.
3579         * opts.c (warn_larger_than, larger_than_size,
3580         warn_frame_larger_than, frame_larger_than_size,
3581         default_visibility): Remove.
3582         (common_handle_option): Add diagnostic_context parameter.
3583         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
3584         gcc_options parameters.
3585         (lang_handle_option, target_handle_option, read_cmdline_options,
3586         decode_options): Add diagnostic_context parameters.
3587         (finish_options): Access option state through opts pointer where
3588         possible.
3589         (common_handle_option): Access option state through opts pointer
3590         where possible.  Do not set local static variable verbose.  Do not
3591         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
3592         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
3593         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
3594         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
3595         OPT_fwhopr_.  Do not explicitly set .opt file variables for
3596         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
3597         (set_Wstrict_aliasing): Add gcc_options parameter.
3598         * opts.h (struct cl_option_handler_func): Add diagnostic_context
3599         parameter to handler.
3600         (decode_options): Add diagnostic_context parameter.
3601         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
3602         asm_file_name, flag_generate_lto, flag_gen_aux_info,
3603         aux_info_file_name, flag_shlib, flag_tls_default,
3604         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
3605         (toplev_main): Pass global_dc to decode_options.
3606         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
3607         aux_info_file_name, asm_file_name): Remove.
3608         * tree.h (flag_tls_default): Remove.
3609
3610 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
3611
3612         PR target/45986
3613         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
3614         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
3615
3616 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3617
3618         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
3619         (x86_64-*-*): Likewise.
3620         * config/i386/cpuid.h: Define TBM bit.
3621         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3622         and set has_tbm.
3623         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3624         isa_flag for TBM.
3625         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
3626         (OPTION_MASK_ISA_TBM_UNSET): New.
3627         (ix86_handle_option): Handle -mtbm.
3628         (isa_opts): Add -mtbm.
3629         (enum pta_flags): Add PTA_TBM.
3630         (ix86_option_override_internal): Add TBM support.
3631         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
3632         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
3633         (IX86_BUILTIN_BEXTRI64): Likewise.
3634         (bdesc_args): Add TBM intrinsics.
3635         (ix86_expand_builtin): Add TBM specific case.
3636         * config/i386/i386.h (TARGET_TBM): New for TBM.
3637         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
3638         (tbm_bextri_<mode>): Likewise.
3639         (*tbm_blcfill_<mode>): Likewise.
3640         (*tbm_blci_<mode>): Likewise.
3641         (*tbm_blcic_<mode>): Likewise.
3642         (*tbm_blcmsk_<mode>): Likewise.
3643         (*tbm_blcs_<mode>): Likewise.
3644         (*tbm_blsfill_<mode>): Likewise.
3645         (*tbm_blsic_<mode>): Likewise.
3646         (*tbm_t1mskc_<mode>): Likewise.
3647         (*tbm_tzmsk_<mode>): Likewise.
3648         * config/i386/i386.opt: Add -mtbm.
3649         * config/i386/tbmintrin.h (__bextri_u32): New.
3650         (__blcfill_u32): Likewise.
3651         (__blci_u32): Likewise.
3652         (__blcic_u32): Likewise.
3653         (__blcmsk_u32): Likewise.
3654         (__blcs_u32): Likewise.
3655         (__blsfill_u32): Likewise.
3656         (__blsic_u32): Likewise.
3657         (__t1mskc_u32): Likewise.
3658         (__tzmsk_u32): Likewise.
3659         (__bextri_u64): Likewise.
3660         (__blcfill_u64): Likewise.
3661         (__blci_u64): Likewise.
3662         (__blcic_u64): Likewise.
3663         (__blcmsk_u64): Likewise.
3664         (__blcs_u64): Likewise.
3665         (__blsfill_u64): Likewise.
3666         (__blsic_u64): Likewise.
3667         (__t1mskc_u64): Likewise.
3668         (__tzmsk_u64): Likewise.
3669         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
3670         * doc/invoke.texi: Document -mtbm.
3671         * doc/extend.texi: Document TBM built-in functions.
3672
3673 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3674
3675         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
3676         (x86_64-*-*): Likewise.
3677         * config/i386/cpuid.h: Define BMI bit.
3678         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3679         and set has_bmi.
3680         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3681         isa_flag for BMI.
3682         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
3683         (OPTION_MASK_ISA_BMI_UNSET): New.
3684         (ix86_handle_option): Handle -mbmi.
3685         (isa_opts): Add -mbmi.
3686         (enum pta_flags): Add PTA_BMI.
3687         (ix86_option_override_internal): Add BMI support.
3688         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
3689         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
3690         (IX86_BUILTIN_BEXTR64): Likewise.
3691         (IX86_BUILTIN_CTZS): Likewise.
3692         (bdesc_args): Add BMI intrinsics.
3693         (ix86_expand_args_builtin): Add BMI specific cases.
3694         * config/i386/i386.h (TARGET_BMI): New for BMI.
3695         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
3696         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
3697         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
3698         (UNSPEC_TZCNT): Likewise.
3699         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
3700         (bmi_andn_<mode>): New for BMI.
3701         (bmi_bextr_<mode>): Likewise.
3702         (bmi_blsi_<mode>): Likewise.
3703         (bmi_blsmsk_<mode>): Likewise.
3704         (bmi_blsr_<mode>): Likewise.
3705         * config/i386/i386.opt: Add -mbmi.
3706         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
3707         * config/i386/bmiintrin.h (__lzcnt_u16): New.
3708         (__tzcnt_u16): Likewise.
3709         (__andn_u32): Likewise.
3710         (__bextr_u32): Likewise.
3711         (__blsi_u32): Likewise.
3712         (__blsmsk_u32): Likewise.
3713         (__blsr_u32): Likewise.
3714         (__lzcnt_u32): Likewise.
3715         (__tzcnt_u32): Likewise.
3716         (__andn_u64): Likewise.
3717         (__bextr_u64): Likewise.
3718         (__blsi_u64): Likewise.
3719         (__blsmsk_u64): Likewise.
3720         (__blsr_u64): Likewise.
3721         (__lzcnt_u64): Likewise.
3722         (__tzcnt_u64): Likewise.
3723         * doc/invoke.texi: Document -mbmi and -mno-bmi.
3724         * doc/extend.texi: Document BMI built-in functions.
3725
3726 2010-11-10  Jan Hubicka  <jh@suse.cz>
3727
3728         PR tree-optimize/46228
3729         * doc/invoke.texi (comdat-sharing-probability): Document.
3730         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
3731         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
3732
3733 2010-11-10  Jan Hubicka  <jh@suse.cz>
3734
3735         PR tree-optimize/46228
3736         * cgraph.c (cgraph_propagate_frequency): Fix typo.
3737
3738 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
3739
3740         PR tree-optimization/46414
3741         * tree-inline.c (estimate_move_cost): Check preferred vector
3742         mode for vector type.
3743
3744 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3745
3746         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
3747
3748 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
3749
3750         PR tree-optimization/45971
3751         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
3752         for phi nodes analyzable by scev.
3753
3754 2010-11-10  Richard Guenther  <rguenther@suse.de>
3755
3756         PR tree-optimization/44964
3757         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
3758
3759 2010-11-10  Martin Jambor  <mjambor@suse.cz>
3760
3761         PR tree-optimization/46351
3762         PR tree-optimization/46377
3763         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
3764         aggregate bit-fields.
3765
3766 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3767
3768         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3769         * doc/tm.texi: Regenerate.
3770         * opts-common.c (tm.h): Don't include.
3771         (target_option_translations): Remove.
3772         (decode_cmdline_options_to_array): Don't handle translating options.
3773         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
3774         * config/darwin-driver.c: Don't condition includes on
3775         CROSS_DIRECTORY_STRUCTURE.
3776         (darwin_default_min_version): Make static.
3777         (darwin_driver_init): New.  Call darwin_default_min_version if not
3778         CROSS_DIRECTORY_STRUCTURE.
3779         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3780         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
3781         (ASM_SPEC): Add %{static}.
3782         (darwin_default_min_version): Don't declare.
3783         (darwin_driver_init): Declare.
3784         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
3785         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
3786         * config/darwin.opt (all_load, allowable_client,
3787         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
3788         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
3789         exported_symbols_list, filelist, findirect-virtual-calls,
3790         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
3791         framework, fterminated-vtables, gfull, gused, image_base, init,
3792         install_name, multi_module, multiply_defined,
3793         multiply_defined_unused, no_dead_strip_inits_and_terms,
3794         seg_addr_table, seg_addr_table_filename, segaddr,
3795         segs_read_only_addr, segs_read_write_addr, single_module,
3796         umbrella, unexported_symbols_list, weak_reference_mismatches,
3797         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
3798         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
3799         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
3800         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
3801         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
3802         (ASM_SPEC): Add %{static}.
3803         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3804         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3805         (DRIVER_SELF_SPECS): Handle options formerly in
3806         TARGET_OPTION_TRANSLATE_TABLE.
3807         * config/mep/mep.opt (mfar): New.
3808         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3809         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
3810         TARGET_OPTION_TRANSLATE_TABLE.
3811         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
3812         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3813         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
3814         ffix-and-continue, findirect-data): New.
3815         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3816         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
3817         (mnofpu): Define mask and use Report here.
3818
3819 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3820
3821         * config/s390/s390.c (s390_emit_prologue): Report the stack
3822         size if -fstack-usage is used.
3823
3824 2010-11-10  Richard Guenther  <rguenther@suse.de>
3825
3826         PR tree-optimization/46398
3827         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
3828
3829 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
3830
3831         PR target/44760
3832         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
3833         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
3834         GP_REG_OR_PSEUDO_STRICT_P.
3835         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
3836         unexpected alternative.
3837         (*movsf_internal): Likewise.
3838         (indirect_jump): Replace call to non-existant function with call to
3839         internal_error.
3840         (tablejump): Likewise.
3841         * config/iq2000/iq2000.c: Include df.h .
3842         (iq2000_function_arg_advance): Use CONST_CAST2.
3843         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
3844         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
3845         a non-zero function address.
3846         (iq2000_initial_elimination_offset): Add gcc_unreachable for
3847         unexpected value of FROM.
3848         (symbolic_expression_p): Delete.
3849         (iq2000_function_value): Constify func.
3850         (expand_one_builtin): Use expand_normal.
3851         (iq2000_print_operand): Don't print VALUE if calculating it failed.
3852
3853         PR rtl-optimization/44764
3854         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
3855
3856         PR target/46407
3857         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
3858         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
3859         with ATTRIBUTE_UNUSED.
3860         (valid_psw_flag): Constify parameter which.
3861         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
3862
3863         PR target/46415
3864         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
3865         (mmix_dbx_register_number): Likewise.
3866         * config/mmix/mmix.c: Include df.h .
3867         (mmix_local_alignment): Change argument basic_align and return type
3868         to unsigned.
3869         (mmix_dbx_register_number): Change argument and return type to
3870         unsigned.
3871         (mmix_expand_prologue): Use add_reg_note.
3872
3873         PR target/46417
3874         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
3875         (spu_split_store): Use aform.
3876         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
3877
3878 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3879
3880         PR/46268
3881         * doc/gty.texi (GTY Options): Clarify that variable_size produces
3882         allocators taking size in bytes, compare with length option.  Add
3883         size calculation example.
3884         (Invoking the garbage collector): Ensure that sentences are
3885         followed by two spaces.  Describe that pointer fields must be
3886         initialized at ggc_collect call.
3887         (Troubleshooting): New section.
3888
3889 2010-11-09  Jan Hubicka  <jh@suse.cz>
3890
3891         PR tree-optimization/40436
3892         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
3893         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
3894         normal instructions; be sure bultin is not implemented in this file;
3895         compute non-zero return cost.
3896         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
3897         * tree-inline.h (eni_weights_d): Add return cost.
3898
3899 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
3900
3901         * c-parser.c (c_parser_struct_declaration): Handle declaration
3902         specifiers followed by CPP_CLOSE_BRACE.
3903
3904 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3905
3906         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
3907         split occurs before reload, and we allocate memory at the time of
3908         the split, not during expansion.  Add attributes.
3909         (floatsi<mode>2_lfiwax_mem): Ditto.
3910         (floatunssi<mode>2_lfiwzx): Ditto.
3911         (floatunssi<mode>2_lfiwzx_mem): Ditto.
3912         (floatsidf2): Ditto.
3913         (floatunssisf2): Ditto.
3914         (floatunssidf2): Ditto.
3915         (fix_trunc<mode>si2): Ditto.
3916         (fix_trunc<mode>si2_stfiwx): Ditto.
3917         (fix_trunc<mode>si2_internal): Ditto.
3918         (fix_trunc<mode>si2): Ditto.
3919         (fix_trunc<mode>di2): Ditto.
3920         (fixuns_trunc<mode>si2_stfiwx): Ditto.
3921         (floatsisf2): Ditto.
3922         (floatdidf2_mem): Ditto.
3923         (floatunsdidf2_mem): Ditto.
3924         (floatunsdidf2): Ditto.
3925         (floatdisf2_internal1): Ditto.
3926         (floatdisf2_mem): Ditto.
3927         (floatunsdisf2_mem): Ditto.
3928         (floatsi<mode>2_lfiwax_mem2): Delete.
3929         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
3930         (fix_trunc<mode>si2_mem): Ditto.
3931         (fixuns_trunc<mode>si2_mem): Ditto.
3932         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
3933         type operations to reduce copying the values to multiple memory slots.
3934         (roundu32<mode>2_fprs): Ditto.
3935
3936         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
3937         PRE_INC, PRE_DEC, PRE_MODIFY.
3938         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
3939
3940         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
3941         Delete prototype.
3942
3943 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3944
3945         PR target/43808
3946         * cfgexpand.c (partition_stack_vars): Call
3947         update_alias_info_with_stack_vars unconditionally.
3948         (update_alias_info_with_stack_vars): Allow unused
3949         unreferenced vars when not optimizing.
3950
3951 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
3952
3953         PR tree-optimization/46036
3954         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
3955         add_to_dst_predicate_list.
3956
3957 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3958
3959         PR debug/46171
3960         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
3961         earlier.
3962         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
3963         argument, call dead_debug_reset when adding REG_UNUSED note.
3964         (dead_debug_reset): New function.
3965         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
3966         df_create_unused_note callers.
3967
3968 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
3969
3970         * config/fr30/fr30.c: Include "df.h".
3971
3972 2010-11-09  Richard Guenther  <rguenther@suse.de>
3973
3974         PR tree-optimization/46355
3975         * tree-loop-distribution.c (tree_loop_distribution): Do not
3976         distribute loops without a single exit.
3977
3978 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3979
3980         PR rtl-optimization/46237
3981         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
3982         saved hard regs if they might get partially clobbered.
3983
3984 2010-11-09  Paul Koning  <ni1d@arrl.net>
3985
3986         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
3987
3988 2010-11-09  Richard Guenther  <rguenther@suse.de>
3989
3990         PR tree-optimization/46177
3991         * tree-loop-distribution.c (prop_phis): Remove.
3992         (generate_builtin): Re-use the old loop exit edge to avoid
3993         needing to update PHI nodes.
3994
3995 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
3996
3997         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
3998         type of args_size to unsigned HOST_WIDE_INT.
3999
4000         PR target/44755
4001         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
4002         * config/t-pnt16-warn: New file.
4003         * config/picochip/picochip.c (picochip_emit_stack_allocate):
4004         Use add_reg_note.
4005         (picochip_emit_save_register): Likewise.
4006         (picochip_emit_restore_register): Remove variable insn.
4007         (picochip_legitimize_address): Don't use C++ style comments.
4008         (picochip_legitimize_reload_address): Likewise.
4009         (reorder_var_tracking_notes): Remove variable vliw_start.
4010         (picochip_reorg): Cast first arguemnt to emit_note_after to
4011         enum insn_note.
4012         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
4013         (picochip_expand_builtin_3op): Likewise.
4014         (picochip_expand_builtin_2opvoid): Likewise.
4015         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
4016         (picochip_expand_array_testport): Likewise.
4017         (picochip_init_builtins): Remove unused variables.
4018         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
4019         to unsigned long, and output it as such.
4020         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
4021         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
4022         (schedType): Cast result of picochip_schedule_type to
4023         enum attr_schedType.
4024
4025         PR target/44759
4026         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
4027         conditional to type of S.
4028         (mn10300_function_arg): Remove unused variable align.
4029         (mn10300_arg_partial_bytes): Likewise.
4030         * config/mn10300/mn10300.md (attribute cpu): Cast value to
4031         enum attr_cpu.
4032
4033 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
4034
4035         PR bootstrap/46392
4036         * gengtype-parse.c (type): Call get_input_file_name to get file name.
4037
4038 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4039
4040         * tree.h (contains_placeholder_p): Fix comment.
4041         (type_contains_placeholder_p): Adjust comment.
4042         * tree.c (contains_placeholder_p): Fix comment.
4043         (type_contains_placeholder_1): Do not recurse on pointed-to types and
4044         adjust comment.
4045         (type_contains_placeholder_p): Add comment.
4046
4047 2010-11-09  Paul Koning  <ni1d@arrl.net>
4048
4049         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
4050         output of byte values.
4051
4052 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4053
4054         PR middle-end/46360
4055         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
4056         not in SSA mode.
4057
4058 2010-11-09  Richard Guenther  <rguenther@suse.de>
4059
4060         PR middle-end/46221
4061         * varasm.c (compute_visible_aliases): New function.
4062         (remove_unreachable_alias_pairs): Aliases make a target available
4063         even though we reclaimed the cgraph node.
4064         (finish_aliases_1): Likewise.
4065         * Makefile.in (varasm.o): Add pointer-set.h dependency.
4066
4067 2010-11-09  Nick Clifton  <nickc@redhat.com>
4068
4069         * config/mn10300/mn10300-modes.def: New file.
4070
4071 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
4072             Jeremie Salvucci  <jeremie.salvucci@free.fr>
4073
4074         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
4075         (plugin_files, get_file_basename, get_file_realbasename)
4076         (get_file_langdir, error_at_line, gt_files, this_file)
4077         (system_h_file, read_input_list, create_field_all)
4078         (get_file_srcdir_relative_path, get_file_basename)
4079         (get_file_langdir, get_file_gtfilename)
4080         (get_output_file_with_visibility, get_output_file_name)
4081         (struct flist, put_mangled_filename, walk_type)
4082         (put_mangled_filename, finish_root_table, write_roots): Use
4083         input_file-s.
4084         (lang_dir_names, num_lang_dirs): Remove static.
4085         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
4086         (main): Use input_file-s.
4087
4088         * gengtype.h: (struct input_file_st, input_file): New type.
4089         (struct fileloc): Use it.
4090         (gt_files, num_gt_files, this_file, system_h_file)
4091         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
4092         (get_input_file_name): New function.
4093         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
4094         use input_file.
4095         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
4096         (get_output_file_name): Ditto.
4097
4098         * gengtype-lex.l (yybegin): Use input_file.
4099
4100         * gengtype-parse.c (parse_error): Use input_file.
4101
4102 2010-11-08  Xinliang David Li  <davidxl@google.com>
4103
4104         PR tree-optimization/46316
4105         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
4106         * double-int.h (double_int_mul_with_sign): New function.
4107         * double-int.c (double_int_mul_with_sign): New function.
4108
4109 2010-11-08  Paul Koning  <ni1d@arrl.net>
4110
4111         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
4112
4113 2010-11-08  Paul Koning  <ni1d@arrl.net>
4114
4115         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
4116
4117 2010-11-08  Paul Koning  <ni1d@arrl.net>
4118
4119         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
4120         to 8 bits.
4121
4122 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
4123
4124         PR target/46378
4125         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
4126         turn on ISA 2.04 rounding instructions for power5.
4127
4128         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
4129         not ISA 2.02.
4130
4131         PR target/45585
4132         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
4133         in FPR registers.
4134         (movdi_low_st): Ditto.
4135
4136 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4137             Richard Henderson  <rth@redhat.com>
4138
4139         PR target/44758
4140         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
4141         (attribute acc_group): Cast value to enum attr_acc_group.
4142         (*movdi_nodouble+6): Use gen_int_mode.
4143         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
4144         if RTX_CODE is defined or not.
4145         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
4146         struct frv_io.
4147         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
4148         (frv_frame_access, frv_expand_prologue): Remove unused variables.
4149         (frv_expand_block_clear): Likewise.
4150         (frv_trampoline_init): Use LCT_NORMAL.
4151         (struct frv_packet_group): New struct, broken out of type of
4152         frv_packet.
4153         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
4154         use cast in loop counter increment.
4155         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
4156         assigning to io->type.
4157         (bdesc_set): Use rtx_code UNKNOWN in initializer.
4158         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
4159         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
4160         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
4161         (frv_read_argument): Use expand_normal.
4162
4163         PR target/44757
4164         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
4165         lm32_legitimate_constant_p.
4166         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
4167         * config/lm32/lm32.c (gen_int_relational): Make new block for
4168         LE / LT / LEU / LTU case.  Declare variables at start of block.
4169         (lm32_block_move_inline): Use XALLOCAVEC.
4170
4171 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4172
4173         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
4174
4175 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4176
4177         * gengtype (get_output_file_for_structure): Ensure type is union
4178         or struct.
4179         (write_splay_tree_allocator_def): Use
4180         get_output_file_with_visibility.
4181
4182 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4183
4184         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
4185         to defined values in case of an error.
4186         (s390_option_override): Skip further processing if the -march
4187         parameter wasn't recognized.
4188
4189 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4190
4191         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
4192         assert that REG is a hard register number before using it as an index.
4193
4194         PR bootstrap/46358
4195         * config/i386/i386.c (ix86_expand_split_stack_prologue):
4196         Avoid warnings when HOST_WIDE_INT is 32 bit.
4197
4198 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
4199
4200         PR target/46208
4201         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
4202         (sparc_promote_prototypes): Likewise.
4203         (sparc_promote_function_mode): Promote in 32-bit mode as well.
4204         (sparc_return_in_memory): Remove superfluous parentheses.
4205         (sparc_struct_value_rtx): Fix long lines.
4206         (sparc_function_value_1): Promote in 32-bit mode as well.
4207
4208 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
4209
4210         PR rtl-optimization/45352
4211         * sel-sched.c (find_best_expr): Do not set pneed_stall when
4212         the variable_issue hook is not implemented.
4213         (fill_insns): Remove dead variable stall_iterations.
4214         (init_seqno_1): Force EBB start for resetting sched cycles on any
4215         successor blocks of the rescheduled region.
4216         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
4217         (reset_sched_cycles_in_current_ebb): Add debug printing.
4218         New variable issued_insns.  Advance state when we have issued
4219         issue_rate insns.
4220
4221 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4222
4223         * gengtype (main): Get here's position using POS_HERE macro for
4224         do*typedef calls.
4225
4226 2010-11-07  Ian Lance Taylor  <iant@google.com>
4227
4228         PR target/46089
4229         * config/i386/i386.c (split_stack_fn_large): New static variable.
4230         (ix86_expand_split_stack_prologue): Handle large model.
4231
4232 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
4233
4234         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
4235         all possible addressing modes.
4236
4237 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
4238
4239         PR tree-optimization/46346
4240         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
4241
4242 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4243
4244         * config/mips/mips.c: Revert previous patch.
4245         * config/mips/mips.md: Likewise.
4246
4247 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4248
4249         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
4250         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
4251         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
4252         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
4253         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
4254         to use FMA.
4255         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
4256         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
4257         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
4258         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
4259
4260 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
4261
4262         PR c/43384
4263         * c-decl.c (lookup_label): Labels can only be referenced in a
4264         function's scope.
4265         (store_parm_decls_oldstyle): Skip erroneous parameters.
4266
4267 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
4268
4269         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
4270         LIBCALL_VALUE): Remove macros.
4271         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4272         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4273         (fr30_function_value_regno_p, fr30_function_value,
4274         fr30_libcall_value): New functions.
4275
4276 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
4277
4278         PR middle-end/46314
4279         * target.def (generate_internal_label): New asm_out hook.
4280         * output.h (default_generate_internal_label): Declare.
4281         * varasm.c (default_generate_internal_label): Define.
4282
4283 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
4284
4285         PR target/44981
4286         * doc/extend.tex (format): Document NSString extension.
4287         (format_arg): Likewise.
4288         (Darwin Format Checks): New section.
4289         * doc/tm.texi: Document string object hooks (generated).
4290         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
4291         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4292         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4293         * target.def (objc_construct_string_object): Rename, amend
4294         documentation.
4295         (string_object_ref_type_p): New hook.
4296         (check_string_object_format_arg): New hook.
4297         * c-parser.c (c_parser_attributes): Allow objective-c class names as
4298         attribute identifiers.
4299         * config/darwin-c.c (darwin_cfstring_ref_p): New.
4300         (darwin_check_cfstring_format_arg): New.
4301         (darwin_additional_format_types): New.
4302         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
4303         (darwin_check_cfstring_format_arg): New.
4304         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
4305         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4306         (TARGET_N_FORMAT_TYPES): New.
4307         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4308
4309 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
4310             Pascal Obry  <obry@adacore.com>
4311
4312         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
4313         in 64-bit mode and 17 otherwise.
4314
4315 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4316
4317         PR debug/45939
4318         * var-tracking.c (emit_note_insn_var_location): Make sure that
4319         call related var location notes come before the normal ones.
4320
4321 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4322
4323         PR target/46326
4324         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
4325         in the last change.
4326
4327 2010-11-05  Ian Lance Taylor  <iant@google.com>
4328
4329         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
4330
4331 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4332
4333         PR c/44772
4334         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
4335         pointer_set_contains if DECL_NAME is NULL.
4336
4337 2010-11-05  Ian Lance Taylor  <iant@google.com>
4338
4339         PR target/46084
4340         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
4341         request enough additional space for alignment, and force alignment.
4342
4343 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
4344
4345         * config/i386/i386.c (legitimate_pic_address_disp_p):
4346         Handle UNSPEC_PCREL.
4347         (ix86_legitimate_address_p): Likewise.
4348         (legitimize_pic_address): Likewise.
4349         (output_pic_addr_const): Likewise.
4350         (ix86_delegitimize_address): Likewise.
4351         (ix86_find_base_term): Likewise.
4352         (memory_address_length): Likewise.
4353         (x86_output_mi_thunk): Handle special case x64
4354         for non local binding.
4355         * config/i386/i386.md (UNSPEC_PCREL): New.
4356         * config/i386/winnt.c (i386_pe_binds_local_p):
4357         Allow weak symbol for x64 windows with non-local binding.
4358
4359 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4360
4361         PR target/45670
4362         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
4363         instead of EXPAND_NORMAL for base expansion.
4364
4365 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
4366
4367         * config.gcc: Support --with-fpmath=avx for x86.
4368         * config/i386/avxmath.h: New.
4369         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
4370
4371 2010-11-05  Ian Lance Taylor  <iant@google.com>
4372
4373         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
4374         * gengtype.c (walk_type): Don't recognize descbits option.
4375
4376 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
4377
4378         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
4379         WORD_SWITCH_TAKES_ARG): Remove.
4380         * doc/options.texi (Args): Document.
4381         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
4382         * doc/tm.texi: Regenerate.
4383         * opt-functions.awk (switch_flags): Handle Args.
4384         * opts-common.c: Update comment on tm.h include.
4385         (decode_cmdline_option): Handle options with multiple arguments.
4386         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
4387         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
4388         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
4389         CL_COMMON): Update values.
4390         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
4391         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
4392         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
4393         sectobjectsymbols, sectorder, segcreate, segprot): New.
4394
4395 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4396             Uros Bizjak  <ubizjak@gmail.com>
4397
4398         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
4399         256bit AVX register is used.
4400         (ix86_expand_vector_move_misalign): Likewise.
4401         (ix86_expand_vector_move): Replace use_avx256_p with
4402         VALID_AVX256_REG_MODE.
4403
4404 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
4405
4406          PR target/44750
4407         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
4408         change.  Set $@-warn.o to -Wno-error.
4409
4410         PR bootstrap/44756
4411         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
4412         comparing it to a signed value.
4413
4414         PR middle-end/44766
4415         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
4416         PR bootstrap/44770
4417         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
4418         to i.
4419
4420         PR target/44754
4421         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
4422         (m32c_function_arg).  Add comma between arguments two and three.
4423         (m32c_promote_prototypes): Remove declaration.
4424         (current_function_special_page_vector): Likewise.
4425         (m32c_regno_reg_class): Change return type to enum reg_class.
4426         (m32c_pushm_popm): Use add_reg_note.
4427         (m32c_push_rounding): Change return type to unsigned int.
4428         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
4429         enum reload_type.
4430         (m32c_insert_attributes): Constify variable name.
4431         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
4432         (m32c_prepare_shift): Remove variable lref.
4433         (m32c_expand_movcc): Remove variable cmp.
4434         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
4435         (m32c_compare_redundant): Remove variable op2.
4436         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
4437         (m32c_pragma_memregs): Assign the number to target_memregs.
4438         (m32c_pragma_address): Remove variable var_str.
4439         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
4440         enum reg_class.
4441         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
4442         * config/m32c/bitops.md (andsi3): Add default case to switch.
4443         (iorsi3, xorsi3): Likewise.
4444         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
4445         * config/m32c/jump.md (call, call_value): Likewise.
4446         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
4447         (m32c_regno_reg_class): Likewise.
4448         (current_function_special_page_vector): Declare.
4449
4450 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4451
4452         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
4453
4454         PR tree-optimization/46099
4455         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
4456         if it is NULL and uid wasn't found in the hash table.  Just fold the
4457         result if it is NULL otherwise.  Insert other potentially needed
4458         stmts right before current stmt instead of on the entry edge.
4459         (struct elv_data): Add gsi and reset fields.
4460         (eliminate_local_variables_1): Adjust caller.  If take_address_of
4461         failed for debug stmt, set dta->reset and return.
4462         (eliminate_local_variables_stmt): Change STMT argument for GSI,
4463         pass GSI through to the callback, handle resetting of debug stmts.
4464         (eliminate_local_variables): Adjust caller.  Process debug stmts
4465         in second phase.
4466
4467         PR middle-end/43690
4468         * gimplify.c (gimplify_asm_expr): If a "m" input is a
4469         {pre,post}{in,de}crement, fail.
4470
4471         PR debug/46307
4472         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
4473         * tree-pretty-print.c (dump_generic_node): Likewise.
4474         (op_code_prio): Likewise.
4475         * cfgexpand.c (expand_debug_expr): Likewise.
4476
4477 2010-11-04  Paul Koning  <ni1d@arrl.net>
4478
4479         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
4480         constraints.
4481
4482 2010-11-04  Chao-ying Fu  <fu@mips.com>
4483
4484         * configure.ac: Test assembler support for DSP Rev1 mult.
4485         * configure: Regenerate.
4486         * config.in: Regenerate.
4487         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
4488         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
4489         (CODE_FOR_mips_multu): New define.
4490         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
4491         dspr2_32 to dsp_32.
4492         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
4493         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
4494         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
4495         New define_expand patterns.
4496         * config/mips/constraints.md (ka): Update the constraint to test
4497         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
4498         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
4499         mips_multu): Delete.
4500         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
4501         Change target constraint to "ka".
4502         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
4503         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
4504         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4505         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
4506         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4507         (<u>maddsidi4): Likewise.
4508         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
4509         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
4510
4511 2010-11-04  Paul Koning  <ni1d@arrl.net>
4512
4513         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
4514
4515 2010-11-04  Paul Koning  <ni1d@arrl.net>
4516
4517         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
4518
4519 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
4520
4521         Fixed using the Objective-C 2.0 dot-syntax with class names.
4522         * c-parser.c (c_parser_next_token_starts_declspecs): In
4523         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
4524         (c_parser_next_token_starts_declaration): Same.
4525         (c_parser_postfix_expression): Parse the Objective-C 2.0
4526         dot-syntax with a class name.
4527
4528 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
4529
4530         * final.c (compute_alignments): Compute/free loop info all the time.
4531         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
4532         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
4533         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
4534         * config/rs6000/rs6000.c (cfgloop.h): Include.
4535         (can_override_loop_align): New.
4536         (rs6000_option_override_internal): Set it.
4537         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
4538         (rs6000_loop_align): New function.
4539         (rs6000_loop_align_max_skip): Likewise.
4540
4541 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4542
4543         PR driver/45703
4544         * collect2.c (main): Print --help output to stdout.  Do not
4545         exit right away, so ld --help is appended.  Add empty lines
4546         to separate output suitably.
4547
4548 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
4549
4550         PR tree-optimization/46233
4551         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
4552         after calling analyze_function, not before.
4553
4554         PR target/46234
4555         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
4556         instead of build_va_arg_indirect_ref.
4557         * config/spu/spu.c (spu_va_start): Likewise.
4558         * config/s390/s390.c (s390_va_start): Likewise.
4559
4560 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
4561
4562         PR middle-end/46292
4563         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
4564         if the innermode is not vector mode, determine the mode of a subreg
4565         by using mode_for_size of inner_size.
4566
4567 2010-11-04  Richard Guenther  <rguenther@suse.de>
4568
4569         PR rtl-optimization/46183
4570         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
4571         (execute_rtl_pre): Likewise.
4572         (execute_rtl_hoist): Likewise.
4573
4574 2010-11-04  Richard Guenther  <rguenther@suse.de>
4575
4576         PR tree-optimization/46068
4577         * ipa-split.c (consider_split): Remove gcc_unreachable.
4578
4579 2010-11-04  Richard Guenther  <rguenther@suse.de>
4580
4581         * tree-nested.c (build_addr): Use build_fold_addr_expr.
4582
4583 2010-11-04  Richard Guenther  <rguenther@suse.de>
4584
4585         PR tree-optimization/45991
4586         * gimplify.c (force_gimple_operand_1): Use the provded test
4587         function in the initial test.
4588
4589 2010-11-04  Jeff Law  <law@redhat.com>
4590
4591         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
4592         of readonly memory equivalances for const/pure calls.
4593
4594 2010-11-04  Richard Guenther  <rguenther@suse.de>
4595
4596         PR tree-optimization/45733
4597         * tree-vect-stmts.c (reverse_vec_elements): Honor the
4598         permute builtins function return type.
4599
4600 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
4601
4602         PR middle-end/44765
4603         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
4604         as an index, check it is not INVALID_REGNUM.
4605
4606         PR bootstrap/44756
4607         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
4608         unsignedp.
4609         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
4610
4611         PR bootstrap/44756
4612         * function.c (thread_prologue_and_epilogue_insns): Add
4613         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
4614
4615         PR bootstrap/44756
4616         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
4617
4618         PR target/44750
4619         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
4620         (pdp11_preferred_reload_class): Rename class to rclass.
4621         (pdp11_preferred_output_reload_class): Likewise.
4622         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
4623         ALL_COMPILERFLAGS .
4624         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
4625
4626         PR bootstrap/44756
4627         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
4628         iteration variables to enum machine_mode.
4629
4630         PR target/44751
4631         * config/h8300/h8300.c: Include df.h.
4632         (push, pop): Use add_reg_note.
4633         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
4634         (compute_a_shift_cc): Likewise.
4635         (expand_a_shift): Argument code has type enum rtx_code.
4636         (struct shift_insn): Member cc_valid has type enum attr_cc.
4637         (struct shift_info) <cc_inline, cc_special>: Likewise.
4638         enum attr_cc.
4639         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
4640         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
4641
4642 2010-11-04  Ira Rosen  <irar@il.ibm.com>
4643
4644         PR tree-optimization/46213
4645         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
4646         MINUS_EXPR only if the first operand is reduction operand.
4647
4648 2010-11-04  Richard Guenther  <rguenther@suse.de>
4649             Richard Henderson  <rth@redhat.com>
4650
4651         * tree.def (FMA_EXPR): New tree code.
4652         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
4653         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
4654         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
4655         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
4656         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
4657         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
4658         (execute_optimize_widening_mul): Call it.  Reorganize to allow
4659         dead stmt removal.  Move TODO flags ...
4660         (pass_optimize_widening_mul): ... here.
4661         * flag-types.h (enum fp_contract_mode): New enum.
4662         * common.opt (flag_fp_contract_mode): New variable.
4663         (-ffp-contract): New option.
4664         * opts.c (common_handle_option): Handle it.
4665         * doc/invoke.texi (-ffp-contract): Document.
4666         * tree.h (fold_fma): Declare.
4667         * builtins.c (fold_fma): New function.
4668         (fold_builtin_fma): Likewise.
4669         (fold_builtin_3): Call it for fma.
4670         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
4671         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
4672         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
4673         New expanders.
4674         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
4675         named patterns.
4676         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
4677         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
4678         (fms_optab, fnma_optab, fnms_optab): New defines.
4679         * gimplify.c (gimplify_expr): Handle binary truth expressions
4680         explicitly.  Handle FMA_EXPR.
4681         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
4682         operations.
4683
4684 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4685             Richard Guenther  <rguenther@suse.de>
4686
4687         * passes.c (init_optimization_passes): Move veclower after SSA.
4688         * tree-vect-generic.c (uniform_vector_p): New function.
4689         (expand_vector_operations_1): Handle conversion.
4690         (pass_lower_vector): Update SSA form.
4691
4692 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
4693
4694         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
4695         plugin capabilities.
4696         * configure: Regenerate.
4697
4698 2010-11-03  Xinliang David Li  <davidxl@google.com>
4699
4700         PR target/46200
4701         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
4702         Adjust cbase if the use stmt is after iv update.
4703
4704 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4705
4706         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
4707
4708 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4709
4710         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
4711         comment.  Pass true to the last argument of output_stack_adjust.
4712
4713 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4714
4715         PR target/46295
4716         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
4717         if 256bit AVX register is used.
4718
4719 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
4720
4721         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
4722         xsmindp/xsmaxdp on VSX for single precision min/max.
4723         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
4724         (vsx_sminsf3): Ditto.
4725
4726 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4727
4728         * combine.c (try_combine): Fix formatting issues, improve comments and
4729         fix a pasto.
4730
4731 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4732
4733         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
4734         of the result before building binary expressions.
4735
4736 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4737
4738         PR rtl-optimization/45865
4739         * Makefile.in (df-problems.o): Revert revision 164552.
4740         * basic-block.h (enum bb_flags): Likewise.
4741         * cfgcleanup.c (block_was_dirty): Likewise.
4742         (try_forward_edges): Likewise.
4743         (try_crossjump_bb): Likewise.
4744         (try_head_merge_bb): Likewise.
4745         (try_optimize_cfg): Likewise.
4746         (cleanup_cfg): Likewise.
4747         * df-core.c (df_set_bb_dirty): Likewise.
4748         * df-problems.c: Likewise.
4749         (df_simulate_find_uses): Likewise.
4750         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
4751         (find_memory, find_memory_store): Likewise.
4752         (can_move_insns_across): Likewise.
4753         * df.h (can_move_insns_across): Likewise.
4754         * ifcvt.c (find_memory): Likewise.
4755         (dead_or_predicable): Likewise.
4756
4757 2010-11-03  Richard Guenther  <rguenther@suse.de>
4758
4759         PR middle-end/46288
4760         * predict.c (strip_predict_hints): Simply DCE builtin expect if
4761         the result is unused.
4762
4763 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4764
4765         PR tree-optimization/46009
4766         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
4767         cond_if_else_store_replacement if bb1 and bb2 have the same
4768         single successor.
4769         (cond_store_replacement): Use gimple_assign_single_p, don't
4770         check if rhs is SSA_NAME or invariant.  Call release_defs for
4771         assign.
4772         (cond_if_else_store_replacement): New function.
4773
4774 2010-11-03  Richard Guenther  <rguenther@suse.de>
4775
4776         * opts.c (finish_options): Properly check for all WHOPR
4777         flags before complaining about -flto-partition.
4778
4779 2010-11-04  Alan Modra  <amodra@gmail.com>
4780
4781         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
4782         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
4783         TARGET_SECURE_PLT.
4784         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
4785         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
4786         on input, "r" on output.
4787
4788 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
4789
4790         Implemented -fobjc-std=objc1 flag.
4791         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
4792         option.
4793         * doc/standards.texi (Standards): Updated the section on
4794         Objective-C; mention support for Objective-C 2.0 features and the
4795         new -fstd-objc=objc1 flag to disable them.
4796
4797 2010-11-03  Richard Guenther  <rguenther@suse.de>
4798
4799         PR middle-end/46241
4800         * dwarf2out.c (scope_die_for): Properly detect global scope.
4801
4802 2010-11-03  Richard Guenther  <rguenther@suse.de>
4803
4804         PR tree-optimization/46190
4805         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4806         Properly compute peel iterations.
4807
4808 2010-11-03  Richard Guenther  <rguenther@suse.de>
4809
4810         PR tree-optimization/46286
4811         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
4812         re-allocated vector data.
4813
4814 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4815
4816         PR target/46285
4817         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
4818         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
4819         is completed.
4820
4821 2010-11-03  Richard Guenther  <rguenther@suse.de>
4822
4823         PR tree-optimization/46217
4824         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
4825         flag matches.
4826         (execute_update_addresses_taken): Likewise.
4827
4828 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
4829
4830         PR bootstrap/44335
4831         * targhooks.c (targhook_words_big_endian): New function.
4832         (targhook_float_words_big_endian): Likewise.
4833         * targhooks.h (targhook_words_big_endian): Declare.
4834         (targhook_float_words_big_endian): Likewise.
4835         * target.def (words_big_endian, float_words_big_endian): New hooks.
4836
4837 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4838
4839         PR tree-optimization/46165
4840         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
4841         a normal call into noreturn call.
4842
4843 2010-11-03  Richard Guenther  <rguenther@suse.de>
4844
4845         PR middle-end/46251
4846         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
4847         not INDIRECT_REFs.
4848
4849 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4850
4851         PR tree-optimization/46107
4852         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
4853         if cfg_hook_duplicate_loop_to_header_edge failed.
4854
4855 2010-11-03  Ian Lance Taylor  <iant@google.com>
4856
4857         PR lto/46273
4858         * config.gcc: Don't set lto_binary_reader.
4859         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
4860         (Configuration): Mention --disable-lto.  Remove --with-libelf
4861         paragraph.
4862
4863 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4864
4865         PR debug/46252
4866         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
4867         prev_real_insn.
4868         * gcse.c (insert_insn_end_basic_block): Likewise.
4869
4870         PR rtl-optimization/46034
4871         PR rtl-optimization/46212
4872         PR rtl-optimization/46248
4873         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
4874         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
4875         before i0dest -> i0src substitution and pass 1 instead of 0 as last
4876         argument to subst on i2pat.
4877
4878 2010-11-02  Ian Lance Taylor  <iant@google.com>
4879
4880         * configure.ac: Use AC_SYS_LARGEFILE.
4881         * configure: Rebuild.
4882         * config.in: Rebuild.
4883
4884 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
4885
4886         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
4887         fold_convert.
4888         * c-typeck.c (build_function_call_vec): Likewise.
4889         * cfgexpand.c (expand_debug_expr): Likewise.
4890         * cgraphunit.c (assemble_thunk): Likewise.
4891         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
4892         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
4893         (fold_binary_loc, fold_ternary_loc): Likewise.
4894         * gimple-fold.c (get_symbol_constant_value): Likewise.
4895         * gimple-low.c (lower_builtin_setjmp): Likewise.
4896         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
4897         * gimplify.c (gimplify_init_constructor): Likewise.
4898         * lambda.h (build_linear_expr): Likewise.
4899         * omp-low.c (omp_reduction_init): Likewise.
4900         * tree-inline.c (remap_ssa_name): Likewise.
4901         * tree-object-size.c (compute_object_sizes): Likewise.
4902         * tree-sra.c (init_subtree_with_zero): Likewise.
4903         (sra_ipa_modify_assign): Likewise.
4904         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
4905         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
4906         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
4907         (undistribute_ops_list): Likewise.
4908         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
4909         * tree-vect-stmts.c (vectorizable_call): Likewise.
4910         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
4911         (build_zero_cst): Handle more cases directly.  Update comment.
4912
4913 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4914
4915         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
4916         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
4917
4918         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
4919         and call ix86_split_call_vzeroupper instead of
4920         ix86_split_call_pop_vzeroupper.
4921         (*call_pop_1_vzeroupper): Likewise.
4922         (*sibcall_pop_1_vzeroupper): Likewise.
4923         (*call_value_pop_0_vzeroupper): Likewise.
4924         (*call_value_pop_1_vzeroupper): Likewise.
4925         (*sibcall_value_pop_1_vzeroupper): Likewise.
4926
4927 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4928
4929         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
4930
4931 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
4932
4933         * basic-block.h (insert_insn_end_bb_new): Delete.
4934         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
4935
4936 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
4937             H.J. Lu  <hongjiu.lu@intel.com>
4938
4939         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
4940         (ix86_split_call_pop_vzeroupper): Likewise.
4941
4942         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
4943         (ix86_expand_call): Conditionally decorate calls with
4944         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
4945         (ix86_split_call_vzeroupper): New.
4946         (ix86_split_call_pop_vzeroupper): Likewise.
4947
4948         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
4949         (*call_pop_0_vzeroupper): New insn_and_split pattern.
4950         (*call_pop_1_vzeroupper): Likewise.
4951         (*sibcall_pop_1_vzeroupper): Likewise.
4952         (*call_0_vzeroupper): Likewise.
4953         (*call_1_vzeroupper): Likewise.
4954         (*sibcall_1_vzeroupper): Likewise.
4955         (*call_1_rex64_vzeroupper): Likewise.
4956         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
4957         (*call_1_rex64_large_vzeroupper): Likewise.
4958         (*sibcall_1_rex64_vzeroupper): Likewise.
4959         (*call_value_pop_0_vzeroupper): Likewise.
4960         (*call_value_pop_1_vzeroupper): Likewise.
4961         (*sibcall_value_pop_1_vzeroupper): Likewise.
4962         (*call_value_0_vzeroupper): Likewise.
4963         (*call_value_0_rex64_vzeroupper): Likewise.
4964         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
4965         (*call_value_1_vzeroupper): Likewise.
4966         (*sibcall_value_1_vzeroupper): Likewise.
4967         (*call_value_1_rex64_vzeroupper): Likewise.
4968         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
4969         (*call_value_1_rex64_large_vzeroupper): Likewise.
4970         (*sibcall_value_1_rex64_vzeroupper): Likewise.
4971
4972 2010-11-02  Ian Lance Taylor  <iant@google.com>
4973
4974         PR lto/46273
4975         * config.gcc: Revert last patch: set lto_binary_reader.
4976
4977 2010-11-02  Richard Guenther  <rguenther@suse.de>
4978
4979         PR tree-optimization/46149
4980         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
4981         non-indirect MEM_REF variants.
4982
4983 2010-11-02  Richard Guenther  <rguenther@suse.de>
4984
4985         PR tree-optimization/46216
4986         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
4987         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
4988
4989 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4990
4991         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
4992         (*-*-osf*): Likewise.
4993         * configure: Regenerate.
4994
4995 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4996
4997         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
4998         for Intel Core 2 and Core i7.
4999
5000 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
5001
5002         Model decoder of Core 2/i7 for multipass scheduling.
5003
5004         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
5005         New type to hold target-specific data for multipass scheduling.
5006         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5007         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
5008         Core 2/i7.
5009         (core2i7_secondary_decoder_max_insn_size,)
5010         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
5011         New static variables.
5012         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
5013         ([_]ix86_first_cycle_multipass_data): New static variable.
5014         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
5015         Implement targetm.sched hooks.
5016         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
5017         of ...
5018         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
5019         Implement new targetm.sched hooks.
5020         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
5021         targetm.sched hook to install multipass scheduling hooks on demand.
5022
5023         * doc/tm.texi.in: Document new targetm.sched hooks.
5024         * doc/tm.texi: Regenerate.
5025
5026         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5027         (first_cycle_multipass_data_t): New typedef.
5028         (struct choice_entry: target_data): New field.
5029         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
5030         to allow target model restrictions not represented in DFA.
5031         (choose_ready, schedule_block): Update.
5032         (sched_extend_ready_list, sched_finish_ready_list): Call new target
5033         hooks to initialize target-specific data for multipass scheduling.
5034         * sched-int.h (max_issue): Update declaration.
5035         * sel-sched.c (choose_best_insn): Update.
5036         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
5037         (first_cycle_multipass_{init, fini}): Define and document new
5038         targetm.sched hooks.
5039
5040 2010-11-02  Richard Guenther  <rguenther@suse.de>
5041
5042         PR tree-optimization/46184
5043         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
5044         input vector type from the reduction operand as well.
5045
5046 2010-11-02  Richard Guenther  <rguenther@suse.de>
5047
5048         PR tree-optimization/46177
5049         * tree-loop-distribution.c (prop_phis): Use
5050         mark_virtual_phi_result_for_renaming.
5051
5052 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5053
5054         PR middle-end/46120
5055         * tree.c (get_binfo_at_offset): Bail out on artificial
5056         fields.  Identify primary bases according to their offsets.
5057
5058 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5059
5060         PR tree-optimization/45875
5061         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
5062         (gimple_get_relevant_ref_binfo): Detect primary bases according to
5063         their field offset.
5064
5065 2010-11-02  Ian Lance Taylor  <iant@google.com>
5066
5067         * doc/install.texi (Configuration): Note in two places that Java
5068         is not enabled by default.
5069
5070 2010-11-02  Ian Lance Taylor  <iant@google.com>
5071
5072         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
5073         (Configuration): Mention --disable-lto.  Remove --with-libelf
5074         paragraph.
5075
5076 2010-11-02  Ian Lance Taylor  <iant@google.com>
5077
5078         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
5079         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
5080         LIBELFINC.  Remove HAVE_libelf.
5081         * config.gcc: Don't set lto_binary_reader.
5082         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
5083         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
5084         (LIBS): Remove $(LIBELFLIBS).
5085         (INCLUDES): Remove $(LIBELFINC).
5086         * configure: Rebuild.
5087         * config.in: Rebuild.
5088
5089 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
5090
5091         * config/microblaze/microblaze-protos.h (function_arg): Delete.
5092         (function_arg_advance): Delete.
5093         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
5094         (FUNCTION_ARG): Delete.
5095         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
5096         (microblaze_function_arg_advance): ...this.  Make static.  Take a
5097         const_tree and a bool.
5098         (function-arg): Rename to...
5099         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
5100         and a bool.
5101         (microblaze_expand_prologue): Call targetm.calls.function_arg and
5102         targetm.calls.function_arg_advance.
5103         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5104
5105 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5106
5107         Merge from FSF "apple/trunk" branch.
5108
5109         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
5110         * config/darwin.opt: .. to here.
5111         (matt-stubs): New option.
5112         * config/i386/darwin.opt: Delete.
5113         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
5114         (MACHO_DYNAMIC_NO_PIC_P): New.
5115         (MACHOPIC_INDIRECT): New.
5116         (MACHOPIC_PURE): New.
5117         * config/i386/darwin.h (DARWIN_X86) Define to 1.
5118         (MACHOPIC_ATT_STUB): New.
5119         (CC1_SPEC): Do not remove mdynamic-no-pic.
5120         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5121         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5122         (FUNCTION_PROFILER): Correct over-length line.
5123         (SUBTARGET_OVERRIDE_OPTIONS): New.
5124         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5125         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
5126         (legitimate_constant_p): Handle mdynamic-no-pic.
5127         (ix86_legitimate_address_p): Likewise.
5128         (ix86_legitimize_address): Likewise.
5129         (ix86_expand_move): Likewise.
5130         (machopic_output_stub): Update for ATT-style stubs and
5131         mdynamic-no-pic.
5132         * config/darwin-protos.h (machopic_symbol_defined_p): New.
5133         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
5134         TARGET_DYNAMIC_NO_PIC: Remove.
5135         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5136         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5137         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
5138         Remove handling of mdynamic-no-pic.
5139         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
5140         Define if required.
5141         (machopic_symbol_defined_p): Do not try to use current_function_decl
5142         when generating _get_pc thunks within stubs.
5143         (machopic_indirect_data_reference): Rework for direct conditionals
5144         rather than #ifdefs, add x86 mdynamic-no-pic
5145         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
5146         defined value.
5147         (darwin_override_options): Handle mdynamic-no-pic here.
5148         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
5149         (machopic_lazy_symbol_ptr3_section): New.
5150         (machopic_picsymbol_stub2_section): New.
5151         (machopic_picsymbol_stub3_section): New.
5152         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
5153         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5154         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
5155         Moved common definition from x86 and rs6000.
5156         (MACHO_DYNAMIC_NO_PIC_P): Override value.
5157         (MACHOPIC_INDIRECT): Likewise.
5158         (MACHOPIC_PURE): Likewise.
5159         * config.gcc (x86-darwin-*): Remove darwin.opt.
5160
5161 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
5162
5163         PR debug/46255
5164         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
5165         instead of gsi_last_bb.
5166
5167 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5168             Maxim Kuvyrkov  <maxim@codesourcery.com>
5169
5170         * config/i386/i386.c (cpu_names): Add "corei7".
5171         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
5172
5173 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5174             Maxim Kuvyrkov  <maxim@codesourcery.com>
5175
5176         Tune alignment for Intel Core i7
5177
5178         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
5179         (enum processor_type): Update comment.  Add entries for Core i7.
5180         * config/i386-c.c (ix86_target_macros_internal): Update.
5181         * config/i386.c (m_COREI7{_32,_64}): New macros.
5182         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
5183         (processor_target_table): Tune alignment for Core i7.
5184         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
5185
5186         * doc/invoke.texi: Document "corei7" option value.
5187
5188 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5189             Maxim Kuvyrkov  <maxim@codesourcery.com>
5190             H.J. Lu  <hjl.tools@gmail.com>
5191
5192         Basic support for Intel Core i7
5193
5194         * i386.c (ix86_option_override_internal): Add entry for corei7, use
5195         generic tuning.  Use generic32 when compiling for 32-bit ABI.
5196
5197 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5198
5199         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
5200         sections and call darwin_asm_dwarf_section() to handle them.
5201         (darwin_asm_dwarf_section): New.
5202         (darwin_file_start): Remove code emitting dwarf section symbols.
5203
5204 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
5205
5206         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
5207         explicitly disable stack protection when building libgcc.
5208         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
5209
5210 2010-11-01  Jason Merrill  <jason@redhat.com>
5211
5212         * fold-const.c (fold_indirect_ref_1): Handle folding
5213         POINTER_PLUS_EXPR to ARRAY_REF.
5214
5215 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
5216
5217         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
5218         (sh_delegitimize_address): New function.
5219
5220 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5221
5222         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
5223         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
5224         (CC1_SPEC): Don't handle -target.
5225         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
5226         options.
5227         * config/darwin.opt (Zallowable_client, Zbundle_loader,
5228         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
5229         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
5230         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
5231         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
5232         Zweak_reference_mismatches, client_name, compatibility_version,
5233         current_version, dylinker_install_name, pagezero_size,
5234         read_only_relocs, seg1addr, segs_read_only_addr,
5235         segs_read_write_addr, sub_library, sub_umbrella): New.
5236         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
5237         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
5238         * config/freebsd.opt: New.
5239         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
5240         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
5241         * config/rpath.opt: New.
5242         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
5243         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
5244         Use rpath.opt.
5245
5246 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5247
5248         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
5249         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
5250         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
5251         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
5252         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
5253         Document that options in .opt files do not need to be included.
5254         * doc/tm.texi: Regenerate.
5255         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
5256         * opts-common.c: Update comment on tm.h include.
5257         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
5258         * system.h (SWITCH_TAKES_ARG): Poison.
5259         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
5260         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
5261         in darwin.opt.
5262         (LINK_COMMAND_SPEC_A): Don't include %{x}.
5263         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5264         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
5265         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
5266         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5267         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
5268         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
5269         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
5270         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
5271         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5272         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
5273         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
5274         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
5275         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
5276         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
5277         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
5278         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
5279         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
5280         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
5281         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
5282         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
5283         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
5284         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
5285         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5286
5287 2010-11-01  Paul Koning  <ni1d@arrl.net>
5288
5289         * config/pdp11/pdp11.md: Use iterators.
5290         (addqi3, subqi3, iorsi3, xorsi3): Delete.
5291
5292 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
5293
5294         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
5295         GCC_INSN_FLAGS_H.
5296         * libgcov.c (__gcov_indirect_call_profiler): Set
5297         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
5298         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
5299
5300 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5301
5302         PR tree-optimization/46259
5303
5304         Revert:
5305         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5306         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
5307         build_vector_from_val.
5308
5309 2010-11-01  DJ Delorie  <dj@redhat.com>
5310
5311         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
5312         as well as an assertion.
5313
5314 2010-11-01  Paul Koning  <ni1d@arrl.net>
5315
5316         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
5317         complex modes in memory.
5318
5319 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5320
5321         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
5322
5323 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
5324
5325         PR target/45250
5326         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
5327         (cfa_base_offset): New variable.
5328         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
5329         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
5330         is NULL.
5331         (vt_init_cfa_base): Initialize cfa_base_offset.
5332
5333 2010-11-01  Alan Modra  <amodra@gmail.com>
5334
5335         PR target/46030
5336         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
5337         and savres_strategy.
5338         (stack_info): New file scope var.
5339         (rs6000_init_machine_status): Init stack_info.
5340         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
5341         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
5342         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
5343         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
5344         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
5345         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
5346         (rs6000_savres_strategy): Rewrite.
5347         (rs6000_stack_info): Use "stack_info" in place of local "info".
5348         Return cached stack info when reload_completed unless ENABLE_CHECKING
5349         in which case confirm newly calculated stack info matches old info.
5350         Delay calculation of lr_save_p, set it for out of line gp save/restore
5351         as well as fp.  Call rs6000_savres_strategy from here..
5352         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
5353         (rs6000_output_function_prologue): Use info->savres_strategy to
5354         determine whether fp save/restore externs need to be emitted.
5355
5356 2010-10-31  Jason Merrill  <jason@redhat.com>
5357
5358         * tree.h (EXPR_LOC_OR_HERE): New macro.
5359         * builtins.c (c_strlen): Use it.
5360         * c-decl.c (build_enumerator): Likewise.
5361         * gimplify.c (internal_get_tmp_var): Likewise.
5362         (shortcut_cond_expr): Likewise.
5363         (gimplify_one_sizepos): Likewise.
5364
5365 2010-10-31  Richard Henderson  <rth@redhat.com>
5366
5367         * config/i386/cygming.h (TARGET_SEH): New.
5368         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
5369         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
5370         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
5371         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
5372         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
5373         (ASM_DECLARE_FUNCTION_SIZE): New.
5374         * config/i386/i386-protos.h: Update.
5375         * config/i386/i386.c (ix86_option_override_internal): Enable
5376         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
5377         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
5378         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
5379         (ix86_compute_frame_layout): For SEH, disable
5380         use_fast_prologue_epilogue, move frame pointer to the end of
5381         the frame.  Initialize hfp_save_offset.
5382         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
5383         at end of prologue for SEH.
5384         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
5385         emit blockage at beginning of epilogue.
5386         (ix86_expand_binary_operator): After reload, emit LEA if needed.
5387         (ix86_output_call_insn): New.
5388         * config/i386/i386.h (TARGET_SEH): New.
5389         (struct machine_function): Add member seh.
5390         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
5391         * config/i386/winnt.c (struct seh_frame_state): New.
5392         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
5393         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
5394         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
5395         i386_pe_start_function, i386_pe_end_function): New.
5396
5397         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
5398         as CFA_STORE in rules 12 and 13.
5399
5400 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
5401
5402         PR tree-optimization/46142
5403         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
5404         accommodate third function argument.
5405
5406 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5407
5408         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
5409
5410 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5411
5412         * fold-const.c (build_zero_vector): Use build_vector_from_val.
5413         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
5414         (get_initial_def_for_reduction): Likewise.
5415         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
5416         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
5417         * tree.c (build_one_cst): Likewise.
5418         (build_vector_from_val): Use types_compatible_p for assert.
5419
5420 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5421
5422         * emit-rtl.c (mark_used_flags): New function.
5423         (set_used_flags, reset_used_flags): Call it.
5424
5425 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
5426
5427         PR middle-end/44569
5428         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
5429         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
5430
5431 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
5432
5433         PR target/46195
5434         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
5435         (ix86_compat_aligned_value_p): This.
5436         (ix86_old_function_arg_boundary): Renamed to ...
5437         (ix86_compat_function_arg_boundary): This.  Updated.
5438         (ix86_contains_aligned_value_p): New.
5439         (ix86_function_arg_boundary): Align long double parameters on
5440         stack to 4byte in 32bit.
5441
5442 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
5443
5444         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
5445         * c-parser.c (c_parser_objc_at_property_declaration): Removed
5446         parsing of RID_COPIES and RID_IVAR.  Updated call to
5447         objc_add_property_declaration.
5448         * c-typecheck.c (build_component_ref): Call
5449         objc_maybe_build_component_ref instead of objc_build_setter_call.
5450         Use objc_is_property_ref to improve Objective-C checks.
5451         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
5452         of objc_build_getter_call.
5453
5454 2010-10-29  Paul Koning  <ni1d@arrl.net>
5455
5456         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5457         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
5458         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
5459         (REG_OK_STRICT): Move description.
5460
5461 2010-10-29  Paul Koning  <ni1d@arrl.net>
5462
5463         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
5464
5465 2010-10-29  Paul Koning  <ni1d@arrl.net>
5466
5467         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
5468
5469 2010-10-29  Paul Koning  <ni1d@arrl.net>
5470
5471         PR/41822
5472         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
5473
5474 2010-10-29  Richard Henderson  <rth@redhat.com>
5475
5476         PR rtl-opt/46226
5477         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
5478         for asm goto.
5479
5480 2010-10-29  Paul Koning  <ni1d@arrl.net>
5481
5482         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
5483         register to register move.
5484
5485 2010-10-29  Paul Koning  <ni1d@arrl.net>
5486
5487         * config/pdp11/pdp11.c (print_operand_address): Correct handling
5488         of integer constant addresses, delete vax-only logic.
5489
5490 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
5491
5492         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
5493         a conditional expression.
5494
5495 2010-10-29  Paul Koning  <ni1d@arrl.net>
5496
5497         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
5498         instruction encoding.
5499
5500 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5501             Andrew Pinski  <pinskia@gmail.com>
5502
5503         * tree.h (build_vector_from_val): Declare.
5504         * tree.c (build_vector_from_val): New function.
5505         * c-typeck.c (build_binary_op): Handle vector shifting.
5506         * doc/extend.texi: Description of the vector shifting operation.
5507
5508 2010-10-29  Paul Koning  <pkoning@equallogic.com>
5509
5510         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
5511         pdp11_secondary_memory_needed): Declare.
5512         * config/pdp11/predicates.md (float_operand): New predicate.
5513         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
5514         (cbranchdf4, movdf): Change predicate.
5515         (movsf): Handle FPU register case.
5516         (truncdfsf2, extendsfdf2): Add FPU register case.
5517         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
5518         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
5519         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5520         (pdp11_register_move_cost): Update cost matrix.
5521         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
5522         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
5523         pdp11_secondary_memory_needed): New function.
5524         (pdp11_return_in_memory): Add other float types.
5525         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
5526         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
5527         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
5528         REGISTER_MOVE_COST): Delete.
5529         (BASE_RETURN_VALUE_REG): Add other float types.
5530
5531 2010-10-29  Nick Clifton  <nickc@redhat.com>
5532
5533         * doc/invoke.texi: Document -mam34 and -mtune options.
5534         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
5535         (mn10300_tune_cpu): New variable.
5536         (mn10300_handle_option): Handle -mam34 and -mtune options.
5537         (mn10300_option_override): Convert tune string into tune cpu variable.
5538         (mn10300_legitimate_constant_p): Delete unused local variable.
5539         (is_load_insn): New function.
5540         (is_store_insn): New function.
5541         (mn10300_adjust_schedule_cost): New function.
5542         (TARGET_SCHED_ADJUST_COST): Define.
5543         * config/mn10300/mn10300.opt (mam34): New option.
5544         (mtune): New option.
5545         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
5546         (enum processor_type): Add AM34.
5547         (TARGET_AM34): Define.
5548         * config/mn10300/mn10300.md (attr cpu): Add am34.
5549         Add pipeline description.
5550         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
5551         Remove unneeded alternatives.  Add timing attribute.
5552         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
5553         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
5554         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
5555         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
5556         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
5557         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
5558         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
5559         float_conditional_branch, jump, indirect_jump, tablejump,
5560         call_internal, call_value_internal, zero_extendqisi2_am33,
5561         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
5562         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
5563         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
5564         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
5565         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
5566         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
5567         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
5568         return_internal_regs, store_movm, return, call_next_insn):
5569         Add timing attribute.
5570         (am33_subsi3): Add missing clobber of CC_REG.
5571         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
5572         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
5573         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
5574         extendqisi2): Fix predicates.
5575         (call_internal, call_internal_value): Separate alternatives.
5576         * config/mn10300/t-mn10300: Add AM34 multilib.
5577
5578 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
5579
5580         * config/sh/sh.c (sh_promote_function_mode): Use
5581         default_promote_function_mode if !sh_promote_prototypes.
5582
5583 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
5584
5585         * recog.c (split_all_insns): Remove dead code.
5586
5587 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5588
5589         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5590
5591 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5592
5593         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5594         (FUNCTION_ARG_ADVANCE): Delete.
5595         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
5596         functions.
5597         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
5598         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5599         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5600
5601 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5602
5603         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
5604         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5605         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5606         Take a const_tree and a bool.
5607         (mcore_function_arg_advance): New function.
5608         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5609
5610 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5611
5612         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
5613         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5614         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5615         Take a const_tree and a bool.
5616         (mcore_function_arg_advance): New function.
5617         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5618
5619 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5620
5621         * config/h8300/h8300-protos.h (function_arg): Delete.
5622         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5623         * config/h8300/h8300.c (function_arg): Rename to...
5624         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
5625         a bool.
5626         (h8300_function_arg_advance): New function.
5627         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5628
5629 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5630
5631         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
5632         to...
5633         * config/arc/arc.c (arc_function_arg): ...here and...
5634         (arc_function_arg_advance): ...here.  New functions.
5635         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5636
5637 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5638
5639         * config/crx/crx-protos.h (crx_function_arg): Delete.
5640         (crx_function_arg_advance): Delete.
5641         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5642         * config/crx/crx.c (crx_function_arg): Make static.  Take a
5643         const_tree and a bool.
5644         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
5645         (enough_regs_for_param): Take a const_tree.
5646         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5647
5648 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5649
5650         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
5651         (m68hc11_function_arg_advance): Delete.
5652         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
5653         (FUNCTION_ARG_ADVANCE): Delete.
5654         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
5655         Take a const_tree and a bool.
5656         (m68hc11_function_arg_advance): Likewise.
5657         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5658
5659 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5660
5661         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
5662         (xstormy16_function_arg_advance): Delete.
5663         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
5664         (FUNCTION_ARG_ADVANCE): Delete.
5665         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
5666         Take a const_tree and a bool.
5667         (xstormy16_function_arg_advance): Likewise.  Return void, updating
5668         the CUM parameter instead.
5669         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5670
5671 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5672
5673         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
5674         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5675         (MOXIE_FUNCTION_ARG_SIZE): Move to...
5676         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
5677         (moxie_function_arg): Make static.  Take a const_tree and a bool.
5678         (moxie_function_arg_advance): New function.
5679         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5680
5681 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5682
5683         * config/mn10300/mn10300-protos.h (function_arg): Delete.
5684         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
5685         (FUNCTION_ARG_ADVANCE): Delete.
5686         * config/mn10300/mn10300.c (function_arg): Rename to...
5687         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
5688         and a bool.
5689         (mn10300_function_arg_advance): New function.
5690         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5691
5692 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5693
5694         * config/iq2000/iq2000-protos.h (function_arg): Delete.
5695         (function_arg_advance): Delete.
5696         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5697         * config/iq2000/iq2000.c (function_arg): Rename to...
5698         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
5699         a bool.
5700         (function_arg_advance): Rename to...
5701         (iq2000_function_arg_advance): ...this.  Make static.  Take a
5702         const_tree and a bool.
5703         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
5704         iq2000_function_arg.
5705         (iq2000_pass_by_reference): Call iq2000_function_arg).
5706         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5707
5708 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5709
5710         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
5711         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5712         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
5713         const_tree.
5714         (fr30_function_arg): New function.
5715         (fr30_function_arg_advance): New function.
5716         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5717
5718 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5719
5720         * config/frv/frv-protos.h (frv_function_arg): Delete.
5721         (frv_function_arg_advance): Delete.
5722         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5723         * config/frv/frv.c (frv_function_arg): Rename to...
5724         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
5725         (frv_function_arg, frv_function_incoming_arg): New functions.
5726         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
5727         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5728         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5729
5730 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
5731
5732         PR target/46153
5733         * config/i386/sse.md (sse_movhlps_exp): Use destination
5734         returned from ix86_fixup_binary_operands to expand insn.
5735         (sse_movlhps_exp): Ditto.
5736         (sse_loadhps_exp): Ditto.
5737         (sse_loadlps_exp): Ditto.
5738         (sse2_loadhpd_exp): Ditto.
5739         (sse2_loadlpd_exp): Ditto.
5740
5741 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
5742
5743         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
5744         constants in thumb2.
5745
5746 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
5747
5748         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
5749         arithmetics in masking operations.
5750         (contains_muldiv): Likewise.
5751         (try_combine): Likewise.
5752         (find_split_point): Likewise.
5753         (combine_simplify_rtx): Likewise.
5754         (simplify_if_then_else): Likewise.
5755         (simplify_set): Likewise.
5756         (expand_compound_operation): Likewise.
5757         (expand_field_assignment): Likewise.
5758         (make_extraction): Likewise.
5759         (extract_left_shift): Likewise.
5760         (make_compound_operation): Likewise.
5761         (force_to_mode): Likewise.
5762         (make_field_assignment): Likewise.
5763         (reg_nonzero_bits_for_combine): Likewise.
5764         (simplify_shift_const_1): Likewise.
5765         (simplify_comparison): Likewise.
5766
5767 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
5768
5769         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
5770         (ia64_function_arg_advance): Delete.
5771         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5772         (FUNCTION_ARG_ADVANCE): Delete.
5773         * config/ia64/ia64.c (ia64_function_arg): Rename to...
5774         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
5775         bool arguments.
5776         (ia64_function_arg, ia64_function_incoming_arg): New functions.
5777         (ia64_function_arg_advance): Make static.  Take a const_tree and
5778         a bool.
5779         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5780         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5781
5782 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
5783
5784         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
5785         (TARGET_GET_RAW_ARG_MODE): New.
5786         * doc/tm.texi: Regenerate.
5787         * target.def (get_raw_result_mode): New.
5788         (get_raw_arg_mode): New.
5789         * targhooks.c (default_get_reg_raw_mode): New.
5790         * targhooks.h (default_get_reg_raw_mode): New.
5791         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
5792         (apply_result_size): Ditto.
5793         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
5794         (TARGET_GET_RAW_RESULT_MODE): Define.
5795         (TARGET_GET_RAW_ARG_MODE): Ditto.
5796
5797 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5798
5799         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
5800         for newer Solaris 10 release.
5801         (sparc_fallback_frame_state): Likewise.
5802
5803 2010-10-27  Jason Merrill  <jason@redhat.com>
5804
5805         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
5806         variables sooner.
5807
5808 2010-10-27  Jie Zhang  <jie@codesourcery.com>
5809             Maxim Kuvyrkov  <maxim@codesourcery.com>
5810
5811         * haifa-sched.c (ISSUE_POINTS): Remove.
5812         (max_issue): Don't issue more than issue_rate instructions.
5813
5814 2010-10-27  Ian Lance Taylor  <iant@google.com>
5815
5816         PR target/46197
5817         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
5818         (split_stack_return): Replace UNSPEC_STACK_CHECK with
5819         UNSPECV_SPLIT_STACK_RETURN.
5820
5821 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
5822
5823         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
5824
5825         * config/i386/i386.c (block_info): New.
5826         (BLOCK_INFO): Likewise.
5827         (call_avx256_state): Likewise.
5828         (check_avx256_stores): Likewise.
5829         (move_or_delete_vzeroupper_2): Likewise.
5830         (move_or_delete_vzeroupper_1): Likewise.
5831         (move_or_delete_vzeroupper): Likewise.
5832         (use_avx256_p): Likewise.
5833         (function_pass_avx256_p): Likewise.
5834         (flag_opts): Add -mvzeroupper.
5835         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
5836         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
5837         is disabled.
5838         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
5839         generate vzeroupper.
5840         (init_cumulative_args): Add an int to indicate caller.  Set
5841         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
5842         based on return type.
5843         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
5844         caller_pass_avx256_p based on argument type.
5845         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
5846         is used, but not returned by caller.
5847         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
5848         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
5849         is used.
5850         (ix86_minimum_alignment): Likewise.
5851         (ix86_expand_special_args_builtin): Set target to
5852         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
5853         (ix86_reorg): Run the vzeroupper optimization if needed.
5854
5855         * config/i386/i386.h (ix86_args): Add caller.
5856         (INIT_CUMULATIVE_ARGS): Updated.
5857         (machine_function): Add use_vzeroupper_p, use_avx256_p,
5858         caller_pass_avx256_p, caller_return_avx256_p,
5859         callee_pass_avx256_p and callee_return_avx256_p.
5860
5861         * config/i386/i386.opt (-mvzeroupper): New.
5862
5863         * config/i386/predicates.md (vzeroupper_operation): Removed.
5864
5865         * config/i386/sse.md (avx_vzeroupper): Removed.
5866         (*avx_vzeroupper): Removed.
5867         (avx_vzeroupper): New.
5868
5869         * doc/invoke.texi: Document -mvzeroupper.
5870
5871 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5872
5873         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
5874         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
5875         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
5876
5877 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5878             Olivier Hainque  <hainque@adacore.com>
5879
5880         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
5881         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
5882         fs->signal_frame instead.
5883
5884 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5885
5886         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
5887         parsing of RID_COPIES and RID_IVAR.
5888
5889 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5890
5891         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
5892         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
5893         Do not use objc_set_property_attr, but use local variables
5894         instead.  Detect repeated usage of setter, getter and ivar
5895         attributes.  Improved error processing when a setter name does not
5896         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
5897         that the token is a keyword.  Updated call to
5898         objc_add_property_declaration.
5899
5900 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5901
5902         * c-parser.c (c_parser_objc_at_property): Renamed to
5903         c_parser_objc_at_property_declaration.  Updated calls to
5904         objc_add_property_variable, now objc_add_property_declaration.
5905         Code rewritten to be much more robust in recovering from syntax
5906         errors.  Added comments.
5907         (c_parser_objc_property_attrlist): Removed.
5908         (c_parser_external_declaration): Updated calls to
5909         c_parser_objc_at_property, now
5910         c_parser_objc_at_property_declaration.
5911         (c_parser_objc_methodprotolist): Same change.
5912
5913 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5914
5915         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
5916
5917 2010-10-26  Jan Hubicka  <jh@suse.cz>
5918
5919         * ipa.c (process_references): Enqueue all referenced nodes;
5920         mark as reachable only non-external nodes.
5921         (cgraph_remove_unreachable_nodes): All referenced nodes should
5922         be enqueued; remove bogues node->needed check.
5923
5924 2010-10-26  Jan Hubicka  <jh@suse.cz>
5925
5926         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
5927         to represent OMP.
5928
5929 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5930
5931         * config/i386/i386.md (split_stack_return): Replace
5932         unspec_volatile with unspec.
5933
5934 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
5935
5936         * doc/install.texi: Fix typo in --with-sysroot description.
5937
5938 2010-10-26  Jan Hubicka  <jh@suse.cz>
5939
5940         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
5941         Use info provided by linker plugin.
5942
5943 2010-10-26  Jason Merrill  <jason@redhat.com>
5944
5945         * varasm.c (constructor_static_from_elts_p): Don't require a
5946         CONSTRUCTOR to have elements to be suitable for static
5947         initialization.  Allow ARRAY_TYPE as well.
5948
5949 2010-10-26  Jan Hubicka  <jh@suse.cz>
5950
5951         PR middle-end/45736
5952         * cgraph.c (cgraph_set_readonly_flag): Rename to...
5953         (cgraph_set_const_flags) ... this one; get also looping argument;
5954         clear constructor/destructor flags.
5955         (cgraph_set_pure_flag): Likewise.
5956         (cgraph_set_looping_const_or_pure_flag): Remove.
5957         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
5958         to optimize away static ctors/dtors; it does not work on inline clones;
5959         external functions can always be rmeoved.
5960         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
5961         inline clones; in LTO external functions always can go.
5962         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
5963         (cgraph_mark_address_taken_node): Assert that we are not taking
5964         address of inline clone.
5965         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
5966         external functions.
5967         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
5968         address taken.
5969         (ipcp_initialize_node_lattices): Only local functions can be
5970         handled without cloning.
5971         * cgraph.h (cgraph_set_readonly_flag,
5972         cgraph_set_looping_const_or_pure_flag): Remove.
5973         (cgraph_set_const_flag): Declare.
5974         (cgraph_set_pure_flag): Update.
5975         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
5976         flags setting code.
5977         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
5978         look at inline clones; fix handling of external definitions.
5979         (cgraph_postorder): Do not look at inline clones in the first pass.
5980         (function_and_variable_visibility): Drop constructors/destructor
5981         flags at pure and const functions.
5982         * tree-profile.c (tree_profiling): Update.
5983         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
5984         address taken; external functions do not account to whole program size.
5985         (cgraph_decide_inlining): Likewise; do not try to inline
5986         functions already inlined.
5987
5988 2010-10-26  Jie Zhang  <jie@codesourcery.com>
5989
5990         * doc/invoke.texi: Improve documentation of
5991         -fstrict-volatile-bitfields.
5992
5993 2010-10-26  Ira Rosen  <irar@il.ibm.com>
5994
5995         PR tree-optimization/46167
5996         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
5997         is basic block for the statement.
5998
5999 2010-10-26  Paul Koning  <ni1d@arrl.net>
6000
6001         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
6002         current definition of struct_real_format.
6003
6004 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6005
6006         PR target/44948
6007         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
6008         (ix86_function_arg_boundary): Always align parameters on stack
6009         in 64bit and align parameters with alignment >= 16byte on stack
6010         in 32bit.  Warn alignment change.
6011
6012 2010-10-26  Ian Lance Taylor  <iant@google.com>
6013
6014         PR middle-end/45687
6015         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
6016         offset.
6017
6018 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
6019
6020         Implement opaque-enum-specifiesr for C++0x
6021         * tree.h (ENUM_IS_OPAQUE): New.
6022         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
6023
6024 2010-10-26  Jie Zhang  <jie@codesourcery.com>
6025
6026         * stor-layout.c (layout_decl): Use the field's type to
6027         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
6028         * config/arm/arm.c (arm_override_options): Default to
6029         -fstrict-volatile-bitfields.
6030
6031 2010-10-25  Paul Koning  <ni1d@arrl.net>
6032
6033         * config/pdp11/pdp11.md: Add define_constants for register
6034         numbers, branch offset limits.
6035         * config/pdp11/pdp11.c: Use named constants instead of numbers.
6036         * config/pdp11.pdp11.h: Ditto.
6037
6038 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6039
6040         * configure.ac: Use $cpu_type instead of $target to define the nop.
6041         * configure: Regenerate.
6042
6043 2010-10-25  Jie Zhang  <jie@codesourcery.com>
6044
6045         * combine.c (try_combine): If insns need to be kept around, check that
6046         they can be copied in the merged instruction.
6047
6048 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6049
6050         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
6051         has been modified.
6052         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
6053         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
6054         it has been modified.
6055
6056 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6057
6058         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
6059
6060 2010-10-24  Paul Koning  <ni1d@arrl.net>
6061
6062         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
6063         * config/pdp11/pdp11.c (output_jump): Ditto.
6064
6065 2010-10-24  Ian Lance Taylor  <iant@google.com>
6066
6067         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
6068
6069 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6070
6071         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
6072         least one insn with a locus corresponding to an edge's goto_locus,
6073         disregard non-fallthru edges to the exit block and merge the blocks
6074         created for the same goto_locus.
6075
6076 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
6077
6078         * gcc.c (n_switches_alloc_debug_check): New.
6079         (set_option_handlers): New.
6080         (process_command): Use set_option_handlers.
6081         (do_self_spec): Pass spec-generated options through option handlers.
6082         (main): Also save and restore n_switches_alloc when swapping
6083         switch arrays.
6084
6085 2010-10-23  Richard Henderson  <rth@redhat.com>
6086
6087         PR target/46144
6088         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
6089         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
6090         Honor matching operands when splitting to XOR.
6091
6092 2010-10-23  Ian Lance Taylor  <iant@google.com>
6093
6094         * tree-vrp.c (extract_range_from_binary_expr): If
6095         flag_non_call_exceptions don't eliminate division by zero.
6096         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
6097
6098 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
6099
6100         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
6101         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
6102         __ORDER_PDP_ENDIAN__.
6103         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6104         (struct DWstruct): Define based on __BYTE_ORDER__.
6105         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6106         (struct INTstruct): Define based on __BYTE_ORDER__.
6107         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6108         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
6109         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
6110         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6111         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6112         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6113         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6114         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6115         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6116         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6117         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6118         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6119         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6120         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6121         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6122         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6123         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6124         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6125         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6126         * doc/tm.texi: Regenerate.
6127         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
6128         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
6129
6130 2010-10-23  Jie Zhang  <jie@codesourcery.com>
6131
6132         PR rtl-optimization/37360
6133         * config/mips/mips.c (cached_can_issue_more): New local variable.
6134         (mips_sched_reorder_1): New.
6135         (mips_sched_reorder): Use mips_sched_reorder_1.
6136         (mips_sched_reorder2): New.
6137         (mips_variable_issue): Set cached_can_issue_more.
6138         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
6139         instead of mips_sched_reorder.
6140
6141         Revert:
6142         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
6143         PR rtl-optimization/37360
6144         * haifa-sched.c (max_issue): Do not assert that we never issue more
6145         insns than issue_rate.  Add comment.
6146
6147 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
6148
6149         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
6150         location info of the expression.
6151
6152 2010-10-22  DJ Delorie  <dj@redhat.com>
6153
6154         * doc/extend.texi (Named Address Spaces): Document the M32C named
6155         address space.
6156
6157         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
6158         __far address space.
6159         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
6160         "__far" address space for R8C and M16C processor variants.
6161         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
6162         (far_addr_space_p): New.
6163         (encode_pattern_1): Add sign and zero extend support.
6164         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
6165         (m32c_extra_constraint_p2): Add SF constraint.
6166         (m32c_legitimate_address_p): Support __far addresses.
6167         (m32c_addr_space_pointer_mode): New.
6168         (m32c_addr_space_address_mode): New.
6169         (m32c_addr_space_legitimate_address_p): New.
6170         (m32c_addr_space_legitimize_address): New.
6171         (m32c_addr_space_subset_p): New.
6172         (m32c_addr_space_convert): New.
6173         (conversions): Add __far operand patterns.
6174         (m32c_prepare_move): Force constants into registers for __far moves.
6175         (m32c_split_move): __far moves are always split.
6176         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
6177         * config/m32c/mov.md (mov<mode>_far_op1): New.
6178         (mov<mode>_far_op2): New.
6179         (movqi_op): Add __far (SF) support.
6180         (movhi_op): Likewise.
6181         (movsi_splittable): Split A1A0 also.
6182
6183 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6184             Andrew Pinski  <pinskia@gmail.com>
6185
6186         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
6187         * doc/extend.texi: New paragraph
6188
6189 2010-10-22  Paul Koning  <ni1d@arrl.net>
6190
6191         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
6192
6193 2010-10-22  DJ Delorie  <dj@redhat.com>
6194
6195         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
6196
6197 2010-10-22  Paul Koning  <ni1d@arrl.net>
6198
6199         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
6200
6201 2010-10-22  Richard Henderson  <rth@redhat.com>
6202
6203         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
6204         cases for __builtin_fma and __builtin_fmaf.
6205
6206 2010-10-22  Richard Henderson  <rth@redhat.com>
6207
6208         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
6209         NEG+USE for vectors as well.
6210         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
6211         and splitter.
6212
6213 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6214
6215         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
6216         SWITCH_CURTAILS_COMPILATION): Remove.
6217         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
6218         * doc/tm.texi: Regenerate.
6219         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
6220
6221 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6222
6223         * config/i386/bdver1.md: New file.
6224         * config/i386/i386.md (include "bdver1.md"): Invoke the
6225         pipeline description for bdver1.
6226         (x86_sahf_1): Add "bdver1_decode" attribute.
6227         (*cmpfp_i_mixed): Likewise.
6228         (*cmpfp_i_sse): Likewise.
6229         (*cmpfp_i_i387): Likewise.
6230         (*cmpfp_iu_mixed): Likewise.
6231         (*cmpfp_iu_sse): Likewise.
6232         (*cmpfp_iu_387): Likewise.
6233         (*swap<mode>,*swap<mode>_1): Likewise.
6234         (fixuns_trunc<mode>hi2): Likewise.
6235         (fix_trunc<mode>si_sse): Likewise.
6236         (x86_fnstcw_1): Likewise.
6237         (x86_fldcw_1): Likewise.
6238         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
6239         (*floatsi<mode>2_vector_mixed): Likewise.
6240         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
6241         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
6242         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
6243         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
6244         (*floatsi<mode>2_vector_sse): Likewise.
6245         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
6246         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
6247         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
6248         (*mul<mode>3_1): Likewise.
6249         (*mulsi3_1_zext): Likewise.
6250         (*mulhi3_1): Likewise.
6251         (*mulqi3_1): Likewise.
6252         (*<u>mul<mode><dwi>3_1): Likewise.
6253         (*<u>mulqihi3_1): Likewise.
6254         (*<s>muldi3_highpart_1): Likewise.
6255         (*<s>mulsi3_highpart_1): Likewise.
6256         (*<s>mulsi3_highpart_zext): Likewise.
6257         (x86_64_shld): Likewise.
6258         (x86_shld): Likewise.
6259         (x86_64_shrd): Likewise.
6260         (x86_shrd): Likewise.
6261         (sqrtxf2): Likewise.
6262         (sqrt_extend<mode>xf2_i387): Likewise.
6263         (*sqrt<mode>2_sse): Likewise.
6264         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
6265         (sse_cvtsi2ssq): Likewise.
6266         (sse_cvtss2si): Likewise.
6267         (sse_cvtss2si_2): Likewise.
6268         (sse_cvtss2siq): Likewise.
6269         (sse_cvtss2siq_2): Likewise.
6270         (sse_cvttss2si): Likewise.
6271         (sse_cvttss2siq): Likewise.
6272         (sse2_cvtpi2pd): Likewise.
6273         (sse2_cvttpd2pi): Likewise.
6274         (sse2_cvtsi2sd): Likewise.
6275         (sse2_cvtsi2sdq): Likewise.
6276         (sse2_cvtsd2si): Likewise.
6277         (sse2_cvtsd2si_2): Likewise.
6278         (sse2_cvtsd2siq): Likewise.
6279         (sse2_cvtsd2siq_2): Likewise.
6280         (sse2_cvttsd2si): Likewise.
6281         (sse2_cvttsd2siq): Likewise.
6282         (*sse2_cvtpd2dq): Likewise.
6283         (*sse2_cvttpd2dq): Likewise.
6284         (sse2_cvtsd2ss): Likewise.
6285         (sse2_cvtss2sd): Likewise.
6286         (*sse2_cvtpd2ps): Likewise.
6287         (sse2_cvtps2pd): Likewise.
6288
6289 2010-10-22  Richard Guenther  <rguenther@suse.de>
6290
6291         PR middle-end/46137
6292         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
6293         remove the virtual operands if they are not needed.
6294
6295 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6296
6297         * config/i386/i386.c (processor_costs bdver1_cost): Update
6298         insn costs and architectural parameters for bdver1.
6299
6300 2010-10-22  Richard Guenther  <rguenther@suse.de>
6301
6302         * gimple.h (gimple_register_canonical_type): Declare.
6303         * gimple.c (gimple_canonical_types): New global hashtable.
6304         (struct gimple_type_leader_entry_s): New type.
6305         (gimple_type_leader): New global cache.
6306         (gimple_lookup_type_leader): New function.
6307         (gtc_visit): Query the proper cache.
6308         (gimple_types_compatible_p): Likewise.
6309         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
6310         (gimple_canonical_type_eq): New function.
6311         (gimple_register_canonical_type): Likewise.
6312         (print_gimple_types_stats): Adjust for gimple_canonical_types.
6313         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
6314         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
6315         gimple_types_compatible_p for LTO.
6316
6317 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
6318
6319         PR target/46098
6320         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
6321         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
6322         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
6323         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
6324         (<sse>_movu<ssemodesuffix>): New expander.
6325         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
6326         (avx_movdqu<avxmodesuffix>): New expander.
6327         (*sse2_movdqu): Rename from sse2_movdqu.
6328         (sse2_movdqu): New expander.
6329
6330 2010-10-22  Richard Guenther  <rguenther@suse.de>
6331
6332         PR tree-optimization/45720
6333         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
6334         Handle negative step.
6335         (vect_enhance_data_refs_alignment): Likewise.
6336         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
6337         (vect_create_cond_for_align_checks): Likewise.
6338         (vect_create_cond_for_alias_checks): Likewise.
6339
6340 2010-10-22  Ira Rosen  <irar@il.ibm.com>
6341
6342         PR tree-optimization/46126
6343         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
6344         vectorizable_shift in case of basic block vectorization.
6345
6346 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6347
6348         * target.h (enum opt_levels, struct default_options): New.
6349         * target.def (handle_ofast): Remove hook.
6350         (target_option.optimization): Change to
6351         target_option.optimization_table.
6352         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
6353         TARGET_OPTION_OPTIMIZATION_TABLE.
6354         (CAN_DEBUG_WITHOUT_FP): Remove.
6355         * doc/tm.texi: Regenerate.
6356         * opts.c (maybe_default_option, maybe_default_options,
6357         default_options_table): New.
6358         (default_options_optimization): Take extra parameters.  Don't
6359         assert that global_options and global_options_set are in use.  Use
6360         maybe_default_options.
6361         (decode_options): Pass extra parameters to
6362         default_options_optimization.
6363         * common.opt (falign-loops): Use value 0 with Var.
6364         (frerun-cse-after-loop, ftree-ter): Remove Init.
6365         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
6366         TARGET_OPTION_OPTIMIZATION): Remove.
6367         * targhooks.c (empty_optimization_table): New.
6368         * targhooks.h (empty_optimization_table): Declare.
6369         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
6370         * config/alpha/alpha.c (alpha_option_optimization_table,
6371         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6372         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
6373         * config/arm/arm.c (arm_option_optimization: Change to
6374         arm_option_optimization_table.
6375         (TARGET_OPTION_OPTIMIZATION): Change to
6376         TARGET_OPTION_OPTIMIZATION_TABLE.
6377         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
6378         * config/avr/avr.c (avr_option_optimization_table,
6379         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6380         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
6381         * config/cris/cris.c (cris_option_optimization): Change to
6382         cris_option_optimization_table.
6383         (TARGET_OPTION_OPTIMIZATION): Change to
6384         TARGET_OPTION_OPTIMIZATION_TABLE.
6385         * config/crx/crx.c (crx_option_optimization): Change to
6386         crx_option_optimization_table.
6387         (TARGET_OPTION_OPTIMIZATION): Change to
6388         TARGET_OPTION_OPTIMIZATION_TABLE.
6389         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6390         * config/fr30/fr30.c (fr30_option_optimization_table,
6391         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6392         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
6393         * config/frv/frv.c (frv_option_optimization_table,
6394         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6395         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
6396         * config/h8300/h8300.c (h8300_option_optimization): Change to
6397         h8300_option_optimization_table.
6398         (TARGET_OPTION_OPTIMIZATION): Change to
6399         TARGET_OPTION_OPTIMIZATION_TABLE.
6400         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6401         * config/i386/i386.c (ix86_option_optimization): Change to
6402         ix86_option_optimization_table.
6403         (TARGET_OPTION_OPTIMIZATION): Change to
6404         TARGET_OPTION_OPTIMIZATION_TABLE.
6405         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
6406         as initializer.
6407         * config/ia64/ia64.c (ia64_option_optimization): Change to
6408         ia64_option_optimization_table.
6409         (TARGET_OPTION_OPTIMIZATION): Change to
6410         TARGET_OPTION_OPTIMIZATION_TABLE.
6411         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
6412         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
6413         initializer.
6414         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
6415         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6416         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6417         * config/lm32/lm32.c (lm32_option_optimization_table,
6418         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6419         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
6420         * config/m32r/m32r.c (m32r_option_optimization): Change to
6421         m32r_option_optimization_table.
6422         (TARGET_OPTION_OPTIMIZATION): Change to
6423         TARGET_OPTION_OPTIMIZATION_TABLE.
6424         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
6425         CAN_DEBUG_WITHOUT_FP): Remove.
6426         * config/mcore/mcore.c (mcore_option_optimization): Change to
6427         mcore_option_optimization_table.
6428         (TARGET_OPTION_OPTIMIZATION): Change to
6429         TARGET_OPTION_OPTIMIZATION_TABLE.
6430         * config/mep/mep.c (mep_option_optimization): Change to
6431         mep_option_optimization_table.
6432         (TARGET_OPTION_OPTIMIZATION): Change to
6433         TARGET_OPTION_OPTIMIZATION_TABLE.
6434         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
6435         * config/microblaze/microblaze.c
6436         (microblaze_option_optimization_table,
6437         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6438         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
6439         * config/mips/mips.c (mips_option_optimization_table,
6440         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6441         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
6442         * config/mmix/mmix.c (mmix_option_optimization): Change to
6443         mmix_option_optimization_table.
6444         (TARGET_OPTION_OPTIMIZATION): Change to
6445         TARGET_OPTION_OPTIMIZATION_TABLE.
6446         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
6447         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
6448         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6449         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6450         * config/pa/pa.c (pa_option_optimization_table,
6451         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6452         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6453         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
6454         pdp11_option_optimization_table.
6455         (TARGET_OPTION_OPTIMIZATION): Change to
6456         TARGET_OPTION_OPTIMIZATION_TABLE.
6457         * config/picochip/picochip.c (picochip_option_optimization_table,
6458         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6459         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
6460         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
6461         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6462         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6463         * config/rx/rx.c (rx_option_optimization_table,
6464         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6465         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6466         * config/s390/s390.c (s390_option_optimization): Change to
6467         s390_option_optimization_table.
6468         (s390_option_override): Update comment.
6469         (TARGET_OPTION_OPTIMIZATION): Change to
6470         TARGET_OPTION_OPTIMIZATION_TABLE.
6471         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
6472         * config/score/score.c (score_option_optimization_table,
6473         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6474         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
6475         * config/sh/sh.c (sh_option_optimization): Change to
6476         sh_option_optimization_table.
6477         (TARGET_OPTION_OPTIMIZATION): Change to
6478         TARGET_OPTION_OPTIMIZATION_TABLE.
6479         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
6480         (sh_option_override, expand_block_move, multcosts, find_barrier,
6481         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
6482         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
6483         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
6484         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
6485         instead of TARGET_SMALLCODE.
6486         * config/sh/sh.opt (mspace): Make into an alias for -Os.
6487         * config/sparc/sparc.c (sparc_option_optimization_table,
6488         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6489         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
6490         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
6491         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6492         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
6493         * config/v850/v850.c (v850_option_optimization): Change to
6494         v850_option_optimization_table.
6495         (TARGET_OPTION_OPTIMIZATION): Change to
6496         TARGET_OPTION_OPTIMIZATION_TABLE.
6497         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
6498         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
6499         xtensa_option_optimization_table.
6500         (TARGET_OPTION_OPTIMIZATION): Change to
6501         TARGET_OPTION_OPTIMIZATION_TABLE.
6502         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6503
6504 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
6505
6506         Based on the CFString implementation in FSF apple/trunk branch.
6507
6508         * target.def (objc_construct_string): New Hook.
6509         * doc/tm.texi (objc_construct_string): Document.
6510         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
6511         * config/t-darwin: Amend build rules for darwin.o.
6512         * config/darwin.opt: Add cfstrings flags.
6513         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
6514         (darwin_objc_construct_string): New.
6515         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
6516         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
6517         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
6518         (darwin_fold_builtin): Likewise.
6519         (darwin_build_constant_cfstring): Likewise.
6520         (darwin_objc_construct_string): Likewise.
6521         (darwin_cfstring_p): Likewise.
6522         (darwin_enter_string_into_cfstring_table): Likewise.
6523         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
6524         * config/darwin.c (darwin_running_cxx): New var.
6525         (machopic_select_section): Return cfstring_constant_object_section.
6526         (darwin_override_options): Set darwin_running_cxx.
6527         (add_builtin_field_decl): New.
6528         (darwin_init_cfstring_builtins): New.
6529         (darwin_build_constant_cfstring): New.
6530         (darwin_fold_builtin): New.
6531         (cfstring_hash): New.
6532         (cfstring_eq): New.
6533         (darwin_enter_string_into_cfstring_table): New.
6534         * config/darwin-sections.def (cfstring_constant_object_section): New.
6535         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
6536         (TARGET_OBJC_CONSTRUCT_STRING): Define.
6537
6538 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6539
6540         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
6541         TYPE_STUB_DECL instead of TREE_CHAIN.
6542         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
6543         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
6544         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
6545         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
6546         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
6547         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
6548         Likewise.
6549         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
6550
6551 2010-10-22  Jie Zhang  <jie@codesourcery.com>
6552
6553         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
6554         (copy_blkmode_from_reg): Likewise.
6555         (read_complex_part): Likewise.
6556         (expand_expr_real_1): Calculate packedp and pass it to
6557         extract_bit_field.
6558         * expr.h (extract_bit_field): Update declaration.
6559         * calls.c (store_unaligned_arguments_into_pseudos): Update call
6560         to extract_bit_field.
6561         * expmed.c (extract_fixed_bit_field): Update calls to
6562         extract_fixed_bit_field.
6563         (store_split_bit_field): Likewise.
6564         (extract_bit_field_1): Add new argument packedp.
6565         (extract_bit_field): Add new argument packedp.
6566         (extract_fixed_bit_field): Add new argument packedp and let
6567         packed attribute override volatile.
6568         * stmt.c (expand_return): Update call to extract_bit_field.
6569
6570 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6571
6572         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
6573
6574 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6575
6576         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
6577         of gcc_checking_assert.
6578         * sel-sched.c (code_motion_process_successors): Likewise.
6579
6580 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
6581
6582         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
6583         when stopping because of a different locus on edge or insn.
6584         (try_optimize_cfg): Add comment.
6585         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
6586         block is a forwarder block, propagate locus on the edge.
6587         (cfg_layout_merge_blocks): Likewise.
6588
6589 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
6590
6591         PR target/45946
6592         * config/i386/i386.md (*pushti2): New insn pattern.
6593         (pushti2 splitter): New insn splitter.
6594         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
6595         DWI mode iterator.
6596
6597 2010-10-21  Paul Koning  <ni1d@arrl.net>
6598
6599         * config/pdp11/pdp11-protos.md (arith_operand,
6600         const_immediate_operand, expand_shift_operand,
6601         immediate15_operand): Delete
6602         * config/pdp11/pdp11.c: Ditto.
6603         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
6604         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
6605         EXTRA_CONSTRAINT): Delete.
6606         * config/pdp11/pdp11.md (various): Use standard constraints
6607         instead of removed ones.
6608         * config/pdp11/constraints.md: New file.
6609         * config/pdp11/predicates.md: New file.
6610
6611 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
6612
6613         PR c/45834
6614         * alias.c (true_dependence_1): Remove obsolete check for QImode.
6615         (may_alias_p): Ditto.
6616
6617 2010-10-21  Martin Jambor  <mjambor@suse.cz>
6618
6619         PR tree-optimization/45875
6620         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
6621
6622 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6623
6624         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
6625         variables.
6626         (create_new_def_for): Likewise.
6627
6628 2010-10-21  Nick Clifton  <nickc@redhat.com>
6629
6630         * config/mn10300/mn10300.c: Fold code to 80-character width.
6631         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6632         MEM, CONST_INT and CONST_DOUBLE.
6633         (targetm): Move initialization to end of file.
6634         (print_operand): Rename to mn10300_print_operand.
6635         (print_operand_address): Rename to mn10300_print_operand_address.
6636         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
6637         (expand_prologue): Rename to mn10300_expand_prologue.
6638         (expand_epilogue): Rename to mn10300_expand_epilogue.
6639         (initial_offset): Rename to mn10300_initial_offset.
6640         (function_arg): Rename to mn10300_function_arg.
6641         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
6642         (symbolic_operand): Rename to mn10300_symbolic_operand.
6643         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
6644         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
6645         * config/mn10300/mn10300-protos.h: Update prototypes.
6646         * config/mn10300/mn10300.h: Fold code to 80-character width.
6647         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6648         MEM, CONST_INT and CONST_DOUBLE.
6649         (CPP_SPEC): Move to...
6650         (TARGET_CPU_CPP_BUILTINS): ... here.
6651         * config/mn10300/mn10300.md: Fold code to 80-character width.
6652         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6653         MEM, CONST_INT and CONST_DOUBLE.
6654
6655 2010-10-21  Ira Rosen  <irar@il.ibm.com>
6656
6657         PR tree-optimization/46049
6658         PR tree-optimization/46052
6659         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
6660         (vect_get_slp_defs): Add arguments.
6661         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
6662         operands to vect_get_slp_defs.
6663         (vectorizable_reduction): Fix comment, pass scalar operands to
6664         vect_get_slp_defs.
6665         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
6666         type to determine number of units in the created vector.
6667         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
6668         (vectorizable_conversion): Fix comment.
6669         (vectorizable_shift): New function.
6670         (vectorizable_operation): Move code that handles shifts to
6671         vectorizable_shift.
6672         (vectorizable_type_demotion): Fix comment, pass scalar operands to
6673         vect_get_slp_defs.
6674         (vectorizable_type_promotion, vectorizable_store): Likewise.
6675         (vectorizable_condition): Fix comment.
6676         (vect_analyze_stmt): Call vectorizable_shift.
6677         (vect_transform_stmt): Likewise.
6678         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
6679         Use it as the operand to create vectors for, except reduction
6680         initial definition and store.  Use operands type.
6681         (vect_get_slp_defs): Add new arguments.  Pass them to
6682          vect_get_constant_vectors.
6683
6684 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6685
6686         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
6687         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
6688         * cfghooks.c (fixup_reorder_chain): Likewise.
6689         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
6690         * cgraph.c (cgraph_add_thunk): Likewise.
6691         (cgraph_create_edge_1): Likewise.
6692         (cgraph_create_virtual_clone): Likewise.
6693         * ddg.c (add_cross_iteration_register_deps): Likewise.
6694         * dwarf2out.c (modified_type_die): Likewise.
6695         * emit-rtl.c (set_mem_alias_set): Likewise.
6696         * ggc-zone.c (zone_allocate_marks): Likewise.
6697         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
6698         * gimple.c (iterative_hash_gimple_type): Likewise.
6699         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
6700         (create_single_exit_edge): Likewise.
6701         * haifa-sched.c (choose_ready): Likewise.
6702         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6703         * passes.c (execute_todo): Likewise.
6704         * sched-ebb.c (begin_schedule_ready): Likewise.
6705         * sel-sched.c (code_motion_process_successors): Likewise.
6706         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
6707         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
6708         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
6709         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
6710         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
6711         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
6712         (ssa_conflicts_add): Likewise.
6713         * tree-ssa-copy.c (replace_exp): Likewise.
6714         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
6715         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
6716         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
6717         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
6718         (compute_antic): Likewise.
6719         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
6720         (add_dependence): Likewise.
6721         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
6722         * tree-vrp.c (supports_overflow_infinity): Likewise.
6723         (make_overflow_infinity, negative_overflow_infinity): Likewise.
6724         (avoid_overflow_infinity, register_new_assert_for): Likewise.
6725         (process_assert_insertions_for): Likewise.
6726         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
6727         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
6728         (intersect_loc_chains, variable_merge_over_cur): Likewise.
6729
6730 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6731
6732         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
6733         * reload1.c (has_nonexceptional_receiver): Likewise.
6734         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
6735         (create_new_def_for): Likewise.
6736         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
6737         (merge_phi_nodes): Likewise.
6738         (has_abnormal_incoming_edge_p): Delete.
6739
6740 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
6741
6742         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
6743
6744 2010-10-21  Richard Guenther  <rguenther@suse.de>
6745             Michael Matz  <matz@suse.de>
6746
6747         PR tree-optimization/45764
6748         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
6749         Adjust initial misalignment for negative DR_STEP.
6750         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
6751         do not have the same alignment over the whole iteration domain.
6752
6753 2010-10-21  Richard Guenther  <rguenther@suse.de>
6754
6755         PR tree-optimization/46111
6756         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
6757
6758 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6759
6760         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
6761
6762 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6763
6764         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
6765         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
6766
6767 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6768
6769         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
6770         signal_frame.
6771         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
6772
6773 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6774
6775         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
6776         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
6777
6778 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6779
6780         * basic-block.h (find_fallthru_edge): Define.
6781         * cfgcleanup.c (merge_blocks_move): Use it.
6782         (try_crossjump_bb): Likewise.
6783         * cfglayout.c (fixup_reorder_chains): Likewise.
6784         (fixup_fallthru_exit_predecessor): Likewise.
6785         * cfgrtl.c (rtl_split_edge): Likewise.
6786         (rtl_verify_flow_info): Likewise.
6787         * function.c (thread_prologue_and_epilogue_insns): Likewise.
6788         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
6789         * ifcvt.c (block_fallthru): Likewise.
6790         * reload1.c (fixup_abnormal_edges): Likewise.
6791         * sched-ebb.c (being_schedule_ready): Likewise.
6792         (schedule_ebb): Likwise.
6793         * sched-rgn.c (find_single_block_region): Likewise.
6794         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
6795         * tree-complex.c (expand_complex_move): Likewise.
6796         * sched-int.h (find_fallthru_edge): Rename to...
6797         (find_fallthru_edge_from): ...this.
6798         * haifa-sched.c (find_fallthru_edge): Rename to...
6799         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
6800         (init_before_recovery): Call find_fallthru_edge_from.
6801         * sel-sched-ir.c (merge_fences): Likewise.
6802         * sel-sched.c (in_fallthru_bb_p): Likewise.
6803         (move_cond_jump): Likewise.
6804
6805 2010-10-20  Paul Koning  <ni1d@arrl.net>
6806
6807         * config/pdp11/pdp11.md (various): Fix conditions on a number of
6808         insn to check for target 11/40 or higher.
6809
6810 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6811
6812         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
6813         bool instead of a tree.
6814         (c_parser_objc_method_decl): Added bool argument.  Updated call to
6815         objc_build_method_signature.
6816         (c_parser_objc_method_definition): Do not call
6817         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
6818         c_parser_objc_method_decl and objc_start_method_definition.
6819         (c_parser_objc_methodproto): Do not call objc_set_method_type.
6820         Updated calls to c_parser_objc_method_type,
6821         c_parser_objc_method_decl and objc_add_method_declaration.
6822
6823 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
6824
6825         PR tree-optimization/45919
6826         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
6827         array members.
6828
6829         PR tree-optimization/46066
6830         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
6831         instead of gsi_last_bb.
6832
6833 2010-10-20  DJ Delorie  <dj@redhat.com>
6834
6835         * config/m32c/m32c.c (m32c_option_override): Always disable
6836         function-cse in 16-bit mode.  Indirect calls are always worse than
6837         direct calls as there is no 16-bit indirect call opcode.
6838         (m32c_override_options_after_change): New, likewise.
6839
6840 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6841
6842         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
6843         emitting the conditional move in the inner mode of the SUBREG.
6844
6845 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
6846
6847         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
6848         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
6849         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6850         (ia64_preferred_reload_class): Make static.  Change rclass argument
6851         and result types from enum reg_class to reg_class_t.
6852
6853 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
6854
6855         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
6856         call for single operand expression.
6857
6858 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6859
6860         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
6861         if there is a call statement to pure or const function in the block.
6862
6863 2010-10-20  Paul Koning  <pkoning@equallogic.com>
6864
6865         Fix several build errors for pdp11 target.
6866         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
6867         (cbranchdf4): Conditional on TARGET_FPU.
6868         (movdf): Ditto; correct alternatives check.
6869         (movmemhi): Fix predicate and constraint.
6870         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
6871
6872 2010-10-20  Richard Guenther  <rguenther@suse.de>
6873
6874         PR lto/45667
6875         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
6876         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
6877         (verify_gimple_assign_single): Disable ADDR_EXPR type check
6878         when in LTO.
6879
6880 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
6881
6882         PR fortran/42169
6883         * ira-emit.c (store_can_be_removed_p): Return false instead of
6884         gcc_unreachable.
6885
6886 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
6887
6888         * fold-const.c (fold_binary_loc): New transformation.
6889
6890 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
6891
6892         PR target/46085
6893         * config/i386/sse.md (reduc_splus_v8sf): Updated.
6894         (reduc_splus_v4df): Likewise.
6895
6896 2010-10-20  Richard Guenther  <rguenther@suse.de>
6897
6898         PR tree-optimization/45860
6899         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
6900         conditional store replacement for non-register type stores.
6901
6902 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6903
6904         * stor-layout.c (skip_simple_constant_arithmetic): New function.
6905         (self_referential_size): Use it instead of skip_simple_arithmetic.
6906
6907 2010-10-20  Olivier Hainque  <hainque@adacore.com>
6908
6909         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
6910         If the current function calls eh_return, claim live all registers
6911         that we need to check for liveness otherwise.
6912
6913 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6914
6915         * c-decl.c (c_write_global_declarations): Call
6916         objc_write_global_declarations when compiling Objective-C.
6917         * c-lang.c (finish_file): Removed.
6918
6919 2010-10-19  DJ Delorie  <dj@redhat.com>
6920
6921         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
6922         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
6923         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
6924         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
6925         * doc/tm.texi: Regenerate.
6926         * targhooks.h (default_label_align_after_barrier_max_skip,
6927         default_loop_align_max_skip, default_label_align_max_skip,
6928         default_jump_align_max_skip): Declare.
6929         * target.def (label_align_after_barrier_max_skip): New.
6930         (loop_align_max_skip): New.
6931         (label_align_max_skip): New.
6932         (jump_align_max_skip): New.
6933         * system.h (poison): Add those macros to the list.
6934         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
6935         (LOOP_ALIGN_MAX_SKIP): Remove.
6936         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
6937         (JUMP_ALIGN_MAX_SKIP): Remove.
6938         (default_label_align_after_barrier_max_skip): New.
6939         (default_loop_align_max_skip): New.
6940         (default_label_align_max_skip): New.
6941         (default_jump_align_max_skip): New.
6942         (compute_alignments): Use the new hooks.
6943         (shorten_branches): Likewise.
6944
6945 2010-10-19  Richard Henderson  <rth@redhat.com>
6946
6947         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
6948         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
6949         (fma4i_fmadd_<mode>): New.
6950         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
6951         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
6952         standard fma patterns.
6953         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
6954         enable for FMA.
6955         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
6956         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
6957         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
6958
6959 2010-10-19  Paul Koning  <pkoning@equallogic.com>
6960
6961         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
6962         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
6963
6964 2010-10-19  Richard Henderson  <rth@redhat.com>
6965
6966         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
6967         (fmadf4, *fmsdf4, *nfmadf4): New.
6968         (fmaxf4, *fmsxf4, *nfmaxf4): New.
6969
6970 2010-10-19  Michael Eager  <eager@eagercon.com>
6971
6972         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
6973         Use sjlj unwind info for exceptions.
6974
6975 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
6976
6977         PR fortran/43414
6978         * dwarf2out.c (add_calling_convention_attribute): Flag main
6979         Fortran subroutine with DW_AT_main_subprogram.
6980
6981 2010-10-19  Nick Clifton  <nickc@redhat.com>
6982
6983         * config/rx/rx.c (rx_function_value): Small integer types are
6984         promoted to SImode.
6985         (rx_promote_function_mode): New function.
6986         (TARGET_PROMOTE_FUNCTION_MODE): Define.
6987
6988 2010-10-19  Nick Clifton  <nickc@redhat.com>
6989
6990         * config/mep/mep.c (mep_print_operand): Use
6991         targetm.strip_name_encoding.
6992         (mep_output_aligned_common): Likewise.
6993
6994 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
6995
6996         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
6997
6998 2010-10-18  Richard Henderson  <rth@redhat.com>
6999
7000         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
7001         (fma (neg a) (neg b) c) and (fma a (neg b) c).
7002
7003 2010-10-18  Richard Henderson  <rth@redhat.com>
7004
7005         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
7006         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
7007         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
7008         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
7009         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
7010         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
7011         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
7012         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
7013         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
7014         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
7015         (bdesc_multi_arg): Remove the corresponding builtins.
7016         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
7017         (UNSPEC_FMA4_FMSUBADD): Remove.
7018         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
7019         * config/i386/sse.md (FMA4MODEF4): Remove.
7020         (FMAMODE): Add.
7021         (fma<mode>4): New expander.
7022         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
7023         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
7024         (*fma4i_fmsub_<mode>): Similarly.
7025         (*fma4i_fnmadd_<mode>): Similarly.
7026         (*fma4i_fnmsub_<mode>): Similarly.
7027         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
7028         with the first operand.
7029         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
7030         of explicit arithmetic.  Macroize with AVXMODEF2P.
7031         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
7032         (xop_frcz<mode>2): Macroize with FMAMODE.
7033         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
7034         the first operand.
7035         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
7036         extra negations.
7037         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
7038         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
7039         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
7040         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
7041         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
7042         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
7043         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
7044         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
7045
7046 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
7047
7048         PR rtl-optimization/45966
7049         * combine.c (try_combine): If added_sets_2, deal with the case
7050         where i0 feeds i1 and i1 feeds i2.
7051
7052 2010-10-18  Jan Hubicka  <jh@suse.cz>
7053
7054         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
7055         preserve flags before trying to guess on visibility.
7056         (varpool_externally_visible_p): New function.
7057         (function_and_variable_visibility): Use it.
7058
7059 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7060
7061         Implemented parsing @synthesize and @dynamic for Objective-C.
7062         * c-parser.c (c_parser_external_declaration): Recognize
7063         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
7064         (c_parser_objc_at_synthesize_declaration): New.
7065         (c_parser_objc_at_dynamic_declaration): New.
7066
7067 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7068
7069         * c-parser.c (c_parser_objc_class_declaration): After finding an
7070         error, parse the whole declaration then reset parser->error.
7071
7072 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7073
7074         PR target/46041
7075         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
7076         * builtins.c (mode_has_fma): Ditto.
7077
7078 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
7079
7080         PR target/36898
7081         PR middle-end/43760
7082         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
7083
7084 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
7085
7086         * config/i386/i386.c (ix86_option_override_internal): Define and
7087         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
7088         default.
7089         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7090         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
7091
7092 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7093
7094         Merge from 'apple/trunk' branch on FSF servers.
7095         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
7096         following Objective-C change:
7097
7098         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
7099
7100         Radar 4301047
7101         * c-parse.in (objc_quals): Build objc qualifier list same way
7102         as gcc-3.3
7103
7104 2010-10-18  Jan Hubicka  <jh@suse.cz>
7105
7106         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
7107         function_and_variable_visibility): Revert accidental commit.
7108
7109 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7110
7111         Merge from 'apple/trunk' branch on FSF servers.
7112         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
7113         the following Objective-C change:
7114
7115         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
7116
7117         Radar 4204796
7118         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
7119         'volatilized' type used in a typeof operator.
7120
7121 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
7122
7123         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
7124         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
7125         rewrite modelled on gimple_purge_dead_eh_edges.
7126         (gimple_purge_all_dead_abnormal_call_edges): New function.
7127         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
7128         directly instead of through gimple_purge_dead_abnormal_call_edges.
7129         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
7130         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
7131         removed AB side-effects from one of its statements.
7132         (init_pre): Initialize need_ab_cleanup.
7133         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
7134         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
7135
7136 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7137
7138         PR c/46015
7139         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
7140         on computed goto argument.
7141
7142 2010-10-18  Richard Guenther  <rguenther@suse.de>
7143
7144         PR tree-optimization/45967
7145         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
7146         (could_have_pointers): Likewise.
7147         (handle_rhs_call, handle_const_call, handle_pure_call,
7148         find_func_aliases, intra_create_variable_infos): Remove calls to them.
7149         (struct fieldoff): Add must_have_pointers field.
7150         (type_must_have_pointers): New function.
7151         (field_must_have_pointers): Likewise.
7152         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
7153         Adjust field merging.
7154         (create_function_info_for): May-have-pointers of varinfo is
7155         almost always true.
7156         (create_variable_info_for_1): Likewise.
7157
7158 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
7159
7160         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
7161         of operands to vec_concat.
7162
7163 2010-10-18  Richard Guenther  <rguenther@suse.de>
7164
7165         PR lto/44950
7166         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
7167         also clear references to entries of it.
7168
7169 2010-10-18  Andi Kleen  <ak@linux.intel.com>
7170
7171         PR other/43448
7172         * gccbug.in: Remove.
7173         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
7174         (doc, distclean, install-common): Remove reference to gccbug.
7175         * configure: Regenerate.
7176         * configure.ac (all_outputs): Remove gccbug.
7177         * doc/configfiles.texi: Remove references to gccbug.
7178         * doc/sourcebuild.texi: Dito.
7179
7180 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7181
7182         PR middle-end/46019
7183         * fold-const.c (fold_binary_loc): If integer_pow2p has
7184         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
7185
7186 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7187             Jeremie Salvucci  <jeremie.salvucci@free.fr>
7188
7189         * gengtype.c (verbosity_level): Add variable.
7190         (set_gc_used): Count variables for verbosity.
7191         (close_output_files): Backing up files, counting written ones
7192         verbosily.
7193         (write_types): Count emitted functions for verbosity. Added
7194         debug messages.
7195         (write_enum_defn): Count structures for verbosity. Added debug
7196         messages.
7197         (gengtype_long_options): Add "verbose" & "backupdir".
7198         (print_usage): Ditto.
7199         (main): Verbose display of parsed files.
7200
7201         * gengtype.h (verbosity_level): Add declaration.
7202
7203 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7204
7205         * gengtype.c (parse_program_options): Add allocation of
7206         plugin_files, and correct test on nb_plugin_files.
7207
7208 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7209
7210         Merge from 'apple/trunk' branch on FSF servers.
7211
7212         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
7213
7214         Radar 4133425
7215         * c-decl.c (undeclared_variable): Issue diagnostic on
7216         private 'ivar' access.
7217
7218 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7219
7220         PR target/46051
7221         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
7222         generated sequence to match *avx_vperm2f128<mode>_nozero.
7223         (vec_interleave_lowv4df): Ditto.
7224         (vec_interleave_highv8sf): Ditto.
7225         (vec_interleave_lowv8sf): Ditto.
7226
7227 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
7228
7229         * libgcov.c (create_file_directory): Enable it for win32 case.
7230         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
7231         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
7232         (GCOV_PREFIX_SKIP): Likewise.
7233
7234 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7235
7236         * doc/objc.texi (GNU Objective-C runtime API): New section.
7237         (Modern GNU Objective-C runtime API): New section.
7238         (Traditional GNU Objective-C runtime API): New section.
7239         (Executing code before main): Mention that this section is
7240         specific to the GNU Objective-C runtime.
7241         (Garbage Collection): Same.
7242
7243 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7244
7245         * c-parser.c (c_parser_for_statement): Move initialization of
7246         cond and incr before if.
7247
7248 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
7249
7250         * target.def (preferred_output_reload_class): New hook.
7251         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
7252         * doc/tm.texi: Regenerate.
7253         * targhooks.c (default_preferred_output_reload_class): New function.
7254         * targhooks.h (default_preferred_output_reload_class): Declare.
7255         * reload.c (find_dummy_reload): Change rclass argument type from
7256         enum reg_class to reg_class_t. Change this_alternative array type
7257         from enum reg_class to reg_class_t.
7258         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7259         (push_reload): Change preferred_class variable type to reg_class_t.
7260         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7261         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
7262         argument type from enum reg_class to reg_class_t. Use
7263         HARD_REGISTER_NUM_P predicate.
7264         * recog.h (reg_fits_class_p): Update prototype.
7265
7266         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7267         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
7268         Remove.
7269         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
7270         static. Change regclass argument and result types from enum reg_class
7271         to reg_class_t.
7272         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7273
7274 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
7275
7276         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
7277         visibility enum, and handle @package.
7278
7279 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7280
7281         * doc/objc.texi (What you can and what you cannot do in +load):
7282         Document that sending messages to constant string objects in +load
7283         is not guaranteed to work.
7284
7285 2010-10-16  Jan Hubicka  <jh@suse.cz>
7286
7287         PR middle-end/44206
7288         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
7289         existence of refrences before removing the function.
7290
7291 2010-10-16  Jan Hubicka  <jh@suse.cz>
7292
7293         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
7294         only_called_at_startup and only_called_at_exit.
7295         (cgraph_propagate_frequency): Compute only_called_at_startup and
7296         only_called_at_exit.
7297         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
7298         only_called_at_exit.
7299         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
7300         flags.
7301         * predict.c (compute_function_frequency): Initialize the new flags.
7302
7303 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
7304
7305         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
7306         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
7307         on the bounds of its domain.
7308         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
7309
7310 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
7311
7312         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
7313         * config/avr/avr-protos.h (preferred_reload_class): Remove.
7314         * config/avr/avr.c (preferred_reload_class): Remove.
7315         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
7316         * config/pa/pa.c (emit_move_sequence): Update comment
7317         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
7318         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
7319         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
7320         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
7321         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
7322         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
7323         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
7324         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
7325         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
7326         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
7327         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
7328         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
7329         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
7330
7331 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7332
7333         * opts.c (set_fast_math_flags,
7334         set_unsafe_math_optimizations_flags): Make static.
7335         * toplev.h (set_fast_math_flags,
7336         set_unsafe_math_optimizations_flags): Remove prototypes.
7337
7338 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7339
7340         * config/arm/arm.c (arm_option_optimization): Set
7341         flag_section_anchors to 1 not 2.
7342         * config/i386/i386.c (ix86_option_override_internal): Check
7343         global_options_set.x_flag_zee and
7344         global_options_set.x_flag_omit_frame_pointer.
7345         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
7346         flag_zee to 2.
7347         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
7348         global_options_set.x_flag_omit_frame_pointer.
7349         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
7350         opts->x_flag_section_anchors to 1 not 2.
7351         * config/sh/sh.c (sh_option_optimization): Don't set
7352         flag_schedule_insns to 2.
7353         (sh_option_override): Check
7354         global_options_set.x_flag_schedule_insns.
7355         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
7356
7357 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
7358
7359         * configure.ac: Make sure inhibit_libc remains false for mingw targets
7360         as cross.
7361         * configure: Regenerated.
7362
7363 2010-10-15  Xinliang David Li  <davidxl@google.com>
7364
7365         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
7366         function.
7367         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
7368         into a recursive function.
7369
7370 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
7371
7372         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
7373         (*movdfcc_1): ditto.
7374
7375 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7376
7377         * target.def (target_option.init_struct): New hook.
7378         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
7379         * doc/tm.texi: Regenerate.
7380         * hooks.c (hook_void_gcc_optionsp): New.
7381         * hooks.h (hook_void_gcc_optionsp): Declare.
7382         * langhooks-def.h (lhd_init_options_struct): Remove.
7383         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
7384         * langhooks.c (lhd_init_options_struct): Remove.
7385         * opts.c (init_options_struct): Also call
7386         targetm.target_option.init_struct.
7387         * config/i386/i386.c (ix86_option_init_struct,
7388         TARGET_OPTION_INIT_STRUCT): New.
7389         (ix86_option_optimization): Move some settings to
7390         ix86_option_init_struct.
7391         * config/pdp11/pdp11.c (pdp11_option_init_struct,
7392         TARGET_OPTION_INIT_STRUCT): New.
7393         (pdp11_option_optimization): Move some settings to
7394         pdp11_option_init_struct.
7395         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
7396         rs6000_option_init_struct.  Use options structure pointer.
7397         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7398         * config/s390/s390.c (s390_option_init_struct,
7399         TARGET_OPTION_INIT_STRUCT): New.
7400         (s390_option_optimization): Don't set
7401         flag_asynchronous_unwind_tables here.
7402         * config/sh/sh.c (sh_option_init_struct,
7403         TARGET_OPTION_INIT_STRUCT): New.
7404         (sh_option_optimization): Don't set flag_finite_math_only here.
7405         * config/spu/spu.c (spu_option_optimization): Replace by
7406         spu_option_optimization.  Use options structure pointer.
7407         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7408
7409 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7410
7411         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
7412
7413         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
7414         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
7415         (Standard names): Document fma.
7416
7417         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
7418         __FP_FAST_FMAF, __FP_FAST_FMAL.
7419
7420         * builitns.c (expand_builtin_mathfn_ternary): New function for
7421         expanding ternary math functions, like fma.
7422         (expand_builtin): Call it for the fma builtins.
7423
7424         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
7425         ops at present.
7426
7427         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
7428         vectorizable functions to support vectorizing fma.
7429
7430         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7431         Handle fma builtins.
7432
7433         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
7434         (UNSPEC_VSX_MSUB): Ditto.
7435         (UNSPEC_VSX_NMADD): Ditto.
7436         (UNSPEC_VSX_NMSUB): Ditto.
7437         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
7438         of UNSPEC. Renumber combiner patterns.
7439         (vsx_fmsub<mode>4*): Ditto.
7440         (vsx_fnmadd<mode>4*): Ditto.
7441         (vsx_fnmsub<mode>4*): Ditto.
7442
7443         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
7444         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
7445         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
7446         (altivec_vmaddfp_1): Ditto.
7447         (altivec_vmaddfp_2): Ditto.
7448         (atlivec_mulv4sf3): Ditto.
7449         (altivec_vnmsubfp): Ditto.
7450         (altivec_vnmsubfp_1): Ditto.
7451         (altivec_vnmsubfp_2): Ditto.
7452         (altivec_vnmsubfp_3): Delete.
7453
7454         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
7455         (fmasf4_fpr): Ditto.
7456         (fmssf4_fpr): Ditto.
7457         (fnmasf4_fpr): Ditto.
7458         (fnmssf4_fpr): Ditto.
7459         (fmadf4): Ditto.
7460         (fmadf4_fpr): Ditto.
7461         (fmsdf4_fpr): Ditto.
7462         (fnmadf4_fpr): Ditto.
7463         (fnmsdf4_fpr): Ditto.
7464
7465         * optabs.h (OTI_fma): Add fma optab.
7466         (fma_optab): Ditto.
7467
7468         * genopinit.c (optabs): Set fma optab.
7469
7470         * rtl.def (FMA): Add FMA rtl.
7471
7472         * tree.h (mode_has_fma): New function to return if MODE supports a
7473         fast multiply and add instruction.
7474         * builtins.c (mode_has_fma): Ditto.
7475
7476 2010-10-15  Jan Hubicka  <jh@suse.cz>
7477
7478         * lto-streamer-out.c (write_symbol): Use pointer set of seen
7479         objects instead of bitmap.
7480         (produce_symtab): Likewise; output defined symbols first.
7481
7482 2010-10-15  Jie Zhang  <jie@codesourcery.com>
7483
7484         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
7485         Option Summary and Index.
7486
7487 2010-10-15  Richard Guenther  <rguenther@suse.de>
7488
7489         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
7490         for automatic variables again.
7491
7492 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7493
7494         * doc/extend.texi (Variable Length): Don't refer to VLAs not
7495         conforming to C99.
7496
7497 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7498
7499         * config/rx/rx.c (rx_option_optimization): Change to
7500         rx_override_options_after_change.  Don't change
7501         flag_lto_compression_level.  Don't check for changes to whether
7502         FPU instructions can be used.  Check and set only
7503         flag_finite_math_only, not other fast-math flags.
7504         (rx_option_override): Call rx_override_options_after_change.
7505         (TARGET_OPTION_OPTIMIZATION): Remove.
7506         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
7507
7508 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7509
7510         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
7511         disable section anchors for lang_hooks.name[4] != 'O'.
7512
7513 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7514
7515         * config/frv/frv.c (frv_option_optimization,
7516         TARGET_OPTION_OPTIMIZATION): Remove.
7517         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
7518
7519 2010-10-15  Michael Matz  <matz@suse.de>
7520
7521         * cgraphunit.c (clone_of_p): Define unconditionally.
7522
7523 2010-10-15  Richard Guenther  <rguenther@suse.de>
7524
7525         PR lto/45957
7526         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
7527
7528 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
7529
7530         * ifcvt.c (find_active_insn_before): New function.
7531         (find_active_insn_after): New function.
7532         (cond_exec_process_if_block): Use new functions to replace
7533         prev_active_insn() and next_active_insn().
7534
7535 2010-10-14  Yao Qi  <yao@codesourcery.com>
7536
7537         PR target/45447
7538         * config/arm/arm.c (arm_build_builtin_va_list): Assign
7539         va_list_name to TYPE_STUB_DECL (va_list_type).
7540
7541 2010-10-14  Jan Hubicka  <jh@suse.cz>
7542
7543         PR middle-end/45621
7544         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
7545         redirected to clone, be happy.
7546         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
7547         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
7548         former_clone_of unconditionally.
7549
7550 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7551
7552         Merge from FSF apple 'trunk' branch.
7553         2006 Fariborz Jahanian  <fjahanian@apple.com>
7554
7555         Radars 4436866, 4505126, 4506903, 4517826
7556         * c-parser.c (c_parser, objc_property_attr_context) New flag.
7557         (c_lex_one_token): Handle property attributes.
7558         (c_parser_external_declaration): Handle @property.
7559         (c_parser_declaration_or_fndef): Warn on invalid attributes before
7560         @alias, @class, @end and @property objc keywords.
7561         (c_parser_objc_methodprotolist): Handle @property.
7562         (c_parser_objc_property_attrlist): New.
7563         (c_parser_objc_at_property): New.
7564         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
7565         (build_modify_expr): Likewise.
7566
7567 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7568
7569         PR tree-optimization/46008
7570         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
7571
7572 2010-10-14  Richard Guenther  <rguenther@suse.de>
7573
7574         PR tree-optimization/44913
7575         * tree-data-ref.c (disjoint_objects_p): Remove.
7576         (dr_may_alias_p): Simplify.  Only hand the base object to
7577         the alias-oracle.
7578         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
7579         some more trees, bail out instead of asserting.
7580         (ptr_derefs_may_alias_p): Likewise.  Export.
7581         (refs_may_alias_p_1): Handle STRING_CSTs.
7582         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
7583
7584 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7585
7586         PR c/45969
7587         * c-typeck.c (build_binary_op): Don't try to compute a semantic
7588         type with excess precision for boolean operations.
7589
7590 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
7591             Basile Starynkevitch  <basile@starynkevitch.net>
7592
7593         * gengtype.c:  Include getopt.h and version.h.
7594
7595         (lang_bitmap, struct outf, outf_p)
7596         (get_output_file_with_visibility, oprintf): Definitions moved to
7597         gengtype.h
7598         (output_files, header_file, srcdir, srcdir_len, this_file)
7599         (do_dump): No more static variables.
7600         (do_debug): New.
7601         (dbgprint_count_type_at): Added new function.
7602         (gengtype_long_options): New.
7603         (print_usage, print_version, parse_program_options): New.
7604         (main): Call parse_program_options, and removed old option
7605         handling code.  Added some debug output.
7606
7607         * gengtype.h:  Updated copyright year.
7608         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
7609         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
7610         Moved from gengtype.c to here.
7611         (do_debug, read_state_filename, write_state_filename): New variables.
7612         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
7613
7614         * Makefile.in:
7615         (REVISION): Always defined.
7616         (version.o): Removed ifdef REVISION_c.
7617         (s-gtype): Pass arguments to build/gengtype program.
7618         (build/version.o): Added building rule.
7619         (build/gengtype$(build_exeext)): Added build/version.o.
7620
7621 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7622
7623         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
7624         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
7625         __strong macros.
7626
7627 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
7628
7629         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
7630         may_trap_or_fault_p instead of may_trap_p predicate.
7631         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
7632         (substitute_placeholder_in_expr): Likewise.
7633         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
7634         flag on MEM_REF nodes.
7635         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
7636         flags on INDIRECT_REF nodes.
7637
7638 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
7639
7640         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
7641         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
7642         (arm*-*-eabi*) <tm_file>: Likewise.
7643         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
7644         (frv-*-*linux*) <tm_file>: Likewise.
7645         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
7646         and associated helper macros.
7647         * config/frv/frv-abi.h: Delete.
7648
7649 2010-10-14  Richard Guenther  <rguenther@suse.de>
7650
7651         PR lto/44561
7652         * tree.def (NULLPTR_TYPE): New tree code.
7653         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
7654         * dwarf2out.c (is_base_type): Likewise.
7655         (gen_type_die_with_usage): Likewise.
7656         * sdbout.c (plain_type_1): Likewise.
7657         * tree.c (build_int_cst_wide): Likewise.
7658         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
7659
7660 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7661
7662         * params.c (params_finished): New.
7663         (add_params): Assert !params_finished.
7664         (finish_params): New.
7665         (set_param_value_internal): Take params and params_set
7666         parameters.  Assert params_finished.
7667         (set_param_value, maybe_set_param_value): Take params and
7668         params_set parameters.  Update calls to set_param_value_internal.
7669         (set_default_param_value): Assert !params_finished.  Don't use
7670         set_param_value_internal.
7671         (default_param_value, init_param_values): New.
7672         * params.h (struct param_info): Change value to default_value.
7673         Remove set.
7674         (set_param_value, maybe_set_param_value): Add params and
7675         params_set parameters.
7676         (PARAM_VALUE): Get parameters from global_options.
7677         (PARAM_SET_P): Remove.
7678         (finish_params, default_param_value, init_param_values): New.
7679         * common.opt (param_values): New Variable.
7680         * config/arm/arm.c (arm_option_override): Pass extra arguments to
7681         maybe_set_param_value.
7682         * config/i386/i386.c (ix86_option_override_internal): Pass extra
7683         arguments to maybe_set_param_value.
7684         * config/picochip/picochip.c (picochip_option_override): Pass
7685         extra arguments to maybe_set_param_value.
7686         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
7687         extra arguments to maybe_set_param_value.
7688         * config/s390/s390.c (s390_option_override): Use
7689         maybe_set_param_value instead of set_param_value.  Pass extra
7690         arguments to maybe_set_param_value.
7691         * config/sparc/sparc.c (sparc_option_override): Pass extra
7692         arguments to maybe_set_param_value.
7693         * config/spu/spu.c (spu_option_override): Pass extra arguments to
7694         maybe_set_param_value.
7695         * opts.c (handle_param): Take opts and opts_set parameters.
7696         Update call to set_param_value.
7697         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
7698         initial_loop_invariant_max_bbs_in_loop): Remove.
7699         (init_options_once): Don't set them.
7700         (init_options_struct): Initialize parameters structures.
7701         (default_options_optimization): Use default_param_value when
7702         restoring defaults.  Update calls to maybe_set_param_value.
7703         (finish_options): Update calls to maybe_set_param_value.
7704         (common_handle_option): Update calls to handle_param and
7705         set_param_value.
7706         * toplev.c (DEFPARAM): Update definition for changes to param_info.
7707         (general_init): Call finish_params.
7708
7709 2010-10-14  Nick Clifton  <nickc@redhat.com>
7710
7711         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
7712         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
7713         (FIRST_PSEUDO_REGISTER): Increase by one.
7714         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
7715         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
7716         (MODES_TIEABLE): Call mn10300_modes_tieable.
7717         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
7718         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
7719         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
7720         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
7721         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
7722         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
7723         (mn10300_cc_status_mdep): Delete.
7724         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
7725         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
7726         the combine-stack-adjust pass.
7727         (print_operand): Use the mode of the comparison operation to
7728         select the comparison suffix.
7729         (notice_update_cc): Delete.
7730         (mn10300_secondary_reload_class): Remove test for stack pointer
7731         based arithmetic.
7732         (output_tst): Rename to mn10300_output_cmp.
7733         (impossible_plus_operand): Move into predicates.md.
7734         (mn10300_legitimize_address): Make static.
7735         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
7736         constant pic operands.
7737         (mn10300_legitimate_constant_p): New function.
7738         (mn10300_case_values_threshold): Make static.
7739         (mn10300_hard_regno_mode_ok): New function.
7740         (mn10300_modes_tieable): New function.
7741         (mn10300_select_cc_mode): New function.
7742         * config/mn10300/predicates.md (impossible_plus_operand): Define.
7743         * config/mn10300/mn10300-protos.h: Tidy.
7744         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
7745         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
7746         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
7747         with clobbers or sets of CC_REG.
7748         (CC_REG): Define.
7749         (mov*): Remove use of CLR instruction.
7750         (cbranch_si4_<code>): New pattern/split.
7751         (integer_conditional_branch): New pattern.
7752         (cbranch_sf4_<code>): New pattern/split.
7753         (float_conditional_branch): New pattern.
7754         (casesi): Use addsi3 pattern instead of movsi pattern to add and
7755         move a value at the same time.
7756         (cc0 peepholes): Remove.
7757
7758 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7759
7760         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
7761         on RTX_FRAME_RELATED_P insns and the insn to which
7762         NOTE_INSN_EPILOGUE_BEG is attached.
7763         * sched-vis.c (print_value): Allow NULL value.
7764
7765 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7766
7767         PR rtl-optimization/45570
7768         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
7769         assert that we are pipelining outer loops.  Allow returning
7770         zero predecessors.
7771
7772 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7773
7774         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
7775         (tidy_control_flow): Tidy vertical space.
7776         (sel_remove_bb): New variable idx.  Use it to remember the basic
7777         block index before deleting the block.
7778         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
7779         (sel_merge_blocks): ... here.
7780         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
7781
7782 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7783
7784         * cse.c (is_dead_reg): Change into inline function that is not
7785         called through for_each_rtx.
7786         (set_live_p): Adjust caller.
7787         (insn_live_p): Don't reset DEBUG_INSNs here.
7788         (struct dead_debug_insn_data): New data.
7789         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
7790         (delete_trivially_dead_insns): If there is just one setter for the
7791         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
7792         and add DEBUG_INSN for it right before the removed setter and
7793         use the DEBUG_EXPR instead of the dead pseudo.
7794
7795 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
7796
7797         * et-forest.c (et_nca): Return NULL immediately when
7798         the dominance forest has disjoint components.
7799
7800 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
7801
7802         * ira.c (setup_class_hard_regs): Fix typo in indexing
7803         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
7804
7805 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
7806
7807         * graph.c (inbb): New variable.
7808         (start_bb): Set inbb to 1 if output is inside of a building block.
7809         (end_bb): Check if output is inside of a building block.
7810
7811 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7812
7813         PR rtl-optimization/45912
7814         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
7815         regno of registers instead of their index to compute the alignment.
7816
7817 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
7818
7819         * config/i386/i386.c (ix86_build_const_vector): Check vector
7820         mode instead of scalar mode.
7821         (ix86_build_signbit_mask): Likewise.
7822         (ix86_expand_fp_absneg_operator): Updated.
7823         (ix86_expand_copysign): Likewise.
7824         (ix86_expand_int_vcond): Likewise.
7825         (ix86_emit_swdivsf): Likewise.
7826         (ix86_sse_copysign_to_positive): Likewise.
7827         (ix86_expand_sse_fabs): Likewise.
7828         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
7829         * config/i386/sse.md (copysign<mode>3): Likewise.
7830         (sse2_cvtudq2ps): Likewise.
7831         (vec_unpacku_float_hi_v4si): Likewise.
7832         (vec_unpacku_float_lo_v4si): Likewise.
7833
7834         * config/i386/i386.c (ix86_builtins): Add
7835         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
7836         (bdesc_args): Likewise.
7837         (ix86_builtin_vectorized_function): Support
7838         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
7839         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
7840         and IX86_BUILTIN_CVTPS2DQ256.
7841         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
7842
7843         * config/i386/sse.md (STORENT_MODE): New.
7844         (VEC_FLOAT_MODE): Likewise.
7845         (VEC_EXTRACT_MODE): Likewise.
7846         (*avx_cvtdq2pd256_2): Likewise.
7847         (vec_pack_trunc_v4df): Likewise.
7848         (vec_interleave_highv8sf): Likewise.
7849         (vec_interleave_lowv8sf): Likewise.
7850         (storent<mode>): Macroized.
7851         (<code><mode>2: absneg): Likewise.
7852         (copysign<mode>3): Likewise.
7853         (vec_extract<mode>): Likewise.
7854
7855         PR target/44180
7856         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
7857         for V8SFmode.
7858
7859 2010-10-13  Richard Guenther  <rguenther@suse.de>
7860             H.J. Lu  <hongjiu.lu@intel.com>
7861
7862         * config/i386/sse.md (reduc_splus_v8sf): Add.
7863         (reduc_splus_v4df): Likewise.
7864         (vec_unpacks_hi_v8sf): Likewise.
7865         (vec_unpacks_lo_v8sf): Likewise.
7866         (*avx_cvtps2pd256_2): Likewise.
7867         (vec_unpacks_float_hi_v8si): Likewise.
7868         (vec_unpacks_float_lo_v8si): Likewise.
7869         (vec_interleave_highv4df): Likewise.
7870         (vec_interleave_lowv4df): Likewise.
7871
7872 2010-10-13  Richard Guenther  <rguenther@suse.de>
7873
7874         PR objc/45878
7875         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
7876         alone if there are no virtual methods.
7877
7878 2010-10-13  Richard Henderson  <rth@redhat.com>
7879
7880         * expr.c (build_personality_function): Take parameter LANG instead
7881         of parameter NAME.  Build the name based on the lang prefix and the
7882         unwind method in use.
7883         * tree.c (lhd_gcc_personality): Update call to
7884         build_personality_function.
7885
7886 2010-10-13  Richard Guenther  <rguenther@suse.de>
7887
7888         PR objc/45878
7889         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
7890
7891 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7892
7893         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
7894         Canonicalize input operands of ASM_OPERANDS insns.
7895
7896 2010-10-13  Richard Guenther  <rguenther@suse.de>
7897
7898         PR tree-optimization/45788
7899         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
7900         EH update until fixup-cfg.
7901
7902 2010-10-13  Julian Brown  <julian@codesourcery.com>
7903
7904         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
7905         from CORE_REGS and GENERAL_REGS classes.
7906         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
7907         final constraint for register preferencing.
7908
7909 2010-10-13  Richard Guenther  <rguenther@suse.de>
7910
7911         PR tree-optimization/45970
7912         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
7913         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
7914         (stmt_kills_ref_p): Likewise.
7915         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
7916
7917 2010-10-13  Richard Guenther  <rguenther@suse.de>
7918
7919         PR tree-optimization/45982
7920         * tree-ssa-structalias.c (make_constraints_to): New function.
7921         (make_constraint_to): Implement in terms of make_constraints_to.
7922         (find_func_aliases): Properly make return values of pure/const
7923         functions escape if they assign to sth that is not a pointer.
7924
7925 2010-10-13  Richard Guenther  <rguenther@suse.de>
7926
7927         PR middle-end/45874
7928         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
7929         Fixup the CFG when EH was fixed up.
7930
7931 2010-10-13  Ira Rosen  <irar@il.ibm.com>
7932
7933         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
7934         Use operand's type for POINTER_PLUS_EXPR.
7935
7936 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
7937
7938         * c-parser.c (c_parser_for_statement): Initialize incr.
7939
7940 2010-10-12  Xinliang David Li  <davidxl@google.com>
7941
7942         PR tree-optimization/45972
7943         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
7944         with too many arguments.
7945
7946 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
7947
7948         PR fortran/45636
7949         * tree-ssa-forwprop.c: Include expr.h.
7950         (constant_pointer_difference, simplify_builtin_call): New functions.
7951         (tree_ssa_forward_propagate_single_use_vars): Call
7952         simplify_builtin_call on builtin calls.
7953
7954 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
7955
7956         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
7957         (*adddi3_extend_sp32): Likewise.
7958         (*subdi3_insn_sp32): Likewise.
7959         (*subdi3_extend_sp32): Likewise.
7960         (*negdi2_sp32): Use negative test for consistency.
7961
7962 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
7963
7964         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
7965         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7966         * config/fixed-bit.h: Likewise.
7967         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7968         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7969         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
7970         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
7971         (DF_SIZE): Likewise.
7972         * doc/tm.texi: Regenerate.
7973
7974 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
7975
7976         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
7977         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
7978         (*isel_reversed_unsigned_<mode>): New.
7979         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
7980         as valid comparisons and adjust operands and output appropriately.
7981         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
7982
7983 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
7984
7985         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
7986         DATA_ALIGNMENT and add COND parameter. Update comments above.
7987         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
7988         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
7989
7990 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
7991
7992         PR bootstrap/45958
7993         * exec-tool.in: Support '-plugin' as the second option to the linker.
7994
7995 2010-10-12  Richard Henderson  <rth@redhat.com>
7996
7997         PR middle-end/45962
7998         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
7999         (expand_stack_vars): Assert large base allocated when used.
8000
8001 2010-10-12  Richard Guenther  <rguenther@suse.de>
8002
8003         * tree-ssa-structalias.c (get_constraint_for_1): Constants
8004         only point to nonlocal, not anything.
8005
8006 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8007
8008         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
8009         unwind info for exceptions.
8010
8011 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8012
8013         PR testsuite/45851
8014         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
8015         Document optional target selector.
8016
8017 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
8018
8019         * flag-types.h: New.
8020         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
8021         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
8022         options.h.
8023         (OPTIONS_H): Define.
8024         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
8025         of options.h.
8026         * configure.ac (tm_include_list): Include options.h not flags.h.
8027         * configure: Regenerate.
8028         * flags.h: Include flag-types.h.  Include options.h at top of file
8029         again.
8030         (enum debug_info_type, enum debug_info_level, enum
8031         debug_info_usage, enum symbol_visibility, struct visibility_flags,
8032         enum ira_algorithm, enum ira_region, enum excess_precision, enum
8033         graph_dump_types, enum stack_check_type,
8034         enum warn_strict_overflow_code): Move to flag-types.h
8035         * opth-gen.awk: Include flag-types.h in options.h.
8036
8037 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8038
8039         * expr.c (store_expr): Share code for STRING_CST and
8040         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
8041         check if target is a MEM.
8042
8043         * rtl.h: Include hashtab.h.
8044         (iterative_hash_rtx): New prototype.
8045         * rtl.c (iterative_hash_rtx): New function.
8046         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
8047         (output_loc_list): Return immediately if emitted is set, set it.
8048         (hash_loc_operands, hash_locs, hash_loc_list,
8049         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
8050         optimize_location_lists_1, optimize_location_lists): New function.
8051         (dwarf2out_finish): Call optimize_location_lists.
8052         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
8053
8054 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8055
8056         PR testsuite/45974
8057         Revert:
8058         * Makefile.in ($(lang_checks_parallel))
8059         ($(lang_checks_parallelized)): Use single quotes for
8060         $(RUNTESTFLAGS), to allow passing quoted content.
8061
8062 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8063
8064         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
8065         actual_oldval.  Use __builtin_expect.
8066         (SUBWORD_VAL_CAS): Likewise.
8067
8068 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8069
8070         * recog.c (nonmemory_operand): Call immediate_operand for
8071         CONSTANT_P operands.
8072
8073 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
8074
8075         * config/i386/i386.md (movmem<mode>): Macroize expander from
8076         movmem{si,di} using SWI48 mode iterator.
8077         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
8078         *strmovsi_rex_1 using P mode iterator.
8079         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
8080         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
8081         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
8082         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
8083         (setmem<mode>): Macroize expander from setmem{si,di} using
8084         SWI48 mode iterator.
8085         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
8086         *strsetsi_rex_1 using P mode iterator.
8087         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
8088         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
8089         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
8090         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
8091         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
8092         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
8093         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
8094         mode iterator.
8095         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
8096         *strlenqi_rex_1 using P mode iterator.
8097
8098 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
8099
8100         PR bootstrap/45445
8101         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
8102         static functions.
8103         (mark_ref_live, mark_ref_dead): Use them.
8104         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
8105         Save the original reg, and use the new functions.
8106         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
8107         changed.
8108         (check_and_make_def_conflict): Save the original reg.
8109
8110 2010-10-11  Martin Jambor  <mjambor@suse.cz>
8111
8112         PR middle-end/45699
8113         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
8114         thunks.
8115
8116 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8117
8118         * Makefile.in ($(lang_checks_parallel))
8119         ($(lang_checks_parallelized)): Use single quotes for
8120         $(RUNTESTFLAGS), to allow passing quoted content.
8121
8122         PR bootstrap/35855
8123         * opt-functions.awk (BEGIN): New section.
8124         (lower, upper, digit, alnum): New variables.
8125         (static_var, opt_sanitized_name): Use alnum instead of character
8126         classes, for non-C locale.
8127         * optc-gen.awk: Likewise.
8128         * opth-gen.awk: Likewise.
8129
8130 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
8131
8132         * target.def (preferred_reload_class): New hook.
8133         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
8134         * doc/tm.texi: Regenerate.
8135         * targhooks.c (default_preferred_reload_class): New function.
8136         * targhooks.h (default_preferred_reload_class): Declare.
8137         * reload.c (find_dummy_reload): Change preferred_class variable type
8138         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
8139         target hook.
8140         (find_reloads): Change goal_alternative array type from int to
8141         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
8142         (push_reload, find_reloads_address_part): Use
8143         TARGET_PREFERRED_RELOAD_CLASS target hook.
8144         * reload1.c (emit_input_reload_insns): Ditto.
8145         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
8146         hook. Change rclass argument and secondary_class variable types from
8147         'enum reg_class' to reg_class_t.
8148
8149         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
8150         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
8151         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
8152         Change regclass argument and result types from enum reg_class to
8153         reg_class_t.
8154         (TARGET_PREFERRED_RELOAD_CLASS): Define.
8155
8156 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
8157
8158         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
8159         in masking operations.
8160         (simplify_const_unary_operation): Likewise.
8161         (simplify_binary_operation_1): Likewise.
8162         (simplify_const_binary_operation): Likewise.
8163         (simplify_const_relational_operation): Likewise.
8164         (simplify_ternary_operation): Likewise.
8165         (simplify_immed_subreg): Likewise.
8166
8167 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8168
8169         PR middle-end/45862
8170         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
8171         (TARGET_SUPPORTS_WEAK): New.
8172         * doc/tm.texi: Regenerate.
8173         * defaults.h (SUPPORTS_WEAK): Update comment.
8174         (TARGET_SUPPORTS_WEAK): New.
8175         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
8176         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
8177         SUPPORTS_WEAK.
8178         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
8179         make_decl_one_only): Likewise.
8180         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
8181         TARGET_SUPPORTS_WEAK.
8182         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
8183         instead of SUPPORTS_WEAK.
8184
8185 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8186
8187         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
8188
8189 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8190
8191         * vec.h (VEC_qsort): Define.
8192         * dbxout.c (output_used_types): Use it.
8193         * df-scan.c (df_sort_and_compress_refs): Likewise.
8194         (df_sort_and_compress_mws): Likewise.
8195         * genautomata.c (uniq_sort_alt_states): Likewise.
8196         (evaluate_equiv_classes): Likewise.
8197         (output_trans_table): Likewise.
8198         (output_state): Likewise.
8199         * gimplify.c (compare_case_labels): Likewise.
8200         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
8201         * ipa.c (build_cdtor_fns): Likewise.
8202         * lto.c (lto_wpa_write_files): Likewise.
8203         * sel-sched.c (fill_vec_av_set): Likewise.
8204         * tree-predcom.c (determine_roots_comp): Likewise.
8205         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
8206         (splice_param_accesses): Likewise.
8207         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
8208         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
8209         (reassociate_bb): Likewise.
8210         * tree-ssa-sccvn.c (sort_scc): Likewise.
8211         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
8212
8213 2010-10-11  Ian Lance Taylor  <iant@google.com>
8214
8215         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
8216         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
8217         TREE_THIS_NOTRAP when appropriate.
8218         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
8219         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
8220         newly created MEM_REF.
8221
8222 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8223
8224         Nathan Froyds patch to hooks FUNCTION_ARG etc.
8225         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
8226         (picochip_incoming_function_arg): Delete.
8227         (picochip_arg_advance): Delete.
8228         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
8229         (FUNCTION_INCOMING_ARG): Delete.
8230         (FUNCTION_ARG_ADVANCE): Delete.
8231         * config/picochip/picochip.c (picochip_function_arg): Take a
8232         const_tree and a bool.
8233         (picochip_incoming_function_arg): Likewise.
8234         (picochip_arg_advance): Likewise.
8235         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8236         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8237
8238 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8239
8240         PR middle-end/45955
8241         * ipa.c (build_cdtor): Delete endless loop.
8242
8243 2010-10-07  Andi Kleen  <ak@linux.intel.com>
8244
8245         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
8246         checksum-options.
8247         (checksum-options): Add.
8248         (cc1-dummy): Remove.
8249         (cc1-checksum): Change to run checksum over object files
8250         and options only.
8251         * dummy-checksum.c: Remove.
8252         * genchecksum.c: Update copyright.
8253         (usage): Allow multiple arguments.
8254         (BLOCKSIZE): Add.
8255         (dosum): Change for incremental checksum. Remove C output.
8256         (main): Iterate over all argument files. Add C output.
8257
8258 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
8259
8260         * params.c (set_param_value_internal): New.
8261         (set_param_value): Use set_param_value_internal.
8262         (maybe_set_param_value, set_default_param_value): New.
8263         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
8264         (maybe_set_param_value, set_default_param_value): Declare.
8265         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
8266         * config/i386/i386.c (ix86_option_override_internal): Use
8267         maybe_set_param_value.
8268         * config/ia64/ia64.c (ia64_option_default_params,
8269         TARGET_OPTION_DEFAULT_PARAMS): New.
8270         (ia64_option_optimization): Move some code to
8271         ia64_option_default_params.
8272         * config/picochip/picochip.c (picochip_option_override): Use
8273         maybe_set_param_value.
8274         * config/rs6000/rs6000.c (rs6000_option_default_params,
8275         TARGET_OPTION_DEFAULT_PARAMS): New.
8276         (rs6000_option_override_internal): Use maybe_set_param_value.
8277         (rs6000_option_optimization): Move some code to
8278         rs6000_option_default_params.
8279         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
8280         * config/sh/sh.c (sh_option_default_params,
8281         TARGET_OPTION_DEFAULT_PARAMS): New.
8282         (sh_option_optimization): Move some code to sh_option_default_params.
8283         * config/sparc/sparc.c (sparc_option_override): Use
8284         maybe_set_param_value.
8285         * config/spu/spu.c (spu_option_default_params,
8286         TARGET_OPTION_DEFAULT_PARAMS): New.
8287         (spu_option_optimization): Move some code to spu_option_default_params.
8288         (spu_option_override): Use maybe_set_param_value.
8289         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
8290         * doc/tm.texi: Regenerate.
8291         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
8292         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
8293         compiler_params.
8294         (default_options_optimization): Use maybe_set_param_value.
8295         (finish_options): Use maybe_set_param_value.
8296         * target.def (target_option.default_params): New hook.
8297         * toplev.c (general_init): Call targetm.target_option.default_params.
8298
8299 2010-10-11  Ira Rosen  <irar@il.ibm.com>
8300
8301         PR tree-optimization/45902
8302         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
8303         vector type for constants, unless it's a pointer.
8304
8305 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8306
8307         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
8308
8309 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
8310
8311         PR target/45870
8312         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
8313         (ix86_delegitimize_address): Use it.
8314
8315 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
8316
8317         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
8318
8319 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
8320
8321         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
8322         to cum struct in the call to function_arg_advance.
8323         (alpha_function_arg_advance): Mark named as unused.
8324
8325 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
8326
8327         * config/mips/mips.c (mips_handle_option): Make "value" with
8328         ATTRIBUTE_UNUSED.
8329
8330 2010-10-09  Richard Henderson  <rth@redhat.com>
8331
8332         PR rtl-opt/33721
8333         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
8334         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
8335         required_align, tidy the code a bit.  Emit split_stack code in the
8336         right place.  Mark the return value with the alignment properly.
8337         * expr.h (allocate_dynamic_stack_space): Update decl.
8338         * builtins.c (expand_builtin_apply): Update call to
8339         allocate_dynamic_stack_space.
8340         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
8341         * calls.c (initialize_argument_information): Update call to
8342         allocate_dynamic_stack_space.
8343         (expand_call): Likewise.
8344
8345         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
8346         Don't update_stack_alignment here.
8347         (alloc_stack_frame_space): Make ALIGN unsigned.
8348         (stack_var_cmp): Sort by alignment too.
8349         (partition_stack_vars): Don't merge large and small alignment vars.
8350         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
8351         Take care when BASE is not virtual_stack_vars_rtx.
8352         (expand_stack_vars): Allocate dynamic stack space for large
8353         alignment variables.
8354         (expand_one_stack_var): Update all to expand_one_stack_var_at.
8355         (defer_stack_allocation): True for large alignment vars.
8356         (update_stack_alignment): Merge into ...
8357         (expand_one_var): ... here.
8358         (gimple_expand_cfg): Place code from expand_stack_vars.
8359
8360 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8361
8362         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8363         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
8364         (pdp11_function_arg_advance): New function.
8365         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8366
8367 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8368
8369         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
8370         * libgcc2.c: Likewise.
8371
8372 2010-10-09  Richard Guenther  <rguenther@suse.de>
8373
8374         PR lto/45956
8375         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
8376         Properly check if a decl is an automatic var.
8377
8378 2010-10-09  Richard Guenther  <rguenther@suse.de>
8379
8380         PR lto/45947
8381         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
8382
8383 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8384
8385         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
8386         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8387         * config/mmix/mmix.c (mmix_function_arg): Rename to...
8388         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
8389         bool arguments.
8390         (mmix_function_arg): New function.
8391         (mmix_function_incoming_arg): New function.
8392         (mmix_function_arg_advance): New function.
8393         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8394         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8395
8396 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8397
8398         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8399         * config/vax/vax.c (vax_function_arg): New function.
8400         (vax_function_arg_advance): New function.
8401         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8402
8403 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8404
8405         * config/pa/pa-protos.h (function_arg): Delete.
8406         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8407         * config/pa/pa.c (function_arg): Rename to...
8408         (pa_function_arg): ...this.  Make static.  Take a const_tree and
8409         a bool.
8410         (pa_function_arg_advance): New function.
8411         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8412
8413 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8414
8415         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8416         * config/m68k/m68k.c (m68k_function_arg): New function.
8417         (m68k_function_arg_advance): New function.
8418         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8419
8420 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8421
8422         * config/avr/avr-protos.h (function_arg): Delete.
8423         (function_arg_advance): Delete.
8424         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8425         * config/avr/avr.c (function_arg): Rename to...
8426         (avr_function_arg): ...this.  Make static.  Take a const_tree and
8427         a bool.
8428         (function_arg_advance): Rename to...
8429         (avr_function_arg_advance): ...this.  Make static.  Take a
8430         const_tree and a bool.
8431         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8432
8433 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8434
8435         * config/alpha/alpha-protos.h (function_arg): Delete.
8436         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8437         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
8438         * config/alpha/alpha.c (function_arg): Rename to...
8439         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
8440         a bool.  Delete TARGET_ABI_UNICOSMK code.
8441         (alpha_function_arg_advance): New function.
8442         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8443
8444 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8445
8446         * config/mep/mep-protos.h (mep_function_arg): Delete.
8447         (mep_function_arg_advance): Delete.
8448         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8449         * config/mep/mep.c (mep_function_arg): Make static.  Take a
8450         const_tree and a bool.
8451         (mep_function_arg_advance): Likewise.
8452         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8453
8454 2010-10-09  Richard Guenther  <rguenther@suse.de>
8455
8456         PR tree-optimization/45945
8457         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
8458
8459 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
8460
8461         PR tree-optimization/45612
8462         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
8463         Test LABEL_DECLs as well.  Fix formatting issues.
8464         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
8465         whose label is present in NON_SSA_VARS.
8466         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
8467         as well.  Fix formatting issues.
8468         (visit_bb): Fix typos and formatting issue.
8469
8470 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8471
8472         PR tree-optimization/45950
8473         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
8474         before initializing vno->op.
8475
8476 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
8477
8478         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
8479         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
8480
8481 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
8482
8483         PR target/45913
8484         * config/i386/i386.c (ix86_binary_operator_ok): Support
8485         "andhi/andsi/anddi" as a zero-extending move.
8486
8487 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8488
8489         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
8490         into a temporary array.
8491
8492 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
8493
8494         PR tree-optimization/45903
8495         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
8496         of {A,L}SHIFTRT of MEM.
8497
8498 2010-10-08  Richard Guenther  <rguenther@suse.de>
8499
8500         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
8501         Re-construct BLOCK_VARS.
8502         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
8503         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
8504         * tree.c (free_lang_data_in_block): Remove.
8505         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
8506         Do not touch the BLOCK tree.
8507         * expr.c (expand_expr_real_1): Allow externals.
8508
8509 2010-10-08  Richard Guenther  <rguenther@suse.de>
8510
8511         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
8512         Do not output BLOCK_SUBBLOCKS.
8513         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
8514         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
8515         Re-construct BLOCK_SUBBLOCKS of parent block.
8516         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
8517         for BINFO_BASE_ACCESSES.
8518
8519 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
8520
8521         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
8522         (TREE_H): Include $(FLAGS_H) instead of options.h.
8523         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
8524         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8525         * common.opt (flag_complex_method, flag_evaluation_order,
8526         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
8527         Variable declarations.
8528         * configure.ac (tm_include_list): Include flags.h instead of options.h.
8529         * configure: Regenerate.
8530         * flags.h: Condition out contents for target libraries.  Include
8531         options.h at end of file.
8532         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
8533         flag_evaluation_order, flag_warn_unused_result): Remove.
8534         * gcc.c (main): Intialize global_options with global_options_init.
8535         * langhooks-def.h (lhd_init_options_struct): Declare.
8536         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8537         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
8538         * langhooks.c (lhd_init_options_struct): New.
8539         * langhooks.h (struct lang_hooks): Add init_options_struct.
8540         Update comment on init_options.
8541         * optc-gen.awk: Generate initializer for global_options_init, not
8542         global_options.
8543         * opth-gen.awk: Condition out structure declarations for target
8544         libraries.  Declare global_options_init.
8545         * opts-common.c: Include flags.h instead of options.h.
8546         * opts.c (flag_warn_unused_result): Remove.
8547         (read_cmdline_options): Take gcc_options parameters.  Pass them to
8548         read_cmdline_option.
8549         (initial_lang_mask, initial_min_crossjump_insns,
8550         initial_max_fields_for_field_sensitive,
8551         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
8552         (init_options_once): New.  Split out of decode_options.
8553         (init_options_struct): New.  Split out of decode_options.
8554         (decode_cmdline_options_to_array_default_mask): New.
8555         (default_options_optimization): New.  Split out of decode_options.
8556         (decode_options): Move most code to other functions.  Update call
8557         to read_cmdline_options.
8558         (finish_options): New.  Split out of decode_options.
8559         * opts.h (decode_options): Add gcc_options parameters.
8560         (init_options_once, init_options_struct,
8561         decode_cmdline_options_to_array_default_mask): New.
8562         * toplev.c (flag_complex_method, flag_ira_algorithm,
8563         flag_ira_region, flag_evaluation_order): Remove.
8564         (general_init): Use global_options_init for initial flag values
8565         for global_dc.
8566         (toplev_main): Call init_options_once, init_options_struct,
8567         lang_hooks.init_options_struct,
8568         decode_cmdline_options_to_array_default_mask and
8569         lang_hooks.init_option before decode_options.  Update arguments to
8570         decode_options.
8571         * tree.h: Include flags.h instead of options.h.
8572
8573 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8574
8575         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8576
8577 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8578
8579         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
8580         Delete.
8581         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
8582         (FUNCTION_INCOMING_ARG): Delete.
8583         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
8584         (function_arg_slotno): Likewise.  Take bool arguments.
8585         (sparc_arg_partial_bytes): Update call to it.
8586         (function_arg): Rename to...
8587         (sparc_function_arg_1): ...this.  Take bool arguments.
8588         (sparc_function_arg, sparc_function_incoming_arg): New functions.
8589         (function_arg_advance): Rename to...
8590         (sparc_function_arg_advance): ...this.  Take bool argument.
8591         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
8592         (TARGET_FUNCTION_INCOMING_ARG): Define.
8593
8594 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8595
8596         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
8597         Delete.
8598         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8599         * config/bfin/bfin.c (function_arg_advance): Rename to...
8600         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
8601         and bool arguments.
8602         (function_arg): Rename to...
8603         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
8604         arguments.
8605         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8606
8607 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8608
8609         * config/score/score-protos.h (score_function_arg): Delete.
8610         (score_function_arg_advance): Delete.
8611         * config/score/score3.h (score3_function_arg_advance): Take a
8612         const_tree and a bool.
8613         (score3_function_arg): Likewise.
8614         * config/score/score7.h (score7_function_arg_advance): Likewise.
8615         (score7_function_arg): Likewise.
8616         * config/score/score3.c (score3_classify_arg): Likewise.
8617         (score3_function_arg_advance, score3_function_arg): Likewise.
8618         * config/score/score7.c (score7_classify_arg): Likewise.
8619         (score7_function_arg_advance, score7_function_arg): Likewise.
8620         * config/score/score.c (score_function_arg_advance): Likewise.
8621         (score_function_arg): Likewise.  De-const-ify `cum' argument.
8622         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8623
8624 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8625
8626         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
8627         (s390_function_arg): Delete.
8628         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8629         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
8630         (s390_function_arg_integer): Likewise.
8631         (s390_function_arg_advance): Make static.  Take a const_tree and
8632         a bool.
8633         (s390_function_arg): Likewise.
8634         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8635
8636 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8637
8638         * config/spu/spu-protos.h (spu_function_arg): Delete.
8639         * config/spu/spu.h (FUNCTION_ARG): Delete.
8640         (FUNCTION_ARG_ADVANCE): Move code to ...
8641         * config/spu/spu.c (spu_function_arg_advance): New function.
8642         (spu_function_arg): Make static.  Take a const_tree and a bool.
8643         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
8644         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8645
8646 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8647
8648         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8649
8650 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8651
8652         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
8653         (init_vn_nary_op_from_op): New function.
8654         (init_vn_nary_op_from_stmt): New function.
8655         (vn_nary_op_lookup_1): New function.
8656         (sizeof_vn_nary_op): New function.
8657         (alloc_vn_nary_op_noinit): New function.
8658         (alloc_vn_nary_op): New function.
8659         (vn_nary_op_insert_into): New function.
8660         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
8661         (vn_nary_op_lookup): Likewise.
8662         (vn_nary_op_lookup_stmt): Likewise.
8663         (vn_nary_op_insert_pieces): Likewise.
8664         (vn_nary_op_insert): Likewise.
8665         (vn_nary_op_insert_stmt): Likewise.
8666         (copy_nary): Likewise.
8667         (set_value_id_for_result): New function.
8668         (set_hashtable_value_ids): Call it.
8669
8670 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8671
8672         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8673         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
8674
8675 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8676
8677         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
8678         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8679
8680 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8681
8682         PR debug/45656
8683         * cse.c (cse_extended_basic_block): Preserve cc0 info across
8684         debug isnsn.  Skip them when searching for cc0 setter.
8685         (set_live_p): Skip debug insns when searching for cc0 user.
8686
8687 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8688
8689         PR debug/45673
8690         PR debug/45604
8691         PR debug/45419
8692         PR debug/45408
8693         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
8694         type of MEM_REFs to INTEGER_CSTs.
8695
8696 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8697
8698         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
8699         m68hc11_print_operand_address.
8700
8701 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8702
8703         * builtins.c (rewrite_call_expr): Move code to...
8704         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
8705         (rewrite_call_expr_array): New function.
8706         (fold_builtin_sprintf_chk_1): New function.
8707         (fold_builtin_sprintf_chk): Call it.
8708         (gimple_fold_builtin_sprintf_chk): Likewise.
8709         (fold_builtin_snprintf_chk_1): New function.
8710         (fold_builtin_snprintf_chk): Call it.
8711         (gimple_fold_builtin_snprintf_chk): Likewise.
8712         (gimple_rewrite_call_expr): Delete.
8713
8714 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8715
8716         * config.host: Update copyright year.
8717
8718 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8719
8720         * config.host (host_lto_plugin_soname): New shell variable.
8721         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
8722         * config.in: Regenerate.
8723         * configure: Regenerate.
8724         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
8725         LTO plugin shared library.
8726
8727 2010-10-07  Richard Henderson  <rth@redhat.com>
8728
8729         * target.h (enum unwind_info_type): Move ...
8730         * coretypes.h: ... here.
8731
8732 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
8733
8734         * doc/objc.texi (Fast enumeration protocol): Mention that
8735         'unsigned int' can also be used instead of 'unsigned long' in
8736         countByEnumeratingWithState:objects:count:.
8737
8738 2010-10-07  Martin Jambor  <mjambor@suse.cz>
8739
8740         * tree-sra.c (struct access): New field grp_assignment_write.
8741         (dump_access): Dump grp_assignment_write.
8742         (build_accesses_from_assign): Set grp_assignment_write.
8743         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
8744         (mark_read_status): Renamed to mark_rw_status, individual values
8745         renamed too.
8746         (analyze_access_subtree): Changed type of mark_write to
8747         mark_read_status.  Fixed propagating of mark_read and
8748         mark_write.  Changed benefit estimate.  Updated comment.
8749
8750 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8751
8752         PR Tree-Vect/45847
8753         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
8754         check for vectype_out returned by get_vectype_for_scalar_type().
8755
8756 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8757
8758         PR target/45805
8759         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
8760         constraint, add register specifier in instruction template.
8761         (neon_vec_pack_trunc_<mode>): Likewise.
8762         (neon_vec_<US>mult_<mode>): Add register specifier to
8763         instruction template.
8764
8765 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8766
8767         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
8768         cygwin2.o.
8769         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
8770         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
8771         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
8772         (cygwin2.o): Likewise.
8773         * config/i386/cygwin1.c: Delete file.
8774         * config/i386/cygwin2.c: Likewise.
8775         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
8776         make all {%!mno-cygwin} ones unconditional.
8777         (STARTFILE_SPEC): Likewise.
8778         (REAL_LIBGCC_SPEC): Likewise.
8779         (LIB_SPEC): Likewise.
8780         (CXX_WRAP_SPEC): Likewise.
8781         (LINK_SPEC): Likewise.
8782         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
8783         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
8784         (cygwin_gplusplus_include_dir): Delete now-unused array.
8785         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
8786         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
8787         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
8788         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
8789         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
8790         (cygwin_local_include_dir): Delete now-unused array.
8791         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
8792         (cygwin_cross_include_dir): Delete now-unused array.
8793         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
8794         (cygwin_tool_include_dir): Delete now-unused array.
8795         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
8796         (cygwin_standard_include_dir): Delete now-unused array.
8797         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
8798         (GEN_CVT_ARRAY): Delete now-unused macro definition.
8799         (cvt_to_mingw): Delete now-unused array.
8800         (mingw_scan): Remove prototype of deleted function.
8801         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
8802         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
8803         * doc/invoke.texi (-mcygwin): Don't document removed option.
8804         (-mno-cygwin): Likewise.
8805
8806 2010-10-07  Richard Guenther  <rguenther@suse.de>
8807
8808         * machmode.h (mode_for_vector): Declare.
8809         * stor-layout.c (mode_for_vector): New function, split out from ...
8810         (layout_type): ... here.
8811         * tree-vectorizer.h (current_vector_size): Declare.
8812         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
8813         mask vector type is available.
8814         (get_vectype_for_scalar_type): Rename to ...
8815         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
8816         size argument.
8817         (get_vectype_for_scalar_type): New wrapper around
8818         get_vectype_for_scalar_type_and_size using current_vector_size.
8819         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
8820         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
8821         of vect_analyze_loop here.
8822         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
8823         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
8824         to autodetect.
8825         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
8826         V8SF to V8SI conversion builtin.
8827
8828 2010-10-07  Richard Guenther  <rguenther@suse.de>
8829
8830         * target.def (autovectorize_vector_sizes): New target hook.
8831         * targhooks.c (default_autovectorize_vector_sizes): New function.
8832         * targhooks.h (default_autovectorize_vector_sizes): Declare.
8833         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
8834         Document.
8835         * doc/tm.texi: Update.
8836         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
8837         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8838
8839 2010-10-07  Richard Guenther  <rguenther@suse.de>
8840
8841         * target.def (units_per_simd_word): Rename to ...
8842         (preferred_simd_mode): ... this.  Return mode instead of size.
8843         * targhooks.c (default_units_per_simd_word): Rename to ...
8844         (default_preferred_simd_mode): ... this.  Return word_mode.
8845         * targhooks.h (default_preferred_simd_mode): Declare.
8846         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
8847         (arm_preferred_simd_mode): ... this.  Re-implement.
8848         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
8849         (ix86_preferred_simd_mode): ... this.  Re-implement.
8850         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
8851         (sparc_preferred_simd_mode): ... this.  Re-implement.
8852         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
8853         (mips_preferred_simd_mode): ... this.  Re-implement.
8854         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
8855         (rs6000_preferred_simd_mode): ... this.  Re-implement.
8856         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
8857         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
8858         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
8859         * doc/tm.texi: Update.
8860
8861 2010-10-07  Richard Guenther  <rguenther@suse.de>
8862
8863         PR middle-end/45869
8864         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
8865         of pointers.
8866
8867 2010-10-07  Alan Modra  <amodra@gmail.com>
8868
8869         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
8870         rather than sign extension by hand.
8871
8872 2010-10-07  Jan Hubicka  <jh@suse.cz>
8873
8874         PR middle-end/45926
8875         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
8876
8877 2010-10-07  Richard Guenther  <rguenther@suse.de>
8878
8879         PR bootstrap/45914
8880         * configure.ac: Fix typo.
8881         * configure: Regenerated.
8882
8883 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8884
8885         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
8886         define_builtin_std where it's unnecessary.
8887         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
8888
8889 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
8890
8891         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
8892         * doc/tm.texi.in: Regenerate.
8893         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
8894         * targhooks.c (default_class_likely_spilled_p): Don't use the
8895         CLASS_LIKELY_SPILLED_P macro.
8896
8897         * config/arm/arm.md: Update comment.
8898
8899 2010-10-06  Jan Hubicka  <jh@suse.cz>
8900
8901         * ipa.c (cgraph_remove_unreachable_nodes): External references can
8902         always be removed.
8903         (cgraph_externally_visible_p): We can not bring local comdats that
8904         are known to linker; fix handling of internal visibility.
8905         (function_and_variable_visibility): Likewise.
8906
8907 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
8908
8909         PR rtl-optimization/45394
8910         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
8911         (struct rtx_subst_pair): Remove AFTER field.
8912         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
8913         (propagate_for_debug): Remove MOVE parameter and adjust.
8914         (try_combine): In the special case where I2 is a PARALLEL, combine only
8915         destinations of SETs and set I2SRC to the I2 source.
8916         Adjust calls to propagate_for_debug throughout.
8917         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
8918         insns.
8919
8920 2010-10-06  Olivier Hainque  <hainque@adacore.com>
8921
8922         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
8923         switch on insn codes as sequence of ifs.
8924
8925 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
8926
8927         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
8928         be UI_NONE for picochip.
8929         (picochip_option_override): Do not disable exception flags.
8930         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
8931         Declare.
8932
8933 2010-10-06  Richard Guenther  <rguenther@suse.de>
8934
8935         * Makefile.in (regmove.o): Depend on $(TARGET_H).
8936
8937 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
8938
8939         Implemented fast enumeration for Objective-C.
8940         * c-parser.c (objc_could_be_foreach_context): New.
8941         (c_lex_one_token): Recognize RID_IN keyword in a potential
8942         Objective-C foreach context.
8943         (c_parser_declaration_or_fndef): Added parameter.  Accept
8944         Objective-C RID_IN keyword as terminating a declaration; in that
8945         case, return the declaration in the new parameter.
8946         (c_parser_extenral_declaration): Updated calls to
8947         c_parser_declaration_or_fndef.
8948         (c_parser_declaration_or_fndef): Same change.
8949         (c_parser_compound_statement_nostart): Same change.
8950         (c_parser_label): Same change.
8951         (c_parser_objc_methodprotolist): Same change.
8952         (c_parser_omp_for_loop): Same change.
8953         (c_parser_for_statement): Detect and parse Objective-C foreach
8954         statements.
8955         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
8956         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
8957         fast enumeration parsing code to turn off the c99 error but still
8958         perform checks on the loop declarations.
8959         * c-tree.h (check_for_loop_decls): Updated declaration.
8960         * doc/objc.texi: Document fast enumeration.
8961
8962 2010-10-06  Nick Clifton  <nickc@redhat.com>
8963
8964         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
8965         (MDR_REGNUM): Define.
8966         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
8967         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
8968         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
8969         (REGISTER_NAMES): Add MDR.
8970         (DWARF2_DEBUGGING_INFO): Define to 1.
8971         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8972         (F): New function.  Sets RTX_FRAME_RELATED_P.
8973         (mn10300_gen_multiple_store): Use F.
8974         (expand_prologue): Use F.  Use gen_movsf() to push floating
8975         point registers.
8976         (expand_epilogue): Use gen_movsf() to pop floating point registers.
8977         (mn10300_option_override): Disable combine stack adjust pass.
8978
8979 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
8980
8981         PR target/45901
8982         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
8983         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
8984
8985 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
8986
8987         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
8988         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
8989         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
8990         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
8991         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
8992         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
8993         BUILT_IN_TOUPPER): Mark as leaf.
8994
8995         PR middle-end/45838
8996         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
8997         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
8998         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
8999         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
9000         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
9001         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
9002         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
9003
9004 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
9005
9006         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
9007         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9008         (m68hc11_class_likely_spilled_p): New function.
9009
9010 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
9011
9012         * c-parser.c (c_parser_objc_method_definition): Updated comment.
9013
9014 2010-10-05  Jan Hubicka  <jh@suse.cz>
9015
9016         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
9017         Document.
9018         * opts.c (decode_options): Handle lto partitions.
9019         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
9020         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
9021
9022 2010-10-05  Jan Hubicka  <jh@suse.cz>
9023
9024         * cgraphunit.c (assemble_function): Output thunks and aliases before
9025         the function itself.
9026
9027 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
9028
9029         * config/picochip/picochip.c (picochip_option_override): Disable
9030         exception flags for picochip.
9031
9032 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
9033
9034         * opts-common.c (handle_option, handle_generated_option,
9035         read_cmdline_option, set_option): Add diagnostic_context
9036         parameter.  Update calls among these functions.
9037         (set_option): Don't use global_dc.
9038         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
9039         (decode_options): Pass global_dc to enable_warning_as_error.
9040         (common_handle_option): Pass global_dc to enable_warning_as_error.
9041         (enable_warning_as_error): Add diagnostic_context parameter.
9042         Document parameters.  Don't use global_dc.  Pass
9043         diagnostic_context parameter to handle_generated_option.
9044         * opts.h (set_option, handle_option, handle_generated_option,
9045         read_cmdline_option, enable_warning_as_error): Add
9046         diagnostic_context parameter.
9047         * Makefile.in (lto-opts.o): Update dependencies.
9048         * coretypes.h (struct diagnostic_context, diagnostic_context):
9049         Declare here.
9050         * diagnostic.h (diagnostic_context): Don't declare typedef here.
9051         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
9052         * langhooks-def.h (struct diagnostic_context): Don't declare here.
9053         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
9054         using diagnostic_context typedef.
9055         * langhooks.c (lhd_initialize_diagnostics): Declare using
9056         diagnostic_context typedef.
9057         * langhooks.h (struct diagnostic_context): Don't declare here.
9058         (initialize_diagnostics, print_error_function): Declare using
9059         diagnostic_context typedef.
9060         * lto-opts.c: Include diagnostic.h.
9061         (lto_reissue_options): Pass global_dc to set_option.  Pass
9062         DK_UNSPECIFIED not 0.
9063         * plugin.c (plugins_internal_error_function): Declare using
9064         diagnostic_context typedef.
9065         * plugin.h (struct diagnostic_context): Don't declare here.
9066         (plugins_internal_error_function): Declare using
9067         diagnostic_context typedef.
9068
9069 2010-10-05  Olivier Hainque  <hainque@adacore.com>
9070             Nicolas Roche  <roche@adacore.com>
9071
9072         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
9073         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
9074
9075 2010-10-05  Ira Rosen  <irar@il.ibm.com>
9076
9077         PR tree-optimization/45752
9078         * tree-vect-slp.c (vect_get_mask_element): Remove static
9079         variables, make them function arguments.
9080         (vect_transform_slp_perm_load): Pass new arguments to
9081         vect_get_mask_element.
9082
9083 2010-10-05  Richard Guenther  <rguenther@suse.de>
9084
9085         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
9086         (gimple_mod_pow2): Likewise.
9087         (gimple_mod_subtract): Likewise.
9088         (gimple_ic): Likewise.
9089         (gimple_stringop_fixed_value): Likewise.
9090         * tree-profile.c (tree_init_edge_profiler): Mark profile
9091         functions nothrow and leaf.
9092         (add_abnormal_goto_call_edges): Remove.
9093         (tree_gen_edge_profiler): Work on SSA form.
9094         (tree_gen_ic_profiler): Likewise.  Simplify.
9095         (do_tree_profiling): Update SSA form.
9096         (pass_tree_profile): Remove.
9097         (do_tree_profiling): Likewise.
9098         (gate_tree_profile_ipa): New function.
9099         (pass_ipa_tree_profile): New.
9100         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
9101         state of instrumented functions.
9102         * passes.c (init_optimization_passes): Remove early non-SSA
9103         inlining.  Move profiling after early optimizations.
9104         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
9105         (pass_ipa_early_inline): Likewise.
9106         * tree-pass.h (pass_ipa_early_inline): Remove.
9107         (pass_tree_profile): Likewise.
9108         (pass_ipa_tree_profile): Declare.
9109
9110 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9111             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
9112
9113         * config/s390/s390.c (z196_cost): New.
9114         (s390_handle_arch_option): Add -march=z196.
9115         (s390_option_override): Use the new cost function and use the z10
9116         defaults also for z196.
9117         (legitimate_reload_constant_p): Adjust comment.
9118         (legitimate_reload_fp_constant_p): New function.
9119         (s390_preferred_reload_class): Distingiush between FP and Int constants.
9120         (preferred_la_operand_p): Avoid la with index on z196.
9121         (s390_adjust_priority): Trigger also for z196.
9122         (s390_issue_rate): Issue rate for z196 is 3.
9123         (s390_z10_fix_long_loop_prediction): Rename to ...
9124         (s390_fix_long_loop_prediction): ... this.
9125         (s390_reorg): Apply the z10 adjustments also for z196.
9126         (s390_loop_unroll_adjust): Do this also for z196.
9127         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
9128         (enum processor_flags): Add PF_Z196.
9129         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
9130         (TARGET_CPU_Z196, TARGET_Z196): New macros.
9131         * config.gcc: Enable z196 for --with-arch.
9132         * config/s390/2817.md: New file.
9133         * config/s390/2084.md: New type for multiply and add.
9134         * config/s390/2097.md: Likewise.
9135         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
9136         (UNSPECV_ATOMIC_OP): New constants.
9137         (fmadddf, fmaddsf): New values for type attribute.
9138         (z196prop): New insn attribute.
9139         (cpu, cpu_facility): Add z196.
9140         (ATOMIC_Z196): New code iterator.
9141         (noxa): New code attribute.
9142         (gk): New mode attribute.
9143         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
9144         Support load zero for fp constants.
9145         (fixuns_truncdddi2, fixuns_trunctddi2)
9146         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
9147         for z196.
9148         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
9149         (popcounthi2, popcountqi2): New expander.
9150         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
9151         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
9152         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
9153         insn definition.
9154         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
9155         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
9156         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
9157         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
9158         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
9159         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
9160         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
9161         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
9162         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
9163         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
9164         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
9165         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
9166         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
9167         Support new z196 instructions.
9168
9169 2010-10-05  Richard Guenther  <rguenther@suse.de>
9170
9171         PR middle-end/45877
9172         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
9173         case where gimplification optimizes away the stmt.
9174
9175 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9176
9177         PR debug/45849
9178         * var-tracking.c (strip_pointer_flags): New function.
9179         (emit_note_insn_var_location): If rtx_equal_p check failed,
9180         retry on locations simplified with simplify_replace_fn_rtx
9181         and strip_pointer_flags as its callback.
9182
9183 2010-10-04  Jan Hubicka  <jh@suse.cz>
9184
9185         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
9186         (can_refer_decl_in_current_unit_p): ... this one; reverse return
9187         value; handle comdats too.
9188         (canonicalize_constructor_val): Use it; handle function_decls
9189         correctly.
9190         (gimple_fold_obj_type_ref_known_binfo): Likewise.
9191         * gimple.c (get_base_address): Accept all kinds of decls.
9192
9193 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9194
9195         * flags.h (g_switch_value, g_switch_set): Remove.
9196         * opts.c (g_switch_value, g_switch_set): Remove.
9197         * config/g.opt (G): Add Var(g_switch_value).
9198         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
9199         (alpha_option_override): Check global_options_set.x_g_switch_value
9200         instead of g_switch_set.
9201         (alpha_in_small_data_p): Remove cast in comparison with
9202         g_switch_value.
9203         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
9204         g_switch_value to unsigned HOST_WIDE_INT.
9205         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
9206         with g_switch_value.
9207         (frv_handle_option): Don't handle -G here.
9208         (frv_option_override): Check global_options_set.x_g_switch_value
9209         instead of g_switch_set.  Don't modify g_switch_set.
9210         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
9211         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
9212         g_switch_value to unsigned HOST_WIDE_INT.
9213         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
9214         (ia64_option_override): Check global_options_set.x_g_switch_value
9215         instead of g_switch_set.
9216         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
9217         Remove.
9218         (lm32_in_small_data_p): Remove cast in comparison with
9219         g_switch_value.
9220         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
9221         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
9222         HOST_WIDE_INT.
9223         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
9224         (m32r_init): Check global_options_set.x_g_switch_value instead of
9225         g_switch_set.
9226         (m32r_in_small_data_p): Remove cast in comparison with
9227         g_switch_value.
9228         (m32r_file_start): Format g_switch_value with %d.
9229         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
9230         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
9231         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
9232         handle -G here.
9233         (microblaze_option_override): Check
9234         global_options_set.x_g_switch_value instead of g_switch_set.
9235         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
9236         (mips_option_override): Check global_options_set.x_g_switch_value
9237         instead of g_switch_set.
9238         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
9239         (rs6000_file_start): Format g_switch_value with %d.
9240         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
9241         comparisons with g_switch_value.
9242         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
9243         global_options_set.x_g_switch_value instead of g_switch_set.
9244         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9245         global_options_set.x_g_switch_value instead of g_switch_set.
9246         * config/score/score.c (score_handle_option): Don't handle -G here.
9247         * config/score/score3.c (score3_option_override): Check
9248         global_options_set.x_g_switch_value instead of g_switch_set.
9249         * config/score/score7.c (score7_option_override): Check
9250         global_options_set.x_g_switch_value instead of g_switch_set.
9251
9252 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
9253
9254         * common.opt (fira-coalesce): Remove.
9255
9256         * doc/invoke.texi (flag_ira_coalesce): Remove.
9257
9258         * ira-color.c (allocno_coalesced_p): Move before
9259         copy_freq_compare_func.
9260         processed_coalesced_allocno_bitmap): Ditto.
9261         (update_conflict_hard_regno_costs): Don't use
9262         ALLOCNO_FIRST_COALESCED_ALLOCNO.
9263         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
9264         (assign_hard_reg): Assume no coalesced allocnos.
9265         (get_coalesced_allocnos_attributes): Remove.
9266         (bucket_allocno_compare_func): Assume no coalesced allocnos.
9267         (push_allocno_to_stack): Ditto.
9268         (remove_allocno_from_bucket_and_push): Use
9269         ira_print_expanded_allocno instead of print_coalesced_allocno.
9270         (push_allocnos_to_stack): Assume uncoalesced allocnos.
9271         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
9272         all_conflicting_hard_regs.
9273         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
9274         (setup_allocno_left_conflicts_size): Ditto.
9275         (put_allocno_into_bucket): Ditto.
9276         (copy_freq_compare_func): Remove.
9277         (copy_freq_compare_func, merge_allocnos): Move before
9278         coalesced_pseudo_reg_freq_compare.
9279         coalesced_allocno_conflict_p): Ditto.
9280         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
9281         parameter.  Assume it true.
9282         (color_allocnos): Assume uncoalesced allocnos.  Use
9283         ira_print_expanded_allocno instead of print_coalesced_allocno.
9284         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
9285         parameter.
9286
9287         * ira.c: Remove comment about coalescing.
9288
9289 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9290
9291         * config/mips/mips.h (target_flags_explicit): Declare for
9292         GENERATOR_FILE.
9293
9294 2010-10-04  Andi Kleen  <ak@linux.intel.com>
9295
9296         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
9297         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
9298
9299 2010-10-04  Matthias Klose  <doko@ubuntu.com>
9300
9301         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
9302         multilib osdirname if it exists.
9303         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
9304
9305 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9306
9307         PR middle-end/45876
9308         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
9309         arg0's type or its unsigned counterpart as utype.  Convert
9310         arg1 to utype unconditionally.
9311
9312 2010-10-04  Julian Brown  <julian@codesourcery.com>
9313
9314         * expr.c (expand_assignment): Add assertion to prevent emitting
9315         null rtx for movmisalign pattern.
9316         (expand_expr_real_1): Likewise.
9317         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
9318         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
9319         (arm_vector_alignment_reachable): New.
9320         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
9321         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
9322         (arm_print_operand): Include alignment qualifier in %A.
9323         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
9324         (movmisalign<mode>): New expander.
9325         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
9326         insn patterns.
9327
9328 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9329
9330         * optc-gen.awk: Define global_options_set.  Don't define
9331         target_flags_explicit.
9332         * opth-gen.awk: Declare global_options_set.  Define
9333         target_flags_explicit as macro.
9334         * opts-common.c (handle_option): Take opts_set and generated_p
9335         parameters.
9336         (handle_generated_option, read_cmdline_option, set_option): Take
9337         opts_set parameter.
9338         (set_option): Use opts_set instead of hardcoding target_flags and
9339         target_flags_explicit.
9340         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
9341         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
9342         flag_value_profile_transformations_set, flag_peel_loops_set,
9343         flag_branch_probabilities_set, flag_inline_functions_set,
9344         flag_ipa_cp_set, flag_ipa_cp_clone_set,
9345         flag_predictive_commoning_set, flag_unswitch_loops_set,
9346         flag_gcse_after_reload_set): Remove.
9347         (common_handle_option, lang_handle_option, target_handle_option):
9348         Take opts_set parameter.  Assert that it is &global_options_set.
9349         (common_handle_option): Don't set _set variables.  Check opts_set
9350         instead of such variables.
9351         (enable_warning_as_error): Pass &global_options_set to
9352         handle_generated_option.
9353         * opts.h (cl_option_handler_func.handler, set_option,
9354         handle_option, handle_generated_option, read_cmdline_option): Add
9355         opts_set parameters.
9356         (handle_option): Add generated_p parameter.
9357         * config/i386/i386.c (ix86_function_specific_save,
9358         ix86_function_specific_restore): Updat for renaming of
9359         target_flags_explicit field.
9360         * config/i386/i386.opt (target_flags_explicit): Rename to
9361         ix86_target_flags_explicit.
9362         * config/ia64/ia64.c (ia64_override_options_after_change): Check
9363         global_options_set.x_flag_selective_scheduling and
9364         global_options_set.x_flag_selective_scheduling2, not
9365         sel_sched_switch_set.
9366         * flags.h (sel_sched_switch_set,
9367         flag_speculative_prefetching_set): Remove.
9368         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
9369         that it is &global_options_set.
9370         (process_command): Pass &global_options_set to read_cmdline_option.
9371         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
9372         set_option.
9373         * toplev.c (target_flags_explicit): Remove.
9374
9375 2010-10-04  Jan Hubicka  <jh@suse.cz>
9376
9377         PR middle-end/45871
9378         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
9379         use get_ref_base_and_offset to handle references.
9380         (fold_const_aggregate_ref): Update.
9381
9382 2010-10-04  Martin Jambor  <mjambor@suse.cz>
9383
9384         PR tree-optimization/45572
9385         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
9386         ipa_check_create_node_params.
9387         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
9388
9389 2010-10-04  Yao Qi  <yao@codesourcery.com>
9390
9391         * doc/passes.texi: Clean up.
9392
9393 2010-10-03  Ian Lance Taylor  <iant@google.com>
9394
9395         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
9396         referring to a field using a typedef name.
9397         (find_anonymous_field_with_type): New static function.
9398         (convert_to_anonymous_field): New static function.
9399         (convert_for_assignment): If -fplan9-extensions, permit converting
9400         pointer to struct to pointer to anonymous field.
9401         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
9402         (is_duplicate_field): New static function.
9403         (detect_field_duplicates_hash): If -fplan9-extensions, check for
9404         typedef names duplicating field names.
9405         (detect_field_duplicates): Likewise.
9406         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
9407         (C Dialect Options): Document -fplan9-extensions.
9408         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
9409
9410 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
9411
9412         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
9413         revision 164914.
9414         (vect_create_data_ref_ptr): Likewise.
9415         * tree-vect-stmts.c (vectorizable_store): Likewise.
9416         (perm_mask_for_reverse): Likewise.
9417         (reverse_vec_elements): Likewise.
9418         (vectorizable_load): Likewise.
9419
9420 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9421
9422         * cppbuiltin.c: New file.
9423         * cppbuiltin.h: New file.
9424         * Makefile.in: Take into account cppbuiltin.{h,c}.
9425
9426 2010-10-03  Andi Kleen  <ak@linux.intel.com>
9427
9428         * lto-cgraph.c (input_cgraph): Check for missing sections.
9429
9430 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
9431
9432         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
9433         to nonimmediate_operand.  Force operand 2 to register when allowed.
9434         (*<shiftrt_insn><mode>3_mask): Ditto.
9435         (*<rotate_insn><mode>3_mask): Ditto.
9436
9437 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
9438
9439         PR tree-optimization/45720
9440         PR tree-optimization/45764
9441         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
9442         Don't accept backwards consecutive accesses.
9443         (vect_create_data_ref_ptr): Disallow negative steps.
9444
9445         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
9446         (perm_mask_for_reverse): Removed.
9447         (reverse_vec_elements): Likewise.
9448         (vectorizable_load): Don't handle negative steps.
9449
9450 2010-10-02  Jan Hubicka  <jh@suse.cz>
9451
9452         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
9453         call destination is known.
9454
9455 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9456
9457         PR target/45820
9458         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
9459         earlier.
9460
9461 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9462
9463         * doc/install.texi (Configuration): Document build_configargs,
9464         host_configargs, target_configargs.
9465
9466 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
9467
9468         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
9469         (*<shiftrt_insn><mode>3_mask): Ditto.
9470         (*<rotate_insn><mode>3_mask): Ditto.
9471
9472 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
9473
9474         PR tree-optimization/44716
9475         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
9476         (HOT_TEXT_SECTION_NAME): Define.
9477
9478 2010-10-01  Nick Clifton  <nickc@redhat.com>
9479
9480         * common.opt: Add -fcombine-stack-adjustments.
9481         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
9482         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
9483         flag_combine_stack_adjustments.
9484         * doc/invoke.texi: Document the new option.
9485
9486 2010-10-01  Richard Guenther  <rguenther@suse.de>
9487
9488         PR tree-optimization/45854
9489         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
9490
9491 2010-10-01  Anthony Green  <green@moxielogic.com>
9492
9493         * config.gcc: Fix moxie-*-rtems* configuration.
9494
9495 2010-10-01  Richard Guenther  <rguenther@suse.de>
9496
9497         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
9498         (gen_decl_die): Likewise.
9499
9500 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9501
9502         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
9503         to the function code for SPU MD builtins.
9504         (spu_expand_builtin): Update.
9505         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
9506
9507 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9508
9509         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
9510         sjlj_except_unwind_info.
9511
9512 2010-10-01  Tristan Gingold  <gingold@adacore.com>
9513
9514         * configure.ac: Define the nop insn for avr*-*-*
9515         * configure: Regenerate.
9516
9517 2010-10-01  Alan Modra  <amodra@gmail.com>
9518
9519         PR target/45807
9520         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
9521         extend toc_restore_insn.
9522
9523 2010-09-30  Richard Guenther  <rguenther@suse.de>
9524
9525         PR tree-optimization/43959
9526         * function.c (gimplify_parameters): Use create_tmp_reg instead of
9527         create_tmp_var.
9528
9529 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
9530
9531         * config/sh/sh.c (sh_expand_prologue): Set
9532         current_function_static_stack_size.
9533
9534 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9535
9536         * configure.ac: Check for Solaris 8 ld with .hidden support.
9537         * configure: Regenerate.
9538
9539 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9540
9541         PR middle-end/45758
9542         * graphite.c (graphite_initialize): Call scev_reset.
9543
9544 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9545
9546         * sese.h (scev_analyzable_p): Return false for real or floating
9547         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
9548
9549 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9550
9551         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
9552         and ps.
9553         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
9554         domain.
9555         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
9556         Do not allocate ub_expr, it is passed in initialized.
9557
9558 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9559
9560         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
9561         (build_cloog_prog): Dump CLooG input file when
9562         flag_graphite_dump_cloog is set.  This is disabled on trunk.
9563         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
9564
9565 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9566
9567         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
9568         verify_dominators for CDI_POST_DOMINATORS.
9569         * sese.h: Remove comment about CDI_POST_DOMINATORS.
9570         (recompute_all_dominators): Remove call to free_dominance_info
9571         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
9572         for CDI_POST_DOMINATORS.
9573
9574 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9575
9576         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
9577         over pbb_dim_iter_domain.
9578
9579 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9580
9581         * graphite-flattening.c: Fix comments.
9582
9583 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9584
9585         * Makefile.in (OBJS-common): Add graphite-flattening.o.
9586         (graphite-flattening.o): New rule.
9587         * common.opt (floop-flatten): New flag.
9588         * doc/invoke.texi (-floop-flatten): Documented.
9589         * graphite-flattening.c: New.
9590         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
9591         * graphite-poly.h (flatten_all_loops): Declared.
9592         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
9593         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
9594         is set, also set flag_graphite.
9595
9596 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9597
9598         * graphite-poly.c (cloog_checksum): New.
9599         * graphite-poly.h (cloog_checksum): Declared.
9600
9601 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9602
9603         * graphite-poly.c (pbb_number_of_iterations): Removed.
9604         (pbb_number_of_iterations_at_time): Correctly compute the number
9605         of iterations in the transformed loop.
9606         * graphite-poly.h (pbb_number_of_iterations): Removed.
9607
9608 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9609
9610         * graphite-poly.h (lst_update_scattering_seq): Removed.
9611         (lst_update_scattering): Correctly handle outermost loop dewey
9612         renumbering.
9613
9614 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9615
9616         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
9617         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
9618         * graphite-poly.h (lst_niter_for_loop): New.
9619
9620 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9621
9622         * graphite-poly.c (apply_poly_transforms): Do not abort when the
9623         transform read from disk is not legal.  Call fatal_error instead.
9624
9625 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9626
9627         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
9628         (print_scop_header): Removed.  Inlined in the only call place...
9629         (print_scop): ... here.
9630
9631 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9632
9633         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
9634
9635 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9636
9637         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
9638
9639 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9640
9641         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
9642         (dot_deps_stmt): Same.
9643         * graphite-poly.c (dot_lst): Same.
9644
9645 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9646
9647         * graphite-blocking.c (scop_do_strip_mine): Do not call
9648         graphite_legal_transform.
9649         (scop_do_block): Same.
9650
9651 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9652
9653         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
9654         description.
9655
9656 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9657
9658         * tree-scalar-evolution.c (instantiate_array_ref): New.
9659         (instantiate_scev_r): Also handle ARRAY_REFs.
9660
9661 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9662
9663         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
9664         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
9665         RESULT_DECL, and FIELD_DECL.  Return false for an
9666         SSA_NAME_IS_DEFAULT_DEF.
9667         (compute_scalar_evolution_in_loop): Do not further analyze the
9668         scalar evolution when no_evolution_in_loop_p returns true.
9669
9670 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9671
9672         * tree-chrec.h (evolution_function_is_affine_p): Do not check
9673         whether CHREC_LEFT is invariant.  A function is affine when
9674         CHREC_RIGHT is invariant.
9675
9676 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9677
9678         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
9679         is_gimple_reg.
9680         (rewrite_degenerate_phi): Same.
9681         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
9682
9683 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9684
9685         * graphite-scop-detection.c (graphite_can_represent_scev,
9686         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
9687         graphite_can_represent_loop): Remove outermost_loop.
9688
9689 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9690
9691         PR middle-end/45229
9692         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
9693         handle GIMPLE_CALLs with no LHS.
9694
9695 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9696
9697         * graphite-poly.c (init_graphite_out_file): New.
9698         (init_graphite_in_file): New.
9699         (apply_poly_transforms): Updated to enable reading and writing of
9700         multiple scop files.
9701
9702 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
9703
9704         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
9705         redundant checks.
9706
9707 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9708
9709         * graphite-clast-to-gimple.c (precision_for_value): Adjust
9710         computation of precision by 1.
9711
9712 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9713
9714         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
9715         (openscop_read_polyhedron_matrix): New.
9716         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
9717         (openscop_read_N_int): Same.
9718         * graphite-poly.c (openscop_read_N_int): New.
9719         (openscop_read_one_int): New.
9720         (openscop_read_N_string): New.
9721         (openscop_read_one_string): New.
9722         (openscop_read_powerset_matrix): New.
9723         (graphite_read_transforms): Remove.
9724         (graphite_read_scatt): New.
9725         (graphite_read_scop_file): New.
9726         (apply_poly_transforms): Updated to call graphite_read_scop_file.
9727
9728 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9729
9730         * graphite-poly.c: Change include order.
9731
9732 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9733
9734         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
9735         (cloog_matrix_nrows): New.
9736
9737 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9738
9739         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
9740         from matrix lines.
9741         * graphite-poly.c (openscop_print_scattering_function_1): Same.
9742         (print_scattering_function_1): Same.
9743         (openscop_print_pbb_domain): Same.
9744         (openscop_print_scop_context): Same.
9745         (print_scop_context): Same.
9746
9747 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
9748
9749         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
9750         (openscop_print_pdr_polyhedron): Print pph.
9751
9752 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9753
9754         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
9755         priority signed types.
9756
9757 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9758
9759         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
9760         the call to lang_hooks.types.type_for_size.  Call
9761         build_nonstandard_integer_type.
9762
9763 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9764
9765         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
9766         (openscop_print_polyhedron_matrix): New.
9767         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
9768         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
9769         (openscop_print_pdr_powerset): New.
9770         (openscop_print_powerset_matrix): New.
9771         (openscop_print_scattering_function_1): New.
9772         (print_scattering_function): Add support for scattering names and
9773         OpenScop format.
9774         (graphite_write_transforms): Remove.
9775         (print_pdr_access_layout): Updated to support OpenScop format.
9776         (print_pdr): Same.
9777         (openscop_print_pbb_domain): New.
9778         (print_pbb_body): Added a parameter to allow indicating that pbb_body
9779         is not provided.
9780         (print_pbb): Updated to call the new print_pbb_body.
9781         (openscop_print_scop_context): New.
9782         (print_scop_header): New.
9783         (print_scop): Updated to call print_scop_header.
9784         * graphite-poly.h: Document OpenScop format.
9785
9786 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
9787
9788         * config/cris/m32c.c (cris_memory_move_cost): New.
9789         (cris_register_move_cost): Make static. Change arguments type from
9790         enum reg_class to reg_class_t.
9791         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
9792         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9793         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
9794
9795 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9796
9797         PR target/45843
9798         * config/i386/i386.c (ix86_gimplify_va_arg): Use
9799         INTVAL (XEXP (slot, 1)) as prev_size.
9800
9801 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
9802
9803         PR target/45837
9804         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
9805         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
9806         defined.
9807         * config/rs6000/option-defaults.h (toplevel): Change #if
9808         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
9809         global option changes.
9810
9811 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9812
9813         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
9814
9815         PR tree-optimization/31261
9816         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
9817         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
9818
9819 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9820
9821         PR bootstrap/45796
9822         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
9823         special-casing for generators and turn into ...
9824         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
9825         rule, for better error messages in case of toplevel dependency errors.
9826         (genprog): Add hooks, rename to ...
9827         (genprogerr): ... this, and let genprog also contain check,
9828         checksum, condmd.
9829         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
9830         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
9831         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
9832
9833 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
9834             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9835
9836         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
9837         for GMP, MPFR and MPC.
9838
9839 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9840
9841         * config/sparc/sparc.opt (mimpure-text): Move ...
9842         * config/sol2.opt: ... here.  Correct description.
9843         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
9844         * doc/invoke.texi (Option Summary, SPARC Options): Move
9845         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
9846         (Option Summary, Solaris 2 Options): ... here.
9847         (Submodel Options, Solaris 2 Options): New menu entry.
9848         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
9849         (Solaris 2 Options): ... here.
9850
9851 2010-09-30  Michael Eager  <eager@eagercon.com>
9852
9853         * extend.texi (interrupt_handler): Add MicroBlaze to list.
9854         (save_volatiles): Describe option for MicroBlaze.
9855         * invoke.texi: Add MicroBlaze Options.
9856         * contrib.texi: Add acknowledgment.
9857         * md.texi: Add MicroBlaze d and z constraints.
9858         * install.texi: Add microblaze-*-elf.
9859         * configure.ac: Add microblaze-*-* to target list.
9860         * configure: Regenerate.
9861         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
9862         * config/microblaze/microblaze-protos.h: New.
9863         * config/microblaze/crti.s: New.
9864         * config/microblaze/predicates.md: New.
9865         * config/microblaze/linux.h: New.
9866         * config/microblaze/microblaze.md: New.
9867         * config/microblaze/constraints.md: New.
9868         * config/microblaze/crtn.s: New.
9869         * config/microblaze/microblaze.opt: New.
9870         * config/microblaze/microblaze-c.c: New.
9871         * config/microblaze/t-microblaze: New.
9872         * config/microblaze/microblaze.c: New.
9873         * config/microblaze/microblaze.h: New.
9874
9875 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
9876
9877         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
9878         parse @optional/@required and set the flags as appropriate.
9879
9880 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
9881
9882         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
9883
9884 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
9885
9886         * opt-functions.awk (static_var): Update comment.
9887         (var_ref): Return offsetof expression or -1, not variable address.
9888         * optc-gen.awk: Generate structure field initializers instead of
9889         static variables.  Expect -1 for missing variables instead of null
9890         pointer.  Add gcc_options parameters to generated functions.
9891         * opth-gen.awk: Generate structure fields for static variables.
9892         Add gcc_options parameters to generated functions.
9893         * common.opt (optimize, optimize_size): Add variables.
9894         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
9895         &global_options to cl_target_option_restore.
9896         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
9897         &global_options to cl_optimization_restore, cl_target_option_save
9898         and cl_target_option_restore.
9899         (ix86_set_current_function): Pass &global_options to
9900         cl_target_option_restore.
9901         * config/pdp11/pdp11.h (optimize): Remove.
9902         * config/rs6000/rs6000.h (optimize): Remove.
9903         * config/sh/sh.h (optimize): Remove.
9904         * config/xtensa/xtensa.h (optimize): Remove.
9905         * coretypes.h (struct gcc_options): Declare.
9906         * diagnostic.c (diagnostic_initialize): Initialize
9907         context->option_state.
9908         (diagnostic_report_diagnostic): Pass option_state to
9909         option_enabled hook.
9910         * diagnostic.h (diagnostic_context.option_enabled): Add void *
9911         parameter.
9912         (diagnostic_context.option_state): New field.
9913         * final.c (final_start_function, final, final_scan_insn): Rename
9914         optimize parameter to optimize_p.
9915         * flags.h (optimize, optimize_size): Remove.
9916         * function.c (invoke_set_current_function_hook): Pass
9917         &global_options to cl_optimization_restore.
9918         * gcc.c (driver_handle_option): Take gcc_options parameter.
9919         Assert that it is &global_options.
9920         (process_command): Pass &global_options to read_cmdline_option.
9921         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
9922         option_enabled.
9923         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
9924         &global_options to set_option.
9925         * opts-common.c (handle_option, handle_generated_option,
9926         read_cmdline_option, set_option): Take explicit gcc_options
9927         parameters.  Use option_flag_var.
9928         (option_flag_var): New.
9929         * opts.c (common_handle_option, lang_handle_option,
9930         target_handle_option): Take gcc_options parameter.  Assert that it
9931         is &global_options.
9932         (read_cmdline_options): Pass &global_options to read_cmdline_option.
9933         (print_filtered_help): Use option_flag_var.  Pass &global_options
9934         to option_enabled.
9935         (common_handle_option): Use option_flag_var.
9936         (option_enabled): Take opts parameter.  Use option_flag_var.
9937         (get_option_state): Take gcc_options parameter.  Use
9938         option_flag_var.  Pass gcc_options parameter to option_enabled.
9939         (enable_warning_as_error): Pass &global_options to
9940         handle_generated_option.
9941         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
9942         (cl_option_handler_func.handler): Take gcc_options parameter.
9943         (option_enabled, get_option_state, set_option, handle_option,
9944         handle_generated_option, read_cmdline_option): Take gcc_options
9945         parameters.
9946         * toplev.c (optimize, optimize_size): Remove.
9947         (print_switch_values): Pass &global_options to option_enabled.
9948         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
9949         to get_option_state.
9950         (general_init): Initialize global_dc->option_state.
9951         * tree.c (build_optimization_node): Pass &global_options to
9952         cl_optimization_save.
9953         (build_target_option_node): Pass &global_options to
9954         cl_target_option_save.
9955
9956 2010-09-30  Martin Jambor  <mjambor@suse.cz>
9957
9958         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
9959         zero sized bit-fields.
9960
9961 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
9962
9963         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
9964         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
9965         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
9966         (c_parser_objc_class_declaration): Same change.
9967         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
9968         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
9969         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
9970         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
9971         and RID_AT_PUBLIC instead of RID_PUBLIC.
9972         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
9973         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
9974
9975 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
9976
9977         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
9978         Add links to current providers of packages for Solaris and IRIX.
9979
9980 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
9981
9982         Merge from 'apple/trunk' branch on FSF servers.
9983         * c-parser.c: Applied change originally in c-parse.in.
9984
9985         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
9986
9987         Radar 4281748
9988         * c-decl.c (start_decl): Check for redeclaration of class name.
9989         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
9990
9991 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
9992
9993         * config/ia64/ia64.c (ia64_builtin_decl): New.
9994         (TARGET_BUILTIN_DECL): Define.
9995         (ia64_builtins): New.
9996         (ia64_init_builtins): Save decls in ia64_builtins.
9997
9998 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
9999
10000         PR target/40457
10001         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
10002         (move2add_use_add3_insn): Likewise.
10003         (reload_cse_move2add): Likewise.
10004         * rtlanal.c (get_full_rtx_cost): New function.
10005         * rtl.h (struct full_rtx_costs): New.
10006         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
10007         costs_add_n_insns): New inline functions.
10008         (get_full_rtx_cost): Declare.
10009
10010         PR c/45054
10011         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
10012         invariants.  Check for reg_equiv_invariant.
10013         (reload): Assert that spilled_pseudos is empty when returning.
10014
10015 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
10016
10017         * config/i386/mingw32.h (TARGET_64BIT): replaced by
10018         TARGET_64BIT_DEFAULT in #if check.
10019
10020 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
10021
10022         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
10023
10024 2010-09-29  Mike Stump  <mikestump@comcast.net>
10025
10026         * config/darwin.h (flag_mkernel): Remove.
10027         (flag_apple_kext): Likewise.
10028
10029 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10030             Jack Howarth  <howarth@bromo.med.uc.edu>
10031
10032         * config/darwin.opt (undefined): Add.
10033
10034 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
10035
10036         PR testsuite/45664
10037         * configure.ac: Add --enable-indirect-function option.
10038         * config.gcc: Add default_gnu_indirect_function.
10039         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
10040         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
10041         * varasm.c (do_assemble_alias): Adjust for macro name change.
10042         * configure: Rebuilt.
10043         * doc/install.texi: Document --enable-indirect-function.
10044
10045 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10046
10047         * doc/options.texi (Variable, Var, Init): Update documentation
10048         without reference to VarExists.
10049         (VarExists): Remove.
10050         * common.opt, config/i386/i386.opt, config/linux.opt,
10051         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
10052         Don't use VarExists.
10053
10054 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10055
10056         * optc-gen.awk: Generate global_options initializer instead of
10057         individual variables.  Add x_ prefix to names of structure members.
10058         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
10059         names of structure members.
10060         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10061         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
10062         * doc/tm.texi: Regenerate.
10063         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10064         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10065         * c-parser.c (disable_extension_diagnostics,
10066         restore_extension_diagnostics): Update names of cpp_options members.
10067         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10068         * common.opt (fcompare-debug-second): Don't use Var.
10069         * config/alpha/alpha.h (target_flags): Remove.
10070         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10071         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10072         * config/bfin/bfin.h (target_flags): Remove.
10073         * config/cris/cris.h (target_flags): Remove.
10074         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
10075         cl_target_option members.
10076         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
10077         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
10078         ix86_can_inline_p): Update names of cl_target_option members.
10079         * config/i386/i386.h (ix86_isa_flags): Remove.
10080         * config/lm32/lm32.h (target_flags): Remove.
10081         * config/mcore/mcore.h (mcore_stack_increment): Remove.
10082         * config/mcore/mcore.md (addsi3): Remove extern declaration of
10083         flag_omit_frame_pointer.
10084         * config/mep/mep.h (target_flags): Remove.
10085         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10086         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10087         * config/mmix/mmix.h (target_flags): Remove.
10088         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
10089         flag_expensive_optimizations): Remove.
10090         * config/s390/s390.h (flag_pic): Remove.
10091         * config/score/score-conv.h (target_flags): Remove.
10092         * config/sh/sh.h (sh_fixed_range_str): Remove.
10093         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
10094         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10095         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10096         * diagnostic.c (diagnostic_initialize): Update names of
10097         diagnostic_context members.
10098         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
10099         warn_system_headers.
10100         (diagnostic_report_warnings_p): Update for new names.
10101         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10102         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
10103         HARD_FRAME_POINTER_IS_ARG_POINTER.
10104         * flags.h (flag_compare_debug): Declare.
10105         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10106         * opts.c (flag_compare_debug): Define.
10107         (common_handle_option): Update names of diagnostic_context
10108         members.  Handle -fcompare-debug-second.
10109         (fast_math_flags_struct_set_p): Update names of cl_optimization
10110         members.
10111         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10112         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10113         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10114         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10115         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10116         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10117         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
10118         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10119         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10120
10121 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
10122
10123         * config/picochip/picochip.c (picochip_output_internal_label):
10124         This function can now be called for debug CFI labels, which can come
10125         in the middle of a vliw instruction.  Postpone until end of vliw.
10126
10127 2010-09-29  Richard Guenther  <rguenther@suse.de>
10128
10129         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
10130         (DECL_FILE_SCOPE_P): Use it.
10131         (TYPE_FILE_SCOPE_P): New macro.
10132
10133 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10134
10135         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
10136         a CPP_NAME which is a reserved word, clearly separate cases for
10137         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
10138
10139 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10140
10141         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
10142         token->value with the canonical spelling.  Do exactly like C and
10143         C++ and leave it as it is.
10144
10145 2010-09-28  Richard Henderson  <rth@redhat.com>
10146
10147         * config/alpha/alpha.c (alpha_builtins): New.
10148         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
10149         (alpha_builtin_function): New.
10150         (alpha_add_builtins, alpha_init_builtins): Use it.
10151
10152 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
10153
10154         * doc/standards.texi (Standards): Expanded the section on
10155         Objective-C and Objective-C++.
10156
10157 2010-09-28  DJ Delorie  <dj@redhat.com>
10158
10159         PR target/45800
10160         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
10161         volatile MEMs.
10162
10163 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10164
10165         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
10166         attributes on methods.
10167          (c_parser_objc_method_definition): Handle attributes.
10168         (c_parser_objc_methodproto): Likewise.
10169         (c_parser_objc_maybe_method_attributes): New.
10170         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
10171         missing definition, similar to that in ObjC++.
10172
10173 2010-09-28  Richard Henderson  <rth@redhat.com>
10174
10175         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
10176         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10177         (CONFIG_SJLJ_EXCEPTIONS): Remove.
10178         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
10179         (STACK_CHECK_PROTECT): Likewise.
10180         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
10181         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
10182         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
10183         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
10184         (dwarf2out_assembly_start): Likewise.
10185         * except.c (init_eh): Use targetm.except_unwind_info.
10186         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
10187         (output_one_function_exception_table): Likewise.
10188         * final.c: Unconditionally include dwarf2out.h.
10189         (final_start_function): Unconditionally call dwarf2out routines.
10190         (final_end_function, final_scan_insn): Likewise.
10191         * function.c (expand_function_end): Use targetm.except_unwind_info.
10192         * opts.c (decode_options): Use targetm.except_unwind_info.
10193         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
10194         * target.def (debug_unwind_info, except_unwind_info): New.
10195         * target.h (enum unwind_info_type): New.
10196         * targhooks.c (default_debug_unwind_info): New.
10197         (default_except_unwind_info): New.
10198         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
10199         * targhooks.h: Declare them.
10200         * tree-tailcall.c: Include "target.h"
10201         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
10202         * Makefile.in (tree-tailcall.o): Update.
10203         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
10204         (lhd_gcc_personality): Likewise.
10205
10206         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
10207         (TARGET_EXCEPT_UNWIND_INFO): New.
10208         (DWARF2_UNWIND_INFO): Update.
10209         (TARGET_DEBUG_UNWIND_INFO): New.
10210         * doc/tm.texi: Rebuild.
10211
10212         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
10213         targetm.except_unwind_info.
10214
10215         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
10216         (arm_except_unwind_info): New.
10217         (arm_compute_func_type): Use it.
10218         (arm_expand_prologue, thumb_pushpop): Likewise.
10219         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
10220         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
10221         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
10222         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
10223         (DWARF2_UNWIND_INFO): Remove.
10224         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10225         (ARM_EABI_UNWIND_TABLES): Remove.
10226
10227         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
10228         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
10229         (ia64_except_unwind_info): New.
10230         (ia64_output_function_prologue): Use it.
10231         (ia64_add_bundle_selector_before): Likewise.
10232         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
10233         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
10234         (TARGET_UNWIND_INFO): Remove.
10235
10236         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
10237
10238 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10239
10240         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
10241         (c_parser_objc_protocol_definition): Likewise.
10242         (c_parser_external_declaration): Provide dummy attribute arguments.
10243         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
10244         (c_parser_objc_class_definition): Handle attributes.
10245         (c_parser_objc_protocol_definition): Likewise.
10246
10247 2010-09-28  Tobias Burnus  <burnus@net-b.de>
10248
10249         PR fortran/40569
10250         PR fortran/40568
10251         * toplev.h (save_decoded_options, save_decoded_options_count):
10252         New global variables.
10253         * toplev.c (save_decoded_options, save_decoded_options_count):
10254         Export variables.
10255
10256 2010-09-28  Ian Lance Taylor  <iant@google.com>
10257
10258         * config/i386/i386.c (ix86_supports_split_stack): Test
10259         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
10260
10261 2010-09-28  Ian Lance Taylor  <iant@google.com>
10262
10263         PR target/45815
10264         * opts.c (decode_options): Don't test whether the target supports
10265         split stack if flag_split_stack == 0.
10266
10267 2010-09-28  Jan Hubicka  <jh@suse.cz>
10268
10269         * builtin-attrs.def (ATTR_LEAF): New attribute.
10270         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
10271         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
10272         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
10273         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
10274         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
10275         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
10276         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
10277         * sync-builtins.def: Annotate all builtins by leaf.
10278         * omp-builtins.def: Annotate all builtins by leaf.
10279         * builtins.def: Annotate relevant builtins with leaf attribute.
10280         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
10281         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
10282         leaf.
10283
10284 2010-09-28  Jan Hubicka  <jh@suse.cz>
10285
10286         * tree-ssa-ccp.c (fold_ctor_reference): New function.
10287         (fold_const_aggregate_ref): Use it.
10288         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
10289         into external static.
10290
10291 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10292
10293         PR target/44452
10294         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
10295         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
10296         (ix86_solaris_return_in_memory): Remove.
10297         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
10298         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10299         (TARGET_SUBTARGET_DEFAULT): Redefine.
10300         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
10301         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10302         (TARGET_SUBTARGET_DEFAULT): Redefine.
10303         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
10304         -mvect8-ret-in-mem.
10305         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
10306
10307 2010-09-29  Alan Modra  <amodra@gmail.com>
10308
10309         PR target/45807
10310         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
10311         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
10312         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
10313         Delete.
10314         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
10315         (rs6000_emit_prologue): Don't just create frame save info for r2,
10316         actually save r2.
10317
10318 2010-09-28  Richard Henderson  <rth@redhat.com>
10319
10320         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
10321         when 8 bytes are requested.
10322
10323 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10324
10325         * config/avr/avr.c (expand_prologue): Set
10326         current_function_static_stack_size.
10327
10328 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10329
10330         * config/alpha/alpha.md: Change the initial condition of the
10331         probing loop.
10332
10333 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
10334
10335         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
10336         Split from *avx_<maxmin:code><mode>3.
10337         (*avx_<smaxmin:code><mode>3): Ditto.
10338         * config/i386/i386.md (maxmin): Remove code iterator.
10339
10340 2010-09-27  Ian Lance Taylor  <iant@google.com>
10341
10342         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
10343         requires assembler support for CFI directives.
10344
10345 2010-09-27  Richard Henderson  <rth@redhat.com>
10346
10347         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
10348
10349 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10350
10351         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
10352         that AFTER is not in the range FROM..TO, inclusive.
10353
10354 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10355             Bernd Schmidt  <bernds@codesourcery.com>
10356
10357         PR rtl-optimization/45792
10358         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
10359         If not all insns are to be merged, for each edge, stash the
10360         next candidate after the to-be-merged insns before doing the
10361         merge, and use them for the retry at the new insertion point.
10362         Handle CC0 targets when retrying.
10363
10364 2010-09-27  Ian Lance Taylor  <iant@google.com>
10365
10366         * common.opt (fsplit-stack): New option.
10367         * opts.c (decode_options): Set flag_split_stack to final value.
10368         * target.def (supports_split_stack): New hook.
10369         * gcc.c (STACK_SPLIT_SPEC): Define.
10370         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
10371         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
10372         (Code Gen Options): Document -fsplit-stack.
10373         * doc/extend.texi (Function Attributes): Mention no_split_stack.
10374         (Function Attributes): Document no_split_stack.
10375         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
10376         TARGET_SUPPORTS_SPLIT_STACK.
10377         * doc/tm.texi: Rebuild.
10378         * function.c (thread_prologue_and_epilogue_insns): If
10379         flag_split_stack, add split stack prologue.
10380         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
10381         * varasm.c (saw_no_split_stack): New static variable.
10382         (assemble_start_function): Set saw_no_split_stack if the function
10383         has the no_split_stack attribute.
10384         (file_end_indicate_split_stack): New function.
10385         * output.h (file_end_indicate_split_stack): Declare.
10386         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
10387         and function.
10388         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
10389         routines.
10390         * config/i386/i386.c (ix86_option_override_internal): Don't set
10391         expand_builtin_va_start to NULL if -fsplit-stack.
10392         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
10393         -fsplit-stack.
10394         (ix86_va_start): If -fsplit-stack, get overflow pointer from
10395         scratch register set by prologue.
10396         (ix86_code_end): If -fsplit-stack, call
10397         file_end_indicate_split_stack.
10398         (ix86_supports_split_stack): New static function.
10399         (SPLIT_STACK_AVAILABLE): Define.
10400         (split_stack_prologue_scratch_regno): New static function.
10401         (split_stack_fn): New static variable.
10402         (ix86_expand_split_stack_prologue): New function.
10403         (ix86_live_on_entry): New static function.
10404         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
10405         (output_pic_addr_const): Likewise.
10406         (i386_asm_output_addr_const_extra): Likewise.
10407         (ix86_expand_call): Change return type to rtx.  Return the new
10408         call instruction.
10409         (TARGET_SUPPORTS_SPLIT_STACK): Define.
10410         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
10411         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
10412         (split_stack_prologue, split_stack_return): New insns.
10413         (split_stack_space_check): New insn.
10414         * config/i386/i386.h (struct machine_function): Add
10415         split_stack_varargs_pointer field.
10416         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
10417         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10418         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
10419         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10420         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
10421         Declare.
10422         (ix86_expand_call): Update declaration.
10423
10424 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10425
10426         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
10427         code.  Added byref, which was missing in the list of codes.
10428         Explain that enumeration values are encoded as the integer type
10429         that the compiler uses to store them.  Explain and make examples
10430         of how 'const' interacts with pointers, and the complication of
10431         the encoding of 'const char *'.
10432         (Legacy type encoding): New subsection, explaining that GCC emits
10433         incorrect type encodings for the NeXT runtime for compatibility
10434         reasons.
10435         (@@encode): New subsection, explaining @encode and particularly
10436         that protocol qualifiers are not recognized inside an @encode()
10437         expression.
10438         (Method signatures): New subsection, explaining how method
10439         signatures are encoded.
10440
10441 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10442
10443         Merge from 'apple/trunk' branch on FSF servers.  Removed small
10444         change in build_conditional_expr that had been added when fixing
10445         PR objc/27377 and which did the same check in a less complete way.
10446
10447         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
10448
10449         Radar 4229905
10450         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
10451         looking for objective-c common pointer types.
10452
10453         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
10454
10455         Radar 4154928
10456         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
10457         use their ObjC common type.
10458
10459 2010-09-27  Richard Guenther  <rguenther@suse.de>
10460
10461         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
10462
10463 2010-09-27  Jie Zhang  <jie@codesourcery.com>
10464
10465         * print-tree.c (print_node): Print in-constant-pool.
10466
10467 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
10468
10469         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
10470         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
10471         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
10472         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
10473
10474 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10475
10476         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
10477         from pro_epilogue_adjust_stack_<mode>_{1,2}.
10478         (pro_epilogue_adjust_stack_<mode>_add): Rename from
10479         pro_epilogue_adjust_stack_<mode>_3.
10480         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
10481         renamed pro_epilogue_adjust_stack_{si,di}_add.
10482         (ix86_expand_prologue): Use indirect functions.  Update for renamed
10483         pro_epilogue_adjust_stack_{si,di}_sub.
10484
10485 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10486
10487         * config/i386/i386.md (movmsk_df): New insn.
10488         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
10489         sequence for TARGET_SSE_MATH.
10490
10491 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
10492
10493         * config/mips/mips.c (mips_builtin_decls): Declare.
10494         (mips_init_builtins): Store function declarations in
10495         mips_builtin_decls.
10496         (mips_builtin_decl): New function.
10497         (TARGET_BUILTIN_DECL): Define.
10498
10499 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
10500             Richard Henderson  <rth@redhat.com>
10501
10502         * config/i386/cygwin.asm: Include auto-host.h.
10503         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
10504         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
10505         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
10506         alignment code from the 64-bit path.  Use gas local labels.
10507         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
10508         from _di_2.  Remove the useless constant integer argument.
10509         (pro_epilogue_adjust_stack_<mode>_3): New.
10510         (allocate_stack_worker_probe_<mode>): Macroize from
10511         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
10512         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
10513         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
10514         (__chkstk_ms): New function.
10515         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
10516         * config/i386/t-interix: Likewise.
10517         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
10518         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
10519         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
10520         * configure, config.in: Rebuild.
10521
10522 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
10523
10524         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
10525         statements because of the return slot optimization.
10526
10527 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
10528
10529         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
10530         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
10531         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10532         (class_likely_spilled_p): Rename to...
10533         (avr_class_likely_spilled_p): ...this. Make static. Change argument
10534         type to reg_class_t.
10535
10536 2010-09-24  Jan Hubicka  <jh@suse.cz>
10537
10538         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
10539         (lto_symtab_resolve_symbols): Set it.
10540         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
10541         store resolution field in cgraph/varpool.
10542         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
10543         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
10544         (cgraph_dump_node): Drop used_from_object_file.
10545         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
10546         (cgraph_function_body_availability): Use decl_replaceable_p.
10547         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
10548         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
10549         cgraph_used_from_object_file_p.
10550         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
10551         cgraph_used_from_object_file_p.
10552         (resolution_used_from_other_file_p): New functoin.
10553         (cgraph_used_from_object_file_p): New predicate.
10554         * cgraph.h: Include plugin-api.h
10555         (struct cgraph_local_info): Remove used_from_object_file.
10556         (struct cgraph_node): Add resolution field.
10557         (struct varpool_node): Likewise; remove used_from_object_file;
10558         reove const_value_known.
10559         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
10560         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
10561         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
10562         varpool_used_from_object_file_p): Declare.
10563         (varpool_get_node, varpool_extra_name_alias): Update prototype.
10564         * tree.h (DECL_REPLACEABLE_P): Remove.
10565         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
10566         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
10567         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
10568         input_overwrite_node, input_node, input_varpool_node): Stream
10569         resolution.
10570         * expr.c (expand_expr_real_1): Use const_value_known_p
10571         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
10572         const_value_known.
10573         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
10574         (function_and_variable_visibility): Set resolution for local vars
10575         and functions; use varpool_used_from_object_file_p.
10576         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
10577         static functions.
10578         (default_binds_local_p_1): Use resolutoin info.
10579         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
10580         * varpool.c (varpool_get_node): Constify.
10581         (const_value_known_p): Do not use vnode->const_value_known;
10582         use decl_replaceable_p.
10583         (varpool_finalize_decl): Do not set const_value_known.
10584         (cgraph_variable_initializer_availability): Use decl_replaceable_p
10585         (varpool_extra_name_alias): Return new node.
10586         (varpool_used_from_object_file_p): New function.
10587
10588 2010-09-24  Richard Henderson  <rth@redhat.com>
10589
10590         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
10591         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
10592         (do_spill): Use REG_CFA_OFFSET.
10593         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
10594         as appropriate.
10595         (ia64_expand_epilogue): Likewise.
10596         (process_set): Split into ...
10597         (process_cfa_adjust_cfa): this,
10598         (process_cfa_register): this,
10599         (process_cfa_offset): and this new function.
10600         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
10601         instead of REG_FRAME_RELATED_EXPR.
10602
10603 2010-09-24  Olivier Hainque  <hainque@adacore.com>
10604
10605         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
10606
10607 2010-09-24  Jan Hubicka  <jh@suse.cz>
10608
10609         * doc/extend.texi: (attribute leaf): Document.
10610         * tree.c (local_define_builtin): Handle ECF_LEAF.
10611         (build_common_builtin_nodes): Set ECF_LEAF where needed.
10612         * tree.h (ECF_LEAF): New.
10613         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
10614         overwrittable and unavailable functions.
10615         (ipa_init): Put all_module_statics into optimization_summary_obstack.
10616         (copy_global_bitmap): Do not copy all_module_statics.
10617         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
10618         (propagate): Handle overwritable and unavailable leaf functions;
10619         initialize global info for overwritable and unavailable leaf functions;
10620         do not free all module statics.
10621         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
10622         local statics.
10623         * calls.c (flags_from_decl_or_type): Handle leaf.
10624         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
10625         abnormal gotos.
10626
10627 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
10628
10629         * gengtype.c: Reindented.
10630         * gengtype.h: Reindented.
10631         * gengtype-parse.c: Reindented.
10632
10633 2010-09-24  Jan Hubicka  <jh@suse.cz>
10634
10635         PR tree-optimization/45738
10636         PR tree-optimization/45741
10637         * expr.c (string_constant): Allow CONST_DECL too;
10638         check that DECL_INITIAL is set.
10639         * varpool.c (const_value_known_p): Only look into VAR_DECL
10640         and CONST_DECL.
10641
10642 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
10643
10644         * common.opt (undef): New.
10645
10646 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
10647
10648         PR middle-end/45234
10649         * rtl.h (enum global_rtl_index): Add
10650         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
10651         (LAST_VIRTUAL_POINTER_REGISTER): Define.
10652         (virtual_preferred_stack_boundary_rtx,
10653         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
10654         (LAST_VIRTUAL_REGISTER): Increase by one.
10655         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
10656         instead of LAST_VIRTUAL_REGISTER.
10657         * function.c (instantiate_new_reg): Handle
10658         virtual_preferred_stack_boundary_rtx.
10659         * emit-rtl.c (init_virtual_regs): Handle
10660         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10661         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
10662         * explow.c (round_push): If crtl->preferred_stack_boundary
10663         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
10664         virtual_preferred_stack_boundary_rtx alignment instead of
10665         crtl->preferred_stack_boundary alignment.
10666         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
10667         macros.  Never decrease crtl->preferred_stack_boundary,
10668         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
10669         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
10670         stack_pointer_delta in dynamic allocation, even when size
10671         is constant.
10672         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
10673         macro.
10674         * print-rtl.c (print_rtx): Handle
10675         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10676         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
10677         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
10678         * config/frv/frv.c (frv_emit_movsi): Likewise.
10679         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
10680         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
10681         Likewise.
10682
10683         Revert:
10684         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10685
10686         PR middle-end/45234
10687         * calls.c (expand_call): Make sure that all variable sized
10688         adjustments are multiple of preferred stack boundary after
10689         stack alignment.
10690
10691 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
10692             Dominique Dhumieres  <dominiq@lps.ens.fr>
10693
10694         PR bootstrap/45751
10695         * config/darwin-driver.c (darwin_default_min_version):
10696         Adjust size passed to memcpy in two places.
10697
10698 2010-09-24  Richard Guenther  <rguenther@suse.de>
10699
10700         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
10701         Make sure to not call set_type_context with error_mark_node.
10702         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
10703
10704 2010-09-24  Richard Guenther  <rguenther@suse.de>
10705
10706         * Makefile.in (OBJS-onestep): Remove.
10707         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
10708         (libbackend.a): Remove onestep support.
10709         (libbackend.o): Remove.
10710         * configure.ac (--enable-intermodule): Remove.
10711         * configure: Regenerate.
10712
10713 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
10714
10715         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
10716         reaching the end of a block if it occurs at a DEBUG_INSN.
10717
10718 2010-09-09  Tristan Gingold  <gingold@adacore.com>
10719
10720         PR target/44242
10721         * config/vms/vms-crt0-64.c: Removed.
10722         * config/vms/vms-crt0.c: Removed.
10723         * config/vms/vms-psxcrt0-64.c: Removed.
10724         * config/vms/vms-psxcrt0.c: Removed.
10725         * config/vms/vms-ucrt0.c: New file.
10726         * config/vms/t-vms64: Removed.
10727         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
10728         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
10729         * config.gcc (alpha-dec-vms): Use t-vms.
10730
10731 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10732
10733         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
10734         underfull hbox in DVI output.
10735         (-fobjc-class-cxx-cdtors): Same change.
10736         (-fobjc-exceptions): Tidied up documentation.  Explain what the
10737         option does, but moved the (lenghty) description of the exception
10738         syntax into objc.texi.
10739         (-fobjc-gc): Explain that the option is not useful with the GNU
10740         runtime.
10741         (-fzero-link): Explain that the GNU runtime always works in
10742         "zero-link" mode.
10743         * doc/objc.texi: All sections: simplified @node declarations
10744         removing specification of next, previous, up node.
10745         (Objective-C): Updated introduction.
10746         (Garbage Collection): Updated.  The bohem-gc library is now
10747         included in gcc itself.  Mention that this section only applies to
10748         the GNU Objective-C runtime.
10749         (compatibility_alias): Small tidy up.
10750         (Exceptions): New section mostly containing text previously in the
10751         description of the -fobjc-exception command-line option.
10752         (Synchronization): Same.
10753
10754 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
10755
10756         * config/i386/i386.md (ix86_code_end): Move the initialization of
10757         xops array near the consumer.  Use AX_REG and SP_REG instead of
10758         numerical constants.
10759
10760 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10761
10762         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
10763         method [methodname]' for an Objective-C method instead of the less
10764         satisfactory 'too many arguments to function' (with no method name).
10765
10766 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
10767
10768         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
10769         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
10770         (execute_update_addresses_taken): Remove parameter.  Execute the
10771         optimization unconditionally.
10772         * passes.c (execute_function_todo): Call execute_update_addresses_taken
10773         unconditionally if TODO_rebuild_alias is set, else only when optimizing
10774         if TODO_update_address_taken is set.
10775
10776 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
10777
10778         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10779         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
10780         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10781         (arm_output_addr_const_extra): Make static.
10782
10783 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
10784
10785         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
10786         define as unspec_volatile.
10787         ("nops"): Define as unspec_volatile. Use fputs to write to
10788         asm_out_file directly.  Output NOPs on separate lines using while loop.
10789         * config/i386/i386.c (ix86_code_end): Use fputs to write to
10790         asm_out_file directly.  Output NOPs on separate lines using while loop.
10791
10792 2010-09-23  Richard Guenther  <rguenther@suse.de>
10793
10794         PR tree-optimization/45565
10795         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
10796         Make sure to adjust the fndecl before replacing the stmt.
10797
10798 2010-09-23  Richard Guenther  <rguenther@suse.de>
10799
10800         PR middle-end/45750
10801         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
10802         gimplifying MEM_REF.
10803
10804 2010-09-23  Alan Modra  <amodra@gmail.com>
10805
10806         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
10807         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
10808
10809 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
10810
10811         PR rtl-optimization/44374
10812         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
10813         * df-core.c (df_set_bb_dirty): Set it.
10814         * ifcvt.c (find_memory): Remove function.
10815         (dead_or_predicable): Use can_move_insns_across.
10816         * df.h (can_move_insns_across): Declare function.
10817         * cfgcleanup.c (block_was_dirty): New static variable.
10818         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
10819         than df_get_bb_dirty.
10820         (try_head_merge_bb): New static function.
10821         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
10822         is set.
10823         * df-problems.c: Include "target.h"
10824         (df_simulate_find_uses): New static function.
10825         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
10826         (find_memory, find_memory_store): New static functions.
10827         (can_move_insns_across): New function.
10828         * Makefile.in (df-problems.o): Update dependencies.
10829
10830 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10831
10832         PR java/44095
10833         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
10834         is specified and the suffix of the file isn't ".c".
10835         * config/sparc/linux64.h (ASM_SPEC): Likewise.
10836
10837 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10838
10839         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
10840         * doc/cppopts.texi: Fix markup of index entry.
10841         * doc/extend.texi (Constructing Calls): Fix markup of
10842         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
10843         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
10844         (Vague Linkage, C++ Attributes): Fix markup of index entries and
10845         keywords.
10846         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
10847         avoid long lines.
10848         (C Dialect Options, C++ Dialect Options, Warning Options)
10849         (Debugging Options, Spec Files, Darwin Options)
10850         (i386 and x86-64 Options, MIPS Options)
10851         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
10852         index entries, avoid abbreviations, allow URLs to wrap, avoid
10853         long lines, avoid overlong pages from long @itemx lists.
10854         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
10855         * doc/standards.texi (Standards): Likewise.
10856         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
10857
10858 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10859
10860         * opts-common.c (prune_options): Make static.  Work with decoded
10861         options.
10862         (decode_cmdline_options_to_array): Call prune_options.  Don't
10863         resize option array here.
10864         * opts.h (prune_options): Remove prototype.
10865         * gcc.c (process_command): Take decoded options; don't call
10866         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
10867         (main): Call decode_cmdline_options_to_array here instead of
10868         prune_options.  Update call to process_command.
10869         * config/darwin-driver.c: Include opts.h.
10870         (darwin_default_min_version): Work with decoded options.  Don't
10871         handle -b or -V here.
10872         * config/darwin.h (darwin_default_min_version): Update prototype.
10873         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
10874         darwin_default_min_version.
10875         * config/i386/cygwin.h (mingw_scan): Update prototype.
10876         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
10877         * config/i386/cygwin1.c: Include opts.h.
10878         (mingw_scan): Work with decoded options.
10879         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
10880         * config/t-darwin (darwin-driver.o): Update dependencies.
10881
10882 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10883
10884         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
10885         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
10886         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
10887         -force-link, -force-link=, -language, -language=,
10888         -library-directory, -library-directory=, -no-canonical-prefixes,
10889         -no-standard-libraries, -no-warnings, -optimize, -output,
10890         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
10891         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
10892         -print-file-name=, -print-libgcc-file-name,
10893         -print-multi-directory, -print-multi-lib,
10894         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
10895         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
10896         -profile, -save-temps, -shared, -specs, -specs=, -static,
10897         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
10898         symbolic): New.
10899         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
10900         * gcc.c (A Short Introduction to Adding a Command-Line Option):
10901         Remove comment.
10902         (cc1_options): Correct specs for passing down --help,
10903         --target-help and --help=*.  Add spec for passing down --version.
10904         (struct option_map, option_map, target_option_translations,
10905         translate_options): Remove.
10906         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
10907         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
10908         OPT_fhelp_ and OPT_ftarget_help.
10909         (process_command): Don't call translate_options.  Call
10910         decode_cmdline_options_to_array before checking for
10911         -no-canonical-prefixes using decoded options.
10912         * opts-common.c (tm.h): Update comment on #include.
10913         (find_opt): Allow abbreviations of long options.
10914         (struct option_map, option_map): New.
10915         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
10916         and -mno handling.
10917         (target_option_translations): New.
10918         (decode_cmdline_options_to_array): Handle
10919         TARGET_OPTION_TRANSLATE_TABLE in driver.
10920         * opts.c (common_handle_option): Don't handle OPT_fhelp,
10921         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
10922
10923 2010-09-22  Richard Guenther  <rguenther@suse.de>
10924
10925         * tree-inline.c (optimize_inline_calls): Schedule cleanups
10926         only if we inlined something.  Block compaction and conditional
10927         folding are done by cfg cleanup.  Schedule update-address-taken.
10928         (tree_function_versioning): Remove redundant call to number_blocks.
10929         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
10930         folding is done by cfg cleanup.
10931         * passes.c (init_optimization_passes): Remove update-address-taken
10932         pass after IPA inlining.
10933
10934 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
10935
10936         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
10937         to update conditions. Fix reg_mode[] check.
10938
10939 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
10940
10941         * config/picochip/picochip.md (movhicc): Use expand to check whether
10942         movhicc is available and split it after reload.
10943
10944 2010-09-22  Richard Guenther  <rguenther@suse.de>
10945
10946         * tree-ssanames.c (release_dead_ssa_names): Do not remove
10947         callee edges here.
10948         * passes.c (init_optimization_passes): Remove early CFG cleanup.
10949         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
10950         (pass_cleanup_cfg): Likewise.
10951         (execute_fixup_cfg): Cleanup.
10952         * tree-pass.h (pass_cleanup_cfg): Remove.
10953
10954 2010-09-22  Martin Jambor  <mjambor@suse.cz>
10955
10956         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
10957         builtins if it is true.
10958         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
10959         parameter.
10960
10961 2010-09-22  Martin Jambor  <mjambor@suse.cz>
10962
10963         * tree-sra.c (struct access): New field grp_no_warning.
10964         (create_access_replacement): Set TREE_NO_WARNING according to
10965          grp_no_warning.
10966         (create_artificial_child_access): Use build_ref_for_model and set
10967         grp_no_warning if build_user_friendly_ref_for_offset fails.
10968         (propagate_subaccesses_across_link): Likewise.
10969
10970 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10971
10972         PR target/35664
10973         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
10974         ('f'): Likewise.
10975
10976 2010-09-22  Tristan Gingold  <gingold@adacore.com>
10977
10978         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
10979
10980 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
10981
10982         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
10983         * config/i386/i386.c (decide_alg): Update for rename.
10984
10985 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
10986
10987         PR rtl-optimization/45739
10988         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
10989         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
10990
10991 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
10992
10993         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
10994         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
10995         Remove.
10996         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
10997         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10998
10999 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11000
11001         PR objc/23710
11002         * c-parser.c (c_parser_objc_method_definition): Check the return
11003         value of objc_start_method_definition and if false is returned,
11004         parse the method definition but emit no code.
11005
11006 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11007
11008         PR objc/25965
11009         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
11010         call objc_get_interface_ivars ().
11011
11012 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
11013
11014         PR target/45694
11015         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
11016         static chain-register is used for 64-bit.
11017
11018 2010-09-21  Richard Guenther  <rguenther@suse.de>
11019
11020         * dwarf2out.c (is_cu_die): New function.
11021         (add_pubtype): Use it.
11022         (gen_subprogram_die): Likewise.
11023         (gen_struct_or_union_type_die): Likewise.
11024         (dwarf2out_finish): Likewise.
11025         (comp_unit_die): Rename to ...
11026         (single_comp_unit_die): ... this.
11027         (comp_unit_die): New function lazily constructing and
11028         returning single_comp_unit_die.
11029         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
11030         base_type_die, subrange_type_die, modified_type_die,
11031         lower_bound_default, add_bound_info, add_prototyped_attribute,
11032         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
11033         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
11034         force_decl_die, gen_namespace_die, dwarf2out_decl,
11035         dwarf2out_start_source_file, dwarf2out_end_source_file,
11036         prune_unused_types, dwarf2out_finish): Use it.
11037         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
11038         the global list of translation-unit decls.
11039         (dwarf2out_init): Do not create single_comp_unit_die here.
11040         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
11041
11042 2010-09-21  Richard Guenther  <rguenther@suse.de>
11043
11044         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
11045         for bool for C++.
11046
11047 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
11048
11049         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
11050         (qhs_extenddi_cstr): Likewise.
11051         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
11052         them for the source operand.
11053
11054 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
11055
11056         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
11057         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
11058         (ix86_split_ashr): Ditto.
11059         (ix86_split_lshr): Ditto.
11060
11061 2010-09-21  Richard Guenther  <rguenther@suse.de>
11062
11063         PR tree-optimization/45580
11064         * tree-ssa-propagate.c (substitute_and_fold): Always replace
11065         regular uses.
11066         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
11067         virtuals fold the call into a regular indirect one.
11068
11069 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11070
11071         PR rtl-optimization/42775
11072         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
11073         scheduling is enabled.
11074
11075 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11076
11077         PR rtl-optimization/45728
11078         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
11079         gen_lowpart_common first and if that fails, force_reg first
11080         before calling gen_lowpart.
11081
11082         PR middle-end/45678
11083         * cfgexpand.c (expand_one_stack_var_at): Use
11084         crtl->max_used_stack_slot_alignment as max_align, instead
11085         of maximum of that and PREFERRED_STACK_BOUNDARY.
11086         Don't call update_stack_alignment.
11087
11088 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11089
11090         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
11091         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
11092         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
11093         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
11094         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
11095         (build_nonstandard_integer_type): Likewise.
11096         (build_range_type_1): New function, built from...
11097         (build_range_type): ...this.  Call build_range_type_1.
11098         (build_nonshared_range_type): New function.
11099         (build_array_type_1): New function, built from...
11100         (build_array_type: ...this.  Call build_array_type_1.
11101         (build_nonshared_array_type): New function.
11102         * tree.h (build_nonshared_range_type): Declare.
11103         (build_nonshared_array_type): Likewise.
11104
11105 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
11106
11107         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
11108         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11109         (arm_class_likely_spilled_p): New function.
11110
11111 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
11112
11113         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
11114         indirect functions.
11115         (ix86_split_ashl): Ditto.
11116         (ix86_split_ashr): Ditto.
11117         (ix86_split_lshr): Ditto.
11118         (ix86_adjust_counter): Ditto.
11119
11120 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
11121
11122         * c-family/c-common.h (constant_string_class): Documented with
11123         comment identical to the one already in c-common.c.
11124
11125 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11126
11127         * dwarf2out.c (any_cfis_emitted): New static variable.
11128         (add_fde_cfi): Set it.
11129         (dwarf2out_frame_debug): Clear it before processing,
11130         if it is set afterwards, flush any queued reg saves.
11131
11132         PR debug/45124
11133         * dwarf2out.c (add_accessibility_attribute): Assume
11134         DW_ACCESS_private as the default for dwarf_version > 2
11135         and DW_TAG_class_type parent.
11136         (gen_inheritance_die): Assume DW_ACCESS_public as the default
11137         for dwarf_version > 2 and parent other than DW_TAG_class_type.
11138
11139 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11140
11141         PR target/45726
11142         * arm.md (arm_movt): Only enable on machines with MOVT.
11143
11144 2010-09-20  Jie Zhang  <jie@codesourcery.com>
11145
11146         * config/arm/arm.c (arm_address_offset_is_imm): New.
11147         (arm_early_store_addr_dep): New.
11148         (arm_early_load_addr_dep): New.
11149         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
11150         (arm_early_load_addr_dep): Declare.
11151         (arm_address_offset_is_imm): Declare.
11152         * config/arm/cortex-m4.md: New file.
11153         * config/arm/cortex-m4-fpu.md: New file.
11154         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
11155         (attr generic_sched): Exclude cortexm4.
11156         (attr generic_vfp): Exclude cortexm4.
11157
11158 2010-09-20  Richard Guenther  <rguenther@suse.de>
11159
11160         PR middle-end/45704
11161         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
11162
11163 2010-09-20  Jan Hubicka  <jh@suse.cz>
11164
11165         PR tree-optimize/45605
11166         * cgraph.h (const_value_known_p): Declare.
11167         (varpool_decide_const_value_known): Remove.
11168         * tree-ssa-ccp.c (get_base_constructor): Use it.
11169         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
11170         * expr.c (string_constant): Likewise.
11171         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
11172         * ipa.c (ipa_discover_readonly_nonaddressable_var,
11173         function_and_variable_visibility): Likewise.
11174         * gimplify.c (gimplify_call_expr): Likewise.
11175         * gimple-fold.c (get_symbol_constant_value): Likewise.
11176         * varpool.c (varpool_decide_const_value_known): Replace by...
11177         (const_value_known_p): ... this one; handle other kinds of DECLs
11178         too and work for automatic vars.
11179         (varpool_finalize_decl): Use const_value_known_p.
11180
11181 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11182
11183         PR target/45726
11184         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
11185
11186 2010-09-20  Richard Guenther  <rguenther@suse.de>
11187
11188         PR tree-optimization/45705
11189         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
11190
11191 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11192
11193         PR rtl-optimization/45695
11194         * combine.c (try_combine): When splitting a two set pattern,
11195         make sure the pattern which will be put into i2 doesn't use REGs
11196         or MEMs set by insns in between i2 and i3.
11197
11198 2010-09-19  Jan Hubicka  <jh@suse.cz>
11199
11200         PR lto/44246
11201         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
11202         processing same node twice.
11203
11204 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
11205
11206         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
11207         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11208         (bfin_class_likely_spilled_p): New function
11209
11210 2010-09-19  Ira Rosen  <irar@il.ibm.com>
11211
11212         PR tree-optimization/45714
11213         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
11214         created in vectorizable_call instead of the original statement in
11215         def stmt updates.
11216
11217 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
11218
11219         * config/i386/i386-protos.h (split_double_mode): New prototype.
11220         (split_di, split_ti): Remove prototypes.
11221         * config/i386/i386.c (split_double_mode): New function.
11222         (split_di, split_ti): Remove.
11223         (ix86_expand_branch): Use split_double_mode.
11224         (ix86_split_to_parts): Ditto.
11225         (ix86_split_ashl): Ditto.
11226         (ix86_split_ashr): Ditto.
11227         (ix86_split_lshr): Ditto.
11228         (ix86_force_to_memory): Ditto.
11229         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
11230
11231 2010-09-18  Jan Hubicka  <jh@suse.cz>
11232
11233         PR tree-optimization/45453
11234         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
11235         virtual functions are reachable.
11236         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
11237         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
11238         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
11239         when modifying function.
11240
11241 2010-09-18  Jan Hubicka  <jh@suse.cz>
11242
11243         PR tree-optimization/45605
11244         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
11245         * gimple-fold.c (static_object_in_other_unit_p): New function.
11246         (canonicalize_constructor_val): Use it.
11247         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
11248         returning NULL.
11249         (gimple_fold_obj_type_ref_known_binfo): Use
11250         static_object_in_other_unit_p.
11251
11252 2010-09-18  Richard Guenther  <rguenther@suse.de>
11253
11254         PR tree-optimization/45709
11255         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
11256         insertions until after all PHI nodes of the block are processed.
11257
11258 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
11259
11260         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
11261
11262 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
11263
11264         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
11265
11266 2010-09-18  Richard Guenther  <rguenther@suse.de>
11267
11268         PR tree-optimization/45709
11269         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
11270
11271 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11272
11273         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
11274         (dot_deps_stmt): Same.
11275         * graphite-poly.c (dot_lst): Same.
11276         * graphite-scop-detection.c (dot_all_scops): Same.
11277         (dot_scop): Same.
11278
11279 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11280
11281         Revert:
11282         2009-12-16  Ben Elliston  <bje@au.ibm.com>
11283
11284         * tree-data-ref.c (dot_rdg_1): Added back.
11285         (dot_rdg): Same.  Added "#if 0" around system call.
11286
11287 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11288             Richard Henderson  <rth@redhat.com>
11289
11290         * config/i386/i386.c (initial_ix86_tune_features): Add
11291         X86_TUNE_PAD_SHORT_FUNCTION.
11292         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
11293         (ix86_count_insn): New.
11294         (ix86_pad_short_function): Likewise.
11295         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
11296
11297         * config/i386/i386.h (ix86_tune_indices): Add
11298         X86_TUNE_PAD_SHORT_FUNCTION.
11299         (TARGET_PAD_SHORT_FUNCTION): New.
11300
11301         * config/i386/i386.md (UNSPEC_NOPS): New.
11302         (nops): Likewise.
11303
11304 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11305
11306         PR middle-end/45234
11307         * calls.c (expand_call): Make sure that all variable sized
11308         adjustments are multiple of preferred stack boundary after
11309         stack alignment.
11310
11311 2010-09-17  DJ Delorie  <dj@redhat.com>
11312
11313         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
11314         passed an invalid value, print an error instead of ICEing.
11315         (valid_psw_flag): New.
11316         (rx_expand_builtin): Call it for setpsw/clrpsw.
11317         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
11318
11319         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
11320         (bitclr_in_memory): Likewise.
11321         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
11322
11323 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11324
11325         PR middle-end/45678
11326         * cfgexpand.c (update_stack_alignment): New.
11327         (get_decl_align_unit): Use it.
11328         (expand_one_stack_var_at): Call update_stack_alignment.
11329
11330 2010-09-17  Richard Guenther  <rguenther@suse.de>
11331
11332         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
11333         Properly copy the read string.
11334
11335 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
11336
11337         * doc/options.texi (Variable): Document.
11338         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
11339         generate target_flags declarations explicitly.  Don't define
11340         VarExists variables for the driver.
11341         * common.opt (target_flags): New Variable record.
11342         (flag_dump_unnumbered, flag_dump_unnumbered_links,
11343         flag_var_tracking, flag_var_tracking_assignments,
11344         flag_var_tracking_assignments_toggle): Don't mark variables with
11345         VarExists.
11346         * config/i386/i386.c (ix86_isa_flags): Don't define here.
11347         * config/i386/i386.opt (ix86_isa_flags): Define here.
11348         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
11349         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
11350         VarExists.
11351         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
11352         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
11353         Only define for generator programs.
11354         * rtlanal.c (target_flags): Remove.
11355         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
11356         flag_var_tracking_assignments_toggle): Remove.
11357
11358 2010-09-17  Michael Matz  <matz@suse.de>
11359
11360         PR tree-optimization/43432
11361         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
11362         Accept backwards consecutive accesses.
11363         (vect_create_data_ref_ptr): If step is negative generate
11364         decreasing IVs.
11365         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
11366         (perm_mask_for_reverse, reverse_vec_elements): New functions.
11367         (vectorizable_load): Handle loads with negative steps when easily
11368         possible.
11369
11370 2010-09-03  Jan Hubicka  <jh@suse.cz>
11371
11372         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
11373
11374 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
11375
11376         * config/v850/v850.c (v850_function_value_regno_p): Make static.
11377         Adjust comments. Declare.
11378         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
11379         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
11380
11381 2010-09-17  Richard Guenther  <rguenther@suse.de>
11382
11383         * common.opt (combine): Remove.
11384         * gcc.c (default_compilers): Remove specs testing combine.
11385         The C compilers no longer can combine.
11386         (option_map): Remove -combine.
11387         (display_help): Remove -combine.
11388         (driver_handle_option): Remove OPT_combine handling.
11389         (compile_input_file_p): Remove.
11390         (do_spec): Remove code concerning combine.
11391         (main): Likewise.
11392         * doc/invoke.texi: Remove traces of -combine.
11393         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
11394
11395 2010-09-17  Richard Guenther  <rguenther@suse.de>
11396
11397         PR middle-end/45678
11398         * builtins.c (fold_builtin_memory_op): Always properly adjust
11399         alignment of memory accesses.
11400
11401 2010-09-16  Jan Hubicka  <jh@suse.cz>
11402
11403         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
11404         processing clone.
11405
11406 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
11407
11408         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
11409
11410         * config/i386/i386.c (predict_jump): Add prototype.
11411         (flag_opts): Add -m8bit-idiv.
11412         (ix86_split_idivmod): New.
11413
11414         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
11415         Add 2 splitters for SI/DI mode divide.
11416         (divmod<mode>4_1): New pattern.
11417         (udivmod<mode>4_1): Likewise.
11418         (testdi_ccno_1): Likewise.
11419
11420         * config/i386/i386.opt (m8bit-idiv): New.
11421
11422         * doc/invoke.texi: Document -m8bit-idiv.
11423
11424 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
11425
11426         PR bootstrap/45680
11427         * config/i386/i386.c (min_insn_size): Moved out of the
11428         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
11429
11430 2010-09-16  Jan Hubicka  <jh@suse.cz>
11431
11432         * lto-cgraph.c (lto_output_node): Fix handling of clones.
11433         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
11434         unreachable clones with reachable clones.
11435         * tree-inline.c (copy_bb): Fix sanity checking when producing
11436         unreachable clone.
11437
11438 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
11439
11440         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
11441         (TARGET_MEMORY_MOVE_COST): Define.
11442         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
11443
11444 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
11445
11446         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
11447         maybe_tidy_empty_bb.
11448
11449         Revert:
11450         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
11451         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
11452
11453 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11454
11455         * target.def (target_option.optimization): New hook.
11456         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
11457         TARGET_OPTION_OPTIMIZATION hook.
11458         * doc/tm.texi: Regenerate.
11459         * hooks.c (hook_void_int_int): New.
11460         * hooks.h (hook_void_int_int): Declare.
11461         * opts.c: Don't include tm_p.h.
11462         (decode_options): Use targetm.target_option.optimization instead
11463         of OPTIMIZATION_OPTIONS.
11464         * system.h (OPTIMIZATION_OPTIONS): Poison.
11465         * config/arm/arm-protos.h (arm_optimization_options): Remove.
11466         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
11467         (arm_optimization_options): Rename to arm_option_optimization.
11468         Make static.
11469         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
11470         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
11471         (cris_option_optimization): New.
11472         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
11473         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
11474         (crx_option_optimization): New.
11475         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
11476         * config/frv/frv-protos.h (frv_optimization_options): Remove.
11477         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
11478         (frv_optimization_options): Rename to frv_option_optimization.
11479         Make static.
11480         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
11481         * config/h8300/h8300.c (h8300_option_optimization): New.
11482         (TARGET_OPTION_OPTIMIZATION): Define.
11483         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
11484         * config/i386/i386-protos.h (optimization_options): Remove.
11485         * config/i386/i386.c (optimization_options): Rename to
11486         ix86_option_optimization.  Make static.
11487         (TARGET_OPTION_OPTIMIZATION): Define.
11488         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
11489         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
11490         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
11491         (ia64_optimization_options): Rename to ia64_option_optimization.
11492         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
11493         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
11494         commented-out definition.
11495         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
11496         instead of OPTIMIZATION_OPTIONS.
11497         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
11498         (m32r_option_optimization): New.
11499         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
11500         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
11501         Remove.
11502         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
11503         (mcore_option_optimization): New.
11504         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
11505         * config/mep/mep-protos.h (mep_optimization_options): Remove.
11506         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
11507         (mep_optimization_options): Rename to mep_option_optimization.
11508         Make static.  Take unused level and size parameters.
11509         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
11510         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
11511         (mmix_option_optimization): New.
11512         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
11513         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
11514         (pdp11_option_optimization): New.
11515         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
11516         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
11517         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
11518         (optimization_options): Rename to rs6000_option_optimization.
11519         Make static.
11520         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
11521         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
11522         * config/rx/rx.c (rx_set_optimization_options): Rename to
11523         rx_option_optimization.  Make static.  Take unused level and size
11524         parameters.
11525         (TARGET_OPTION_OPTIMIZATION): Define.
11526         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
11527         * config/s390/s390-protos.h (optimization_options): Remove.
11528         * config/s390/s390.c (optimization_options): Rename to
11529         s390_option_optimization.  Make static.  Don't mark size parameter
11530         unused.
11531         (TARGET_OPTION_OPTIMIZATION): Define.
11532         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
11533         * config/sh/sh-protos.h (sh_optimization_options): Remove.
11534         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
11535         (sh_optimization_options): Rename to sh_option_optimization.  Make
11536         static.  Don't mark parameters unused.
11537         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
11538         * config/spu/spu-protos.h (spu_optimization_options): Remove.
11539         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
11540         (spu_optimization_options): Rename to spu_option_optimization.
11541         Make static.
11542         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
11543         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
11544         (v850_option_optimization): New.
11545         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
11546         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
11547         (xtensa_option_optimization): New.
11548         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
11549
11550 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11551
11552         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
11553         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
11554         * doc/tm.texi: Regenerate.
11555         * system.h (OVERRIDE_OPTIONS): Poison.
11556         * target.def (override): Default to hook_void_void.
11557         * targhooks.c (default_target_option_override): Remove.
11558         * genmodes.c, machmode.def: Update comments mentioning
11559         OVERRIDE_OPTIONS.
11560         * config/alpha/alpha-modes.def: Update comment mentioning
11561         alpha_override_options.
11562         * config/alpha/alpha-protos.h (override_options): Remove.
11563         * config/alpha/alpha.c (override_options): Rename to
11564         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
11565         (TARGET_OPTION_OVERRIDE): Define.
11566         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
11567         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
11568         of OVERRIDE_OPTIONS.
11569         * config/arc/arc-protos.h (arc_init): Remove.
11570         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
11571         (arc_init): Rename to arc_option_override.  Make static.
11572         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
11573         (OVERRIDE_OPTIONS): Remove.
11574         * config/arm/arm-protos.h (arm_override_options): Remove.
11575         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
11576         (arm_override_options): Rename to arm_option_override.  Make
11577         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11578         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
11579         * config/arm/arm.md: Update comment referring to arm_override_options.
11580         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11581         instead of OVERRIDE_OPTIONS.
11582         * config/avr/avr-protos.h (avr_override_options): Remove.
11583         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
11584         (avr_override_options): Rename to avr_option_override.  Make static.
11585         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
11586         * config/bfin/bfin-protos.h (override_options): Remove (twice).
11587         * config/bfin/bfin.c (override_options): Rename to
11588         bfin_option_override.  Make static.
11589         (TARGET_OPTION_OVERRIDE): Define.
11590         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
11591         * config/cris/cris-protos.h (cris_override_options): Remove.
11592         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
11593         (cris_override_options): Rename to cris_option_override.  Make static.
11594         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
11595         * config/frv/frv-protos.h (frv_override_options): Remove.
11596         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
11597         (frv_override_options): Rename to frv_option_override.  Make static.
11598         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
11599         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
11600         * config/h8300/h8300.c (h8300_init_once): Rename to
11601         h8300_option_override.  Make static.
11602         (TARGET_OPTION_OVERRIDE): Define.
11603         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
11604         * config/i386/i386-protos.h (override_options): Remove.
11605         * config/i386/i386.c (override_options): Rename to
11606         ix86_option_override_internal.  Make static.  Comments referring
11607         to this function and callers changed.
11608         (ix86_option_override): New.
11609         (TARGET_OPTION_OVERRIDE): Define.
11610         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
11611         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
11612         * config/ia64/ia64.c (ia64_file_start): Update comment referring
11613         to ia64_override_options.
11614         * config/iq2000/iq2000-protos.h (override_options): Remove.
11615         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
11616         (override_options): Rename to iq2000_option_override.  Make static.
11617         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
11618         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
11619         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
11620         (lm32_override_options): Rename to lm32_option_override.  Make static.
11621         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
11622         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
11623         (m32r_option_override): New.
11624         (m32r_init): Update comment.
11625         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
11626         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
11627         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
11628         (m68hc11_override_options): Rename to m68hc11_option_override.
11629         Make static.  Return void.
11630         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
11631         * config/m68k/m68k-protos.h (override_options): Remove.
11632         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
11633         (override_options): Rename to m68k_option_override.  Make static.
11634         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
11635         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
11636         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
11637         (mcore_override_options): Rename to mcore_option_override.  Make
11638         static.
11639         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
11640         * config/mep/mep-protos.h (mep_override_options): Remove.
11641         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
11642         (mep_override_options): Rename to mep_option_override.  Make static.
11643         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
11644         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
11645         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
11646         (mmix_override_options): Rename to mmix_option_override.  Make static.
11647         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
11648         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
11649         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
11650         (mn10300_override_options): Rename to mn10300_option_override.
11651         Make static.
11652         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
11653         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
11654         * config/moxie/moxie.c (moxie_override_options): Rename to
11655         moxie_option_override.  Make static.
11656         (TARGET_OPTION_OVERRIDE): Define.
11657         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
11658         * config/picochip/picochip-protos.h (picochip_override_options):
11659         Remove.  Update comment referring to picochip_override_options.
11660         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
11661         (picochip_override_options): Rename to picochip_option_override.
11662         Make static.  Update comment and definition of
11663         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
11664         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
11665         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11666         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11667         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11668         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11669         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11670         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
11671         instead of OVERRIDE_OPTIONS.
11672         * config/rs6000/rs6000-modes.def: Update comment referring to
11673         rs6000_override_options.
11674         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
11675         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
11676         (rs6000_override_options): Rename to
11677         rs6000_option_override_internal.  Make static.  Commented
11678         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
11679         (rs6000_option_override): New.
11680         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
11681         instead of OVERRIDE_OPTIONS.
11682         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11683         * config/s390/s390-protos.h (override_options): Remove.
11684         * config/s390/s390.c (override_options): Rename to
11685         s390_option_override.  Make static.
11686         (TARGET_OPTION_OVERRIDE): Define.
11687         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
11688         * config/score/score-protos.h (score_override_options): Remove.
11689         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
11690         (score_override_options): Rename to score_option_override.  Make
11691         static.
11692         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
11693         Update comment referring to override_options.
11694         * config/score/score3.c (score3_override_options): Rename to
11695         score3_option_override.
11696         * config/score/score3.h (score3_override_options): Rename to
11697         score3_option_override.
11698         * config/score/score7.c (score7_override_options): Rename to
11699         score7_option_override.
11700         * config/score/score7.h (score7_override_options): Rename to
11701         score7_option_override.
11702         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
11703         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
11704         (sparc_override_options): Rename to sparc_option_override.  Make
11705         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11706         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
11707         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11708         instead of OVERRIDE_OPTIONS.
11709         * config/spu/spu-protos.h (spu_override_options): Remove.
11710         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
11711         (spu_override_options): Rename to spu_option_override.  Make
11712         static.
11713         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
11714         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
11715         OVERRIDE_OPTIONS.
11716         * config/vax/vax-protos.h (override_options): Remove.
11717         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
11718         (override_options): Rename to vax_option_override.  Make static.
11719         Call SUBTARGET_OVERRIDE_OPTIONS.
11720         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
11721         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
11722         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
11723         * config/xtensa/xtensa-protos.h (override_options): Remove.
11724         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
11725         (override_options): Rename to xtensa_option_override.  Make static.
11726         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
11727
11728 2010-09-16  Richard Guenther  <rguenther@suse.de>
11729
11730         PR tree-optimization/45623
11731         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
11732         (get_constraint_for_component_ref): If computing a constraint
11733         for the rhs handle type punning through unions.
11734         (get_constraint_for_address_of): Adjust.
11735         (get_constraint_for_1): Likewise.
11736         (get_constraint_for): Likewise.
11737         (get_constraint_for_rhs): New function.
11738         (do_structure_copy): Adjust.
11739         (make_constraint_to): Likewise.
11740         (handle_const_call): Likewise.
11741         (find_func_aliases): Likewise.
11742         (process_ipa_clobber): Likewise.
11743         (create_variable_info_for): Likewise.
11744
11745 2010-09-16  Ira Rosen  <irar@il.ibm.com>
11746
11747         * tree-vectorizer.c: Fix documentation.
11748         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
11749         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
11750         is_pattern_stmt_p, is_loop_header_bb_p,
11751         stmt_vinfo_set_inside_of_loop_cost,
11752         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
11753         known_alignment_for_access_p): Likewise.
11754         * tree-vect-loop.c: Fix documentation.
11755         (vect_get_cost): Start function name from new line.
11756         * tree-vect-data-refs.c: Fix documentation.
11757         * tree-vect_stmts.c: Likewise.
11758         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
11759         (vectorizable_store): Free vec_oprnds if allocated.
11760         (vectorizable_condition): Initialize several variables to avoid
11761         warnings.
11762         * tree-vect-slp.c: Fix documentation.
11763
11764 2010-09-16  Richard Guenther  <rguenther@suse.de>
11765
11766         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
11767         is TS_TRANSLATION_UNIT_DECL.
11768         (initialize_tree_contains_struct): Adjust.
11769         (all_translation_units): New global vector.
11770         (build_translation_unit_decl): New function.
11771         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
11772         (struct tree_translation_unit_decl): New.
11773         (all_translation_units): Declare.
11774         (union tree_node): Add translation_unit_decl member.
11775         (build_translation_unit_decl): Declare.
11776         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
11777         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
11778         New function.
11779         (pack_value_fields): Call it.
11780         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
11781         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
11782         (lto_output_tree_pointers): Call it.
11783         * lto-streamer-in.c (lto_input_tree_ref): Handle references
11784         to TRANSLATION_UNIT_DECL.
11785         (unpack_ts_translation_unit_decl_value_fields): New function.
11786         (unpack_value_fields): Call it.
11787         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
11788         (lto_input_tree_pointers): Call it.
11789         * lto-streamer.c (check_handled_ts_structures): Adjust.
11790         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
11791         * c-decl.c (all_translation_units): Remove.
11792         (pop_scope): Use build_translation_unit_decl.
11793         (collect_all_refs): Adjust.
11794         (for_each_global_decl): Likewise.
11795         (c_write_global_declarations): Likewise.
11796
11797 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
11798
11799         PR bootstrap/45686
11800         * fold-const.c (fold_checksum_tree): Change slot from const void **
11801         to void **, use CONST_CAST_TREE to store into *slot.
11802
11803 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11804
11805         * config/i386/i386.md: Remove unneeded empty conditions and
11806         preparation statements from expanders.
11807         * config/i386/mmx.md: Ditto.
11808         * config/i386/sse.md: Ditto.
11809
11810 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11811
11812         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
11813
11814 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11815
11816         PR rtl-optimization/45593
11817         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
11818         insns that were in delay slots as stand-alone insns.
11819
11820 2010-09-15  Ian Lance Taylor  <iant@google.com>
11821
11822         * incpath.c (remove_duplicates): If name is not a directory, issue
11823         a warning rather than an error.
11824
11825 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11826
11827         PR middle-end/45644
11828         * tree-sra.c (create_access): Check for bit-fields directly.
11829
11830 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
11831
11832         PR tree-optimization/45633
11833         * tree-cfg.c (verify_gimple_assign_binary): Allow
11834         MINUS_EXPR with lhs and rhs1 pointer vector and
11835         rhs2 sizetype vector.
11836         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
11837         or vector pointer use TER to optimize pointer subtraction.
11838
11839 2010-09-15  Jie Zhang  <jie@codesourcery.com>
11840
11841         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
11842         fcmpd to fcmps.
11843
11844 2010-09-15  Ian Lance Taylor  <iant@google.com>
11845
11846         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
11847
11848 2010-09-15  Ian Lance Taylor  <iant@google.com>
11849
11850         * function.c (get_arg_pointer_save_area): Set
11851         arg_pointer_save_area_init to true.
11852
11853 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11854
11855         * tree-sra.c (generate_subtree_copies): Updated comment.
11856         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
11857         obtained from the statement iterator instead.
11858         (load_assign_lhs_subreplacements): Removed parameters lhs and
11859         right_offset, which is obtained from top_racc instead.  Parameter lacc
11860         is now expected to be the root of the processed tree rather than root's
11861         first child.  Updated all callers.
11862
11863 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
11864
11865         * config/pdp11/pdp11.c (register_move_cost): Rename to
11866         pdp11_register_move_cost.
11867         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
11868         pdp11_register_move_cost.
11869         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
11870         pdp11_register_move_cost instead of register_move_cost.
11871
11872 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
11873
11874         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
11875         pattern for vmovn. Expansion in case of non
11876         -mvectorize-with-neon-quad.
11877         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
11878         non- -mvectorize-with-neon-quad case.
11879         (move_lo_quad_<mode>): New expansion to vmov into low part.
11880         (move_hi_quad_<mode>): New expansion to vmov into high part.
11881         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
11882         (move_lo_quad_v4sf): Likewise.
11883         (move_lo_quad_v8hi): Likewise.
11884         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
11885         low part.
11886         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
11887         high part.
11888         * config/arm/iterators.md (ANY128): New mode iterator.
11889         (V_narrow_pack): New mode attribute.
11890         (V_HALF): Add attribute.
11891         (V_DOUBLE): Add attribute.
11892         (V_mode_nunits): Add attribute.
11893
11894 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11895
11896         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
11897         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
11898
11899 2010-09-15  Olivier Hainque  <hainque@adacore.com>
11900             Jose Ruiz  <ruiz@adacore.com>
11901
11902         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
11903         * config/alpha/osf5-unwind.h: New file.
11904
11905 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11906
11907         PR bootstrap/45672
11908         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
11909         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11910         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11911
11912 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11913
11914         * c-lang.h (struct lang_type): Add variable_size GTY option.
11915
11916 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11917
11918         PR bootstrap/45672
11919         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11920
11921 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11922
11923         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
11924         result isn't used in memory address.
11925
11926 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11927
11928         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
11929         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
11930         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
11931         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
11932         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
11933         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
11934
11935         * target.def: Add units_per_simd_word to vectorize.
11936
11937         * targhooks.c (default_units_per_simd_word): New.
11938         * targhooks.h (default_units_per_simd_word): Likewise.
11939         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
11940         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11941         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
11942         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11943         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11944         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11945         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11946         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11947
11948         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
11949         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
11950
11951         * tree-vect-stmts.c: Don't include "tm_p.h".
11952         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
11953         with targetm.vectorize.units_per_simd_word.
11954
11955         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
11956
11957         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
11958
11959         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
11960         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11961
11962         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
11963         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
11964
11965         * doc/tm.texi: Regenerated.
11966
11967 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11968
11969         * tree-vect-stmts.c: Include "tm_p.h".
11970
11971         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
11972         out of RTX_CODE.
11973
11974 2010-09-14  Martin Jambor  <mjambor@suse.cz>
11975
11976         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
11977         location of generated statement.  Changed all callers.
11978         (build_ref_for_model): New parameter loc which used to set location of
11979         all generated expressions.  Changed all callers.
11980         (generate_subtree_copies): Likewise.
11981         (init_subtree_with_zero): Likewise.
11982         (sra_modify_expr): Set locations of all generated statements and
11983         expressions to the location the original statement.
11984         (handle_unscalarized_data_in_subtree): Likewise.
11985         (load_assign_lhs_subreplacements): Likewise.
11986         (sra_modify_constructor_assign): Likewise.
11987         (sra_modify_assign): Likewise.
11988
11989 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
11990
11991         PR target/45277
11992         PR target/45363
11993         PR target/45407
11994         * doc/install.texi (sparc*-*-*): New section.
11995         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
11996
11997 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
11998
11999         PR middle-end/45567
12000         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
12001         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
12002         (expand_builtin): Adjust caller.
12003         (expand_builtin_unop): Only use subtarget if it has the right mode.
12004
12005 2010-09-14  Tristan Gingold  <gingold@adacore.com>
12006
12007         * configure.ac (plugins): Fix typos.
12008         * configure: Regenerate.
12009
12010 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
12011
12012         PR debug/45660
12013         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
12014         gen_type_die for function/method return type.
12015
12016 2010-09-14  Ira Rosen  <irar@il.ibm.com>
12017
12018         PR tree-optimization/45470
12019         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12020         can throw an exception.
12021         * tree-vect-stmts.c (vectorizable_call): Likewise.
12022
12023 2010-09-14  DJ Delorie  <dj@redhat.com>
12024
12025         PR target/44749
12026         * config/mep/mep-protos.h (mep_save_register_info,
12027         mep_reinit_regs, mep_init_regs): Declare.
12028
12029         * config/mep/mep.c: Move all target definitions to the end of the
12030         file to avoid the need for duplicate declarations.
12031         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
12032         (mep_reorg_erepeat): Remove unused variables.
12033         (mep_expand_builtin): Likewise.
12034
12035         * config/mep/mep-pragma.c: Don't include rtl.h.
12036         (INVALID_REGNUM): New.
12037         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
12038         functions.
12039         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
12040         Avoid enum/integer math.
12041
12042 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
12043
12044         PR target/44749
12045         * config/mep/t-mep (GTM_H): Add insn-constants.h.
12046         * config/mep/mep.c (mep_conditional_register_usage): Take no
12047         parameters.
12048         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
12049         prototype.
12050         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
12051         call to mep_conditional_register_usage.
12052
12053 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
12054
12055         PR debug/43937
12056         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
12057         the DECL as well.
12058
12059 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
12060
12061         PR rtl-optimization/45617
12062         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
12063         even if low N bits of X aren't known to be zero.
12064
12065 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
12066
12067         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
12068
12069         * config/i386/i386.c (initial_ix86_tune_features): Add
12070         X86_TUNE_VECTORIZE_DOUBLE.
12071         (ix86_units_per_simd_word): New.
12072
12073         * config/i386/i386.h (ix86_tune_indices): Add
12074         X86_TUNE_VECTORIZE_DOUBLE.
12075         (TARGET_VECTORIZE_DOUBLE): New.
12076         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
12077
12078 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
12079
12080         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
12081         (new_temp_expr_table): Allocate call_cnt vector.
12082         (free_temp_expr_table): Free it.
12083         (process_replaceable): Add call_cnt parm and set in vector.
12084         (find_replaceable_in_bb): Skip replacement if def/use span a call.
12085         (debug_ter): Dump call_cnt value, remove stderr uses.
12086
12087 2010-09-13  Jan Hubicka  <jh@suse.cz>
12088
12089         * tree.c (build_zero_cst): New.
12090         * tree.h (build_zero_cst): Declare.
12091         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
12092         (get_base_constructor): Break out from ...
12093         (fold_const_aggregate_ref): Here; handle empty constructors.
12094
12095 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12096
12097         * config/arm/arm.md: (define_attr "conds"): Update comment.
12098         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
12099         conds attribute to clob.
12100         (arm_sync_compare_and_swapsi): Likewise.
12101         (arm_sync_compare_and_swap<mode>): Likewise.
12102         (arm_sync_lock_test_and_setsi): Likewise.
12103         (arm_sync_lock_test_and_set<mode>): Likewise.
12104         (arm_sync_new_<sync_optab>si): Likewise.
12105         (arm_sync_new_nandsi): Likewise.
12106         (arm_sync_new_<sync_optab><mode>): Likewise.
12107         (arm_sync_new_nand<mode>): Likewise.
12108         (arm_sync_old_<sync_optab>si): Likewise.
12109         (arm_sync_old_nandsi): Likewise.
12110         (arm_sync_old_<sync_optab><mode>): Likewise.
12111         (arm_sync_old_nand<mode>): Likewise.
12112
12113 2010-09-13  Olivier Hainque  <hainque@adacore.com>
12114
12115         * fwprop.c (forward_propagate_and_simplify): Only attach a
12116         REG_EQUAL note to an insn if the destination is a register.
12117         * gcse.c (try_replace_reg): Likewise.
12118
12119 2010-09-13  Richard Guenther  <rguenther@suse.de>
12120
12121         PR tree-optimization/45611
12122         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
12123         (copy_ref_info): Likewise.
12124
12125 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
12126
12127         PR debug/45604
12128         PR debug/45419
12129         PR debug/45408
12130         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12131         types of MEM_REF pointer types to the same type.
12132
12133 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
12134
12135         PR rtl-optimization/41087
12136         * ifcvt.c (noce_get_condition): Don't allow conditions with
12137         side-effects.
12138
12139 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
12140
12141         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12142         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
12143         * config/frv/frv.c (frv_register_move_cost): Make static. Change
12144         arguments type to reg_class_t. Add mode argument.
12145         (frv_memory_move_cost): New.
12146         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
12147
12148 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
12149
12150         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
12151         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
12152
12153 2010-09-10  Jan Hubicka  <jh@suse.cz>
12154
12155         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
12156
12157 2010-09-10  Richard Guenther  <rguenther@suse.de>
12158
12159         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
12160         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
12161         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
12162         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
12163         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
12164
12165 2010-09-10  Richard Guenther  <rguenther@suse.de>
12166
12167         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
12168         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
12169         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
12170         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
12171
12172 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
12173
12174         PR middle-end/45634
12175         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
12176         of string folding is of integral type.
12177
12178 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
12179
12180         * doc/invoke.texi (-x): Fix typo.
12181
12182 2010-09-10  Richard Guenther  <rguenther@suse.de>
12183
12184         PR debug/44115
12185         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
12186         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12187         Output DECL_DEBUG_EXPR.
12188         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12189         Input DECL_DEBUG_EXPR.
12190
12191 2010-09-10  Richard Guenther  <rguenther@suse.de>
12192
12193         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
12194         (build_index_type): Implement in terms of build_range_type.
12195         (build_range_type): Do not allow NULL_TREE type, improve
12196         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
12197         if we didn't hash.
12198         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
12199         create a distinct copy of the type.
12200
12201 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
12202
12203         * configure: Regenerated.
12204         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
12205
12206 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12207
12208         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
12209         * config/arm/cortex-a9-neon.md: New and partially generated.
12210         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
12211
12212 2010-09-10  Richard Guenther  <rguenther@suse.de>
12213
12214         * tree.h (build_index_2_type): Remove.
12215         * tree.c (build_index_2_type): Remove.
12216
12217 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
12218
12219         PR bootstrap/45630
12220         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
12221         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
12222         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
12223
12224 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12225
12226         PR tree-optimization/44972
12227         * tree-sra.c: Include toplev.h.
12228         (build_ref_for_offset): Entirely reimplemented.
12229         (build_ref_for_model): New function.
12230         (build_user_friendly_ref_for_offset): New function.
12231         (analyze_access_subtree): Removed build_ref_for_offset check.
12232         (propagate_subaccesses_across_link): Likewise.
12233         (create_artificial_child_access): Use
12234         build_user_friendly_ref_for_offset.
12235         (propagate_subaccesses_across_link): Likewise.
12236         (ref_expr_for_all_replacements_p): Removed.
12237         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
12238         (sra_modify_expr): Use build_ref_for_model.
12239         (load_assign_lhs_subreplacements): Likewise.
12240         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
12241         checks for return values of build_ref_for_offset.
12242         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
12243         build_ref_for_offset.
12244         * ipa-prop.h: Include gimple.h
12245         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
12246         (ipa_analyze_indirect_call_uses): Update comment.
12247         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
12248         (IPA_PROP_H): Likewise.
12249
12250 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12251
12252         PR tree-optimization/44972
12253         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
12254         calling build_ref_for_offset.
12255
12256 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12257
12258         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
12259         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
12260         * config/arm/arm-tune.md: Regenerate.
12261         * doc/invoke.texi (ARM Options): Document it.
12262
12263 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
12264
12265         * config/i386/i386.c: Include sched-int.h.
12266         (TARGET_SCHED_DISPATCH): Defined.
12267         (TARGET_SCHED_DISPATCH_DO): Defined.
12268         (DISPATCH_WINDOW_SIZE): Defined.
12269         (MAX_DISPATCH_WINDOWS): Defined.
12270         (MAX_INSN): Defined.
12271         (MAX_IMM): Defined.
12272         (MAX_IMM_SIZE): Defined.
12273         (MAX_IMM_32): Defined.
12274         (MAX_IMM_64): Defined.
12275         (MAX_LOAD): Defined.
12276         (MAX_STORE): Defined.
12277         (BIG): Defined.
12278         (dispatch_group): New.
12279         (num_allowable_groups): New.
12280         (group_name): New.
12281         (sched_insn_info_s): New.
12282         (dispatch_windows_s): New.
12283         (imm_info_s): New.
12284         (dispatch_window_list): New.
12285         (dispatch_window_list1): New.
12286         (get_mem_group): New.
12287         (is_cmp): New.
12288         (dispatch_violation): New.
12289         (is_branch): New.
12290         (is_prefetch): New.
12291         (init_window): New.
12292         (allocate_window): New.
12293         (init_dispatch_sched): New.
12294         (is_end_basic_block): New.
12295         (process_end_window): New.
12296         (allocate_next_window): New.
12297         (find_constant_1): New.
12298         (find_constant): New.
12299         (get_num_immediates): New.
12300         (has_immediate): New.
12301         (get_insn_path): New.
12302         (get_insn_group): New.
12303         (count_num_restricted): New.
12304         (fits_dispatch_window): New.
12305         (add_insn_window): New.
12306         (add_to_dispatch_window): New.
12307         (debug_dispatch_window_file): New.
12308         (debug_dispatch_window): New.
12309         (debug_insn_dispatch_info_file): New.
12310         (debug_ready_dispatch): New.
12311         (do_dispatch): New.
12312         (has_dispatch): New.
12313         * config/i386/i386.h (debug_ready_dispatch): Declared.
12314         (debug_dispatch_window): Declared.
12315         * config/i386/i386.opt (mdispatch-scheduler): New flag.
12316         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
12317         (TARGET_SCHED_DISPATCH_DO): New.
12318         * doc/tm.texi: Regererated.
12319         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
12320         ready_remove_first_dispatch
12321         (schedule_block): Call targetm.sched.dispatch and
12322         targetm.sched.dispatch_do.
12323         (sched_init): Call targetm.sched.dispatch and
12324         targetm.sched.dispatch_do.
12325         (ready_remove_first_dispatch): New.
12326         (number_in_ready): New.
12327         (get_ready_element): New.
12328         * hooks.c (hook_bool_rtx_int_false): New.
12329         (hook_void_rtx_int): New.
12330         * hooks.h (hook_bool_rtx_int_false): Declared.
12331         (hook_void_rtx_int): Declared.
12332         * sched-int.h (IS_DISPATCH_ON): Defined.
12333         (IS_CMP): Defined.
12334         (DISPATCH_VIOLATION): Defined.
12335         (FITS_DISPATCH_WINDOW): Defined.
12336         (DISPATCH_INIT): Defined.
12337         (ADD_TO_DISPATCH_WINDOW): Defined.
12338         (get_ready_element): Declared.
12339         (number_in_ready): Declared.
12340         * target.def (dispatch): Defined.
12341         (dispatch_do): Defined.
12342
12343 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12344
12345         PR middle-end/45312
12346         * reload1.c (merge_assigned_reloads): Remove.
12347         (reload_as_needed): Don't call it.
12348
12349 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
12350
12351         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
12352         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12353         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12354
12355 2010-09-09  Matthias Klose  <doko@ubuntu.com>
12356
12357         PR bootstrap/43847
12358         * configure.ac (--enable-plugin): Enhance for cross builds.
12359         * configure: Regenerate.
12360
12361 2010-09-09  Jan Hubicka  <jh@suse.cz>
12362
12363         PR tree-optimization/45598
12364         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
12365         string folding is of integral type.
12366
12367 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
12368
12369         * configure.ac (gnu_indirect_function): New test.
12370         * configure: Rebuilt.
12371         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
12372         * defaults.h (IFUNC_ASM_TYPE): Provide default.
12373
12374         * doc/extend.texi (Function Attributes): Document ifunc.
12375         * varasm.c (do_assemble_alias): Deal with ifuncs too.
12376
12377 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
12378
12379         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
12380         epilogue instruction move.
12381
12382 2010-09-09  Jan Hubicka  <jh@suse.cz>
12383
12384         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
12385         command line to allow more partitions than input files.
12386
12387 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12388
12389         PR middle-end/44554
12390         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
12391
12392 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12393
12394         PR middle-end/40386
12395         * ira.c (pseudo_for_reload_consideration_p): Don't use
12396         flag_ira_share_spill_slots.
12397
12398 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12399
12400         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
12401         point zero operands that fit into a single GPR.
12402         (s390_preferred_reload_class): Ensure we only return general-purpose
12403         register classes.
12404         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
12405         floating-point zero operands into GPRs.
12406         ("*mov<mode>_64"): Likewise.
12407         ("mov<mode>"): Likewise using lhi.
12408
12409 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12410
12411         * config/s390/s390.c (s390_symref_operand_p): Return false for
12412         literal pool references.
12413         (s390_check_qrst_address): Update caller.
12414
12415 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
12416
12417         * config/i386/predicates.md (ext_register_operand): Check that
12418         SUBREG_REG is really a register before looking for REGNO.
12419         (reg_not_xmm0_operand): Handle SUBREGs correctly.
12420         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
12421
12422 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
12423
12424         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
12425         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
12426         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
12427         * print-rtl.c (print_rtx): Likewise.
12428         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
12429         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
12430         for ADDR_EXPR with non-addressable object.
12431         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
12432         (struct dw_val_struct): Add v.val_decl_ref.
12433         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
12434         Handle DW_OP_GNU_implicit_pointer.
12435         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
12436         (get_ref_die_offset_label): New function.
12437         (implicit_ptr_descriptor): New function.
12438         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
12439         (loc_descriptor): Likewise.
12440         (gen_variable_die): Put even definitions into decl_die_table.
12441         (resolve_addr_in_expr): Resolve still unresolved
12442         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
12443         return false.
12444         (dwarf2out_finish): Call output_location_lists after outputting
12445         .debug_info and .debug_abbrev instead of before.
12446
12447 2010-09-09  Roland McGrath  <roland@redhat.com>
12448
12449         * dwarf2out.c (DWARF_REF_SIZE): Define.
12450         (size_of_loc_descr): Use it for DW_OP_call_ref.
12451
12452 2010-09-09  Alan Modra  <amodra@gmail.com>
12453
12454         * doc/invoke.text: Reinstate mcmodel=medium.
12455         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
12456         CMODEL_MEDIUM as default.
12457         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
12458         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
12459         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
12460         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
12461
12462 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12463
12464         PR target/45250
12465         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
12466         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
12467         (builtin_longjmp): Likewise.
12468         (allocate_stack): Use hard_frame_pointer_rtx instead of
12469         frame_pointer_rtx.
12470         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
12471         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
12472         (pa_can_eliminate): Likewise.
12473         (TARGET_INTERNAL_ARG_POINTER): Define.
12474         (TARGET_CAN_ELIMINATE): Define.
12475         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
12476         pointer.
12477         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
12478         (pa_internal_arg_pointer, pa_can_eliminate,
12479         pa_initial_elimination_offset): New.
12480         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
12481         (HARD_FRAME_POINTER_REGNUM): Set to register three.
12482         (INITIAL_FRAME_POINTER_OFFSET): Delete.
12483         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
12484         Define.
12485         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
12486         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
12487         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
12488         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
12489         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
12490         new soft frame pointer.
12491         * config/pa/pa64-regs.h: Likewise.
12492
12493 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12494
12495         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
12496         numerical constant.
12497         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
12498
12499 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12500
12501         PR debug/45531
12502         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
12503
12504 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12505
12506         PR debug/45419
12507         PR debug/45408
12508         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12509         qualifiers in otherwise equal MEM_REF pointer types.
12510         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
12511         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
12512
12513 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12514
12515         PR target/44392
12516         * config/arm/arm.md (bswapsi2): Handle condition correctly
12517         for armv6 and optimize_size.
12518
12519 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
12520
12521         PR other/18555
12522         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
12523
12524 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12525
12526         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
12527         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
12528         ix86_expand_strlen, legitimate_pic_address_disp_p,
12529         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
12530         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
12531         ix86_check_movabs, ix86_secondary_memory_needed): Change function
12532         prototype to bool.
12533         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
12534         return_in_memory_ms_64, ix86_check_movabs,
12535         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
12536         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
12537         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
12538         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
12539         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
12540         ix86_secondary_memory_needed): Change to bool.  Return
12541         "true" and "false" values.
12542         * config/i386/i386.md: Return "true" and "false" values.
12543
12544 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12545
12546         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12547         run_expensive_tests.
12548
12549 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12550
12551         * toplev.c (output_stack_usage): Use lbasename instead of basename.
12552
12553 2010-09-08  Martin Jambor  <mjambor@suse.cz>
12554
12555         PR other/45443
12556         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
12557         at -O3.
12558
12559 2010-09-08  Richard Guenther  <rguenther@suse.de>
12560
12561         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
12562         (visit): Adjust.
12563         (iterative_hash_gimple_type): Likewise.
12564         (gimple_type_hash): Likewise.
12565         (gimple_register_type): Likewise.
12566         (print_gimple_types_stats): Likewise.
12567         (free_gimple_type_tables): Likewise.
12568
12569 2010-09-08  Michael Matz  <matz@suse.de>
12570
12571         PR tree-optimization/43430
12572         * tree-vect-stmts.c (vectorizable_condition): Support multiple
12573         copies for conditional statements if it's not part of a reduction.
12574
12575 2010-09-08  Michael Matz  <matz@suse.de>
12576
12577         PR tree-optimization/33244
12578         * tree-ssa-sink.c (statement_sink_location): Don't sink into
12579         empty loop latches.
12580
12581 2010-09-08  Richard Guenther  <rguenther@suse.de>
12582
12583         PR tree-optimization/45578
12584         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
12585         Be more careful when transfering alignment information to
12586         the new induction variable.
12587         (copy_ref_info): Likewise.
12588
12589 2010-09-08  Richard Guenther  <rguenther@suse.de>
12590
12591         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
12592         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
12593
12594 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
12595
12596         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
12597         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
12598
12599 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
12600
12601         PR doc/45587
12602         * doc/md.texi: Fixed modes on several standard pattern names.
12603
12604 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
12605
12606         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
12607         (ashl<mode>3): ...this.
12608         (loongson_psra<V_suffix>): Rename to...
12609         (ashr<mode>3): ...this.
12610         (loongson_psrl<V_suffix>): Rename to...
12611         (lshr<mode>3): ...this.
12612         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
12613         (CODE_FOR_loongson_psllw): Define.
12614         (CODE_FOR_loongson_psrlh): Define.
12615         (CODE_FOR_loongson_psrlw): Define.
12616         (CODE_FOR_loongson_psrah): Define.
12617         (CODE_FOR_loongson_psraw): Define.
12618
12619 2010-09-07  Richard Henderson  <rth@redhat.com>
12620
12621         * tree-vect-data-refs.c: Include tm_p.h.
12622         * Makefile.in (tree-vect-data-refs.o): Update deps.
12623         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
12624         Move delarations outside #ifdef RTX_CODE.
12625
12626 2010-09-07  Richard Henderson  <rth@redhat.com>
12627
12628         * final.c (rest_of_handle_final): Unconditionally do
12629         output_function_exception_table before assemble_end_function.
12630
12631 2010-09-07  Jan Hubicka  <jh@suse.cz>
12632
12633         * tree-inline.c (tree_inlinable_function_p): Do not test
12634         DECL_REPLACEABLE_P.
12635         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
12636         update_callee_keys, cgraph_decide_inlining): Test function availability.
12637         * cif-code.def (OVERWRITABLE): New code.
12638
12639 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
12640             Jack Howarth  <howarth@bromo.med.uc.edu>
12641
12642         PR target/36502
12643         PR target/42313
12644         PR target/44651
12645         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
12646         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
12647         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
12648         MAX macro.
12649
12650 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12651
12652         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
12653         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
12654
12655 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12656
12657         * config.gcc: Don't append t-android for Android targets.
12658
12659         * config/t-android: Removed.
12660
12661 2010-09-07  Richard Henderson  <rth@redhat.com>
12662
12663         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
12664         * doc/tm.texi.in: Add doc marker.
12665         * doc/tm.texi: Rebuild.
12666         * except.c (switch_to_exception_section): Always build.
12667         (output_one_function_exception_table): Move section switch,
12668         personality output, and label output ...
12669         (output_function_exception_table): ... here.  Use the new
12670         personality hook.
12671
12672         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
12673         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
12674         TARGET_ASM_INIT_SECTIONS): New.
12675         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
12676         make static.
12677         (TARGET_ASM_UNWIND_EMIT): Update to match.
12678         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
12679
12680         * config/arm/arm.c (arm_asm_emit_except_personality): New.
12681         (arm_asm_init_sections): New.
12682         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
12683
12684 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12685
12686         * config/arm/arm.md: Remove unused variable.
12687
12688 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
12689
12690         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12691         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
12692         (m32r_memory_move_cost): New function.
12693
12694 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12695
12696         * config.gcc: Append t-android for Android targets.
12697
12698         * config/t-android: New.
12699
12700 2010-09-07  Richard Henderson  <rth@redhat.com>
12701
12702         * target.def (unwind_emit_before_insn): New hook.
12703         * doc/tm.texi.in: Add @hook marker for it.
12704         * doc/tm.texi: Rebuild.
12705         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
12706
12707 2010-09-07  Martin Jambor  <mjambor@suse.cz>
12708
12709         PR fortran/43665
12710         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
12711         are any type attributes.
12712
12713 2010-09-07  Jan Hubicka  <jh@suse.cz>
12714
12715         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
12716         array_ref_low_bound in string access folding.
12717
12718 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
12719
12720         PR target/45206
12721         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
12722         eh_return fixup sequence.
12723
12724 2010-09-07  Jan Hubicka  <jh@suse.cz>
12725
12726         * gimple-fold.c (maybe_fold_reference): Verify that operand is
12727         gimple_min_invariant.
12728
12729 2010-09-07  Richard Guenther  <rguenther@suse.de>
12730
12731         PR middle-end/45569
12732         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
12733         nor CONSTRUCTOR can trap.
12734         * tree-complex.c (update_complex_assignment): Update EH info.
12735
12736 2010-09-07  Richard Guenther  <rguenther@suse.de>
12737
12738         PR middle-end/45569
12739         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
12740         * passes.c (execute_function_todo): Do not verify anything if
12741         we saw errors.
12742
12743 2010-09-07  Richard Guenther  <rguenther@suse.de>
12744
12745         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
12746
12747 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
12748
12749         PR target/43137
12750         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
12751         New define_mode_attrs.
12752         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
12753         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
12754         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
12755         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
12756         Remove pool_range attribute.
12757         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
12758         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
12759         pool_range and neg_pool_range attributes.
12760         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
12761         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
12762         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
12763
12764 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12765
12766         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
12767         check glibc.
12768
12769 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12770
12771         PR target/22152
12772         * config/i386/mmx.md (*mov<mode>_internal_rex64,
12773         *mov<mode>_internal_avx, *mov<mode>_internal,
12774         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
12775         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
12776
12777 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
12778
12779         * c-typeck.c (do_warn_double_promotion): Remove.
12780         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
12781         Objective-C++ too.
12782
12783 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
12784
12785         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
12786         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
12787         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
12788         argument type to reg_class_t. Change result type to bool.
12789         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12790
12791 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
12792
12793         PR libobjc/19850
12794         * gthr-posix.h (__gthread_objc_thread_detach): Use
12795         _objc_thread_attribs when detaching a thread.
12796         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
12797
12798 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12799
12800         PR target/45524
12801         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
12802         * configure: Regenerated.
12803
12804 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12805
12806         * combine.c (try_combine): Set subst_low_luid to i0.
12807
12808 2010-09-06  Richard Guenther  <rguenther@suse.de>
12809
12810         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
12811         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
12812         (build_aligned_type): Declare.
12813         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
12814         (check_aligned_type): New function.
12815         (build_aligned_type): Likewise.
12816         * expr.c (expand_assignment): Handle misaligned stores via
12817         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
12818         (expand_expr_real_1): Likewise.
12819         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
12820         * tree-vect-stmts.c (vectorizable_store): Do not build
12821         MISALIGNED_INDIRECT_REF but initialize alignment information.
12822         (vectorizable_load): Likewise.
12823         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
12824         handling.
12825         * cfgexpand.c (expand_debug_expr): Likewise.
12826         * dwarf2out.c (loc_list_from_tree): Likewise.
12827         * fold-const.c (maybe_lvalue_p): Likewise.
12828         (operand_equal_p): Likewise.
12829         (build_fold_addr_expr_with_type_loc): Likewise.
12830         * gimplify.c (gimplify_addr_expr): Likewise.
12831         (gimplify_expr): Likewise.
12832         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
12833         (verify_gimple_assign_single): Likewise.
12834         * tree-dump.c (dequeue_and_dump): Likewise.
12835         (tree_could_trap_p): Likewise.
12836         * tree-predcom.c (ref_at_iteration): Likewise.
12837         * tree-pretty-print.c (dump_generic_node): Likewise.
12838         (op_code_prio): Likewise.
12839         (op_symbol_code): Likewise.
12840         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
12841         * tree-ssa-loop-im.c (for_each_index): Likewise.
12842         (gen_lsm_tmp_name): Likewise.
12843         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
12844         (find_interesting_uses_address): Likewise.
12845         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
12846         * tree-ssa-operands.c (get_expr_operands): Likewise.
12847         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
12848         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12849         (ao_ref_init_from_vn_reference): Likewise.
12850         * tree.c (staticp): Likewise.
12851         (build1_stat): Likewise.
12852         (reference_alias_ptr_type): Likewise.
12853         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
12854         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
12855         MISALIGNED_INDIRECT_REF handling.
12856
12857 2010-09-06  Richard Guenther  <rguenther@suse.de>
12858
12859         PR tree-optimization/45534
12860         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
12861         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
12862         on the target.
12863         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
12864         valid on the target.
12865
12866 2010-09-06  Andreas Schwab  <schwab@redhat.com>
12867
12868         * configure.ac: Quote argument of AC_MSG_WARN.
12869         * configure: Regenerate.
12870
12871 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
12872
12873         * sel-sched.c (move_cond_jump): Correct arguments to
12874         maybe_tidy_empty_bb.
12875         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
12876
12877 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
12878
12879         PR rtl-optimization/44919
12880         * sel-sched.c (move_cond_jump): Remove assert, check that
12881         the several blocks case can only happen with mutually exclusive
12882         insns instead.  Rewrite the movement code to support moving through
12883         several basic blocks.
12884
12885 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12886
12887         * config/i386/i386.md (iptrsize): New mode attribute.
12888         (tp_seg): Ditto.
12889         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
12890         mode iterator.
12891         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
12892         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
12893         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
12894         (stack_tls_protect_set_<mode>): Ditto from
12895         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
12896         of thread base pointer load.
12897         (stack_tls_protect_test_<mode>): Ditto from
12898         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
12899         of thread base pointer load.
12900         (stack_protect_set): Rewrite using indirect functions.
12901         (stack_protect_test): Ditto.
12902         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
12903         (ix86_print_operand): Handle '@'.
12904
12905 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
12906
12907         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
12908         MINUS_EXPR.
12909
12910 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
12911
12912         * doc/invoke.texi: Document -Wdouble-promotion.
12913         * c-typeck.c (convert_arguments): Check for implicit conversions
12914         from float to double.
12915         (do_warn_double_promotion): New function.
12916         (build_conditional_expr): Use it.
12917         (build_binary_op): Likewise.
12918
12919 2010-09-05  Richard Guenther  <rguenther@suse.de>
12920
12921         PR tree-optimization/45535
12922         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
12923         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
12924         dereferencing it.
12925         (indirect_refs_may_alias_p): Likewise.
12926
12927 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
12928
12929         * config/sh/sh.c (sh_option_override): Make static.
12930         Adjust comments.  Declare.
12931         (sh_function_value_regno_p): Likewise.
12932         (sh_register_move_cost): Modify the arguments, make static.
12933         Adjust comments.  Declare.
12934         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
12935         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12936         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
12937         REGISTER_MOVE_COST): Delete.
12938         * config/sh/sh-protos.h (sh_override_options): Delete.
12939         (sh_register_move_cost): Delete.
12940         (sh_function_value_regno_p): Delete.
12941
12942 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
12943
12944         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
12945         m32r_function_value_regno_p): New functions.
12946         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12947         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
12948         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
12949         FUNCTION_VALUE_REGNO_P): Remove.
12950
12951 2010-09-04  Jan Hubicka  <jh@suse.cz>
12952
12953         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
12954         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
12955         fold_read_from_constant_string.
12956
12957         * gimple.h (canonicalize_constructor_val): Declare.
12958         * gimple-fold.c (canonicalize_constructor_val): New function.
12959         (get_symbol_constant_value):Use it.
12960         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
12961
12962 2010-09-04  Jan Hubicka  <jh@suse.cz>
12963
12964         * tree-switch-conversion.c (build_one_array): Set constructor to be
12965         static.
12966         * varpool.c (varpool_finalize_decl): Compute const_value_known.
12967
12968 2010-09-04  Richard Guenther  <rguenther@suse.de>
12969
12970         PR bootstrap/45519
12971         * tree-flow.h (force_gimple_operand_1): Declare.
12972         (force_gimple_operand_gsi_1): Likewise.
12973         * gimplify.c (force_gimple_operand_1): New worker taking a
12974         gimple predicate for ...
12975         (force_gimple_operand): ... which now wraps it.
12976         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
12977         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
12978         last change.
12979         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
12980         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
12981         (create_mem_ref): Likewise.
12982
12983 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
12984
12985         * config/i386/predicates.md (sse_reg_operand): New predicate.
12986         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
12987         predicate for operand 1.
12988         (XFmode push splitter): Use fp_register_operand predicate
12989         for operand 1.
12990         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
12991         (SF-DF float_extend push splitter): Add reload_completed insn
12992         predicate.
12993         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
12994         MODEF mode macro.  Add reload_completed insn predicate.
12995
12996 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
12997
12998         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
12999         (struct df_extract_ref): Remove.
13000         (union df_ref_d): Remove extract_ref member.
13001         (df_ref_create): Remove last three arguments.
13002         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
13003         * df-scan.c (df_ref_record): Remove last three arguments, do not
13004         pass them to df_ref_create_structure.
13005         (df_uses_record): Remove first and last three arguments.  Replace
13006         first argument with DF_REF_REGULAR, adjust calls to remove the
13007         width, offset and mode.  Always call recursively on the second
13008         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
13009         (df_ref_create_structure): Remove first argument.
13010         (struct df_scan_problem_data): Remove ref_extract_pool.
13011         (df_scan_free_internal): Do not free it.
13012         (df_scan_alloc): Do not allocate it.
13013         (df_ref_create): Remove last three arguments, do not pass them to
13014         df_ref_create_structure.
13015         (df_free_ref): Remove DF_REF_EXTRACT case.
13016         (df_notes_rescan): Adjust call to df_uses_record.
13017         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
13018         Remove DF_REF_EXTRACT case.
13019         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
13020         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
13021         and SUBREG definitions.
13022         (df_get_conditional_uses): Remove references to width/offset/mode,
13023         adjust call to df_ref_create_structure.
13024         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
13025         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
13026         calls to df_uses_record and df_ref_record.
13027         * fwprop.c (update_df): Remove references to width/offset/mode,
13028         adjust call to df_ref_create.
13029
13030 2010-09-03  Jan Hubicka  <jh@suse.cz>
13031
13032         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
13033         (build_cdtor_fns): Update use of build_cdtor.
13034
13035 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
13036
13037         * doc/options.texi (SeparateAlias): Document.
13038         * opt-functions.awk (switch_flags): Handle SeparateAlias.
13039         * opth-gen.awk: Generate enumeration names for options marked
13040         SeparateAlias, but not for those marked Ignore.
13041         * opts-common.c (generate_canonical_option): Don't output separate
13042         argument for options marked CL_SEPARATE_ALIAS.
13043         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
13044         * opts.h (CL_SEPARATE_ALIAS): New.
13045         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
13046         CL_COMMON): Adjust definitions.
13047         * config/i386/darwin.opt, config/mips/sde.opt: New.
13048         * common.opt (fdump-final-insns): New.
13049         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
13050         i386/darwin.opt.
13051         (mips*-sde-elf*): Add mips/sde.opt.
13052         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
13053         -mno-data-in-code and -mcode-xonly here.
13054         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
13055         * gcc.c (option_map): Add "j" to --dump entry.
13056         (translate_options): Don't translate -d to -foutput-class-dir= here.
13057
13058 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
13059
13060         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
13061         DR_IS_WRITE.
13062         (compute_all_dependences): Same.
13063         (create_rdg_edge_for_ddr): Same.
13064         * tree-data-ref.h (DR_IS_WRITE): New.
13065         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
13066         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
13067         (write_memrefs_written_at_least_once): Same.
13068         * tree-predcom.c (suitable_component_p): Same.
13069         (determine_roots_comp): Same.
13070         (execute_load_motion): Same.
13071         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
13072         (vect_enhance_data_refs_alignment): Same.
13073         (vect_analyze_group_access): Same.
13074
13075 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
13076
13077         PR testsuite/42843
13078         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
13079         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
13080
13081 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
13082
13083         * dwarf2out.c (file scope): Remove #if0'd code.
13084         (gen_subprogram_die): Same.
13085
13086 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13087
13088         PR middle-end/45484
13089         * dwarf2out.c (flush_queued_reg_saves): Rename to...
13090         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
13091         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
13092         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
13093         * config/i386/i386.c (output_set_got): Call it.
13094
13095 2010-09-03  Michael Matz  <matz@suse.de>
13096
13097         PR middle-end/45415
13098         * tree-sra.c (sra_modify_assign): If we modify the statement,
13099         say so.
13100
13101         * tree-ssa.c (verify_ssa): Check number of operands and links
13102         per statement to agree.
13103
13104 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13105             Iain Sandoe  <iains@gcc.gnu.org>
13106
13107         PR target/45476
13108         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
13109         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
13110         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13111
13112 2010-09-03  Richard Guenther  <rguenther@suse.de>
13113
13114         * lto-streamer-out.c (output_function): Output function
13115         start and end loci.
13116         * lto-streamer-in.c (input_function): Input function start
13117         and end loci.
13118
13119 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13120
13121         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
13122         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
13123         * configure: Regenerate.
13124         * aclocal.m4: Regenerate.
13125
13126 2010-09-03  Jan Hubicka  <jh@suse.cz>
13127
13128         PR lto/44812
13129         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
13130         on functions/variables in other partition.
13131
13132 2010-09-03  Jan Hubicka  <jh@suse.cz>
13133
13134         * cgraph.h (struct varpool_node): Add const_value_known.
13135         (varpool_decide_const_value_known): Declare.
13136         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
13137         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
13138         (input_varpool_node): Restore const_value_known.
13139         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
13140         initializer folding.
13141         * ipa.c (ipa_discover_readonly_nonaddressable_var,
13142         function_and_variable_visibility): Compute const_value_known.
13143         * gimple-fold.c (get_symbol_constant_value): Use varpool for
13144         initializer folding.
13145         * varpool.c (varpool_decide_const_value_known): New function.
13146
13147 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13148
13149         * config/i386/i386.md: Remove empty preparation statements
13150         from splitters.
13151
13152 2010-09-03  Jan Hubicka  <jh@suse.cz>
13153
13154         * passes.c (rest_of_decl_compilation): Do not add local vars into
13155         varpool.
13156         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
13157         static or extern vars are in varpool.
13158         (varpool_finalize_decl): Sanity check that only static vars are
13159         finalized.
13160
13161 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13162
13163         PR debug/45500
13164         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
13165         not just generic vectors with BLKmode.
13166
13167 2010-09-03  Richard Guenther  <rguenther@suse.de>
13168
13169         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
13170         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
13171         * tree.h (TMR_SYMBOL): Remove.
13172         (TMR_BASE, TMR_OFFSET): Adjust.
13173         (TMR_INDEX2): New.
13174         * alias.c (ao_ref_from_mem): Use TMR_BASE.
13175         * builtins.c (get_object_alignment): Merge TMR_BASE and
13176         TMR_SYMBOL handling.
13177         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
13178         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
13179         handling.  Also allow TARGET_MEM_REF as base address.
13180         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
13181         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
13182         base.  Gimplify TMR_INDEX2.
13183         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
13184         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13185         (get_addr_base_and_unit_offset): Likewise.
13186         * tree-eh.c (tree_could_trap_p): Likewise.
13187         * tree-pretty-print.c (dump_generic_node): Likewise.
13188         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
13189         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
13190         base to index2.
13191         (get_address_description): Reconstruct addres description
13192         from merged TMR_BASE and TMR_INDEX2.
13193         (maybe_fold_tmr): Fold propagated addresses.
13194         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
13195         MEM_REF and TARGET_MEM_REF paths.
13196         (indirect_refs_may_alias_p): Likewise.
13197         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
13198         instead of TMR_SYMBOL.
13199         * tree-ssa-operands.c (get_tmr_operands): Simplify.
13200         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
13201         according to changes ...
13202         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
13203         Split TARGET_MEM_REF into two fields plus the base.
13204         * tree.c (mem_ref_offset): Simplify.
13205         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
13206         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
13207         Strip NOPs when folding MEM_REF addresses.
13208         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
13209         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
13210         (fold_gimple_assign): ... not here.
13211
13212 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
13213
13214         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
13215         * config/mips/mips.c (mips_shift_truncation_mask): New function.
13216         (TARGET_SHIFT_TRUNCATION_MASK): Define.
13217
13218 2010-09-02  Richard Henderson  <rth@redhat.com>
13219
13220         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
13221         instead of readelf in the test.
13222         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
13223         in the .debug_frame section for coff targets.
13224         * configure: Rebuild.
13225
13226 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13227
13228         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
13229         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
13230         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13231         (m32c_class_likely_spilled_p): Make static. Change argument type to
13232         reg_class_t. Change result type to bool.
13233
13234 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13235
13236         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
13237         to convert (double)(long) into a single FRIZ instruction or not
13238         when -ffast-math is used.
13239
13240         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
13241         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
13242         or FRIZ instruction if -ffast-math.
13243         * config/rs6000/rs6000.md (friz): Ditto.
13244
13245         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
13246
13247 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13248
13249         * opth-gen.awk (quote, comma): Remove unused variables.
13250
13251 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
13252
13253         * arm.c (arm_override_options): Correct fall-back code to use
13254         SUBTARGET_CPU_DEFAULT.
13255
13256 2010-09-02  Julian Brown  <julian@codesourcery.com>
13257
13258         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
13259         unspecs.
13260         (vcond<mode>, vcondu<mode>): New expanders.
13261         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
13262         comparisons with zero.
13263         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
13264         * config/arm/constraints.md (Dz): New constraint.
13265
13266 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13267
13268         * target.def (class_likely_spilled_p): New hook.
13269         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
13270         * doc/tm.texi: Regenerate.
13271         * targhooks.c (default_class_likely_spilled_p): New function.
13272         * targhooks.h (default_class_likely_spilled_p): Declare.
13273         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
13274         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
13275         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
13276         Use fixed_reg_set instead of fixed_regs.
13277         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13278         * calls.c (avoid_likely_spilled_reg): Ditto.
13279         * ira-conflicts.c (ira_build_conflicts): Ditto.
13280         * ira.c (update_equiv_regs): Ditto.
13281         * mode-switching.c (create_pre_exit): Ditto.
13282         * regmove.c (find_matches): Ditto.
13283         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13284         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
13285         (small_register_class_p): New inline function.
13286         (push_secondary_reload, find_reusable_reload, find_reloads): Use
13287         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
13288
13289         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
13290         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
13291         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13292
13293 2010-09-02  Richard Guenther  <rguenther@suse.de>
13294
13295         PR tree-optimization/44937
13296         PR tree-optimization/45412
13297         * ipa-split.c (split_function): Properly remove PHI nodes.
13298
13299 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13300
13301         * opts.h (struct cl_option): Add warn_message field.
13302         (struct cl_decoded_option): Add warn_message field.
13303         * doc/options.texi (Ignore, Warn): Document.
13304         * opt-functions.awk (needs_state_p): Don't consider aliases or
13305         ignored options to need state saved.
13306         * optc-gen.awk: Handle Warn and Ignore.
13307         * opth-gen.awk: Output OPT_SPECIAL_ignore.
13308         * opts-common.c (decode_cmdline_option): Set warn_message field.
13309         Handle ignored options.
13310         (decode_cmdline_options_to_array, generate_option,
13311         generate_option_input_file): Set warn_message field.
13312         (read_cmdline_option): Generate warnings from warn_message field.
13313         Handle ignored options.
13314         * common.opt (Wunreachable-code, fargument-alias,
13315         fargument-noalias, fargument-noalias-global,
13316         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
13317         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
13318         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
13319         ftree-salias): Mark Ignore.
13320         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
13321         -mintel-syntax and -mno-intel-syntax here.
13322         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
13323         using Warn.
13324         * opts.c (common_handle_option): Don't handle options marked as
13325         ignored.
13326         (enable_warning_as_error): Handle ignored options.
13327
13328 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13329
13330         PR driver/44076
13331         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
13332         alias_target fields.
13333         * opt-functions.awk (opt_sanitized_name): Don't handle
13334         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
13335         * optc-gen.awk: Generate alias fields.
13336         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
13337         Don't generate such constants for aliases.
13338         * opts-common.c (generate_canonical_option): New.
13339         (decode_cmdline_option): Handle aliases.  Use
13340         generate_canonical_option for known options instead of copying the
13341         input option text.
13342         * doc/options.texi (Alias): Document.
13343         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
13344         fstack-check, specs): Mark as aliases.
13345         * gcc.c (driver_handle_option): Canonicalize -L options to joined
13346         arguments.
13347         (driver_handle_option): Don't handle OPT_specs.
13348         * opts.c (common_handle_option): Don't handle options marked as
13349         aliases.
13350         (enable_warning_as_error): Handle aliases.
13351         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
13352         OPT_Wlarger_than_eq.
13353         * tree-optimize.c (tree_rest_of_compilation): Use
13354         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
13355
13356 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13357
13358         * config/i386/i386.md (nonmemory_operand): New mode attribute.
13359         (push memory peephole2): Macroize peepholes using SWI mode iterator.
13360         (move immediate to memory peephole2): Macroize peepholes using
13361         SWI124 mode iterator.
13362         (non-pairable NOT peephole2): Macroize peepholes using SWI124
13363         mode iterator.
13364         (simple lea add peephole2): Macroize peepholes using SWI48
13365         mode iterator.
13366         (simple lea mult peephole2): Ditto.
13367         (imul by 3,5,9 to lea peephole2): Ditto.
13368         (mov $-1, reg peephole2): Macroize peepholes using SWI248
13369         mode iterator.
13370         (imul $32bit_imm,mem,reg peephole2): Ditto.
13371         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
13372
13373 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
13374
13375         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
13376
13377 2010-09-02  Olivier Hainque  <hainque@adacore.com>
13378
13379         PR middle-end/44763
13380         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
13381         (allocno_priority_compare_func): Use it instead of a straight
13382         difference computation over priorities.
13383
13384 2010-09-02  Andi Kleen  <ak@linux.intel.com>
13385
13386         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
13387
13388 2010-09-02  Ira Rosen  <irar@il.ibm.com>
13389
13390         * tree-vectorizer.h (get_later_stmt): New function.
13391         (vect_analyze_data_ref_dependences): Add argument.
13392         * tree-vect-loop.c (vect_analyze_loop): Update call to
13393         vect_analyze_data_ref_dependences.
13394         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
13395         New function.
13396         (vect_analyze_data_ref_dependence): Add argument for basic block
13397         dependencies. Check dependencies in basic block vectorization.
13398         (vect_analyze_data_ref_dependences): Add argument and update call to
13399         vect_analyze_data_ref_dependences.
13400         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
13401         (vect_bb_vectorizable_with_dependencies): New.
13402         (vect_slp_analyze_bb): Check dependencies in basic block.
13403         (vect_schedule_slp_instance): Insert stores before the last store in
13404         SLP instance.
13405
13406 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13407
13408         PR target/45476
13409         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
13410         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13411
13412 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
13413
13414         PR middle-end/45458
13415         * bb-reorder.c (add_labels_and_missing_jumps): Treat
13416         bbs ending with throwing insns like blocks ending with a call.
13417         (fix_up_fall_thru_edges): Likewise.
13418
13419 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
13420
13421         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
13422         (m32c_function_arg_advance): Delete.
13423         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13424         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
13425         comments.  Take a const_tree and a bool.  Declare.
13426         (m32c_function_arg_advance): Likewise.
13427         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13428
13429 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13430
13431         PR target/45476
13432         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
13433         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
13434         * config/i386/mingw32.h: ... here.
13435
13436 2010-09-01  Andi Kleen  <ak@linux.intel.com>
13437
13438         PR lto/45475
13439         * lto-streamer-in.c (lto_input_ts_target_option): Add.
13440         (lto_input_tree_pointers): Call lto_input_ts_target_option.
13441         * lto-streamer-out (lto_output_ts_target_option): Add.
13442         (lto_output_tree_pointers): Call lto_output_ts_target_option.
13443
13444 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
13445
13446         PR/target 45452
13447         * config/i386/cygwin.h: Change order of specified import libraries.
13448         * config/i386/mingw32.h: Likewise.
13449         * config/i386/t-cygwin: Likewise.
13450         * config/i386/t-mingw32: Likewise.
13451         * config/i386/t-mingw-w32: Likewise.
13452         * config/i386/t-mingw-w64: Likewise.
13453
13454 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13455
13456         * config/arm/neon-schedgen.ml (core): New type.
13457         (allCores): List of supported cores.
13458         (availability_table): Add supported cores.
13459         (collate_bypasses): Accept core as a parameter.
13460         (worst_case_latencies_and_bypasses): Accept core as a parameter.
13461         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
13462         and coreStr to get tune attribute and prefix for functional units.
13463         (emit_bypasses): Accept core name and use it.
13464         (calculate_per_core_availability_table): New.
13465         (filter_core): New.
13466         (calculate_core_availability_table): New.
13467         (main): Use calculate_core_availablity_table.
13468         * config/arm/cortex-a8-neon.md: Update copyright year.
13469         Regenerated from ml file and merged in.
13470         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
13471         cortex_a8_neon_mrc.
13472
13473 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
13474
13475         * Makefile.in (tree-switch-conversion.o): Update dependencies.
13476
13477 2010-09-01  Richard Guenther  <rguenther@suse.de>
13478
13479         * alias.c (ao_ref_from_mem): Adjust.
13480         * builtins.c (get_object_alignment): Likewise.
13481         * cfgexpand.c (expand_debug_expr): Likewise.
13482         * gimple.c (get_base_address): Likewise.
13483         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13484         (get_addr_base_and_unit_offset): Likewise.  Fix for
13485         both TMR_SYMBOL and TMR_BASE being set.
13486         * tree-eh.c (tree_could_trap_p): Likewise.
13487         * gimplify.c (gimplify_expr): Do not attempt to gimplify
13488         TMR_SYMBOL.  Always gimplify TMR_BASE.
13489         * tree-cfg.c (verify_types_in_gimple_reference): Verify
13490         TMR_BASE if there is a TMR_SYMBOL.
13491         * tree-pretty-print.c (dump_generic_node): Adjust.
13492         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
13493         (tree_mem_ref_addr): Likewise.
13494         (create_mem_ref_raw): Likewise.
13495         (move_fixed_address_to_symbol): Likewise.
13496         (create_mem_ref): Likewise.
13497         (dump_mem_address): Likewise.
13498         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
13499         Fix for both TMR_SYMBOL and TMR_BASE being set.
13500         (indirect_refs_may_alias_p): Likewise.
13501         * tree-ssa-operands.c (get_tmr_operands): Adjust.
13502         * tree.def (TARGET_MEM_REF): Adjust documentation.
13503
13504 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13505
13506         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
13507         Rename from X86_TUNE_ADD_ESP_4.
13508         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
13509         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
13510         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
13511         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
13512         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
13513         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
13514         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
13515         * config/i386/i386.c (initial_ix86_tune_features)
13516         <X86_TUNE_SINGLE_POP>: Invert members.
13517         <X86_TUNE_DOUBLE_POP>: Ditto.
13518         <X86_TUNE_SINGLE_PUSH>: Ditto.
13519         <X86_TUNE_DOUBLE_PUSH>: Ditto.
13520         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
13521         No longer exported.
13522         (push peephole2 patterns): Macroize peepholes using P mode iterator.
13523         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
13524         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
13525         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
13526
13527 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
13528
13529         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
13530         a volatile LHS if the constructor has only one element.
13531
13532 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
13533
13534         PR bootstrap/45321
13535         * tree.c (stdarg_p): Make fntype parameter const.
13536         * tree.h (stdarg_p): Likewise.
13537         (function_args_iterator): Remove unused fntype field.
13538         (function_args_iter_init): Do not initialize fntype
13539         field.  Make fntype parameter const.
13540
13541 2010-09-01  Richard Guenther  <rguenther@suse.de>
13542
13543         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
13544         estimate.
13545         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
13546         (execute_vrp): Compute number of iteration estimates.
13547         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
13548         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
13549         * tree-data-ref.c (estimated_loop_iterations): Adjust.
13550         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
13551         Infer loop bounds from undefined behavior based on a new parameter.
13552         (estimate_numbers_of_iterations): Likewise.
13553         (scev_probably_wraps_p): Adjust.
13554         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
13555
13556 2010-09-01  Nick Clifton  <nickc@redhat.com>
13557
13558         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
13559         where appropriate.
13560         (xstormy16_legitimate_address_p): Use true and false instead of 1
13561         and 0.
13562         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
13563         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
13564         magic constant 2.
13565         (xstormy16_expand_call): Fix comment at start of function.
13566
13567 2010-09-01  Nick Clifton  <nickc@redhat.com>
13568
13569         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
13570         when pushing accumulator register.
13571         (rx_get_stack_layout): Always save call clobbered registers inside
13572         interrupt handlers.
13573         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
13574
13575 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13576
13577         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
13578         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
13579
13580         * libgcc-std.ver (GCC_4.6.0): Define version.
13581
13582 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13583
13584         * tree-nested.c (convert_all_function_calls): Iterate until after the
13585         sum of static chains in the nest doesn't change.
13586
13587 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
13588
13589         * config/m32c/m32c.c (classes_intersect): Remove.
13590         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
13591         reg_classes_intersect_p instead of classes_intersect.
13592         (class_can_hold_mode): Change arguments type from enum reg_class to
13593         reg_class_t.  Use reg_class_contents instead of class_contents.
13594         (m32c_register_move_cost): Make static. Change arguments type from
13595         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
13596         classes_intersect. Use reg_class_contents instead of class_contents.
13597         (m32c_memory_move_cost): Make static. Change arguments type from
13598         enum reg_class to reg_class_t.
13599         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13600         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13601         * config/m32c/m32c-protos.h (m32c_register_move_cost,
13602         m32c_memory_move_cost): Remove.
13603
13604 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13605
13606         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
13607         (arm_function_arg): Delete.
13608         (arm_needs_doubleword_align): Take a const_tree.
13609         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13610         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
13611         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
13612         (arm_function_arg): Make static.  Take a const_tree and a bool.
13613         (arm_function_arg_advance): Likewise.
13614         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13615
13616 2010-08-31  Andi Kleen  <ak@linux.intel.com>
13617
13618         * common.opt (fwhopr=): Update for -fwhopr=jobserver
13619         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
13620         * lto-wrapper.c (run_gcc): Add jobserver mode.
13621         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
13622         argument.
13623
13624 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
13625
13626         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
13627         (popsi1): Ditto.
13628         (*popdi1_epilogue): Ditto.
13629         (*popsi1_epilogue): Ditto.
13630         (popsi, popdi peephole2 patterns): Update peepholes for changed
13631         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
13632
13633         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
13634         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
13635
13636         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
13637         (override_options): Do not initialize removed ix86_gen_pop1.
13638         (gen_pop): New static function.
13639         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
13640         (release_scratch_register_on_entry): Ditto.
13641         (ix86_restore_reg_using_pop): Ditto.
13642         (ix86_expand_epilogue): Ditto.
13643
13644 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
13645
13646         PR middle-end/45461
13647         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
13648
13649 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13650
13651         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
13652         semicolons.
13653
13654 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13655
13656         * doc/extend.texi: Fix documentation of the return value of
13657         __builtin_choose_expr.
13658
13659 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13660
13661         * config/v850/v850-protos.h (function_arg): Delete.
13662         * config/v850/v850.h (FUNCTION_ARG): Delete.
13663         (FUNCTION_ARG_ADVANCE): Move code to...
13664         * config/v850/v850.c (v850_function_arg_advance): ...here.
13665         (v850_function_arg): Make static.  Take a const_tree and a bool.
13666         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13667
13668 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13669
13670         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
13671         these...
13672         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13673         ...and these...
13674         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
13675         ..to here..
13676         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13677         ...and here.
13678         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13679
13680 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13681
13682         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
13683         Delete.
13684         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13685         * config/rx/rx.c (rx_function_arg_size): Make static.
13686         (rx_function_arg): Likewise.
13687         (rx_function_arg_advance): New function.
13688         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13689
13690 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
13691
13692         * config/arm/arm.c (arm_override_options): Remove superfluous test.
13693         Fix indentation.
13694
13695 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13696
13697         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
13698         (dwarf2out_decl) <CONST_DECL>: Likewise.
13699
13700 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
13701
13702         Stack usage support
13703         * common.opt (-fstack-usage): New option.
13704         * doc/invoke.texi (Debugging options): Document it.
13705         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
13706         allocate_dynamic_stack_space.
13707         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
13708         and propagate it to allocate_dynamic_stack_space.
13709         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
13710         * calls.c (initialize_argument_information): Pass TRUE as 4th
13711         argument to allocate_dynamic_stack_space.
13712         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
13713         to 1 when pushing a variable-sized argument onto the stack.  Pass
13714         TRUE as 4th argument to allocate_dynamic_stack_space.
13715         Update current_function_pushed_stack_size.
13716         (emit_library_call_value_1): Likewise.
13717         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
13718         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
13719         attempt to find an upper bound.  Remove redundant code for the
13720         SETJMP_VIA_SAVE_AREA case.
13721         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
13722         * function.h (struct stack_usage): New structure.
13723         (current_function_static_stack_size): New macro.
13724         (current_function_dynamic_stack_size): Likewise.
13725         (current_function_pushed_stack_size): Likewise.
13726         (current_function_dynamic_alloc_count): Likewise.
13727         (current_function_has_unbounded_dynamic_stack_size): Likewise.
13728         (current_function_allocates_dynamic_stack_space): Likewise.
13729         (struct function): Add new field 'su'.
13730         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
13731         add the value of the dynamic offset to the dynamic stack usage.
13732         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
13733         for variable-sized objects.
13734         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
13735         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
13736         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
13737         BUILT_IN_ALLOCA for variable-sized objects.
13738         * output.h (output_stack_usage): Declare.
13739         * toplev.c (stack_usage_file): New file pointer.
13740         (output_stack_usage): New function.
13741         (open_auxiliary_file): Likewise.
13742         (lang_dependent_init): Open file if flag_stack_usage is set.
13743         (finalize): Close file if stack_usage_file is not null.
13744         * tree.h (ALLOCA_FOR_VAR_P): New macro.
13745         * config/alpha/alpha.c (compute_frame_size): New function.
13746         (alpha_expand_prologue): Use it.
13747         (alpha_start_function): Likewise.
13748         (alpha_expand_epilogue): Likewise.  Set stack usage info.
13749         * config/i386/i386.c (ix86_expand_prologue): Likewise.
13750         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
13751         * config/mips/mips.c (mips_expand_prologue): Likewise.
13752         * config/pa/pa.c (hppa_expand_prologue): Likewise.
13753         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
13754         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
13755
13756 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
13757
13758         PR tree-optimization/45427
13759         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
13760         Handle the case that the exit is never taken correctly.
13761         (number_of_iterations_ne): Pass exit_must_be_taken to
13762         number_of_iterations_ne_max.
13763
13764 2010-08-30  Catherine Moore  <clm@codesourcery.com>
13765
13766         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
13767         Infer -mdspr2 for the the 74K.
13768
13769 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
13770
13771         PR debug/45419
13772         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
13773
13774         PR middle-end/45423
13775         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
13776         and TRUTH_{AND,OR,XOR}_EXPR.
13777         * c-parser.c (c_parser_omp_atomic): Handle boolean
13778         {PRE,POST}_{INC,DEC}REMENT.
13779
13780 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
13781
13782         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
13783         (function_arg): Delete.
13784         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13785         (FUNCTION_INCOMING_ARG): Delete.
13786         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
13787         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
13788         and a bool.
13789         (function_arg): Rename to...
13790         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
13791         a bool.
13792         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
13793         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13794         (TARGET_FUNCTION_INCOMING_ARG): Define.
13795
13796 2010-08-30  Richard Guenther  <rguenther@suse.de>
13797
13798         PR tree-optimization/21602
13799         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
13800         using points-to information.
13801
13802 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
13803
13804         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
13805
13806 2010-08-30  Richard Guenther  <rguenther@suse.de>
13807
13808         PR tree-optimization/45449
13809         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
13810         variables.
13811
13812 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
13813
13814         * opts.h (CL_ERR_NEGATIVE): Define.
13815         * opts.c (unknown_option_callback): Don't postpone warnings for
13816         options marked with CL_ERR_NEGATIVE.
13817         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
13818         for negative versions of CL_REJECT_NEGATIVE options.
13819
13820 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
13821
13822         * config/i386/i386.md (zero_extendsidi2_1): Rename from
13823         zero_extendsidi2_32.
13824         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
13825         using SWI12 mode iterator.
13826         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
13827         to define_insn_and_split pattern.
13828         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
13829         using SWI24 mode iterator.
13830         (*zero_extendqi<mode>2_and): Macroize insn from
13831         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
13832         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
13833         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
13834         SWI24 mode iterator.
13835         (*zero_extendqi<mode>2_movzbl): Ditto from
13836         *zero_extendqi{hi,si}2_movzbl.
13837         (extendsidi2_1): Rename from extendsidi2_32.
13838         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
13839         SWI12 mode iterator.
13840
13841 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
13842
13843         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
13844         general purpose registers.
13845         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
13846         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
13847         with general purpose registers and memory operands.  Add associated
13848         CCImode post-reload splitter.
13849         * config/ia64/div.md: Change BImode to CCImode throughout.
13850
13851 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
13852
13853         * config/ia64/ia64.md (cstorebi4): Fix thinko.
13854
13855 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
13856
13857         * config/picochip/picochip.c (reorder_var_tracking_notes): This
13858         function was dropping debug insns which caused PR45299.
13859
13860 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
13861
13862         * config/i386/sse.md (extsuffix): New code attribute.
13863         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
13864         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
13865         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
13866         and sse4_1_zero_extendv4qiv4si2.
13867         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
13868         and sse4_1_zero_extendv2qiv2di2.
13869         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
13870         and sse4_1_zero_extendv4hiv4si2.
13871         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
13872         and sse4_1_zero_extendv2hiv2di2.
13873         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
13874         and sse4_1_zero_extendv2siv2di2
13875
13876         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
13877         using any_extend code iterator.
13878         (*avx_<s>mulv8hi3_highpart): Macroize insn from
13879         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
13880         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
13881
13882         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
13883         gen_sse4_1_sign_extend* functions.
13884         (struct builtin_description bdesc_args): Ditto.
13885
13886 2010-08-27  Xinliang David Li  <davidxl@google.com>
13887
13888         PR/45422
13889         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
13890         (iv_ca_set_no_cp): Update used inv expr count.
13891         (iv_ca_set_cp): Ditto.
13892         (iv_ca_new): Initialize new member.
13893         (iv_ca_free): Free memory.
13894
13895 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
13896
13897         * config/sh/sh-protos.h (sh_function_arg): Delete.
13898         (sh_function_arg_advance): Delete.
13899         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13900         (PASS_IN_REG_P): Eliminate cast.
13901         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
13902         const_tree and a bool.
13903         (sh_function_arg): Likewise.
13904         (sh_output_mi_thunk): Call sh_function_arg_advance) and
13905         sh_function_arg.
13906         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13907
13908 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
13909             Kaz Kojima  <kkojima@gcc.gnu.org>
13910
13911         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
13912         when possible.
13913         (sh_expand_epilogue): Likewise.
13914         * config/sh/sh.md (movml_push_banked): New insn.
13915         (movml_pop_banked): Likewise.
13916
13917 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
13918
13919         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
13920         gen_regexp_oneof, gen_regexp_sequence): Use the string found
13921         in vector element 0 rather than the original string when there's
13922         only one element.
13923         (gen_regexp): Remove extra semicolon.
13924
13925         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
13926         thumb2_movsf_vfp): Set attribute "insn".
13927         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
13928         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
13929         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
13930         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
13931         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
13932         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
13933         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
13934         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
13935         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
13936         if_not_arith, if_arith_not, cond_move_not): Likewise.
13937
13938 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
13939
13940         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
13941         New declaration.
13942         (rs6000_allocate_stack_temp): Ditto.
13943         (rs6000_expand_convert_si_to_sfdf): Ditto.
13944
13945         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
13946         line.  Update the options set if power6 or power7 server/embedded
13947         type options are used.  If we give a warning for no vsx under
13948         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
13949         (rs6000_allocate_stack_temp): New function to allocate a stack
13950         tempoary and adjust the address so it meets either REG+OFFSET or
13951         REG+REG addressing requirements.
13952         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
13953         that they can be used with the LFIWAX/LFIWZX instrucitons.
13954         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
13955         converting signed/unsigned SImode to either SFmode/DFmode.
13956
13957         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
13958         whether certain instructions can be generated.
13959         (TARGET_FCTIDZ): Ditto.
13960         (TARGET_STFIWX): Ditto.
13961         (TARGET_LFIWAX): Ditto.
13962         (TARGET_LFIWZX): Ditto.
13963         (TARGET_FCFIDS): Ditto.
13964         (TARGET_FCFIDU): Ditto.
13965         (TARGET_FCFIDUS): Ditto.
13966         (TARGET_FCTIDUZ): Ditto.
13967         (TARGET_FCTIWUZ): Ditto.
13968
13969         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
13970         (UNSPEC_FCTID): Ditto.
13971         (UNSPEC_LFIWAX): Ditto.
13972         (UNSPEC_LFIWZX): Ditto.
13973         (UNSPEC_FCTIWUZ): Ditto.
13974         (rreg): Use correct constraints.
13975         (SI_CONVERT_FP): New mode attribute for floating point conversion
13976         tests.
13977         (E500_CONVERT): Ditto.
13978         (lfiwax): New insns for converting from integer to floating point
13979         utilizing newer instructions.  Attempt to optimize conversions
13980         that come from memory so that we don't load the value into a GPR,
13981         spill it to the stack and reload it into a FPR.
13982         (floatsi<mode>2_lfiwax): Ditto.
13983         (floatsi<mode>2_lfiwax_mem): Ditto.
13984         (floatsi<mode>2_lfiwax_mem2): Ditto.
13985         (lfiwzx): Ditto.
13986         (floatunssi<mode>2_lfiwzx): Ditto.
13987         (floatunssi<mode>2_lfiwzx_mem): Ditto.
13988         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
13989         (floatdidf2_mem): Ditto.
13990         (floatunsdidf2_fcfidu): Ditto.
13991         (floatunsdidf2_mem): Ditto.
13992         (floatunsdisf2): Ditto.
13993         (floatunsdisf2_fcfidus): Ditto.
13994         (floatunsdisf2_mem): Ditto.
13995         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
13996         Use FCFID on 32-bit hosts that support it.
13997         (floatsidf2_internal): Ditto.
13998         (floatunssisf2): Ditto.
13999         (floatunssidf2): Ditto.
14000         (floatunssidf2_internal): Ditto.
14001         (floatsisf2): Ditto.
14002         (floatdidf2): Ditto.
14003         (floatdidf2_fpr): Ditto.
14004         (floatunsdidf2): Ditto.
14005         (floatdisf2): Ditto.
14006         (floatdisf2_fcfids): Ditto.
14007         (floatdisf2_internal1): Ditto.
14008         (fixuns_truncsfsi2): Delete, merge into common pattern for both
14009         SF/DF.  Add power7 support.
14010         (fix_truncsfsi2): Ditto.
14011         (fixuns_truncdfsi2): Ditto.
14012         (fixuns_truncdfdi2): Ditto.
14013         (fix_truncdfsi2): Ditto.
14014         (fix_truncdfsi2_internal): Ditto.
14015         (fix_truncdfsi2_internal_gfxopt): Ditto.
14016         (fix_truncdfsi2_mfpgpr): Ditto.
14017         (fctiwz): Ditto.
14018         (btruncdf2): Ditto.
14019         (btruncdf2_fpr): Ditto.
14020         (btructsf2): Ditto.
14021         (ceildf2): Ditto.
14022         (ceildf2_fpr): Ditto.
14023         (ceilsf2): Ditto.
14024         (floordf2): Ditto.
14025         (floordf2_fpr): Ditto.
14026         (floorsf2): Ditto.
14027         (rounddf2): Ditto.
14028         (rounddf2_fpr): Ditto.
14029         (roundsf2): Ditto.
14030         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
14031         (fix_trunc<mode>di2): Ditto.
14032         (fixuns_trunc<mode>si2): Ditto.
14033         (fixuns_trunc<mode>di2): Ditto.
14034         (fctiwz_<mode>): Ditto.
14035         (btrunc<mode>2): Ditto.
14036         (btrunc<mode>2_fpr): Ditto.
14037         (ceil<mode>2): Ditto.
14038         (ceil<mode>2_fpr): Ditto.
14039         (floor<mode>2): Ditto.
14040         (float<mode>2_fpr): Ditto.
14041         (round<mode>2): Ditto.
14042         (round<mode>2_fpr): Ditto.
14043         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
14044         (fixuns_trunc<mode>si2_stfiwx): Ditto.
14045         (fix_truncdfsi2_internal): Ditto.
14046         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
14047         converted value on stack, loaded into GPR, and then stored into
14048         the final destination.
14049         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
14050         FCTIDZ.
14051         (lrint<mode>di2): New insn, provide the lrint builtin functions.
14052         (ftruncdf2): Delete, unused.
14053         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
14054
14055         * config/rs6000/vsx.md (toplevel): Update copyright year.
14056         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
14057         (VSr3): Ditto.
14058
14059 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
14060             Jeremie Salvucci  <jeremie.salvucci@free.fr>
14061
14062         * gengtype.c (output_type_enum): Test the right union member.
14063
14064 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
14065
14066         PR target/41484
14067         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
14068         operands for operand 1.
14069         (sse4_1_extendv4qiv4si2): Ditto.
14070         (sse4_1_extendv2qiv2di2): Ditto.
14071         (sse4_1_extendv4hiv4si2): Ditto.
14072         (sse4_1_extendv2hiv2di2): Ditto.
14073         (sse4_1_extendv2siv2di2): Ditto.
14074         (sse4_1_zero_extendv8qiv8hi2): Ditto.
14075         (sse4_1_zero_extendv4qiv4si2): Ditto.
14076         (sse4_1_zero_extendv2qiv2di2): Ditto.
14077         (sse4_1_zero_extendv4hiv4si2): Ditto.
14078         (sse4_1_zero_extendv2hiv2di2): Ditto.
14079         (sse4_1_zero_extendv2siv2di2): Ditto.
14080         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
14081         (*sse4_1_extendv4qiv4si2): Ditto.
14082         (*sse4_1_extendv2qiv2di2): Ditto.
14083         (*sse4_1_extendv4hiv4si2): Ditto.
14084         (*sse4_1_extendv2hiv2di2): Ditto.
14085         (*sse4_1_extendv2siv2di2): Ditto.
14086         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
14087         (*sse4_1_zero_extendv4qiv4si2): Ditto.
14088         (*sse4_1_zero_extendv2qiv2di2): Ditto.
14089         (*sse4_1_zero_extendv4hiv4si2): Ditto.
14090         (*sse4_1_zero_extendv2hiv2di2): Ditto.
14091         (*sse4_1_zero_extendv2siv2di2): Ditto.
14092
14093 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14094
14095         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
14096         (mips_function_arg): Delete.
14097         (mips_function_arg_boundary): Take a const_tree.
14098         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
14099         (mips_arg_info): Likewise.
14100         (mips_setup_incoming_varargs): Call mips_function_arg_advance
14101         instead of FUNCTION_ARG_ADVANCE.
14102         (mips_function_arg_advance): Adjust prototype.  Make static.
14103         (mips_function_arg): Likewise.
14104         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14105         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
14106
14107 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14108
14109         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14110         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
14111         (function_arg): Delete.
14112         (function_arg_boundary): Take a const_tree.
14113         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
14114         (rs6000_spe_function_arg): Likewise.
14115         (rs6000_parm_start): Likewise.
14116         (rs6000_arg_size): Likewise.
14117         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
14118         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
14119         (rs6000_mixed_function_arg): Likewise.
14120         (function_arg): Rename to...
14121         (rs6000_function_arg): ...this.
14122         (function_arg_advance): Rename to...
14123         (rs6000_function_arg_advance_1): ...this
14124         (rs6000_function_arg_advance): New function.  Call it.
14125         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
14126         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
14127         (rs6000_function_value): Likewise.
14128         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14129
14130 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14131
14132         * config/arm/arm.md (enabled): Test the value of arch_enabled
14133         rather than just using it.
14134
14135 2010-08-27  Olivier Hainque  <hainque@adacore.com>
14136             Eric Botcazou  <ebotcazou@adacore.com>
14137
14138         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
14139         cover all the possible offsets from this base.
14140         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
14141
14142 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
14143
14144         PR tree-optimization/44485
14145         * calls.c (flags_from_decl_or_type): For const or pure
14146         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
14147         together with ECF_CONST resp. ECF_PURE.
14148         * builtins.c (expand_builtin): Use flags_from_decl_or_type
14149         instead of querying flags directly.
14150         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
14151         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
14152
14153 2010-08-26  Richard Guenther  <rguenther@suse.de>
14154
14155         PR tree-optimization/45255
14156         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
14157         and externals are also invariant.
14158
14159 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14160
14161         PR rtl-optimization/44858
14162         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
14163         newi2pat, make sure they don't affect newpat.
14164
14165         PR rtl-optimization/45400
14166         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
14167         SUBREG_REG if both modes are of MODE_INT class.
14168
14169 2010-08-25  Julian Brown  <julian@codesourcery.com>
14170
14171         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
14172         * config/arm/arm.md (generic_sched): No for Cortex-A5.
14173         (generic_vfp): Likewise.
14174         (cortex-a5.md): Include.
14175         * config/arm/cortex-a5.md: New.
14176
14177 2010-08-25  Richard Guenther  <rguenther@suse.de>
14178
14179         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
14180         * gimple.c (gimple_get_alias_set): Remove special handling
14181         for pointers.
14182
14183 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
14184
14185         PR middle-end/45355
14186         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
14187         dead_or_set_p when computing i0_feeds_i2_n.
14188
14189         * combine.c (find_split_point): Undo canonicalization of multiply-add
14190         to (minus x (mult)) when it seems likely that this will increase the
14191         chances of a split.
14192
14193 2010-08-25  Richard Guenther  <rguenther@suse.de>
14194
14195         PR lto/44562
14196         * lto-streamer.c (lto_record_common_node): Do not mess with
14197         TYPE_CANONICAL when not in lto.
14198         * gimple.c (gimple_register_type): Likewise.
14199
14200 2010-08-25  Richard Guenther  <rguenther@suse.de>
14201
14202         PR tree-optimization/45316
14203         * tree-ssa-pre.c (eliminate): Properly clean EH info.
14204
14205 2010-08-25  Richard Guenther  <rguenther@suse.de>
14206
14207         PR tree-optimization/45393
14208         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
14209         and clean EH info.  Avoid SSA update.
14210         (execute_cse_sincos): Cleanup the CFG if it has changed.
14211
14212 2010-08-25  Richard Guenther  <rguenther@suse.de>
14213
14214         PR middle-end/45379
14215         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
14216         TARGET_MEM_REF in alignment computation.
14217
14218 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14219
14220         PR tree-optimization/45059
14221         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
14222         type conversions from newop{1,2}.  Assert t is a comparison and
14223         newop{1,2} after the stripping are gimple vals.
14224
14225 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
14226
14227         * config/arm/iterators.md (VU, SE, V_widen_l): New.
14228         (V_unpack, US): New.
14229         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
14230         (vec_unpack<US>_lo_<mode>): Likewise.
14231         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
14232         (neon_vec_unpack<US>_lo_<mode>): Likewise.
14233         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
14234         (vec_widen_<US>mult_hi_<mode>): Likewise.
14235         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
14236         (neon_vec_<US>mult_hi_<mode>"): Likewise.
14237         (neon_unpack<US>_<mode>): Widening move intermediate step for
14238         vectorizing without -mvectorize-with-neon-quad.
14239         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
14240         for vectorizing without -mvectorize-with-neon-quad.
14241         * config/arm/predicates.md (vect_par_constant_high): Check for
14242         high-half lanes of a vector.
14243         (vect_par_constant_low): Check for low-half lanes of a vector.
14244
14245 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14246
14247         * tree-if-conv.c (struct ifc_dr): New.
14248         (IFC_DR): New.
14249         (DR_WRITTEN_AT_LEAST_ONCE): New.
14250         (DR_RW_UNCONDITIONALLY): New.
14251         (memref_read_or_written_unconditionally): Use the cached values
14252         when possible.
14253         (write_memref_written_at_least_once): Same.
14254         (if_convertible_loop_p): Initialize and free DR->aux fields.
14255
14256 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14257
14258         * gimple.c (gimple_could_trap_p_1): Not static anymore.
14259         Pass an extra bool parameter include_mem.
14260         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
14261         (gimple_assign_rhs_could_trap_p): Same.
14262         * gimple.h (gimple_could_trap_p_1): Declared.
14263         * tree-data-ref.h (same_data_refs_base_objects): New.
14264         (same_data_refs): New.
14265         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
14266         (write_memrefs_written_at_least_once): New.
14267         (ifcvt_memrefs_wont_trap): New.
14268         (operations_could_trap): New.
14269         (ifcvt_could_trap_p): New.
14270         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
14271         Gets a vector of data refs.
14272         (if_convertible_stmt_p): Same.
14273         (if_convertible_loop_p_1): New.
14274         (if_convertible_loop_p): Call if_convertible_loop_p_1.
14275
14276 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14277
14278         * common.opt (ftree-loop-if-convert-stores): New flag.
14279         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
14280         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
14281         the created statement before GSI.
14282         (if_convertible_phi_p): Allow virtual phi nodes when
14283         flag_loop_if_convert_stores is set.
14284         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
14285         Do not handle types that do not match is_gimple_reg_type.
14286         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
14287         when flag_loop_if_convert_stores is set, as LHS can contain
14288         memory refs.
14289         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
14290         to if_convertible_gimple_assign_stmt_p.
14291         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
14292         (replace_phi_with_cond_gimple_assign_stmt): Renamed
14293         predicate_scalar_phi.  Do not handle virtual phi nodes.
14294         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
14295         Call predicate_scalar_phi.
14296         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
14297         just after the labels for flag_loop_if_convert_stores, otherwise
14298         insert the predicate in the end of the BB.
14299         (predicate_mem_writes): New.
14300         (combine_blocks): Call predicate_all_scalar_phis.  When
14301         flag_loop_if_convert_stores is set, call predicate_mem_writes.
14302         (tree_if_conversion): Call mark_sym_for_renaming when
14303         flag_loop_if_convert_stores is set.
14304         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
14305         flag_loop_if_convert_stores is set.
14306
14307 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
14308
14309         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
14310         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
14311         (pa_function_value): Make static.
14312         (override_options): Rename to...
14313         (pa_option_override): ...this. Make static.
14314         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
14315         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
14316         TARGET_OPTION_OVERRIDE): Define.
14317         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
14318         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
14319         Remove.
14320         * config/pa/pa-protos.h (override_options): Remove.
14321
14322 2010-08-24  Richard Guenther  <rguenther@suse.de>
14323
14324         PR middle-end/45379
14325         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
14326         if addr->index is NULL or zero.
14327         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
14328         TARGET_MEM_REF more properly.
14329         (indirect_ref_may_alias_decl_p): Likewise.
14330         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
14331         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
14332
14333 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
14334
14335         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
14336         (m32c_override_options): Rename to...
14337         (m32c_option_override): ...this. Make static.
14338         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
14339         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
14340         Remove.
14341         * config/m32c/m32c-protos.h (m32c_override_options,
14342         m32c_function_value_regno_p): Remove.
14343
14344 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14345
14346         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
14347         Fix a typo in a previous commit.
14348
14349 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
14350
14351         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
14352         Pre-initialize innerloop_iters to one.
14353
14354 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14355
14356         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
14357         existing static function global.
14358
14359         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
14360         is changed to global.
14361
14362         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
14363         may_be_nonaddressable_p on base, and don't collect this reference
14364         if the address of the base could not be taken.
14365
14366 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
14367
14368         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
14369         enable the compiler to autovectorize mathmetical functions for
14370         power7 using the Mathematical Acceleration Subsystem library.
14371
14372         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
14373         handle which vector math library we have.
14374         (rs6000_override_options): Add -mveclibabi=mass support.
14375         (rs6000_builtin_vectorized_libmass): New function to handle auto
14376         vectorizing math functions that are in the MASS library.
14377         (rs6000_builtin_vectorized_function): Call it.
14378
14379         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
14380         -mveclibabi=mass.
14381
14382 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14383
14384         PR boehm-gc/34544
14385         * gthr-posix.h (__gthread_active_init): Delete.
14386         (__gthread_active_p): Do activity check here.
14387         Don't include errno.h on hppa-hpux.  Update comment.
14388         * gthr-posix95.h (__gthread_active_init): Delete.
14389         (__gthread_active_p): Do activity check here.
14390         Don't include errno.h on hppa-hpux.  Update comment.
14391         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
14392         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
14393         add -lpthread when -mt or -pthread is specified.
14394         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
14395         (LINK_GCC_C_SEQUENCE_SPEC): Define.
14396         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
14397         (stublib.c, pthread_default_stacksize_np-stub.o,
14398         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
14399         $(T)libgcc_stub.a): Add methods.
14400         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
14401         (stublib.c, pthread_default_stacksize_np-stub.o,
14402         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
14403         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
14404         pthread_mutex_unlock): New stubs.
14405
14406 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
14407
14408         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
14409         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
14410         options.
14411         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
14412         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
14413         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
14414         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
14415         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
14416         "-l".
14417         * cppspec.c: Include opts.h.
14418         (lang_specific_driver): Use cl_decoded_option structures.
14419         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
14420         * doc/tm.texi: Regenerate.
14421         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
14422         (driver_handle_option): Allow driver options needing no special
14423         processing.
14424         (process_command): Decode options before call to
14425         lang_specific_driver.  Pass decoded options to
14426         lang_specific_driver.
14427         * gcc.h (lang_specific_driver): Update prototype.
14428         * gccspec.c: Include opts.h.
14429         (lang_specific_driver): Use cl_decoded_option structures.
14430         * opts-common.c (option_ok_for_language, generate_option,
14431         generate_option_input_file): New.
14432         (decode_cmdline_option): Use option_ok_for_language.
14433         (decode_cmdline_options_to_array): Use generate_option_input_file.
14434         (handle_generated_option): Use generate_option.
14435         * opts.h (generate_option, generate_option_input_file): Declare.
14436
14437 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
14438
14439         * config/mips/mips.c (mips_override_options): Rename to...
14440         (mips_option_override): ...this. Make static.
14441         (TARGET_OPTION_OVERRIDE): Define.
14442         (mips_in_small_data_p): Update comment.
14443         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
14444         (FIXED_REGISTERS): Update comment.
14445         * config/mips/mips-protos.h (mips_override_options): Remove.
14446
14447 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14448
14449         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
14450
14451 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14452
14453         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
14454         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
14455
14456 2010-08-20  Jan Hubicka  <jh@suse.cz>
14457
14458         * tree-pass.h (pass_ipa_cdtor_merge): New function.
14459         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
14460         heap allocated.
14461         (record_cdtor_fn): Move to ipa.c; do not test for
14462         have_ctors_dtors.
14463         (build_cdtor): Move to ipa.c; add code avoiding construction
14464         when target have ctors/dtors and there is only one ctor/dtor at given
14465         priority.
14466         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
14467         sort; reverse order of constructors.
14468         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
14469         (cgraph_finalize_function): Do not call record_cdtor_fn.
14470         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
14471         (cgraph_build_static_cdtor): Move to ipa.c.
14472         * ipa.c: Include target.h and tree-iterator.h.
14473         (cgraph_build_static_cdtor, static_ctors, static_dtors,
14474         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
14475         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
14476         pass_ipa_cdtor_merge): New.
14477         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
14478         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
14479         bounds access.
14480
14481 2010-08-20  Jan Hubicka  <jh@suse.cz>
14482
14483         PR c++/45307
14484         PR c++/17736
14485         * cgraph.h (cgraph_only_called_directly_p,
14486         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
14487         static cdtors.
14488         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
14489         are not needed.
14490         (cgraph_finalize_function): Static cdtors are reachable.
14491         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
14492
14493 2010-08-20  Jan Hubicka  <jh@suse.cz>
14494
14495         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
14496         flag_wpa.
14497         * lto-streamer-out.c (lto_output): Likewise.
14498         * passes.c (ipa_write_optimization_summaries): Initialize statement
14499         uids.
14500
14501 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14502
14503         * tree.h (alias_diag_flags): New enum.
14504         (alias_pair): Add an 'emitted_diags' field.
14505         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
14506         (assemble_alias): Initialize emitted_diags of new pairs.
14507
14508 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
14509
14510         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
14511         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14512         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14513         (STACK_CHECK_PROTECT): Define.
14514         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
14515         (output_probe_stack_range): Likewise.
14516         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
14517         builtin stack checking is enabled.
14518         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
14519         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
14520         (probe_stack_range): New insn.
14521
14522 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
14523
14524         PR target/45336
14525         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
14526         short first.
14527
14528         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
14529         char first.
14530
14531 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14532
14533         PR target/45336
14534         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
14535         to cover zero extension into 64-bit register.
14536         (*sse2_pextrw): Likewise.
14537         (*sse4_1_pextrd_zext): New insn.
14538
14539 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14540
14541         revert r163410, partially revert r163267.
14542         * config/rs6000/darwin.h (LIB_SPEC): Remove.
14543         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
14544         Darwin versions.
14545
14546 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14547
14548         PR middle-end/44974
14549         * builtins.c (expand_builtin): Don't optimize away
14550         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
14551
14552 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
14553
14554         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
14555         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
14556         alternative 1 of operand 2.
14557
14558 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14559             Paolo Bonzini  <bonzini@gnu.org>
14560
14561         * simplify-rtx.c (simplify_unary_operation_1): Optimize
14562         (sign_extend (zero_extend (...)) and
14563         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
14564
14565 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14566
14567         PR rtl-optimization/45353
14568         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
14569         after bb_note is a BARRIER.
14570
14571 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14572
14573         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
14574         linking libgcc.a.
14575
14576 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14577             Michael Matz  <matz@suse.de>
14578
14579         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
14580
14581 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14582
14583         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
14584         (ggc_mark_roots): ...here.
14585
14586 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14587
14588         * vec.h (FOR_EACH_VEC_ELT): Define.
14589         * c-decl.c: Use it.
14590         * cfgloop.c: Likewise.
14591         * cfgloopmanip.c: Likewise.
14592         * cgraph.c: Likewise.
14593         * cgraphunit.c: Likewise.
14594         * combine.c: Likewise.
14595         * config/bfin/bfin.c: Likewise.
14596         * config/mips/mips.c: Likewise.
14597         * config/rs6000/rs6000.c: Likewise.
14598         * dbxout.c: Likewise.
14599         * df-scan.c: Likewise.
14600         * dominance.c: Likewise.
14601         * dse.c: Likewise.
14602         * dwarf2out.c: Likewise.
14603         * except.c: Likewise.
14604         * expr.c: Likewise.
14605         * function.c: Likewise.
14606         * gcse.c: Likewise.
14607         * genattr.c: Likewise.
14608         * ggc-common.c: Likewise.
14609         * gimplify.c: Likewise.
14610         * graphite-blocking.c: Likewise.
14611         * graphite-clast-to-gimple.c: Likewise.
14612         * graphite-dependences.c: Likewise.
14613         * graphite-interchange.c: Likewise.
14614         * graphite-poly.c: Likewise.
14615         * graphite-scop-detection.c: Likewise.
14616         * graphite-sese-to-poly.c: Likewise.
14617         * graphite.c: Likewise.
14618         * haifa-sched.c: Likewise.
14619         * ifcvt.c: Likewise.
14620         * implicit-zee.c: Likewise.
14621         * ipa-prop.c: Likewise.
14622         * ipa-struct-reorg.c: Likewise.
14623         * ipa.c: Likewise.
14624         * ira-build.c: Likewise.
14625         * ira-color.c: Likewise.
14626         * ira-emit.c: Likewise.
14627         * lambda-code.c: Likewise.
14628         * loop-invariant.c: Likewise.
14629         * loop-unroll.c: Likewise.
14630         * lower-subreg.c: Likewise.
14631         * lto-cgraph.c: Likewise.
14632         * lto-opts.c: Likewise.
14633         * lto-streamer-in.c: Likewise.
14634         * lto-streamer-out.c: Likewise.
14635         * lto-streamer.c: Likewise.
14636         * lto-symtab.c: Likewise.
14637         * matrix-reorg.c: Likewise.
14638         * opts.c: Likewise.
14639         * predict.c: Likewise.
14640         * print-tree.c: Likewise.
14641         * sdbout.c: Likewise.
14642         * sel-sched-dump.c: Likewise.
14643         * sel-sched-ir.c: Likewise.
14644         * sel-sched.c: Likewise.
14645         * sese.c: Likewise.
14646         * stor-layout.c: Likewise.
14647         * tree-cfg.c: Likewise.
14648         * tree-cfgcleanup.c: Likewise.
14649         * tree-chrec.c: Likewise.
14650         * tree-data-ref.c: Likewise.
14651         * tree-emutls.c: Likewise.
14652         * tree-inline.c: Likewise.
14653         * tree-into-ssa.c: Likewise.
14654         * tree-loop-distribution.c: Likewise.
14655         * tree-loop-linear.c: Likewise.
14656         * tree-mudflap.c: Likewise.
14657         * tree-outof-ssa.c: Likewise.
14658         * tree-parloops.c: Likewise.
14659         * tree-predcom.c: Likewise.
14660         * tree-pretty-print.c: Likewise.
14661         * tree-scalar-evolution.c: Likewise.
14662         * tree-ssa-live.c: Likewise.
14663         * tree-ssa-loop-im.c: Likewise.
14664         * tree-ssa-loop-ivcanon.c: Likewise.
14665         * tree-ssa-loop-ivopts.c: Likewise.
14666         * tree-ssa-loop-manip.c: Likewise.
14667         * tree-ssa-loop-niter.c: Likewise.
14668         * tree-ssa-loop-prefetch.c: Likewise.
14669         * tree-ssa-phiprop.c: Likewise.
14670         * tree-ssa-pre.c: Likewise.
14671         * tree-ssa-reassoc.c: Likewise.
14672         * tree-ssa-sccvn.c: Likewise.
14673         * tree-ssa-structalias.c: Likewise.
14674         * tree-ssa.c: Likewise.
14675         * tree-vect-data-refs.c: Likewise.
14676         * tree-vect-loop-manip.c: Likewise.
14677         * tree-vect-loop.c: Likewise.
14678         * tree-vect-patterns.c: Likewise.
14679         * tree-vect-slp.c: Likewise.
14680         * tree-vect-stmts.c: Likewise.
14681         * tree-vrp.c: Likewise.
14682         * tree.c: Likewise.
14683         * value-prof.c: Likewise.
14684         * var-tracking.c: Likewise.
14685         * varasm.c: Likewise.
14686         * vmsdbgout.c: Likewise.
14687
14688 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
14689             Richard Guenther  <richard.guenther@gmail.com>
14690
14691         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
14692         copy the src value and return a copy.
14693         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
14694         (C++ Volatiles): Adjust to describe C++ semantics only.
14695
14696 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
14697
14698         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
14699         be zero or nonzero.
14700         * doc/tm.texi: Regenerate.
14701         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
14702         * df-scan.c (df_get_exit_block_use_set), reginfo.c
14703         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
14704         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
14705         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
14706         to 1.
14707
14708 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14709
14710         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
14711         an extra nop past a sibling call at the very end.
14712
14713 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14714
14715         PR bootstrap/45350
14716         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
14717         a comment.
14718
14719 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14720
14721         * target.def (function_arg, function_incoming_arg): Remove const
14722         qualifier on CUMULATIVE_ARGS parameter.
14723         * targhooks.h (default_function_arg, default_function_incoming_arg):
14724         Likewise.
14725         * targhooks.c (default_function_arg, default_function_incoming_arg):
14726         Likewise.
14727         * config/i386/i386.c (ix86_function_arg): Likewise.
14728
14729 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
14730
14731         PR target/45336
14732         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
14733         SIGN_EXTENDs or ZERO_EXTENDs.
14734
14735 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14736
14737         PR target/42172
14738         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
14739         Take its cost into account if nonnull.
14740         (insn_a_feeds_b): New static function.
14741         (combine_instructions): Look for four-insn combinations.
14742         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
14743         them into account when computing all_adjacent and looking for other
14744         uses.
14745         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
14746         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
14747         (try_combine): New arg I0.  Handle four-insn combinations.
14748         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
14749         like ELIM_I1.
14750
14751 2010-08-19  Jason Merrill  <jason@redhat.com>
14752
14753         PR c++/45307
14754         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
14755         if ctor is empty.
14756         (gimplify_modify_expr_rhs): Adjust.
14757
14758 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14759
14760         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
14761         bitmap_bit_p.
14762         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
14763         * dominance.c (iterate_fix_dominators): Likewise.
14764         * dse.c (set_usage_bits): Likewise.
14765         (set_position_unneeded, record_store): Likewise.
14766         * gimple-fold.c (get_maxval_strlen): Likewise.
14767         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
14768         * ipa-inline.c (update_caller_keys): Likewise.
14769         * ipa-split.c (verify_non_ssa_vars): Likewise.
14770         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
14771         (close_type_exposed_parameter, close_type_full_escape): Likewise.
14772         (close_addressof_down): Likewise.
14773         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
14774         (setup_allocno_left_conflicts_size): Likewise.
14775         (ira_reassign_conflict_allocnos): Likewise.
14776         (ira_reassign_pseudos): Likewise.
14777         * ira-emit.c (change_loop): Likewise.
14778         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
14779         * lto-streamer-out.c (write_symbol): Likewise.
14780         * predict.c (expr_expected_value_1): Likewise.
14781         * regstat.c (regstat_bb_compute_ri): Likewise.
14782         * sel-sched.c (create_block_for_bookkeeping): Likewise.
14783         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
14784         * stmt.c (expand_case): Likewise.
14785         * tree-eh.c (emit_eh_dispatch): Likewise.
14786         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
14787         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
14788         Likewise.
14789         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
14790         (rdg_build_components): Likewise.
14791         * tree-object-size.c (collect_object_sizes_for): Likewise.
14792         * tree-sra.c (convert_callers): Likewise.
14793         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
14794         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
14795         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
14796
14797 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14798
14799         * config/i386/i386.md (*lea_1): Use P mode iterator.
14800         (lea add splitter): Also handle DImode operands.
14801         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
14802         predicate.  Do not use ix86_lea_for_add_ok.
14803         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
14804         (lea ashift splitter): Also handle DImode operands.
14805         (DImode lea ashift splitter): Remove splitter.
14806
14807 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14808
14809         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
14810         ix86_binary_operator_ok.
14811
14812 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
14813
14814         PR rtl-optimization/44691
14815         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
14816         is not a register.
14817
14818 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14819
14820         PR target/45070
14821         * config/arm/arm.c (arm_output_epilogue): Ensure that return
14822          value of size 1-3 is handled correctly.
14823
14824 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14825
14826         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
14827         type for the conditional has wide enough range.
14828
14829 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14830
14831         PR target/45327
14832         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
14833         ix86_binary_operator_ok.
14834
14835 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14836
14837         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
14838         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
14839         code to output insn mnemonic.  Fix comment.
14840         (*addsi_1_zext): Add r-r-0 alternative 1.
14841         <TYPE_LEA>: Split insn to lea.
14842         <default>: Handle alternative 1.
14843         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
14844         multi-level if_then_else RTX to set "type" attribute.
14845         <default>: Handle alternative 2.
14846         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
14847         Use cond RTX instead of multi-level if_then_else RTX to set
14848         "type" attribute.
14849         <default>: Handle alternatives 2 and 4.
14850         (lea splitters): Update calls to ix86_lea_for_add_ok.
14851
14852         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
14853         argument.
14854         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
14855
14856 2010-08-18  Richard Guenther  <rguenther@suse.de>
14857
14858         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
14859         use operand helpers.
14860
14861 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
14862
14863         PR middle-end/45292
14864         * optabs.c (expand_bool_compare_and_swap): Expand pending
14865         pops before trying the optab.
14866
14867 2010-08-18  Yao Qi  <yao@codesourcery.com>
14868
14869         PR target/45094
14870         * config/arm/arm.c (output_move_double): Fix typo generating
14871         instructions ('ldr'->'str').
14872
14873 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
14874
14875         PR rtl-optimization/42575
14876         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
14877         live ranges.
14878
14879 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14880
14881         * config/arm/arm-protos.h (arm_expand_sync): New.
14882         (arm_output_memory_barrier, arm_output_sync_insn): New.
14883         (arm_sync_loop_insns): New.
14884         * config/arm/arm.c (FL_ARCH7): New.
14885         (FL_FOR_ARCH7): Include FL_ARCH7.
14886         (arm_arch7): New.
14887         (arm_print_operand): Support %C markup.
14888         (arm_legitimize_sync_memory): New.
14889         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
14890         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
14891         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
14892         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
14893         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
14894         (arm_process_output_sync_insn, arm_output_sync_insn): New.
14895         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
14896         * config/arm/arm.h (struct arm_sync_generator): New.
14897         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
14898         (TARGET_HAVE_MEMORY_BARRIER): New.
14899         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
14900         * config/arm/arm.md: Include sync.md.
14901         (UNSPEC_MEMORY_BARRIER): New.
14902         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
14903         (VUNSPEC_SYNC_OP):New.
14904         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
14905         (sync_result, sync_memory, sync_required_value): New attributes.
14906         (sync_new_value, sync_t1, sync_t2): Likewise.
14907         (sync_release_barrier, sync_op): Likewise.
14908         (length): Add logic to length attribute defintion to call
14909         arm_sync_loop_insns when appropriate.
14910         * config/arm/sync.md: New file.
14911
14912 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14913
14914         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
14915         ENABLE_TREE_CHECKING.
14916         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
14917         and GCC >= 4.3.
14918
14919 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
14920
14921         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
14922         or optimizing for size, always avoid lea if possible.
14923
14924         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
14925
14926 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
14927
14928         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
14929         Dunmmy function with NULL return unless the target is
14930         OSX >= 10.6 (Darwin10).
14931
14932 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
14933
14934         * gcc.c (spec_function): Add remove-outfile.
14935         (remove_outfile_spec_function): New function.
14936         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
14937         * invoke.texi (replace-outfile): Document.
14938
14939 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
14940
14941         PR target/45296
14942         * reginfo.c (globalize_reg): Reject stack registers.
14943
14944 2010-08-17  Richard Guenther  <rguenther@suse.de>
14945
14946         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
14947         list of conditional equivalences.
14948         (free_all_edge_infos): Adjust.
14949         (record_equivalences_from_incoming_edge): Likewise.
14950         (record_cond): Likewise.
14951         (build_and_record_new_cond): Likewise.
14952         (record_conditions): Likewise.
14953         (dom_opt_leave_block): Likewise.
14954
14955 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
14956
14957         * doc/invoke.texi (ms-extension): Add documentation.
14958
14959 2010-08-17  Richard Guenther  <rguenther@suse.de>
14960
14961         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
14962
14963 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
14964
14965         PR c/40563
14966         * c-decl.c (diagnose_uninitialized_cst_member): New function.
14967         (finish_decl): Use it to issue a -Wc++-compat warning about
14968         uninitialized const field in struct or union.
14969
14970         (finish_struct): Use strip_array_types.
14971
14972 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14973
14974         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
14975         functions.
14976         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
14977         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
14978         call block_nreverse here.
14979         (blocks_nreverse): Rename decl temporary to block.
14980
14981 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
14982
14983         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
14984         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
14985         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
14986         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
14987         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
14988         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
14989         thumb2_iorsi3): Delete.
14990         (orsi_notsi_si): No longer a named pattern.
14991         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
14992         * config/arm/predicates.md (shift_amount_operand): New.
14993         (mult_operator): New.
14994         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
14995         attr enabled): New.
14996         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
14997         arch matches t2.
14998         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
14999         (not_shiftsi_compare0): Likewise, renamed from
15000         arm_notsi_shiftsi_compare0.
15001         (not_shiftsi_compare0_scratch): Likweise, renamed from
15002         arm_notsi_shiftsi_compare0_scratch.
15003         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
15004         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
15005         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
15006         so that the register alternative is disabled when the shift_operator
15007         is MULT.  Use "M" as the constraint for constants.
15008         (arith_shiftsi splitter): Enable for TARGET_32BIT.
15009         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
15010         constraint for constants.
15011         (arith_shiftsi_compare0_scratch): Likewise.
15012         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
15013         Handle Thumb2 alternative.
15014
15015 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15016
15017         * doc/options.texi (NoDriverArg): Document.
15018         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
15019         -MDX and -MMDX.
15020         * opt-functions.awk (switch_flags): Handle NoDriverArg.
15021         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
15022         marking for CL_NO_DRIVER_ARG options when in the driver.
15023         * opts.h (CL_NO_DRIVER_ARG): Define.
15024         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
15025         CL_COMMON): Update values.
15026
15027 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15028
15029         * common.opt: Add driver options.
15030         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
15031         * doc/options.texi (Driver, RejectDriver): Document.
15032         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
15033         print_prog_name, print_multi_directory, print_sysroot,
15034         print_multi_os_directory, print_multi_lib,
15035         print_sysroot_headers_suffix, report_times, combine_flag,
15036         use_pipes, wrapper_string): Remove.
15037         (save_switch, driver_unknown_option_callback,
15038         driver_wrong_lang_callback, driver_post_handling_callback,
15039         driver_handle_option): New.
15040         (spec_lang, last_language_n_infiles): Make file-scope static
15041         instead of local to process_command.
15042         (process_command): Use decode_cmdline_options_to_array and
15043         read_cmdline_option for option processing.  Compute have_c in
15044         prescan of decoded options.
15045         * opt-functions.awk (switch_flags): Handle Driver and
15046         RejectDriver.
15047         (var_type, var_type_struct): Handle Separate options as generating
15048         const char * variables.
15049         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
15050         CL_TARGET to be passed by caller if required.
15051         (decode_cmdline_options_to_array): Update comment.
15052         * opts.c (complain_wrong_lang): Handle options only valid for the
15053         driver.
15054         (decode_options): Update call to decode_cmdline_options_to_array.
15055         (print_filtered_help): Ignore driver-only options.
15056         (print_specific_help): Ignore CL_DRIVER.
15057         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
15058         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
15059         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
15060         Update values.
15061
15062 2010-08-16  Richard Guenther  <rguenther@suse.de>
15063
15064         * tree-cfg.c (verify_types_in_gimple_reference): Verify
15065         TARGET_MEM_REF a bit.
15066         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
15067         (create_mem_ref_raw): Always create TMR_OFFSET, store the
15068         alias pointer type via it.
15069         (copy_mem_ref_info): Adjust.
15070         (maybe_fold_tmr): Likewise.
15071         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
15072         (reference_alias_ptr_type): Likewise.
15073         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
15074         adjust documentation of TMR_OFFSET operand.
15075         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
15076         use the alias pointer type.
15077         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
15078         initialize mem attrs but the TMR itself.
15079         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
15080         similar to MEM_REF.
15081         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
15082         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
15083         (unshare_and_remove_ssa_names): Likewise.
15084         (copy_ref_info): Adjust.
15085         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
15086         TARGET_MEM_REF case.
15087         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
15088         at TMR_ORIGINAL.
15089         * tree.h (TMR_ORIGINAL): Remove.
15090         * gimple.c (get_base_address): For TARGET_MEM_REF with a
15091         symbol return that.
15092         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
15093         with a symbol.
15094         (get_addr_base_and_unit_offset): Likewise.
15095         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
15096         TARGET_MEM_REFs.
15097         (indirect_ref_may_alias_decl_p): Likewise.
15098         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
15099
15100 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
15101
15102         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
15103         with GCC version 4.6, the default setting (when not optimizing
15104         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
15105         been changed to -fomit-frame-pointer.
15106
15107 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
15108
15109         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
15110         Darwin10.  Do not link libgcc.a for Darwin >= 9.
15111
15112 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
15113
15114         * doc/invoke.texi (Warning Options): Fix terminology and markup
15115         in the description of how unknown warning options are handled.
15116
15117 2010-08-15  Ira Rosen  <irar@il.ibm.com>
15118
15119         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
15120         in basic blocks.
15121         (vect_supportable_dr_alignment): Check alignment for basic blocks.
15122         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
15123         data references.
15124         (vect_bb_vectorization_profitable_p): New function.
15125         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
15126         check if it's worthwhile to vectorize the basic block.
15127
15128 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
15129
15130         * reload.h (register_move_cost, memory_move_secondary_cost,
15131         secondary_reload_class): Adjust prototype.
15132         * rtl.h (reg_class_subset_p): Adjust prototype.
15133         * reload.c (secondary_reload_class): Change arguments type from
15134         enum reg_class to reg_class_t. Change result type to reg_class_t.
15135         * reginfo.c (register_move_cost, reg_class_subset_p): Change
15136         arguments type from enum reg_class to reg_class_t.
15137         (memory_move_secondary_cost): Change arguments type from
15138         enum reg_class to reg_class_t. Change type of saved_flags to
15139         reg_class_t.
15140
15141         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
15142         Remove macros.
15143         (mips_cost): Remove.
15144         (struct mips_rtx_cost_data): Moved to mips.c.
15145         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
15146         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
15147         (mips_cost): Make static.
15148         (mips_canonicalize_move_class): Change argument type to reg_class_t.
15149         Change result type to reg_class_t.
15150         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
15151         type from enum reg_class to reg_class_t.
15152         (mips_register_move_cost): Make static. Change arguments
15153         type from enum reg_class to reg_class_t.
15154         (mips_memory_move_cost): New function.
15155         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15156
15157 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
15158
15159         PR rtl-optimization/43358
15160         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
15161         of a single hard register, using simplify_subreg_regno to decide
15162         what that register should be.
15163
15164 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
15165
15166         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
15167         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
15168         (loongson_pmull<V_suffix>): Rename to...
15169         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
15170
15171 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
15172
15173         * configure.ac: Enable -fomit-frame-pointer on darwin
15174         which support dwarf2.
15175         * config/i386/i386.c (override_options): Same.
15176
15177 2010-08-13  Jie Zhang  <jie@codesourcery.com>
15178
15179         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
15180
15181 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
15182
15183         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
15184         -MMD.
15185
15186 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
15187
15188         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
15189         up dot_prod pattern searching if a stmt is outside the loop.
15190
15191 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
15192             Uros Bizjak  <ubizjak@gmail.com>
15193
15194         * config.gcc: Handle --enable-frame-pointer.
15195
15196         * configure.ac: Add --enable-frame-pointer.
15197         * configure: Regenerated.
15198
15199         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
15200         (override_options): If not configured with --enable-frame-pointer,
15201         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
15202         optimizing for size), -fasynchronous-unwind-tables and
15203         -maccumulate-outgoing-args by default.
15204
15205 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15206
15207         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
15208
15209         PR middle-end/45262
15210         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
15211         -a overflows.  Normalize the range.
15212
15213 2010-08-12  Richard Guenther  <rguenther@suse.de>
15214
15215         PR tree-optimization/45232
15216         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
15217         for types with undefined overflow.
15218         (reassociate_bb): Allow re-associating of bit and min/max
15219         operations for types with undefined overflow.
15220         * tree-ssa-forwprop.c (associate_plusminus): New function.
15221         (tree_ssa_forward_propagate_single_use_vars): Call it.
15222
15223 2010-08-12  Richard Guenther  <rguenther@suse.de>
15224
15225         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
15226         * tree-ssa-alias.c (get_ptr_info): Move ...
15227         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
15228         align and misalign fields conservatively.
15229         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
15230         derive alignment information.
15231         (evaluate_stmt): Derive alignment information from memory
15232         allocation functions.
15233         * tree.h (get_pointer_alignment): Make unsigned.
15234         * builtins.c (get_object_alignment): Use alignment information we
15235         have computed for pointers.
15236         (get_pointer_alignment): Likewise.  Make conservative, return
15237         and unsigned value.
15238         (expand_builtin_strlen): Adjust.
15239         (expand_builtin_memcmp): Likewise.
15240         (expand_builtin_strcmp): Likewise.
15241         (expand_builtin_strncmp): Likewise.
15242         (get_builtin_sync_mem): Use at least mode alignment.
15243         (fold_builtin_memset): Adjust.
15244         (fold_builtin_memory_op): Likewise.
15245         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
15246         information also dump pointer alignment knowledge.
15247         (dump_gimple_stmt): Likewise.
15248
15249 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
15250
15251         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
15252         (EMPTY_FIELD_BOUNDARY): Remove.
15253         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
15254
15255 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15256
15257         PR debug/45259
15258         * caller-save.c (save_call_clobbered_regs): Only swap notes with
15259         DEBUG_INSNs if n_regs_saved.
15260
15261 2010-08-12  Wei Guozhi  <carrot@google.com>
15262
15263         PR target/44999
15264         * config/arm/arm.md (andsi3): Change to zero extension if possible.
15265         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
15266
15267 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
15268
15269         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
15270
15271         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
15272
15273 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15274
15275         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
15276         the case removed in the previous patch, when the only phi argument
15277         is defined in the same loop as the phi node itself.  Handle it
15278         separately from the invariant case by both propagating it outside
15279         the region and replacing the phi node with an assign.
15280
15281 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15282
15283         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
15284         constant phi nodes with one argument are is_gimple_min_invariant
15285         and SSA_NAME_IS_DEFAULT_DEF.
15286
15287 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15288
15289         * graphite-cloog-util.c (oppose_constraint):
15290         Extend loop counter's value range (CLOOG_ORG).
15291         (cloog_matrix_to_ppl_constraint): Same.
15292         (new_Constraint_System_from_Cloog_matrix): Same.
15293         * graphite-cloog-compat.h (matrix_num_type): New.
15294
15295 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15296
15297         * graphite.c (graphite_initialize): Do not initialize
15298         CLooG and initialize the Parma Polyhedra Library
15299         manually when using CLOOG_ORG.
15300         (graphite_finalize): Do not finalize CLooG and finalize
15301         the Parma Polyhedra Library manually when using CLOOG_ORG.
15302         * graphite-cloog-compat.h (cloog_initialize): Hide function
15303         when using CLOOG_ORG.
15304         (cloog_finalize): Same.
15305
15306 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15307
15308         * graphite-clast-to-gimple.c (free_scattering): Change
15309         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
15310         (CLOOG_ORG).
15311         (build_cloog_prog): Same.
15312         * graphite-cloog-compat.h (cloog_domain): Removed.
15313         (cloog_scattering): New.
15314         (cloog_set_domain): Removed.
15315         (cloog_set_scattering): New.
15316         (cloog_next_domain): Removed.
15317         (cloog_next_scattering): New.
15318         (cloog_set_next_domain): Removed.
15319         (cloog_set_next_scattering): New.
15320         (CloogScatteringList): New.
15321         (CloogScattering): New.
15322         (cloog_scattering_free): New.
15323         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
15324         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
15325         New.
15326
15327 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15328
15329         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
15330         CloogState.
15331         (set_cloog_options): Same.
15332         (print_clast_stmt): Same.
15333         (scop_to_clast): Same.
15334         (print_generated_program): Same.
15335         (gloog): Same.
15336         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
15337         (scop_to_clast): Extend with CloogState.
15338         * graphite-cloog-util.c: Include graphite-cloog-compat.h
15339         (new_Cloog_Domain_from_ppl_Polyhedron):
15340         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
15341         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
15342         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15343         * graphite-cloog-util.h (build_cloog_prog): Same.
15344         * graphite-cloog-copat.h (build_cloog_prog): New.
15345         (CloogState): New.
15346         (cloog_state_malloc): New.
15347         (cloog_state_free): New.
15348         (cloog_loop_malloc): New.
15349         (cloog_options_malloc): New.
15350         (cloog_statement_alloc): New.
15351         (cloog_domain_from_cloog_matrix): New.
15352         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
15353         (new_Cloog_Domain_from_ppl_Polyhedron): New.
15354
15355 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15356
15357         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
15358         type of NAME now depends on used CLooG version.
15359         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
15360         (gcc_type_for_clast_expr): Same.
15361         (print_clast_stmt): Replace pprint with clast_pprint.
15362         * graphite-cloog-compat.h: Provide compatibility macros for
15363         CLooG Legacy.
15364         (clast_name_p): New.
15365         (clast_expr_term): New.
15366         (clast_expr_red): New.
15367         (clast_expr_bin): New.
15368         (clast_pprint): New.
15369
15370 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15371
15372         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
15373         compatible to newer CLooG releases (CLOOG_ORG).
15374         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
15375         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
15376         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
15377         (build_cloog_prog) : New.
15378         (cloog_program_extract_scalars): New.
15379         (cloog_program_scatter): New.
15380
15381 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15382
15383         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
15384         conditionally (CLOOG_ORG).
15385         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
15386         (cloog_statement_usr): New.
15387         (cloog_domain): Same.
15388         (cloog_set_domain): Same.
15389         (cloog_next_domain): Same.
15390         (cloog_set_next_domain): Same.
15391         (cloog_program_nb_scattdims): Same.
15392         (cloog_program_set_nb_scattdims): Same.
15393         (cloog_program_names): Same.
15394         (cloog_program_set_names): Same.
15395         (cloog_program_set_context): Same.
15396         (cloog_program_set_loop): Same.
15397         (cloog_program_blocklist): Same.
15398         (cloog_program_set_blocklist): Same.
15399         (cloog_program_scaldims): Same.
15400         (cloog_program_set_scaldims): Same.
15401         (cloog_names_nb_parameters): Same.
15402         (cloog_names_set_nb_parameters): Same.
15403         (cloog_names_parameters): Same.
15404         (cloog_names_set_parameters): Same.
15405         (cloog_names_set_nb_iterators): Same.
15406         (cloog_names_set_iterators): Same.
15407         (cloog_names_set_nb_scattering): Same.
15408         (cloog_names_set_scattering): Same.
15409         (cloog_statement_set_usr): Same.
15410         (cloog_loop_set_next): Same.
15411         (cloog_loop_set_domain): Same.
15412         (cloog_loop_set_block): Same.
15413         (cloog_block_list_next): Same.
15414         (cloog_block_list_set_next):
15415         (cloog_block_list_set_block): Same.
15416
15417 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15418
15419         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
15420         a bool.
15421         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
15422         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
15423         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
15424         when something has been changed.
15425         (rewrite_commutative_reductions_out_of_ssa): Same.
15426
15427 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15428
15429         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
15430         handle the case when def is in the sese region.
15431         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
15432         for invariant expressions.
15433         (rewrite_cross_bb_phi_deps): Removed.
15434         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
15435         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
15436         rewrite_cross_bb_phi_deps.
15437
15438 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15439
15440         * graphite-sese-to-poly.c
15441         (rewrite_commutative_reductions_out_of_ssa_loop): Call
15442         scev_analyzable_p only on is_gimple_reg
15443
15444 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15445
15446         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
15447         (rewrite_close_phi_out_of_ssa): Propagate constant values or
15448         parametric expressions outside the scop region.
15449         (rewrite_cross_bb_scalar_deps): Same.
15450         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
15451
15452 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15453
15454         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
15455         SSA_NAME_DEF_STMT only on SSA_NAMEs.
15456
15457 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15458
15459         * tree-scalar-evolution.c (instantiate_scev_name): Do not
15460         instantiate default definitions.
15461
15462 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
15463             Sebastian Pop  <sebastian.pop@amd.com>
15464
15465         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
15466         (loop_exits_from_bb_p): New.
15467         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
15468         (loop_exits_from_bb_p): Declared.
15469         * graphite-scop-detection.c (scopdet_basic_block_info): Call
15470         loop_exits_to_bb_p.
15471
15472 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15473
15474         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
15475         extra parameter for the region.  Call scev_analyzable_p.
15476         (rewrite_reductions_out_of_ssa): Update call to
15477         rewrite_close_phi_out_of_ssa.
15478         (rewrite_cross_bb_phi_deps): Same.
15479         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
15480         parameter for the region.  Call scev_analyzable_p.
15481         (rewrite_commutative_reductions_out_of_ssa): Update call to
15482         rewrite_commutative_reductions_out_of_ssa_loop.
15483
15484 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15485
15486         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
15487
15488 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15489
15490         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
15491         SSA scalar phi nodes that can be scev_analyzable_p.
15492
15493 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15494
15495         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
15496         handle SSA_NAME_IS_DEFAULT_DEF.
15497
15498 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15499
15500         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
15501
15502 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15503
15504         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
15505         case non close-phi nodes with one argument.
15506
15507 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15508
15509         * sese.h (scev_analyzable_p): Scevs could be expressions without
15510         chrecs and still be scev_analyzable_p.
15511
15512 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15513
15514         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
15515
15516 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15517
15518         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
15519         * cfgloop.h (struct loop): Remove single_iv field.
15520         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
15521         (scop_canonicalize_loops): Removed.
15522         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
15523         over all the loop phi nodes in loop->header.
15524         (build_poly_scop): Remove use of scop_canonicalize_loops.
15525
15526 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15527
15528         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
15529         handle GIMPLE_CALL.
15530
15531 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15532
15533         * tree-chrec.c (chrec_apply): Should only apply to the specified
15534         variable.  Also handle multivariate chains of recurrences that
15535         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
15536
15537 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15538
15539         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
15540         (debug_clast_name_indexes_1): Removed.
15541         (debug_clast_name_indexes): Removed.
15542         (pbb_to_depth_to_oldiv): Removed.
15543         (build_iv_mapping): Replace the use of rename_map with iv_map.
15544         (translate_clast_user): Remove uses of rename_map.  Allocate and
15545         free iv_map.
15546         (translate_clast_for_loop): Remove uses of rename_map.
15547         (translate_clast_for): Same.
15548         (translate_clast_guard): Same.
15549         (translate_clast): Same.
15550         (gloog): Same.
15551         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
15552         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
15553         * sese.c (set_rename): Now static.
15554         (rename_variables_in_stmt): Removed.
15555         (rename_uses): New.
15556         (is_parameter): Removed.
15557         (is_iv): Removed.
15558         (expand_scalar_variables_call): Removed.
15559         (expand_scalar_variables_ssa_name): Removed.
15560         (expand_scalar_variables_expr): Removed.
15561         (expand_scalar_variables_stmt): Removed.
15562         (expand_scalar_variables): Removed.
15563         (rename_variables): Removed.
15564         (remove_condition): Removed.
15565         (get_true_edge_from_guard_bb): Removed.
15566         (get_false_edge_from_guard_bb): Removed.
15567         (struct igp): Removed.
15568         (default_before_guard): Removed.
15569         (convert_for_phi_arg): Removed.
15570         (add_guard_exit_phis): Removed.
15571         (insert_guard_phis): Removed.
15572         (graphite_copy_stmts_from_block): Now also uses iv_map and a
15573         region.  Do not copy conditions.  Do not copy induction variables.
15574         Call rename_uses.
15575         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
15576         the translated statement.  Use the iv_map for the induction
15577         variable renaming.
15578         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
15579         (set_rename): Removed declaration.
15580         (scev_analyzable_p): ...here.
15581         * tree-chrec.c (chrec_apply_map): New.
15582         * tree-chrec.h (chrec_apply_map): Declared.
15583
15584 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15585
15586         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
15587         insert_loop_close_phis.
15588         * sese.c (name_defined_in_loop_p): Removed.
15589         (expr_defined_in_loop_p): Removed.
15590         (alive_after_loop): Removed.
15591         (close_phi_not_yet_inserted_p): Removed.
15592         (struct alep): Removed.
15593         (add_loop_exit_phis): Removed.
15594         (insert_loop_close_phis): Removed.
15595
15596 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15597
15598         * graphite-cloog-util.c
15599         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
15600         * graphite-poly.c
15601         (psct_scattering_dim_for_loop_depth): Same.
15602
15603 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15604
15605         * graphite-cloog-util.h: Added cloog.h.
15606         * graphite-blocking.c: Removed cloog.h.
15607         * graphite-dependences.c: Same.
15608         * graphite-interchange.c: Same.
15609         * graphite-poly.c: Same.
15610         * graphite-ppl.c: Same.
15611         * graphite-scop-detection.c: Same.
15612         * graphite-sese-to-poly.c:
15613         Removed cloog.h.
15614         Removed graphite-clast-to-gimple.h.
15615         (check_poly_representation): Removed (unused).
15616         * graphite-sese-to-poly.h
15617         (check_poly_representation): Removed (unused).
15618
15619 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15620
15621         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
15622         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
15623         (graphite-cloog-util.o): New.
15624         (graphite-ppl.o): Added graphite-cloog-util.h.
15625         * graphite-clast-to-gimple.c:
15626         Added graphite-cloog-util.h to include statements.
15627         * graphite-cloog-util.c: New.
15628         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
15629         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15630         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15631         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15632         (insert_constraint_into_matrix): Same.
15633         (ppl_Constrain_System_number_of_constraints): Same.
15634         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15635         (oppose_constraint): Same.
15636         (cloog_matrix_to_ppl_constraint): Same.
15637         (new_Constraint_System_from_Cloog_Matrix): Same.
15638         * graphite-cloog-util.h: New.
15639         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
15640         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15641         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15642         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15643         (insert_constraint_into_matrix): Same.
15644         * graphite-ppl.c:
15645         Added graphite-cloog-util.h to include statements.
15646         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
15647         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15648         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15649         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15650         (insert_constraint_into_matrix): Same.
15651         (ppl_Constrain_System_number_of_constraints): Same.
15652         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15653         (oppose_constraint): Same.
15654         (cloog_matrix_to_ppl_constraint): Same.
15655         (new_Constraint_System_from_Cloog_Matrix): Same.
15656         * graphite-ppl.h:
15657         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
15658         graphite-cloog-util.h.
15659         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15660         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15661         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15662         (insert_constraint_into_matrix): Same.
15663
15664 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15665
15666         * graphite-clast-to-gimple.c
15667         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
15668         (precision_for_interval): Same.
15669         (gcc_type_for_interval): Same.
15670         (compute_type_for_level): Same.
15671         * graphite-interchange.c
15672         (lst_interchange_profitable_p): Same.
15673         * graphite-poly.c
15674         (psct_scattering_dim_for_loop_depth): Same.
15675         * graphite-ppl.c
15676         (ppl_max_for_le_pointset): Same.
15677         (ppl_min_for_le_pointset): Same.
15678
15679 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15680
15681         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
15682         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
15683
15684 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15685
15686         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
15687         rewrite_close_phi_out_of_ssa.
15688
15689 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15690
15691         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
15692
15693 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15694
15695         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
15696         rename_map.
15697         * sese.c (debug_rename_map): Same.
15698         (get_rename): Same.
15699         (set_rename): Same.
15700         (rename_variables_in_stmt): Same.
15701         (expand_scalar_variables_call): Same.
15702         (expand_scalar_variables_ssa_name): Same.
15703         (expand_scalar_variables_expr): Same.
15704         (expand_scalar_variables_stmt): Same.
15705         (expand_scalar_variables): Same.
15706         (rename_variables): Same.
15707         (graphite_copy_stmts_from_block): Same.
15708         (copy_bb_and_scalar_dependences): Same.
15709
15710 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15711
15712         * graphite-clast-to-gimple.c (copy_renames): Removed.
15713         (translate_clast_for): Do not call copy_renames.
15714         (translate_clast_guard): Same.
15715
15716 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15717
15718         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
15719         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
15720         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
15721         before rewrite_cross_bb_scalar_deps.
15722
15723 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15724
15725         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
15726         Early return in when flag_associative_math is not set.
15727
15728 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15729
15730         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
15731         of SSA copies on edges except for loop->latch.
15732
15733 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15734
15735         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
15736         Split out of rewrite_reductions_out_of_ssa.
15737         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
15738         Declared.
15739         * graphite.c (graphite_transform_loops): Call it.
15740
15741 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15742
15743         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
15744
15745 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
15746
15747         * dbgcnt.def (graphite_scop): New counter.
15748         * graphite.c: Include dbgcnt.h.
15749         (graphite_transform_loops): Use new counter to limit transformations.
15750         * Makefile.in (graphite.o): Depend on DBGCNT_H.
15751
15752 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15753
15754         * passes.c (init_optimization_passes): Add pass_graphite.
15755         Schedule a pass_copy_prop before pass_graphite_transforms.
15756         * timevar.def (TV_GRAPHITE): Declared.
15757         * tree-pass.h (pass_graphite): Declared.
15758         * tree-ssa-loop.c (pass_graphite): New.
15759
15760 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15761
15762         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
15763         Remove calls to rename_nb_iterations and rename_sese_parameters.
15764         * graphite-clast-to-gimple.h (gloog): Update declaration.
15765         * graphite.c (graphite_transform_loops): Update call to gloog.
15766         * sese.c (rename_variables_in_expr): Removed.
15767         (rename_nb_iterations): Removed.
15768         (rename_sese_parameters): Removed.
15769         * sese.h (rename_nb_iterations): Removed.
15770         (rename_sese_parameters): Removed.
15771
15772 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15773
15774         * graphite-clast-to-gimple.c (gloog): Remove call to
15775         sese_adjust_liveout_phis.
15776         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
15777         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
15778         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
15779         rewrite_phi_out_of_ssa.
15780         * sese.c (get_vdef_before_sese): Removed.
15781         (sese_adjust_vphi): Removed.
15782         (sese_adjust_liveout_phis): Removed.
15783         * sese.h (sese_adjust_liveout_phis): Removed.
15784
15785 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15786
15787         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
15788         argument for the place after which to insert the out of SSA copy.
15789         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
15790         (rewrite_phi_out_of_ssa): Same.
15791         (rewrite_cross_bb_scalar_deps): Same.
15792         (insert_copyout): Removed.
15793         (insert_copyin): Removed.
15794         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
15795         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
15796         insert_copyin.
15797
15798 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15799
15800         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
15801         (rewrite_reductions_out_of_ssa): Same.
15802         (rewrite_commutative_reductions_out_of_ssa): Same.
15803         (build_poly_scop): Do not call these functions.
15804         * graphite-sese-to-poly.h (build_poly_scop): Declared.
15805         (rewrite_reductions_out_of_ssa): Declared.
15806         (rewrite_commutative_reductions_out_of_ssa): Declared.
15807         * graphite.c (graphite_transform_loops): Call on every scop
15808         rewrite_commutative_reductions_out_of_ssa before calling
15809         rewrite_reductions_out_of_ssa and build_scop_bbs.
15810
15811 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15812
15813         * graphite-dependences.c (dot_deps): Make system call to dotty run
15814         in background.
15815         (dot_deps_stmt): Same.
15816         * graphite-poly.c (dot_lst): Same.
15817
15818 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15819
15820         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
15821         phi_arg_in_outermost_loop.
15822         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
15823         (remove_invariant_phi): Same.
15824
15825 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
15826
15827         * target.def (output_addr_const_extra): New hook.
15828         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
15829         * doc/tm.texi: Regenerate.
15830         * targhooks.c (default_asm_output_addr_const_extra): New function.
15831         * targhooks.h (default_asm_output_addr_const_extra): Declare.
15832         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
15833         target hook.
15834
15835         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15836         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
15837         * config/i386/i386.h (output_addr_const_extra): Rename to...
15838         (i386_asm_output_addr_const_extra): ...this. Make static.
15839         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15840
15841 2010-08-11  Richard Henderson  <rth@redhat.com>
15842
15843         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
15844
15845 2010-08-11  Nick Clifton  <nickc@redhat.com>
15846
15847         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
15848         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
15849         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
15850         stormy16-lib2-cmpsi.c.
15851
15852         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
15853         -O2.
15854
15855 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
15856
15857         * opts.h (struct cl_option_handler_func): Make handler take
15858         cl_decoded_option structure as parameter, not individual elements.
15859         (struct cl_option_handlers): Make callbacks take cl_decoded_option
15860         structure as parameter, not individual elements.
15861         (handle_option): Take cl_decoded_option structure as parameter,
15862         not individual elements.
15863         (handle_generated_option): Declare.
15864         * opts-common.c (handle_option): Take cl_decoded_option structure
15865         as parameter, not individual elements.  Update calls to callback
15866         and handler functions.
15867         (handle_generated_option): New.
15868         (read_cmdline_option): Update calls to callback functions and
15869         handle_option.
15870         * opts.c (common_handle_option, complain_wrong_lang,
15871         unknown_option_callback, post_handling_callback,
15872         lang_handle_option, target_handle_option): Take cl_decoded_option
15873         structure as parameter, not individual elements.
15874         (lang_handle_option, target_handle_option, common_handle_option):
15875         Assert option has at most one argument.
15876         (enable_warning_as_error): Call handle_generated_option instead of
15877         handle_option.  Do not pass -Werror argument as argument of
15878         generated option.
15879
15880 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15881
15882         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
15883         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
15884         (SUBWORD_BOOL_CAS): Likewise.
15885         (SUBWORD_SYNC_OP): Likewise.
15886         (SUBWORD_TEST_AND_SET): Likewise.
15887         (FETCH_AND_OP_WORD): Parenthesise INF_OP
15888         (SUBWORD_SYNC_OP): Likewise.
15889         (OP_AND_FETCH_WORD): Likewise.
15890
15891 2010-08-10  Xinliang David Li  <davidxl@google.com>
15892
15893         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
15894         compute max/min offset in address.
15895
15896 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
15897
15898         * ira-live.c: Include sbitmap.h.
15899         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
15900         Compress live ranges even more.
15901
15902 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15903
15904         * coverage.c (ctr_labels): Delete.
15905
15906 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15907
15908         PR bootstrap/45177
15909         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
15910         test here from arm_gen_load_multiple_1.
15911         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
15912         multiple_operation_profitable_p.
15913
15914 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15915
15916         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
15917         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
15918
15919 2010-08-10  Richard Henderson  <rth@redhat.com>
15920
15921         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
15922         after saving registers.  Assert that SSE registers are only saved
15923         with a sufficiently aligned frame.
15924         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
15925         remove stack_realign_fp handling.
15926         (ix86_expand_prologue): Save int registers before stack_realign_fp,
15927         and do not mark the stack alignment as frame related.
15928         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
15929
15930         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
15931         saves when re-aligning the stack.
15932
15933 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15934
15935         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
15936         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
15937         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
15938
15939 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15940
15941         * dwarf2out.c (struct die_struct): Move die_tag to the end.
15942
15943 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
15944
15945         * config/arm/iterators.md: New file.
15946         * config/arm/arm.md: Include iterators.md.
15947         (QHSI): Move to new file.
15948         (LTUGEU, cnb, optab, ior_xor): Likewise.
15949         * config/arm/iwmmxt.md (VMMX): Move to new file.
15950         (VSHFT, MMX_char): Likewise.
15951         * config/arm/neon.md (VD): Move to new file.
15952         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
15953         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
15954         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
15955         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
15956         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
15957         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
15958         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
15959         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
15960         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
15961         (Is_d_reg, V_mode_nunits): Likewise.
15962         * config/arm/vec-common.md (VALL): Move to new file.
15963         (VALLW, VINT, VINTW): Likewise.
15964
15965 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15966
15967         PR middle-end/45182
15968         * combine.c (make_compound_operation): Don't try to convert
15969         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
15970
15971 2010-08-10  Richard Guenther  <rguenther@suse.de>
15972
15973         * tree.h (get_object_alignment): Adjust prototype.
15974         * builtins.c (get_object_alignment): Return unsigned int,
15975         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
15976         and TARGET_MEM_REF properly.
15977         (get_pointer_alignment): Adjust.
15978         * emit-rtl.c (get_mem_align_offset): Adjust comment.
15979         (set_mem_attributes_minus_bitpos): Adjust.
15980         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
15981
15982 2010-08-10  Richard Guenther  <rguenther@suse.de>
15983
15984         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
15985         (copy_prop_visit_assignment): Simplify.
15986         (copy_prop_visit_stmt): Also visit assignments from
15987         constants.
15988         (copy_prop_visit_phi_node): Use operand_equal_p.
15989
15990 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15991
15992         * ipa-split.c (find_split_points): Free stack.
15993
15994 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15995
15996         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
15997         * tree.c (tree_node_kind): Delete corresponding entries.
15998
15999 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
16000
16001         * alias.c (may_alias_p): Remove unused ret.
16002
16003 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
16004
16005         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
16006         alias_sets_conflict_p.
16007         (walk_mems_1): Moved from alias.c.
16008         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
16009         in alias.c.
16010         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
16011         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
16012         * alias.c (walk_mems_2): Moved to ddg.c.
16013         (walk_mems_1): Ditto.
16014         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
16015         to ddg.c.
16016         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
16017         disambiguation.
16018         *(may_alias_p): New function to check whether two memory expression
16019         may alias or not. Currently used in buidling inter-iteration memory
16020         dependence.
16021         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
16022         (insn_alias_sets_conflict_p): Removed
16023         *rtl.h (may_alias_p): New function prototype.
16024
16025 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16026
16027         * tree.c (nreverse): Assert that we don't have a BLOCK.
16028
16029 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16030
16031         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
16032         * config/arm/arm.c (arm_get_pcs_model): Likewise.
16033         * config/avr/avr.c (init_cumulative_args): Likewise.
16034         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
16035         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
16036         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
16037         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
16038         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
16039         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
16040         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
16041         * dwarf2out.c (gen_subprogram_die): Likewise.
16042         * function.c (allocate_struct_function): Likewise.
16043         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
16044         (deserves_ellipsis): Delete.
16045
16046 2010-08-09  Richard Guenther  <rguenther@suse.de>
16047
16048         * tree-ssa-copy.c (cached_last_copy_of): Remove.
16049         (valueize_val): New function.
16050         (get_last_copy_of): Remove.
16051         (set_copy_of_val): Simplify.
16052         (dump_copy_of): Likewise.
16053         (copy_prop_visit_cond_stmt): Use valueize_val.
16054         (copy_prop_visit_phi_node): Properly handle unvisited names.
16055         Drop code managing copy-of chains.
16056         (init_copy_prop): Adjust.
16057         (fini_copy_prop): Likewise.
16058         (execute_copy_prop): Remove obsolete comment.
16059
16060 2010-08-09  Richard Guenther  <rguenther@suse.de>
16061
16062         PR middle-end/44632
16063         * function.c (gimplify_parameters): Do not clear addressable
16064         bit of the original parameter.
16065
16066 2010-08-09  Richard Guenther  <rguenther@suse.de>
16067
16068         PR middle-end/45212
16069         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
16070         alignment from MEM_REF offset only if we took it from the
16071         base object.
16072
16073 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
16074
16075         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
16076
16077 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16078
16079         * c-tree.h (build_arg_info): Declare.
16080         * c-decl.c (build_arg_info): Define.
16081         (get_parm_info): Call it.  Delete initialization code.
16082         * c-parser.c (c_parser_parms_declarator): Likewise.
16083         (c_parser_parms_list_declaractor): Likewise.
16084
16085 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16086
16087         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
16088         (struct c_arg_info): Change type of tags field.
16089         * c-decl.c (grokdeclarator): Update for changed type of tags field.
16090         (get_parm_info): Likewise.
16091         (store_parm_decls_newstyle): Likewise.
16092
16093 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16094
16095         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
16096         (branch_island_list): Delete.
16097         (branch_islands): Declare.
16098         (add_compiler_branch_island): Adjust for branch_islands instead of
16099         branch_island_list.
16100         (macho_branch_islands): Likewise.
16101         (no_previous_def): Likewise.
16102         (get_prev_label): Likewise.
16103
16104 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16105
16106         PR boehm-gc/34544
16107         * gthr-posix.h (__gthread_start): Delete.
16108         (__gthread_active_init): Use pthread_default_stacksize_np instead of
16109         pthread_create to determine if hpux pthreads are active.
16110         * gthr-posix95.h (__gthread_start): Delete.
16111         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
16112
16113 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
16114
16115         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
16116         _WIN64 not expanded.
16117
16118 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
16119             H.J. Lu  <hongjiu.lu@intel.com>
16120
16121         PR target/45213
16122         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
16123         to output 32bit SFmode immediate as 8 byte sign extended value.
16124
16125 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16126
16127         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
16128         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
16129         (SUBWORD_BOOL_CAS): Likewise.
16130         (SUBWORD_SYNC_OP): Likewise.
16131         (SUBWORD_TEST_AND_SET): Likewise.
16132         (FETCH_AND_OP_WORD): Parenthesise INF_OP
16133         (SUBWORD_SYNC_OP): Likewise.
16134         (OP_AND_FETCH_WORD): Likewise.
16135
16136 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16137
16138         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
16139         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
16140         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
16141         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
16142         generic part.
16143         (cortex_a9_sched_adjust_cost): New function.
16144         (xscale_sched_adjust_cost): New function.
16145         * config/arm/arm-protos.h (struct tune_params): New field
16146         sched_adjust_cost.
16147         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
16148
16149 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
16150
16151         PR target/44942
16152         * config/sparc/sparc.c (function_arg_advance): Always take into account
16153         the padding, if any.
16154
16155 2010-08-06  Richard Guenther  <rguenther@suse.de>
16156
16157         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
16158         (dump_lattice_value): Dump it.
16159         (get_default_value): Adjust.
16160         (get_constant_value): Likewise.
16161         (set_value_varying): Likewise.
16162         (set_lattice_value): Make sure to not go up the lattice
16163         with bitwise constant values.
16164         (get_value_for_expr): Handle ADDR_EXPRs.
16165         (value_to_double_int): New function.
16166         (get_value_from_alignment): Likewise.
16167         (do_dbg_cnt): Adjust.
16168         (ccp_lattice_meet): Handle partially constant values.
16169         (bit_value_unop_1): New function.
16170         (bit_value_binop_1): Likewise.
16171         (bit_value_unop): Likewise.
16172         (bit_value_binop): Likewise.
16173         (evaluate_stmt): Track partially constant values if
16174         flag_tree_bit_ccp is set.
16175         (ccp_fold_stmt): Dump if we folded a predicate.
16176         (ccp_visit_stmt): Adjust.
16177         * common.opt (ftree-bit-ccp): New flag.
16178         * doc/invoke.texi (ftree-bit-ccp): Document.
16179         * opts.c (decode_options): Enable bit-CCP at -O1.
16180
16181 2010-08-06  Alan Modra  <amodra@gmail.com>
16182
16183         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
16184         and -mrelocatable-lib description.
16185
16186 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
16187
16188         From Martin Thuresson  <martint@google.com>
16189         * postreload.c (reload_cse_simplify_operands): Use
16190         SET_REGNO_RAW instead of SET_REGNO.
16191         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
16192         SET_REGNO.
16193         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
16194         instead of SET_REGNO.
16195         * rtl.h (SET_REGNO_RAW): New macro.
16196
16197 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
16198
16199         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
16200         computations.  Fix formatting issues.
16201         (num_sign_bit_copies1): Likewise.
16202         (canonicalize_condition): Likewise.
16203
16204 2010-08-05  Richard Henderson  <rth@redhat.com>
16205
16206         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
16207         (floor_log2): Use clz_hwi.
16208         (exact_log2): Use ctz_hwi.
16209         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
16210         * builtins.c (fold_builtin_bitop): Use them.
16211         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
16212         * combine.c (get_pos_from_mask): Use ctz_hwi.
16213         * double-int.c (double_int_ctz): Likewise.
16214         * explow.c (force_reg): Likewise.
16215         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
16216
16217 2010-08-05  Richard Henderson  <rth@redhat.com>
16218
16219         PR target/45189
16220         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
16221         the alignment constant is properly sign-extended.
16222
16223 2010-08-05  Richard Guenther  <rguenther@suse.de>
16224
16225         * expr.c (store_expr): Use emit_block_move only if both
16226         source and target are MEMs.  Use store_bit_field if only
16227         the target is a MEM.
16228
16229 2010-08-05  Richard Henderson  <rth@redhat.com>
16230
16231         PR debug/45188
16232         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
16233         (INCOMING_RETURN_ADDR_RTX): Likewise.
16234         (dwarf2out_do_frame): Remove conditional compilation.
16235         (dwarf2out_frame_init): Likewise.
16236
16237 2010-08-05  Nicolas Setton  <setton@adacore.com>
16238
16239         * gcov.c (flag_display_progress): New static variable.
16240         (main): Display progress info on standard output if requested.
16241         (options): Add -d/--display-progress.
16242         (print_usage): Print them.
16243         (process_args): Handle them.
16244         * doc/gcov.texi: Document them.
16245
16246 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16247
16248         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
16249         (ipcp_insert_stage): Redirect only edges not flagged with
16250         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
16251         discovered constants.
16252
16253 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16254
16255         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
16256         (struct ipa_param_descriptor): New fields types and
16257         cannot_devirtualize.
16258         (ipa_param_cannot_devirtualize_p): New function.
16259         (ipa_param_types_vec_empty): Likewise.
16260         (ipa_make_edge_direct_to_target): Declare.
16261         * ipa-cp.c: Fixed first stage driver name in initial comment,
16262         described devirtualization there too.
16263         (ipcp_analyze_node): Call ipa_analyze_params_uses.
16264         (ipcp_print_all_lattices): Print devirtualization info.
16265         (ipa_set_param_cannot_devirtualize): New function.
16266         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
16267         lattice to BOTTOM.
16268         (ipcp_init_stage): Merged into...
16269         (ipcp_generate_summary): ...its caller.
16270         (ipcp_change_tops_to_bottom): Also process type lists.
16271         (ipcp_add_param_type): New function.
16272         (ipcp_copy_types): Likewise.
16273         (ipcp_propagate_types): Likewise.
16274         (ipcp_propagate_stage): Also propagate types.
16275         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
16276         Also return true if propagated types require it.
16277         (ipcp_update_callgraph): Dump redirection info.
16278         (ipcp_process_devirtualization_opportunities): New function.
16279         (ipcp_const_param_count): Include known type information.
16280         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
16281         on new node.  Fixed formatting.
16282         * ipa-prop.c (make_edge_direct_to_target): Renamed to
16283         ipa_make_edge_direct_to_target and changed all callers.  Made
16284         externally visible.
16285         (ipa_node_duplication_hook): Duplicate types vector.
16286         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
16287         redirect outgoing calls for which we can't get a decl from the
16288         statement.  Check that we can get a decl from the call statement.
16289         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
16290         ipa_analyze_params_uses only when ipa-cp is disabled.
16291         * tree-inline.c (get_indirect_callee_fndecl): Removed.
16292         (expand_call_inline): Do not call get_indirect_callee_fndecl.
16293         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
16294         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
16295
16296 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16297
16298         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
16299         temporary. Emit move from temporary to accum, so REG_EQUAL note will
16300         be attached to this insn in correct mode.
16301
16302 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16303
16304         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
16305         using REGNO of base_reg directly.
16306
16307 2010-08-05  Jie Zhang  <jie@codesourcery.com>
16308
16309         PR tree-optimization/45144
16310         * tree-sra.c (type_consists_of_records_p): Return false
16311         if the record contains bit-field.
16312
16313 2010-08-04  Richard Henderson  <rth@redhat.com>
16314
16315         * config/i386/i386.c (struct ix86_frame): Remove padding and
16316         to_allocate members.
16317         (ix86_compute_frame_layout): Don't store them.
16318         (ix86_can_use_return_insn_p): Use a more direct and more obviously
16319         correct condition for the position of the stack pointer.
16320         (ix86_expand_prologue): Compute remaining stack allocation based
16321         on the ultimate stack pointer offset.
16322         (ix86_expand_epilogue): Use more obvious expressions testing for
16323         the stack pointer already pointing to the saved registers.
16324
16325         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
16326         duplication deconstructing the frame pointer.  Simplify
16327         deallocation of the local stack frame.
16328
16329         * reg-notes.def (CFA_EXPRESSION): New.
16330         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
16331         (dwarf2out_frame_debug_cfa_expression): New.
16332         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
16333
16334         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
16335         * config/i386/i386.c (ix86_expand_prologue): Set it.
16336         (ix86_expand_epilogue): Clear it.
16337         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
16338         context, add REG_CFA_EXPRESSION notes.
16339
16340         * config/i386/i386.h (struct machine_frame_state): Rename from
16341         machine_cfa_state.  Add members tracking SP and FP regardless
16342         of the current CFA register.
16343         (ix86_cfa_state): Remove.
16344         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
16345         and sse_reg_save_offset members.
16346         (ix86_compute_frame_layout): Set them.
16347         (gen_push): Increment sp_offset too.
16348         (choose_baseaddr_len, choose_baseaddr): New.
16349         (ix86_emit_save_reg_using_mov): New.
16350         (ix86_emit_save_regs_using_mov): Use it.
16351         (ix86_emit_save_sse_regs_using_mov): Likewise.
16352         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
16353         compare vs the saved red_zone_offset.
16354         (pro_epilogue_adjust_stack): Adjust sp_offset.
16355         (ix86_adjust_stack_and_probe): Likewise.
16356         (ix86_expand_prologue): Set up, use, and validate the new
16357         frame_state_info members.  Use gen_frame_mem.
16358         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
16359         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
16360         new frame_state_info members.
16361         (ix86_emit_leave): Likewise.
16362         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
16363         out-of-range stack pointer offsets here.
16364         (ix86_emit_restore_sse_regs_using_mov): Likewise.
16365         (ix86_expand_epilogue): Use and validate the new frame_state_info
16366         members.  Break up and simplify the logic selecting the
16367         restore_regs_via_mov code path.  Ensure that there will be no
16368         out-of-range stack pointer offsets.
16369
16370         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
16371
16372         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
16373         argument name to reflect the expected tree; fix indentation.
16374         (ix86_asm_output_function_label): Output the entire 32-bit
16375         ms_hook here as bytes ...
16376         (ix86_expand_prologue): ... not here as insns.  Attach the
16377         unwind info for the ms_hook to a blockage insn.
16378         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
16379         (ix86_ms_bitfield_layout_p): Fix indentation.
16380         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
16381
16382         * config/i386/i386.c (ix86_using_red_zone): New.
16383         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
16384         ix86_expand_prologue, ix86_force_to_memory): Use it.
16385
16386         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
16387         saving the int registers.
16388
16389         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
16390         and DWARF2_UNWIND_INFO conditional compilation.
16391
16392 2010-08-04  Richard Henderson  <rth@redhat.com>
16393
16394         PR debug/45171
16395         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
16396         an is_naming_typedef_decl.
16397
16398 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
16399
16400         PR rtl-optimization/45162
16401         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
16402         * dce.c (word_dce_process_block): Likewise.
16403
16404 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
16405
16406         PR target/44583
16407         * config/ia64/constraints.md (Z): New.
16408         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
16409         (xfreg_or_signed_fp01_operand): New.
16410         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
16411         with fr_reg_or_signed_fp01_operand and constraint G with Z.
16412         (subsf3): Ditto.
16413         (*maddsf4): Ditto.
16414         (*msubsf4): Ditto.
16415         (adddf3): Ditto.
16416         (adddf3_trunc): Ditto.
16417         (subdf3): Ditto.
16418         (*subdf3_trunc): Ditto.
16419         (*madddf4): Ditto.
16420         (*madddf4_trunc): Ditto.
16421         (*msubdf4): Ditto.
16422         (*msubdf4_trunc): Ditto.
16423         (addxf3): Replace xfreg_or_fp01_operand with
16424         xfreg_or_signed_fp01_operand and constraint G with Z.
16425         (*addxf3_truncsf): Ditto.
16426         (*addxf3_truncdf): Ditto.
16427         (subxf3): Ditto.
16428         (*subxf3_truncsf): Ditto.
16429         (*subxf3_truncdf): Ditto.
16430         (*maddxf4): Ditto.
16431         (*maddxf4_truncsf): Ditto.
16432         (*maddxf4_truncdf): Ditto.
16433         (*msubxf4): Ditto.
16434         (*msubxf4_truncsf): Ditto.
16435         (*msubxf4_truncdf): Ditto.
16436
16437 2010-08-04  Richard Guenther  <rguenther@suse.de>
16438
16439         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
16440         if either alias-set is zero.
16441
16442 2010-08-04  Richard Guenther  <rguenther@suse.de>
16443
16444         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
16445         * tree-ssa-ccp.c: ... here.
16446         * tree-ssa-copy.c: ... and here.
16447         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
16448         value_range_t): Move ...
16449         * tree-vrp.c: ... here.
16450         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
16451         (substitute_and_fold): Adjust prototype.
16452         * tree-ssa-propagate.c (replace_uses_in): Adjust.
16453         (replace_phi_args_in): Likewise.
16454         (substitute_and_fold): Take callback to query lattice instead
16455         of pointer to lattice.  Replace SSA name defs with lattice
16456         values first.
16457         * tree-ssa-ccp.c (ccp_finalize): Adjust.
16458         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
16459         (get_value): New function.
16460         (fini_copy_prop): Adjust.
16461         * tree-vrp.c (vrp_finalize): Adjust.
16462
16463 2010-08-04  Richard Guenther  <rguenther@suse.de>
16464
16465         PR middle-end/45176
16466         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
16467         points-to set for original MEM_REF.
16468
16469 2010-08-04  Richard Guenther  <rguenther@suse.de>
16470
16471         * tree-ssa-ccp.c (get_constant_value): New function.
16472         (get_rhs_assign_op_for_ccp): Remove.
16473         (valueize_op): New function.
16474         (ccp_fold): Use get_constant_value and valueize_op.
16475         (fold_const_aggregate_ref): Likewise.
16476         (ccp_fold_stmt): Likewise.
16477         (visit_assignment): Simplify.
16478
16479 2010-08-04  Richard Guenther  <rguenther@suse.de>
16480
16481         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
16482         * double-int.h (double_int_ctz): Declare.
16483         * double-int.c (double_int_ctz): New function.
16484
16485 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
16486
16487         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
16488         Define.
16489         picochip_expand_movmemhi : Expand movmem pattern.
16490         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
16491         Declare.
16492         * config/picochip/picochip.md (movmemhi) : New pattern.
16493
16494 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16495
16496         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
16497
16498 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
16499
16500         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
16501         NEG as operand of a MULT by merging it with the other operand.
16502         * combine.c (make_compound_operation): Use trunc_int_for_mode when
16503         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
16504         MULT.
16505         * config/arm/constraints.md (M): Examine only 32 bits of a
16506         HOST_WIDE_INT.
16507         * config/arm/predicates.md (power_of_two_operand): Likewise.
16508
16509 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16510
16511         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
16512         non-NOTE insns.
16513
16514 2010-08-03  Jan Hubicka  <jh@suse.cz>
16515
16516         * ipa-split.c (struct split_point): Add split_part_set_retval.
16517         (find_retval): Forward declare.
16518         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
16519         (consider_split): Compute current->split_part_set_retval.
16520         (visit_bb): Do not look into return value.
16521         (split_function): Handle !split_part_set_retval
16522
16523 2010-08-03  Martin Jambor  <mjambor@suse.cz>
16524
16525         * tree-sra.c (completely_scalarize_record): New parameter REF, create
16526         its own access->expr intead of using build_ref_for_offset.
16527
16528 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
16529
16530         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
16531         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
16532         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
16533         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
16534         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
16535         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
16536         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
16537         DEFAULT_SWITCH_TAKES_ARG.
16538         * config/rx/rx.opt (-patch=): Remove option.
16539         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
16540         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
16541         * doc/invoke.texi (RX Options): Remove -patch=.
16542         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
16543         (option_map): Remove --profile-blocks, --quiet and --silent.
16544
16545 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16546
16547         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
16548         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
16549         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
16550         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16551         Update calls to ix86_expand_compare and ix86_expand_branch.
16552         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
16553         ix86_expand_compare.
16554         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
16555         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16556         Make static.
16557         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
16558         and ix86_compare_op1.  Update calls to ix86_expand_compare.
16559         (ix86_expand_int_movcc): Ditto.
16560         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
16561         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
16562         (ix86_expand_setcc): Ditto.
16563         (ix86_expand_compare): Remove prototype.
16564         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
16565         ix86_compare_op0 and ix86_compare_op1.  Update calls
16566         to ix86_expand_branch to directly pass operands[1] and operands[2].
16567         (cbranchxf4): Ditto.
16568         (cbranch<MODEF:mode>4): Ditto.
16569         (cbranchcc4): Ditto.
16570         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
16571         Update calls to ix86_expand_setcc to directly pass operands[2] and
16572         operands[3].
16573         (cstorexf4): Ditto.
16574         (cstore<MODEF:mode>4): Ditto.
16575         (cstorecc4): Ditto.
16576
16577 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16578
16579         PR target/45063
16580         * caller-save.c (save_call_clobbered_regs): Remove regs from
16581         hard_regs_saved when they are set.
16582
16583 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
16584
16585         PR target/41089
16586         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
16587         as volatile.
16588
16589 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
16590
16591         * common.opt (ftree-loop-distribute-patterns): New.
16592         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
16593         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
16594         at -O3.
16595         * tree-data-ref.c (stores_zero_from_loop): New.
16596         * tree-data-ref.h (stores_zero_from_loop): Declared.
16597         * tree-loop-distribution.c (tree_loop_distribution): Call
16598         stores_zero_from_loop.
16599         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
16600
16601 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16602
16603         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
16604         into account.
16605
16606         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
16607         * config/arm/arm.c (thumb1_code): New variable.
16608         (arm_override_options): Set it.
16609         (thumb1_final_prescan_insn): Keep track of condition code status.
16610         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
16611         jumps that depend on them.
16612         * config/arm/arm.h (thumb1_code): Declare variable.
16613         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
16614         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
16615         thumb1_cc_mode.
16616         (CC_STATUS_INIT): New macro.
16617         * config/arm/constraints.md (Pd): New constraint.
16618         * config/arm/predicates.md (noov_comparison_operator): New predicate.
16619         * config/arm/arm.md (is_thumb1): New define_attr.
16620         (conds): Set default to "clob" when generating Thumb1 code.
16621         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
16622         code are set.  Use two-operand assembly syntax.
16623         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
16624         pattern.
16625         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
16626         codes are set.  Use two-operand assembly syntax.
16627         (zero_extendhisi splitter): Remove constraints.
16628         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
16629         thumb1_movsf_insn): Set conds attribute as appropriate.
16630         (cbranchsi4_insn): Use condition code status from struct
16631         machine_function to determine whether the comparison can be eliminated.
16632         Discourage the alternative using high registers.
16633         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
16634         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
16635         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
16636         subsi3_cbranch): Delete.
16637         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
16638         one subtract and one cbranch insn.
16639
16640         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
16641         thumb2_movdf_soft_insn): Delete patterns.
16642         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
16643         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
16644         (pool_range, neg_pool_range): Use them to define defaults.
16645         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
16646         and allow for TARGET_32BIT.
16647
16648         PR target/40457
16649         * config/arm/arm.h (arm_regs_in_sequence): Declare.
16650         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
16651         load_multiple_sequence, store_multiple_sequence): Delete
16652         declarations.
16653         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
16654         declarations.
16655         * config/arm/ldmstm.md: New file.
16656         * config/arm/arm.c (arm_regs_in_sequence): New array.
16657         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
16658         CHECK_REGS.  All callers changed.
16659         If SAVED_ORDER is nonnull, copy the computed order into it.
16660         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
16661         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
16662         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
16663         If SAVED_ORDER is nonnull, copy the computed order into it.
16664         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
16665         like REGS.  Handle Thumb mode.
16666         (arm_gen_load_multiple_1): New function, broken out of
16667         arm_gen_load_multiple.
16668         (arm_gen_store_multiple_1): New function, broken out of
16669         arm_gen_store_multiple.
16670         (arm_gen_multiple_op): New function, with code from
16671         arm_gen_load_multiple and arm_gen_store_multiple moved here.
16672         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
16673         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
16674         changed.
16675         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
16676         * config/arm/predicates.md (commutative_binary_operator): New.
16677         (load_multiple_operation, store_multiple_operation): Handle more
16678         variants of these patterns with different starting offsets.  Handle
16679         Thumb-1.
16680         * config/arm/arm.md: Include "ldmstm.md".
16681         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
16682         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
16683         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
16684         peepholes): Delete.
16685         * config/arm/ldmstm.md: New file.
16686         * config/arm/arm-ldmstm.ml: New file.
16687
16688         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
16689         if statement which adds extra costs to frame-related expressions.
16690
16691 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16692
16693         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
16694
16695 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
16696
16697         PR target/45142
16698         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
16699         alternative 2.
16700         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
16701         split V4SI operands.
16702
16703 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
16704
16705         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16706         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
16707         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
16708         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
16709
16710 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
16711
16712         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
16713         LOCAL_INCLUDE_DIR.
16714
16715 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
16716
16717         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
16718         used in the call to optab_for_tree_code.  Fix the second
16719         is_widening_mult_p call.  Check that both unwidened operands
16720         have the same sign.
16721
16722 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
16723
16724         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
16725
16726 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
16727
16728         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16729
16730 2010-07-30  DJ Delorie  <dj@redhat.com>
16731
16732         * config/rx/predicates.md (rx_constshift_operand): New.
16733         * config/rx/rx.md (zs_cond): New.
16734         (cbranchsi4): Remove mode.
16735         (*cbranchsi4_<code>): Likewise.
16736         (*tstbranchsi4_<code>): New.
16737         (*tstbranchsi4r_<code>): New.
16738         (*tstbranchsi4m_eq): New.
16739         (*tstbranchsi4m_ne): New.
16740         (cbranchsf4): Remove mode.
16741         (*cbranchsf4_<code>): Likewise.
16742
16743 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
16744
16745         * rtlanal.c (simplify_subreg_regno): Don't treat
16746         HARD_FRAME_POINTER_REGNUM specially.
16747
16748 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
16749
16750         * common.opt (-G): Don't define option here.
16751         * config/g.opt: New.
16752         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
16753         rs6000/powerpc and score targets.
16754         * opts.c (common_handle_option): Don't handle -G here.
16755         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
16756         * config/frv/frv.c (frv_handle_option): Handle -G.
16757         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
16758         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
16759         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
16760         * config/mips/mips.c (mips_handle_option): Handle -G.
16761         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
16762         * config/score/score.c (score_handle_option): Handle -G.
16763
16764 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
16765
16766         * config/mmix/mmix.c: Include basic-block.h.
16767
16768 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
16769
16770         PR debug/45055
16771         PR rtl-optimization/45137
16772         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
16773         prototypes.
16774         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
16775         New functions.
16776         * combine.c (next_nonnote_nondebug_insn): Removed.
16777         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
16778         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
16779         * sched-deps.c (sched_analyze_insn): Likewise.
16780         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
16781         * rtlanal.c (canonicalize_condition): Likewise.
16782         * postreload.c (reload_combine_recognize_pattern): Likewise.
16783         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
16784
16785 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
16786
16787         * config/i386/i386.md (int_cond): Remove code iterator.
16788         (fp_cond): Ditto.
16789         (cbranch<mode>4): Use ordered_comparison_operator predicate
16790         for operator0.
16791         (cstore<mode>4): Ditto for operator1.
16792         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
16793         (add<mode>cc): ditto.
16794
16795 2010-07-30  Richard Guenther  <rguenther@suse.de>
16796
16797         PR middle-end/45141
16798         * expr.c (expand_expr_real_1): Check for not handled base address.
16799
16800 2010-07-30  Richard Guenther  <rguenther@suse.de>
16801
16802         * ipa-prop.c (ipa_modify_formal_parameters): Use
16803         build_distinct_type_copy.
16804
16805 2010-07-30  Anthony Green  <green@moxielogic.com>
16806
16807         * config/moxie/rtems.h: New file.
16808         * config.gcc: Add moxie-rtems support.
16809
16810 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16811
16812         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
16813         df flags as in run_fast_df_dce.
16814
16815 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16816
16817         Revert:
16818         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16819
16820         * rtl.def (NOTE): Swap operands 4 and 5.
16821         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
16822         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
16823         Adjust accordingly.
16824         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
16825
16826 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16827
16828         PR debug/45110
16829         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
16830         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
16831         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
16832         formal parameters.
16833         (gen_decl_die): Change return type to dw_die_ref, return what
16834         gen_formal_parameter_die returned.
16835
16836 2010-07-29  Martin Jambor  <mjambor@suse.cz>
16837
16838         * dbgcnt.def (eipa_sra): New counter.
16839         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
16840
16841 2010-07-29  Xinliang David Li  <davidxl@google.com>
16842
16843         PR bootstrap/45119
16844         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
16845         in revision 162652.
16846
16847 2010-07-29  Richard Guenther  <rguenther@suse.de>
16848
16849         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
16850         (TV_TREE_STORE_CCP): Likewise.
16851         (TV_TREE_REDPHI): Likewise.
16852
16853 2010-07-29  Richard Guenther  <rguenther@suse.de>
16854
16855         * double-int.h (double_int_and_not): New function.
16856         * combine.c (try_combine): Use it.
16857         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
16858
16859 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16860
16861         PR rtl-optimization/42575
16862         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
16863         Argument AU removed.  All callers changed.  Ignore artificial refs.
16864         Use return value of df_word_lr_simulate_defs to decide whether an insn
16865         is necessary.
16866         (fast_dce): Rename arg to WORD_LEVEL.
16867         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
16868         static.
16869         (pass_fast_rtl_byte_dce): Delete.
16870         * dce.h (run_word_dce): Declare.
16871         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
16872         All callers changed.  Simplify code to only deal with two-word regs.
16873         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
16874         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
16875         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
16876         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
16877         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
16878         (df_word_lr_mark_ref): Declare.
16879         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
16880         df_word_lr_simulate_uses): Declare or rename from byte variants.
16881         (df_byte_lr_simulate_artificial_refs_at_top,
16882         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16883         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
16884         declarations.
16885         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
16886         (enum df_mm): Delete.
16887         * df-byte-scan.c: Delete file.
16888         * df-problems.c (df_word_lr_problem_data): Renamed from
16889         df_byte_lr_problem_data, all members deleted except for
16890         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
16891         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
16892         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16893         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
16894         df_byte_lr_confluence_0): Delete functions.
16895         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
16896         callers changed.
16897         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
16898         Don't initialize members that were deleted, don't try to discover data
16899         about registers.  Ignore hard regs.
16900         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
16901         (df_word_lr_mark_ref): New function.
16902         (df_word_lr_bb_local_compute): Renamed from
16903         df_byte_bb_lr_local_compute; all callers changed.  Use
16904         df_word_lr_mark_ref.  Assert that artificial refs don't include
16905         pseudos.  Ignore hard registers.
16906         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
16907         Assert that exit block uses don't contain pseudos.
16908         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
16909         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
16910         callers changed.  Ignore hard regs.
16911         (df_word_lr_transfer_function): Renamed from
16912         df_byte_lr_transfer_function; all callers changed.
16913         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
16914         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
16915         changed.
16916         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
16917         callers changed.
16918         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
16919         confluence operator 0 set to NULL.
16920         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
16921         callers changed.
16922         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
16923         Return bool, true if bitmap changed or insn otherwise necessary.
16924         All callers changed.  Simplify using df_word_lr_mark_ref.
16925         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
16926         all callers changed.  Simplify using df_word_lr_mark_ref.
16927         * lower-subreg.c: Include "dce.h"
16928         (decompose_multiword_subregs): Call run_word_dce if df available.
16929         * Makefile.in (lower-subreg.o): Adjust dependencies.
16930         (df-byte-scan.o): Delete.
16931         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
16932
16933 2010-07-29  Richard Guenther  <rguenther@suse.de>
16934
16935         * tree.c (build_vector): Assert that the vector constant
16936         has enough elements.
16937         (build_vector_from_ctor): Pad with trailing zeros.
16938
16939 2010-07-29  Richard Guenther  <rguenther@suse.de>
16940
16941         PR tree-optimization/45120
16942         * tree-ssa-structalias.c (get_constraint_for_component_ref):
16943         Handle offset in DEREFs properly.
16944         (get_constraint_for_1): Handle MEM_REF offset properly.
16945
16946 2010-07-29  Richard Guenther  <rguenther@suse.de>
16947
16948         PR middle-end/45034
16949         * convert.c (convert_to_integer): Always use an unsigned
16950         type for narrowed negate and bitwise not.
16951
16952 2010-07-29  Ira Rosen  <irar@il.ibm.com>
16953
16954         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
16955         to outer loop when creating reduction epilogue for double reduction,
16956         and switch back to the inner loop when updating the phi nodes.
16957         Update uses of outer loop exit phi nodes in double reduction (instead
16958         of uses of reduction).
16959
16960 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
16961
16962         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
16963         popcount on power7 and parity on power6 systems.
16964         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
16965         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
16966         instructions.
16967
16968         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
16969         (UNSPEC_PARITY): Ditto.
16970         (SFDF): New iterator for SF/DF.
16971         (rreg2): New mode attribute for floating register constraint.
16972         (TARGET_FLOAT): New mode attribute for whether single/double float
16973         is supported.
16974         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
16975         pattern.
16976         (parity<mode>2_cmpb): New insn for parity on power6 and newer
16977         machines.
16978         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
16979         pattern.  Add support for fcpsgn instruction added in power6.
16980         (copysignsf3): Delete.
16981         (copysigndf3): Delete.
16982         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
16983         instead of if_then_else in RTL to avoid problems with -0.
16984
16985         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
16986         of if_then_else to mirror scalar code.
16987         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
16988         rs6000.md.
16989
16990         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
16991         instead of if_then_else.
16992
16993 2010-07-28  Xinliang David Li  <davidxl@google.com>
16994
16995         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
16996         (dump_cand): Dump var_before/after.
16997         (htab_inv_expr_eq): New function.
16998         (htab_inv_expr_hash): New function.
16999         (tree_ssa_iv_optimize_init): Support pseudo invariants.
17000         (add_candidate_1): consider base type precision.
17001         (set_use_iv_cost): New parameter.
17002         (adjust_setup_cost): Use profile information.
17003         (get_address_cost): Do not hard code width in computing address
17004         offset limits.
17005         (compare_aff_trees): New function.
17006         (get_loop_invariant_expr_id): New function.
17007         (get_computation_cost_at): New parameter and use profile information.
17008         (get_computation_cost): New parameter.
17009         (determine_use_iv_cost_generic): Pass new parameter.
17010         (determine_use_iv_cost_address): Ditto.
17011         (determine_use_iv_cost_condition): Ditto.
17012         (autoinc_possible_for_pair): Ditto.
17013         (determine_use_iv_costs): More dumps.
17014         (iv_ca_get_num_inv_exprs): New function.
17015         (iv_ca_recount_cost): Consider loop invariants in register pressure
17016         cost.
17017         (iv_ca_add_use): New parameter.
17018         (iv_ca_dump): Better dumping.
17019         (iv_ca_extend): New parameter.
17020         (try_add_cand_for): Attempt to get better partial solution.
17021         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
17022         (create_new-ivs): More dumps.
17023         (rewrite_use_compare): Ditto.
17024         (free_loop_data): More cleanup.
17025         (treee_ssa_iv_optimize_finalize): Ditto.
17026
17027 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
17028
17029         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
17030         * config/i386/i386.c (ix86_profile_before_prologue): New.
17031         (override_options): Add special handling for -mfentry.
17032         (ix86_function_regparm): Likewise.
17033         (ix86_function_sseregparm): Likewise.
17034         (ix86_frame_pointer_required): Likewise.
17035         (ix86_expand_prologue): Check for ms_hook_prologue.
17036         (x86_function_profiler): Adjust mcount output.
17037         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
17038         * config/i386/i386.opt (mfentry): New.
17039         * doc/invoke.texi (mfentry): Add documentation.
17040         * doc/tm.texi: Regenerated..
17041         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
17042         * final.c (final_start_function): Replace macro
17043         PROFILE_BEFORE_PROLOGUE by target hook.
17044         * function.c (thread_prologue_and_epilogue_insns): Likewise.
17045         * target.def (profile_before_prologue): New hook.
17046         * targhooks.c (default_profile_before_prologue): New.
17047         * targhooks.h (default_profile_before_prologue): New.
17048
17049 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
17050
17051         PR debug/45105
17052         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
17053
17054         PR debug/45103
17055         * dwarf2out.c (dwarf2out_var_location): Always consider
17056         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
17057
17058 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17059
17060         PR rtl-optimization/45107
17061         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
17062
17063 2010-07-28  Richard Guenther  <rguenther@suse.de>
17064
17065         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
17066         (set_lattice_value): Do not query an old default value.
17067         (get_value_for_expr): New function.  Properly canonicalize
17068         float values.
17069         (ccp_visit_phi_node): Use it.
17070
17071 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
17072
17073         * config/arm/arm.c (arm_pcs_default): Remove static.
17074         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
17075         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
17076         (arm_pcs_default): Declare.
17077
17078 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
17079
17080         * config/rs6000/rs6000.c (rs6000_override_options):
17081         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
17082         ... to darwin_rs6000_override_options.
17083         (rs6000_return_in_memory): Update preceding comment for darwin
17084         64 bit ABI.  Use TARGET_MACHO inline.
17085         (rs6000_darwin64_struct_check_p): New.
17086         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
17087         (function_arg): Likewise.
17088         (rs6000_arg_partial_bytes): Likewise.
17089         (rs6000_function_value): Likewise.
17090
17091 2010-07-28  Andi Kleen  <ak@linux.intel.com>
17092
17093         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
17094
17095 2010-07-28  Richard Guenther  <rguenther@suse.de>
17096
17097         PR middle-end/44903
17098         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
17099         targets try harder to not generate unaligned accesses.
17100
17101 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17102
17103         PR rtl-optimization/45101
17104         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
17105         for gcse-las.
17106
17107 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17108
17109         PR tree-optimization/44885
17110         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
17111         with non-aliased component.
17112
17113 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
17114
17115         * config/darwin-driver.c (SWITCH_TAKES_ARG,
17116         WORD_SWITCH_TAKES_ARG): Remove.
17117         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
17118         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
17119         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
17120         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
17121         definitions from gcc.c.
17122         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
17123         defaults.h.
17124         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
17125         Move to defaults.h.
17126         * opts-common.c: Include tm.h.
17127         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
17128         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
17129         Handle more than one argument.  Set canonical_option_num_elements.
17130         (decode_cmdline_options_to_array): Set
17131         canonical_option_num_elements and trailing elements of
17132         canonical_option.
17133         * opts.h (struct cl_decoded_option): Allow four elements in
17134         canonical_option.  Add field canonical_option_num_elements.
17135         * Makefile.in (opts-common.o): Update dependencies.
17136
17137 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17138
17139         PR middle-end/44790
17140         PR middle-end/44993
17141         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
17142         sure the base has address_mode before adding the offset.
17143
17144 2010-07-27  Xinliang David Li  <davidxl@google.com>
17145
17146         * tree-flow.h (create_mem_ref): Add one new parameter.
17147         * tree-ssa-address.c (create_mem_ref): New parameter.
17148         (addr_to_parts): Ditto.
17149         (move_variant_to_index): New function.
17150         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
17151
17152 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17153
17154         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
17155         4 and 5.
17156         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
17157         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
17158         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
17159         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
17160         CODE_LABELs and NOTEs.
17161         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
17162         * combine.c (try_combine): Likewise.
17163         * ira.c (setup_prohibited_mode_move_regs): Likewise.
17164         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
17165
17166 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17167
17168         * coretypes.h (struct cl_option_handlers): Declare.
17169         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
17170         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
17171         * langhooks-def.h (lhd_handle_option): Declare.
17172         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
17173         * langhooks.c (lhd_handle_option): New.
17174         * langhooks.h (struct lang_hooks): Update prototype and return
17175         value type of handle_option hook.
17176         * optc-gen.awk: Generate target_flags_explicit definition for the
17177         driver.
17178         * opts-common.c: Include diagnostic.h.
17179         (handle_option): Move from opts.c.  Update prototype and return
17180         value type.  Use handlers structure.
17181         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
17182         handlers structure.
17183         (set_option): Move from opts.c.
17184         * opts.c (common_handle_option): Update prototype and return value
17185         type.  Update calls to handle_option and enable_warning_as_error.
17186         (unknown_option_callback, post_handling_callback,
17187         lang_handle_option, target_handle_option): New.
17188         (handle_option, read_cmdline_option): Move to opts-common.c.
17189         (read_cmdline_options): Update prototype.  Update call to
17190         read_cmdline_option.
17191         (decode_options): Initialize and use handlers structure.
17192         (set_option): Move to opts-common.c.
17193         (enable_warning_as_error): Update prototype.  Update call to
17194         handle_option.
17195         * opts.h (struct cl_option_handler_func, struct
17196         cl_option_handlers): New.
17197         (handle_option, enable_warning_as_error): Update prototypes.
17198         (read_cmdline_option): Declare.
17199         * Makefile.in (opts-common.o): Update dependencies.
17200
17201 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17202
17203         * config/arm/arm.c (params.h): Include.
17204         (arm_override_options): Tune gcse-unrestricted-cost.
17205         * config/arm/t-arm (arm.o): Define dependencies.
17206
17207 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17208
17209         PR target/42495
17210         PR middle-end/42574
17211         * basic-block.h (get_dominated_to_depth): Declare.
17212         * dominance.c (get_dominated_to_depth): New function, use
17213         get_all_dominated_blocks as a base.
17214         (get_all_dominated_blocks): Use get_dominated_to_depth.
17215
17216         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
17217         (hoist_exprs): Remove.
17218         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
17219         (compute_code_hoist_vbeinout): Add debug print outs.
17220         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
17221
17222         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
17223         quadratic behavior.
17224         * params.h (MAX_HOIST_DEPTH): New macro.
17225         * doc/invoke.texi (max-hoist-depth): Document.
17226
17227 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17228
17229         PR rtl-optimization/40956
17230         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
17231         constants.
17232
17233 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17234
17235         PR target/42495
17236         PR middle-end/42574
17237         * config/arm/arm.c (legitimize_pic_address): Use
17238         gen_calculate_pic_address pattern to emit calculation of PIC address.
17239         (will_be_in_index_register): New function.
17240         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
17241         (thumb1_legitimate_address_p): Use it provided !strict_p.
17242         * config/arm/arm.md (calculate_pic_address): New expand and split.
17243
17244 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17245
17246         PR target/42495
17247         PR middle-end/42574
17248         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
17249         * config/arm/arm.md (define_split "J", define_split "K"): Make
17250         IRA/reload friendly.
17251
17252 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17253
17254         * gcse.c (insert_insn_end_basic_block): Update signature, remove
17255         unused checks.
17256         (pre_edge_insert, hoist_code): Update.
17257
17258 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17259
17260         PR target/42495
17261         PR middle-end/42574
17262         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
17263
17264 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17265
17266         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
17267
17268 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17269
17270         PR rtl-optimization/40956
17271         PR target/42495
17272         PR middle-end/42574
17273         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
17274         for hoisting.
17275         (hoist_code): Count occurences in current block too.
17276
17277 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17278
17279         * gcse.c (struct expr:max_distance): New field.
17280         (doing_code_hoisting_p): New static variable.
17281         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
17282         simple expressions, don't change behavior for PRE.  Set max_distance.
17283         (insert_expr_in_table): Set new max_distance field.
17284         (hash_scan_set): Update.
17285         (hoist_expr_reaches_here_p): Stop search after max_distance
17286         instructions.
17287         (find_occr_in_bb): New static function.  Use it in ...
17288         (hoist_code): Calculate sizes of basic block before any changes are
17289         done.  Pass max_distance to hoist_expr_reaches_here_p.
17290         (one_code_hoisting_pass): Set doing_code_hoisting_p.
17291
17292         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
17293         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
17294         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
17295         macros.
17296         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
17297         Document.
17298
17299 2010-07-27  Jeff Law  <law@redhat.com>
17300             Maxim Kuvyrkov  <maxim@codesourcery.com>
17301
17302         * gcse.c (compute_transpout, transpout): Remove, move logic
17303         to prune_expressions.
17304         (compute_pre_data): Move pruning of trapping expressions ...
17305         (prune_expressions): ... here.  New static function.
17306         (compute_code_hoist_data): Use it.
17307         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
17308
17309 2010-07-27  Xinliang David Li  <davidxl@google.com>
17310
17311         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
17312         (rewrite_use_address): Adjust iv update position when needed.
17313
17314 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17315
17316         * dbgcnt.def (hoist_insn): New debug counter.
17317         * gcse.c (hoist_code): Use it.
17318
17319 2010-07-27  Xinliang David Li  <davidxl@google.com>
17320
17321         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
17322         (niter_for_single_dom_exit): Passes additional parameter.
17323         (iv_period): Fix comments.
17324         (may_eliminate_iv): Handles multiple exit loops properly.
17325         (free_tree_niter_desc): New function.
17326         (free_loop_data): Frees up loop iteration descriptors.
17327
17328 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17329
17330         PR target/44542
17331         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
17332         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
17333         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
17334         (expand_one_var): Don't consider DECL_ALIGN for variables for
17335         which expand_one_stack_var_at has been already called.
17336
17337         PR testsuite/44701
17338         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
17339         constraints on IA-64.
17340
17341 2010-07-27  Jie Zhang  <jie@codesourcery.com>
17342
17343         PR target/44290
17344         Revert:
17345         2010-07-23  Jie Zhang  <jie@codesourcery.com>
17346
17347         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17348         false if ! tree_versionable_function_p.
17349
17350 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17351
17352         * dwarf2out.c (add_data_member_location_attribute): Use
17353         add_AT_unsigned instead of add_AT_int if offset is non-negative.
17354
17355 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17356
17357         * postreload.c (try_replace_in_use): New static function.
17358         (reload_combine_recognize_const_pattern): Use it here.  Allow
17359         substituting into a final add insn, and substituting into a memory
17360         reference in an insn that sets the reg.
17361
17362 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17363
17364         * common.opt (o): Add MissingArgError.
17365         * doc/options.texi (MissingArgError): Document.
17366         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
17367         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
17368         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
17369         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
17370         * langhooks.h (struct lang_hooks): Remove missing_argument.
17371         * optc-gen.awk: Handle MissingArgError and output new structure
17372         field initializers.
17373         * opts.c (read_cmdline_option): Use missing_argument_error field
17374         instead of missing_argument langhook.
17375         * opts.h (struct cl_option): Add missing_argument_error field.
17376         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
17377
17378 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17379
17380         PR target/29090
17381         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
17382         Darwin64 ABI, for zero-sized objects.
17383
17384 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17385
17386         PR target/35491
17387         PR target/29090
17388
17389         Merge from Apple local 4.2.1.
17390         2005-05-11  Stan Shebs  <shebs@apple.com>
17391         Fix 64-bit varargs for Darwin (Radar 4028089).
17392         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
17393         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
17394         Add argument, add case for 8-byte register half-filled with a float.
17395         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
17396         single-precision floats specially.
17397
17398 2010-07-27  Ira Rosen  <irar@il.ibm.com>
17399
17400         PR tree-optimization/44152
17401         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
17402         complex numbers for further check.
17403         (vect_supported_load_permutation_p): Check nodes with
17404         complex numbers.
17405
17406 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17407
17408         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
17409         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
17410         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
17411         (LANG_HOOKS_INITIALIZER): Add new hooks.
17412         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
17413         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
17414         and complain_wrong_lang_p.  Update init_options prototype.
17415         * c-objc-common.c (c_initialize_diagnostics): First call
17416         c_common_initialize_diagnostics.
17417         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
17418         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
17419         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
17420         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
17421         (hook_uint_void_0): New.
17422         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
17423         (hook_uint_void_0): New.
17424         * opts-common.c (decode_cmdline_option,
17425         decode_cmdline_options_to_array): Also fill in canonical_option field.
17426         * opts.c (complain_wrong_lang): Use langhook to determine whether
17427         to complain instead of special-casing LTO.
17428         (decode_options): Separate lang_mask determination with
17429         option_lang_mask hook from call of init_options hook.
17430         * opts.h (struct cl_decoded_option): Add canonical_option.
17431
17432 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17433
17434         PR tree-optimization/45083
17435         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
17436
17437 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17438
17439         * postreload.c (reload_combine_recognize_const_pattern): Move test
17440         for limiting the insn movement to the right scope.
17441
17442         PR rtl-optimization/45051
17443         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
17444         than reg_mentioned_p.
17445
17446 2010-07-26  Richard Henderson  <rth@redhat.com>
17447
17448         PR target/44132
17449         * tree-emutls.c: New file.
17450         * Makefile.in (OBJS-common): Add it.
17451         * tree-pass.h (pass_ipa_lower_emutls): Declare.
17452         * passes.c (init_optimization_passes): Add it.
17453
17454         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
17455         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
17456         * expr.c (emutls_var_address): Delete.
17457         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
17458         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
17459         (emutls_finish): Delete.
17460         * toplev.c (compile_file): Don't call it.
17461         * tree.h (emutls_decl): Delete.
17462         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
17463         (emutls_finish, emutls_finalize_control_var): Delete.
17464         (emutls_object_type): Move to tree-emutls.c.
17465         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
17466         default_emutls_var_fields, get_emutls_object_type,
17467         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
17468         default_emutls_var_init): Likewise.
17469         (get_variable_section): Don't special case emutls.
17470         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
17471         default_elf_select_section, default_unique_section,
17472         default_encode_section_info): Likewise.
17473         * varpool.c (decide_is_variable_needed): Likewise.
17474         * gimple-iterator.c (update_call_edge_frequencies): New
17475         (gsi_insert_on_edge_immediate): Use it.
17476         (gsi_insert_seq_on_edge_immediate): Likewise.
17477         (gsi_commit_one_edge_insert): Likewise.
17478
17479         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
17480         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
17481         (x86_64_elf_unique_section): Likewise.
17482
17483 2010-07-26  Jan Hubicka  <jh@suse.cz>
17484
17485         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
17486         GTY((skip)).
17487
17488 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
17489
17490         * target.def (output_source_filename): New hook.
17491         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
17492         * doc/tm.texi: Regenerate.
17493         * toplev.c (output_file_directive) Remove function.
17494         * toplev.h (output_file_directive) Remove.
17495         * output.h (default_asm_output_source_filename,
17496         output_file_directive): Declare.
17497         * varasm.h (default_asm_output_source_filename,
17498         output_file_directive): New functions.
17499
17500         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17501         * config/mips/mips-protos.h (mips_output_filename): Remove.
17502         * config/mips/mips.c (mips_output_filename): Make Static.
17503         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
17504
17505 2010-07-26  Richard Guenther  <rguenther@suse.de>
17506
17507         PR tree-optimization/43784
17508         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
17509         if the destination is used by the call.
17510
17511 2010-07-26  Richard Guenther  <rguenther@suse.de>
17512
17513         PR middle-end/45073
17514         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
17515         SSA updating on being in SSA form.
17516
17517 2010-07-26  Richard Guenther  <rguenther@suse.de>
17518
17519         PR middle-end/45056
17520         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
17521
17522 2010-07-26  Richard Guenther  <rguenther@suse.de>
17523
17524         PR tree-optimization/45071
17525         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
17526         adjust op->opcode.
17527
17528 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
17529
17530         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
17531         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
17532         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
17533         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
17534         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
17535         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
17536         save_r31, return_r31, save_interrupt, return_interrupt,
17537         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
17538         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
17539         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
17540         new ABI requirements.
17541         (save_r6_r9, L_callt_save_r6_r9): Remove.
17542         * config/v850/predicates.md (even_reg_operand, disp23_operand,
17543         const_float_1_operand const_float_0_operand): New Predicates.
17544         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
17545         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
17546         * config/v850/t-v850: Update multilibs for new target variants.
17547         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
17548         * config/v850/t-v850e: Likewise.
17549         * config/v850/v850.c (v850_issue_rate): New.
17550         (v850_strict_argument_naming): New.
17551         (function_arg): Modify to generate a different ABI.
17552         (print_operand): Update case 'z' to support float modes.
17553         (output_move_single): Modify to generate appropriate and better
17554         assembly.
17555         (v850_float_z_comparison_operator, v850_select_cc_mode,
17556         v850_float_nz_comparison_operator,  v850_gen_float_compare,
17557         v850_gen_compare): New functions to support comparison of float values.
17558         (ep_memory_offset): Add support for V850E2 targets.
17559         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
17560         (INTERRUPT_REGPARM_NUM): Remove.
17561         (compute_register_save_size): Add extra case to save/restore long call.
17562         (use_prolog_function): New function to support prologue.
17563         (expand_prologue): Add support for V850E2 targets and modified
17564         as per the current ABI requirements.
17565         (expand_epilogue): Likewise.
17566         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
17567         (construct_save_jarl): Likewise.
17568         (construct_dispose_instruction): Update as per the current ABI
17569         requirements.
17570         (construct_prepare_instruction): Likewise.
17571         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
17572         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
17573         (CPP_SPEC): Updated to support v850e2 targets.
17574         (STRICT_ALIGNMENT): Modified.
17575         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
17576         (FIXED_REGISTERS): Likewise.
17577         (CALL_USED_REGISTERS): Likewise.
17578         (CONDITIONAL_REGISTER_USAGE): Updated.
17579         (HARD_REGNO_MODE_OK): Updated.
17580         (reg_class): Updated to add even registers.
17581         (REG_CLASS_NAMES): Likewise.
17582         (REG_CLASS_CONTENTS): Likewise.
17583         (REGNO_REG_CLASS): Updated for CC registers.
17584         (REG_CLASS_FROM_LETTER): Added support for even registers.
17585         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
17586         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
17587         ARG_POINTER_REGNUM): Updated.
17588         (FUNCTION_ARG_ADVANCE): Define.
17589         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
17590         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
17591         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
17592         (GO_IF_LEGITIMATE_ADDRESS): Updated.
17593         (SELECT_CC_MODE): Define.
17594         (REGISTER_NAMES): Updated to add psw and fcc registers.
17595         (ADDITIONAL_REGISTER_NAMES): Updated.
17596         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
17597         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
17598         * config/v850/v850.md (define_constants): Define new constants.
17599         (type): Update store,bit1,macc,div,fpu and single attributes.
17600         (cpu): New attribute.
17601         (cc): Add set_z attribute.
17602         (unsign23byte_load, sign23byte_load, unsign23hword_load,
17603         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
17604         23word_store): New instructions for 23-bit displacement load and store.
17605         (movqi_internal, movhi_internal): Update the attributes.
17606         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
17607         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
17608         the attributes.
17609         (v850_tst1): Modified using CC_REGNUM.
17610         (tstsi): Remove.
17611         (cmpsi): Modified as define_expand from define_insn.
17612         (cmpsi_insn, cmpsf, cmpdf): New instructions.
17613         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
17614         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
17615         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
17616         one_cmplsi2): Clobber the CC_REGNUM register.
17617         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
17618         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
17619         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
17620         (setf_insn, set_z_insn, set_nz_insn): New instructions for
17621         v850e2v3 target.
17622         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
17623         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
17624         targets.
17625         (sasf_1, sasf_2): Remove.
17626         (sasf): New instruction.
17627         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
17628         targets. CC_REGNUM register is clobbered and attributes are
17629         updated.
17630         (branch_z_normal, branch_z_invert, branch_nz_normal,
17631         branch_nz_invert): New branch related instructions.
17632         (jump): Updated the attributes.
17633         (switch): Update to support new targets. CC_REGNUM register is
17634         clobbered and attributes are updated.
17635         (call_internal_short, call_internal_long, call_value_internal_short,
17636         call_value_internal_long): Updated the attributes.
17637         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
17638         clobbered and attributes are updated.
17639         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
17640         Update to support new targets. CC_REGNUM register is clobbered.
17641         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
17642         instructions.
17643         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
17644         are updated.
17645         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
17646         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
17647         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
17648         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
17649         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
17650         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
17651         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
17652         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
17653         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
17654         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
17655         point instructions defined for V850e2v3 target.
17656         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
17657         Add support for V850E2 targets and CC_REGNUM register is clobbered.
17658         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
17659         support for new targets.
17660         * config/v850/v850-modes.def: New file.
17661         * config/v850/v850.opt(mstrict-align): Remove.
17662         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
17663         mv850e2v3): New command line options for V850.
17664         * config.gcc: Update the newly added files.
17665         * doc/invoke.texi: Update the newly added command line options for
17666         V850 target.
17667
17668 2010-07-26  Richard Guenther  <rguenther@suse.de>
17669
17670         PR tree-optimization/45052
17671         * ipa-pure-const.c (check_stmt): Check volatileness.
17672
17673 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17674
17675         PR target/44707
17676         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
17677         * config/sparc/sparc.c: Include reload.h.
17678         (legitimize_tls_address): Rename into...
17679         (sparc_legitimize_tls_address): ...this.
17680         (legitimize_pic_address): Rename into...
17681         (sparc_legitimize_pic_address): ...this.
17682         (sparc_expand_move): Adjust to above renaming.
17683         (sparc_tls_referenced_p): Likewise.
17684         (sparc_legitimize_tls_address): Likewise.
17685         (sparc_legitimize_pic_address): Likewise.
17686         (sparc_legitimize_address): Likewise.
17687         (sparc_output_mi_thunk): Likewise.
17688         (sparc_legitimize_reload_address): New global function.  Recognize
17689         (lo_sum (high ...) ...) patterns generated by earlier passes.
17690         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
17691
17692 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17693
17694         PR target/44484
17695         * config/sparc/predicates.md (memory_reg_operand): Delete.
17696         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
17697         (*sync_compare_and_swap): Encode the address form in the pattern.
17698         (*sync_compare_and_swapdi_v8plus): Likewise.
17699
17700 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
17701
17702         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
17703         Streamline paragraph on compatibility with the system compiler.
17704
17705 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
17706
17707         PR middle-end/45035
17708         * alias.c (true_dependence_1): Fix thinko in merge of old
17709         true_dependence and canon_true_dependence.
17710
17711 2010-07-23  Jan Hubicka  <jh@suse.cz>
17712
17713         * lto-streamer-out.c (write_symbol): Fix visibilities of external
17714         references.
17715
17716 2010-07-23  Le-Chun Wu  <lcwu@google.com>
17717
17718         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
17719         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
17720         and an unnecessary assignment.
17721         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
17722         self-assign warning.
17723         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
17724         unnecessary self-init.
17725
17726 2010-07-23  Richard Guenther  <rguenther@suse.de>
17727
17728         PR lto/43071
17729         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
17730         for -flto and -fwhopr.
17731
17732 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
17733
17734         PR target/41943
17735         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
17736         (stmp-int-hdrs): Prefix/postfix headers by include_next.
17737         * config.gcc (user_headers_inc_next_pre): New.
17738         (user_headers_inc_next_post): Likewise.
17739         (*-w64-mingw*): Use for float.h post-fixing, and for
17740         stddef.h/stdarg.h pre-fixing by include_next.
17741         * configure.ac (user_headers_inc_next_post): New.
17742         (user_headers_inc_next_pre): New.
17743         * configure: Regenerated.
17744
17745 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17746
17747         * configure.ac: Don't disable TLS on Solaris 8/9 by default
17748         Set tga_func for Solaris 2/x86 resp. SPARC.
17749         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
17750         (LIB_THREAD_LDFLAGS_SPEC): Define.
17751         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
17752         * configure: Regenerate.
17753         * config.in: Regenerate.
17754         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
17755         -pthread, -threads, LIB_TLS_SPEC with -pthread.
17756         * doc/install.texi (Specific, *-*-solaris2*): Document use of
17757         alternate thread libraries on Solaris 8.
17758         Document TLS patch requirements.
17759         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
17760         Document tls.
17761
17762         PR target/18788
17763         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
17764         -shared.
17765
17766 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
17767
17768         * tree.h (struct tree_base): Add nameless_flag bitfield.
17769         (TYPE_NAMELESS, DECL_NAMELESS): Define.
17770         * omp-low.c (create_omp_child_function, scan_omp_parallel,
17771         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
17772         DECL_ARTIFICIAL where needed.
17773         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
17774         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
17775         has DECL_NAMELESS set.
17776
17777 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17778
17779         PR tree-optimization/44915
17780         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
17781         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
17782         (analyze_function): Likewise.
17783
17784 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17785
17786         PR tree-optimization/44914
17787         * tree-sra.c (sra_modify_function_body): Return true if CFG was
17788         changed, add purging dead eh edges.
17789         (ipa_sra_modify_function_body): Return true if CFG was changed,
17790         simplify purging dead eh edges.
17791         (modify_function): Return true if CFG was changed.
17792         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
17793         was changed.
17794         (ipa_early_sra): Likewise.
17795
17796 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17797
17798         PR target/44290
17799         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
17800         if "naked".
17801         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17802         false if ! tree_versionable_function_p.
17803
17804 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
17805
17806         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
17807         * ipa-pure-const.c (special_builtlin_state): Remove
17808         BUILT_IN_ARGS_INFO case.
17809         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
17810         * builtins.c (expand_builtin): Likewise.
17811         (expand_builtin_args_info): Remove.
17812         * doc/tm.texi (__builtin_args_info): Remove.
17813         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
17814         * doc/tm.text.in: Likewise.
17815
17816 2010-07-23  Richard Guenther  <rguenther@suse.de>
17817
17818         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
17819         (lto_symtab_merge_decls_2): Likewise.
17820         * tree-ssa.c (useless_type_conversion_p): Likewise.
17821         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17822         * gimple.c (gtc_visited2, gtc_ob2): Remove.
17823         (struct type_pair_d): Make same_p an array indexed by mode.
17824         Update comment.
17825         (lookup_type_pair): Update initialization.
17826         (struct sccs): Adjust same_p type.
17827         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
17828         Adjust.
17829         (print_gimple_types_stats): Likewise.
17830         * gimple.h (enum gtc_mode): New.
17831         (gimple_types_compatible_p): Adjust prototype.
17832
17833 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
17834
17835         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
17836         again after processing insn.
17837
17838 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17839
17840         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
17841         proper words when !tree_versionable_function_p.
17842
17843 2010-07-23  Richard Guenther  <rguenther@suse.de>
17844
17845         PR tree-optimization/45037
17846         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
17847
17848 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17849
17850         * doc/extend.texi: Remove IP2K from the description of naked attribute.
17851         Add MCORE instead.
17852
17853 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17854
17855         PR lto/44992
17856         * lto-opts.c (lto_write_options): Add NULL file_data argument to
17857         lto_get_section_name.
17858         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
17859         * lto-streamer-out.c (produce_asm): Likewise.
17860         (copy_function): Likewise.
17861         (produce_symtab): Likewise.
17862         (produce_asm_for_decls): Likewise.
17863         * lto-streamer.c (lto_get_section_name): Add file_data argument.
17864         Rewrite to add random postfix to LTO sections.
17865         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
17866         (lto_get_section_name): Add file_data argument to prototype.
17867
17868 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17869
17870         * lto-section-in.c (lto_section_name): Synchronize names
17871         with lto_get_section_name.
17872
17873 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17874
17875         * lto-opts.c (lto_read_file_options): Check for missing section.
17876
17877 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17878
17879         * ira.c (check_allocation): Correctly handle the case where an allocno
17880         with two objects was allocated to a single reg.
17881
17882 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
17883
17884         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
17885         (is_widening_mult_p): Likewise.
17886         (convert_to_widen): Use them.
17887         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
17888         well as integer ones.
17889
17890 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
17891
17892         * alias.c (true_dependence_1): New function, merged version of
17893         true_dependence and canon_true_dependence.
17894         (true_dependence): Simplify.
17895         (canon_true_dependence): Simplify.
17896
17897 2010-07-22  Richard Henderson  <rth@redhat.com>
17898
17899         PR target/45027
17900         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
17901         of V4SFmode for the SSE saves; increase stack alignment if needed.
17902         (ix86_gimplify_va_arg): Don't increase stack alignment here.
17903
17904 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
17905
17906         PR bootstrap/45028
17907         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
17908         call cprop_find_used_regs again via note_uses.
17909
17910 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
17911
17912         * alias.c (get_alias_set): Fix formatting issues.
17913
17914 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
17915
17916         PR middle-end/44878
17917         * stmt.c (expand_value_return):  Call promote_function_mode with
17918         a for_return argument of 2 when returning by reference.
17919
17920 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
17921
17922         PR debug/45024
17923         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
17924         unit DIE if we can find the scope DIE.
17925
17926 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17927
17928         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
17929         changed.  Initialize OBJECT_SUBWORD.
17930         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
17931         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
17932         all callers changed.
17933         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
17934         (finish_allocno): Likewise.
17935         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
17936         (remove_low_level_allocnos): Likewise.
17937         (update_bad_spill_attribute): Likewise.
17938         (setup_min_max_allocno_live_range_point): Likewise.
17939         (sort_conflict_id_map): Likewise.
17940         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
17941         (ior_hard_reg_conflicts): New function.
17942         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
17943         (compress_conflict_vecs): Iterate over objects, not allocnos.
17944         (ira_add_live_range_to_object): New function.
17945         (object_range_compare_func): Renamed from allocno_range_compare_func.
17946         All callers changed.
17947         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
17948         subobjects, widen the min/max range of the lowest-order object to
17949         potentially include all other such low-order objects.
17950         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
17951         (check_allocation): Likewise.  Use more fine-grained tests for register
17952         conflicts.
17953         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
17954         allocno subobjects.
17955         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
17956         choices about which bits to set in each set.  Don't use
17957         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
17958         using the multiple sets we computed.
17959         (push_allocno_to_stack): Iterate over allocno subobjects.
17960         (all_conflicting_hard_regs_coalesced): New static function.
17961         (setup_allocno_available_regs_num): Use it.
17962         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
17963         subobjects.
17964         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
17965         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
17966         by ALLOCNO_NUM_OBJECTS.
17967         (calculate_spill_cost): Likewise.
17968         (color_pass): Express if statement in a more normal way.
17969         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
17970         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
17971         (setup_slot_coalesced_allocno_live_ranges): Likewise.
17972         (allocno_reload_assign): Likewise.
17973         (ira_reassign_pseudos): Likewise.
17974         (fast_allocation): Likewise.
17975         * ira-conflicts.c (build_conflict_bit_table): Likewise.
17976         (print_allocno_conflicts): Likewise.
17977         (ira_build_conflicts): Likewise.
17978         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
17979         callers changed.  Test subword 0 of each allocno for conflicts.
17980         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
17981         callers changed.  Iterate over allocno subobjects.
17982         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
17983         * ira-int.h (struct ira_allocno): New member: num_objects.
17984         Rename object to objects and change it into an array.
17985         (ALLOCNO_OBJECT): Add new argument N.
17986         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
17987         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
17988         (ior_hard_reg_conflicts): Declare.
17989         (ira_add_live_range_to_object): Declare.
17990         (ira_allocno_object_iterator): New.
17991         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
17992         (FOR_EACH_ALLOCNO_OBJECT): New macro.
17993         * ira-lives.c (objects_live): Renamed from allocnos_live; all
17994         uses changed.
17995         (allocnos_processed): New sparseset.
17996         (make_object_born): Renamed from make_allocno_born; take an
17997         ira_object_t argument.  All callers changed.
17998         (make_object_dead): Renamed from make_allocno_dead; take an
17999         ira_object_t argument.  All callers changed.
18000         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
18001         All callers changed.
18002         (mark_pseudo_regno_live): Iterate over allocno subobjects.
18003         (mark_pseudo_regno_dead): Likewise.
18004         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
18005         functions.
18006         (mark_ref_live): Detect subword accesses and call
18007         mark_pseudo_regno_subword_live as appropriate.
18008         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
18009         (process_bb_nodes_live): Deal with object-related updates first; set
18010         and test bits in allocnos_processed to avoid computing allocno
18011         statistics more than once.
18012         (create_start_finish_chains): Iterate over objects, not allocnos.
18013         (print_object_live_ranges): New function.
18014         (print_allocno_live_ranges): Use it.
18015         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
18016         and objects_live.
18017
18018 2010-07-22  Richard Guenther  <rguenther@suse.de>
18019
18020         PR lto/42451
18021         * gimple.c (gtc_next_dfs_num): New global.
18022         (struct sccs): Make value a union, add integer same_p member.
18023         (gtc_visit): New function.
18024         (gimple_types_compatible_p_1): New function, split out from ...
18025         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
18026         (iterative_hash_gimple_type): Adjust for sccs change.
18027
18028 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18029
18030         PR tree-optimization/44891
18031         * tree-sra.c: Include gimple-pretty-print.h.
18032         (replace_uses_with_default_def_ssa_name): Renamed to
18033         get_repl_default_def_ssa_name, return the new SSA name instead of
18034         replacing the old one.
18035         (sra_modify_assign): Dump a message when removing a load, if the LHS
18036         is an SSA_NAME, do not do any propagation, just set the RHS to a
18037         default definition SSA NAME, type convert if necessary.
18038         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
18039
18040 2010-07-22  Richard Guenther  <rguenther@suse.de>
18041
18042         PR tree-optimization/45017
18043         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
18044         TYPE_PRECISION of integral types in addition to size.
18045
18046 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
18047
18048         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
18049         when no C library is specified.
18050
18051 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18052
18053         * ipa-prop.h (struct ipa_node_params): Updated comment.
18054         (struct ipa_edge_args): Likewise.
18055         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
18056
18057 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18058
18059         * cgraphunit.c (verify_edge_count_and_frequency): New function.
18060         (verify_cgraph_node): Verify frequencies of indirect edges.
18061         * tree-inline.c (tree_function_versioning): Update frequencies of
18062         indirect edges.
18063
18064 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18065
18066         PR target/43698
18067         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
18068         Set *arm_rev to be predicable.
18069
18070 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18071
18072         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
18073         (LINK_COMMAND_SPEC_A): New.
18074         (DSYMUTIL): New.
18075         (DSYMUTIL_SPEC): New.
18076         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
18077         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
18078
18079 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18080
18081         * calls.c (load_register_parameters): Move check for zero
18082         sized items so that only the call to
18083         mem_overlaps_already_clobbered_arg_p () is protected.
18084
18085 2010-07-22  Jan Hubicka  <jh@suse.cz>
18086
18087         * ipa-pure-const.c (varying_state): Break out from ...
18088         (get_function_state): ... here; always return varying_state
18089         when state would be NULL otherwise.
18090         (remove_node_data): Do not free varying state.
18091
18092 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18093
18094         PR bootstrap/44970
18095         PR middle-end/45009
18096         * postreload.c: Include "target.h".
18097         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
18098         into account.
18099         (fixup_debug_insns): Don't copy the rtx.
18100         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
18101         Don't copy when replacing.  Call fixup_debug_insns in the case where
18102         we merged one add with another.
18103         (reload_combine_recognize_pattern): Fail if there aren't any uses.
18104         Try harder to determine whether we're picking a valid index register.
18105         Don't set store_ruid for an insn we're going to scan in the
18106         next iteration.
18107         (reload_combine): Remove unused code.
18108         (reload_combine_note_use): When updating use information for
18109         an old insn, ignore a use that occurs after store_ruid.
18110         * Makefile.in (postreload.o): Update dependencies.
18111
18112         * function.c (record_hard_reg_sets): Restrict the previous change
18113         to cases where the incoming nominal mode is the same as the
18114         incoming promoted mode and everything happens in MODE_INT.
18115
18116 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18117
18118         PR debug/45015
18119         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
18120         ASM_OPERANDS_OUTPUT_IDX.
18121         (adjust_insn): For inline asm with multiple sets ensure first
18122         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
18123         the insn.
18124
18125 2010-07-21  Richard Henderson  <rth@redhat.com>
18126
18127         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
18128         comparison for avoiding xmm register saves.  Emit the xmm register
18129         saves explicitly.
18130         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
18131         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
18132         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
18133         Remove patterns and the associated splitters.
18134
18135 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
18136
18137         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
18138         and imagine parts of a complex, so that they can have the same
18139         base and fall into the same group.
18140
18141 2010-07-21  Richard Guenther  <rguenther@suse.de>
18142
18143         PR lto/45018
18144         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
18145         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
18146         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
18147
18148 2010-07-21  Martin Jambor  <mjambor@suse.cz>
18149
18150         PR tree-optimization/44900
18151         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
18152         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
18153
18154 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
18155
18156         PR middle-end/44738
18157         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
18158
18159 2010-07-21  Richard Guenther  <rguenther@suse.de>
18160
18161         PR middle-end/45013
18162         * tree-ssa.c (useless_type_conversion_p): Dispatch to
18163         gimple_types_compatible_p only when in lto.
18164         * gimple.c (gimple_types_compatible_p): Use canonical types
18165         to speed up comparison.
18166
18167 2010-07-21  Richard Guenther  <rguenther@suse.de>
18168
18169         * tree-flow.h (referenced_var): Move define ...
18170         * tree-flow-inline.h (referenced_var): ... here as an inline
18171         function.  Assert here ...
18172         * tree-dfa.c (referenced_var_lookup): ... instead of here.
18173         * tree-ssa.c (maybe_optimize_var): Check if the variable
18174         is in referenced vars.
18175         (execute_update_addresses_taken): Remove old broken check.
18176         * gimple-pretty-print.c (pp_points_to_solution): Use
18177         referenced_var_lookup.
18178         * tree-into-ssa.c (dump_decl_set): Likewise.
18179
18180 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18181
18182         PR debug/45003
18183         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
18184         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
18185         ZERO_EXTEND here.
18186
18187 2010-07-20  Richard Henderson  <rth@redhat.com>
18188
18189         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
18190
18191 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18192
18193         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
18194         computing the sum of the stack pointer and a large constant.
18195         * config/arm/constraints.md (M): Remove superfluous parentheses.
18196         (Pc): New constraint.
18197
18198 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18199
18200         PR debug/45006
18201         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
18202         operand's type if exp is tcc_unary class tree.
18203
18204 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18205
18206         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
18207         Reverse sense of if_then_else condition.
18208
18209 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18210
18211         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
18212         * config/rs6000/rs6000.c (rs6000_override_options): Set
18213         rs6000_block_move_inline_limit appropriately.
18214         (expand_block_move): Use rs6000_block_move_inline_limit.
18215         * doc/invoke.texi (mblock-move-inline-limit): Document.
18216
18217 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18218
18219         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
18220         FROM and TO.  All callers changed.  Don't look for tracked uses,
18221         just scan the RTL for DEBUG_INSNs and substitute.
18222         (reload_combine_recognize_pattern): Call fixup_debug_insns.
18223         (reload_combine): Ignore DEBUG_INSNs.
18224
18225 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18226
18227         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
18228         depth to 8 from 5.
18229
18230         PR debug/45003
18231         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
18232         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
18233         instead of the result's type.
18234
18235 2010-07-20  Richard Guenther  <rguenther@suse.de>
18236
18237         PR tree-optimization/44977
18238         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
18239         SSA form.
18240
18241 2010-07-20  Richard Guenther  <rguenther@suse.de>
18242
18243         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
18244         (lto_symtab_merge_decls_2): Likewise.
18245         * gimple.h (gimple_types_compatible_p): Declare.
18246         * gimple.c (gimple_queue_type_fixup): Remove.
18247         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
18248         (gimple_compatible_complete_and_incomplete_type_p): New function.
18249         (gimple_types_compatible_p): Adjust.
18250         (gimple_register_type): Remove type fixup code.
18251         (print_gimple_types_stats): Adjust.
18252         (free_gimple_type_tables): Likewise.
18253         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
18254         * tree-ssa.c (useless_type_conversion_p): Likewise.
18255
18256 2010-07-20  Richard Guenther  <rguenther@suse.de>
18257
18258         PR middle-end/44971
18259         PR middle-end/44988
18260         * tree-ssa.c (maybe_optimize_var): New function split out from ...
18261         (execute_update_addresses_taken): ... here.
18262         (non_rewritable_mem_ref_base): Likewise.
18263         (execute_update_addresses_taken): Do not iterate over all referenced
18264         vars but just all local decls and parms.
18265         Properly check call and asm arguments and rewrite call arguments.
18266
18267 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
18268
18269         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
18270         to top level.
18271         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
18272         definitions ...
18273         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
18274         New macro.
18275         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
18276
18277 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
18278
18279         * gengtype.c (start_root_entry): New function, split out from
18280         write_root.  Check whether V is null and raise an error if so.
18281         (write_field_root): Check for V being null.  Don't raise an error here;
18282         set V to null instead.
18283         (write_root): Update comment above function.  Use start_root_entry.
18284
18285 2010-07-19  Xinliang David Li  <davidxl@google.com>
18286
18287         PR testsuite/44932
18288         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
18289         def edges.
18290         (find_uninit_use): Add dump.
18291         (is_use_properly_guarded): Ditto.
18292         (warn_uninitialized_phi): Ditto.
18293         (execute_late_warn_uninitialized): Ditto.
18294
18295 2010-07-19  Richard Guenther  <rguenther@suse.de>
18296
18297         PR middle-end/44941
18298         * expr.c (emit_block_move_hints): Move zero size check first.
18299         Move asserts to more useful places.
18300         * calls.c (load_register_parameters): Check for zero size.
18301
18302 2010-07-19  Richard Henderson  <rth@redhat.com>
18303
18304         * tree-optimize.c (execute_all_early_local_passes): New.  Change
18305         cgraph_state here ...
18306         (execute_early_local_optimizations): ... not here.  Remove.
18307         (pass_early_local_passes, pass_all_early_optimizations): Update.
18308
18309 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
18310
18311         * postreload.c (reload_combine_closest_single_use): Ignore the
18312         number of uses for DEBUG_INSNs.
18313         (fixup_debug_insns): New static function.
18314         (reload_combine_recognize_const_pattern): Use it.  Don't let the
18315         main loop be affected by DEBUG_INSNs.
18316         Really disallow moving adds past a jump insn.
18317         (reload_combine_recognize_pattern): Don't update use_ruid here.
18318         (reload_combine_note_use): Do it here.
18319         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
18320
18321 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
18322
18323         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
18324         of a loop.
18325         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
18326
18327 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
18328
18329         * config/i386/darwin.h: Define darwin_emit_branch_islands.
18330         (TARGET_MACHO_BRANCH_ISLANDS): New.
18331         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
18332         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
18333         default value.
18334         * config/i386/i386.c (output_pic_addr_const): Do not emit
18335         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
18336         (x86_output_mi_thunk): Adjust symbol creation.
18337         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
18338         Remove out of date comment.
18339         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
18340         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18341         (DARWIN_GENERATE_ISLANDS): Ditto.
18342         (output_call):  Do not emit branch islands unless
18343         darwin_emit_branch_islands is set.
18344         * config/darwin.c: Declare darwin_emit_branch_islands.
18345         (machopic_indirect_data_reference): Do not emit unless
18346         darwin_emit_branch_islands is set.
18347         (darwin_override_options): Set darwin_emit_branch_islands
18348         where it is needed.
18349         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18350
18351 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18352
18353         * doc/sourcebuild.texi (Effective-Target Keywords): Document
18354         sse_runtime, sse2_runtime.
18355
18356 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
18357
18358         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
18359         low half of a single-register SCmode return value before ORing
18360         it with the high half.
18361         * config/mips/mips16.S (MERGE_GPRf): Likewise.
18362
18363 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18364
18365         PR target/44805
18366         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
18367         on all targets.
18368
18369 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
18370
18371         PR target/42235
18372         * postreload.c (reload_cse_move2add): Return bool, true if anything.
18373         changed.  All callers changed.
18374         (move2add_use_add2_insn): Likewise.
18375         (move2add_use_add3_insn): Likewise.
18376         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
18377         reload_combine.
18378         (RELOAD_COMBINE_MAX_USES): Bump to 16.
18379         (last_jump_ruid): New static variable.
18380         (struct reg_use): New members CONTAINING_MEM and RUID.
18381         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
18382         (reload_combine_split_one_ruid, reload_combine_split_ruids,
18383         reload_combine_purge_insn_uses, reload_combine_closest_single_use
18384         reload_combine_purge_reg_uses_after_ruid,
18385         reload_combine_recognize_const_pattern): New static functions.
18386         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
18387         is true for our reg and that we have available index regs.
18388         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
18389         callers changed.  Use them to initialize fields in struct reg_use.
18390         (reload_combine): Initialize last_jump_ruid.  Be careful when to
18391         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
18392         Call reload_combine_recognize_const_pattern.
18393         (reload_combine_note_store): Update REAL_STORE_RUID field.
18394
18395 2010-07-16  Jason Merrill  <jason@redhat.com>
18396
18397         * Makefile.in (opts-common.o): Depend on options.h.
18398
18399 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18400
18401         * tree.c (build_common_builtin_nodes): Use build_function_type_list
18402         instead of build_function_type.
18403         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
18404         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
18405
18406 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18407
18408         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
18409         do all the work.
18410         (rs6000_emit_int_cmove): Use function pointers for insn generation.
18411         Don't force values into registers unnecessarily.
18412         (output_isel): Assert that we're not given conditions we can't handle.
18413         Delete corresponding code.
18414         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
18415         scc_comparison_operator constraint.  Permit 0 for the consequent
18416         operand.  Permit any GPR for the alternative operand.
18417         (isel_unsigned_<mode>): Likewise.
18418
18419 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
18420
18421         PR target/44942
18422         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
18423         argument to const_tree.
18424         * config/i386/i386.c (function_arg_advance): If padding needs to be
18425         inserted before argument, increment cum->words by number of padding
18426         words as well.
18427         (contains_aligned_value_p): Change argument to const_tree.
18428         (ix86_function_arg_boundary): Change second argument to const_tree.
18429
18430 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
18431
18432         PR target/42235
18433         * function.c (record_hard_reg_sets): New static function.
18434         (assign_parm_setup_reg): If an optab for extending exists and the
18435         generated code clobbbers no hard regs, emit the insn directly and
18436         create a REG_EQUIV note.
18437
18438 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18439
18440         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
18441         TREE_CHAIN.
18442         * c-typeck.c (push_init_level): Likewise.
18443         (process_init_element): Likewise.
18444
18445 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
18446
18447         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
18448         (integer_three_node): Add.
18449         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
18450         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
18451         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
18452         of call build_int_cst.
18453         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
18454         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
18455         (find_interesting_uses_address): Ditto.
18456         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
18457         * tree-eh.c (lower_eh_constructs_2): Ditto.
18458         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
18459         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
18460         * expmed.c (expand_divmod): Ditto.
18461         * tree-mudflap.c (mx_register_decls): Ditto.
18462         * varasm.c (array_size_for_constructor): Ditto.
18463         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
18464         * c-parser.c (c_parser_postfix_expression): Ditto.
18465
18466 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18467
18468         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
18469         New static variables.
18470         (reload_combine_recognize_pattern): New static function, broken out
18471         of reload_combine.
18472         (reload_combine): Use it.  Only initialize first_index_reg and
18473         last_index_reg once.
18474
18475 2010-07-15  Richard Henderson  <rth@redhat.com>
18476
18477         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
18478         when done.
18479
18480 2010-07-15  Jan Hubicka  <jh@suse.cz>
18481
18482         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
18483         comdats for broken gold.
18484         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
18485
18486 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18487
18488         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
18489
18490 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18491
18492         * tree.h (DECL_CHAIN): Define.
18493         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
18494         * c-decl.c: Likewise.
18495         * c-parser.c: Likewise.
18496         * c-typeck.c: Likewise.
18497         * cfgexpand.c: Likewise.
18498         * cgraph.c: Likewise.
18499         * cgraphunit.c: Likewise.
18500         * combine.c: Likewise.
18501         * config/alpha/alpha.c: Likewise.
18502         * config/arm/arm.c: Likewise.
18503         * config/frv/frv.c: Likewise.
18504         * config/i386/i386.c: Likewise.
18505         * config/i386/winnt-cxx.c: Likewise.
18506         * config/ia64/ia64.c: Likewise.
18507         * config/iq2000/iq2000.c: Likewise.
18508         * config/mep/mep.c: Likewise.
18509         * config/mips/mips.c: Likewise.
18510         * config/pa/som.h: Likewise.
18511         * config/rs6000/rs6000.c: Likewise.
18512         * config/s390/s390.c: Likewise.
18513         * config/sh/sh.c: Likewise.
18514         * config/sh/symbian-cxx.c: Likewise.
18515         * config/sparc/sparc.c: Likewise.
18516         * config/spu/spu.c: Likewise.
18517         * config/stormy16/stormy16.c: Likewise.
18518         * config/vxworks.c: Likewise.
18519         * config/xtensa/xtensa.c: Likewise.
18520         * coverage.c: Likewise.
18521         * dbxout.c: Likewise.
18522         * dwarf2out.c: Likewise.
18523         * emit-rtl.c: Likewise.
18524         * expr.c: Likewise.
18525         * function.c: Likewise.
18526         * gimple-low.c: Likewise.
18527         * gimple-pretty-print.c: Likewise.
18528         * gimplify.c: Likewise.
18529         * integrate.c: Likewise.
18530         * ipa-inline.c: Likewise.
18531         * ipa-prop.c: Likewise.
18532         * ipa-split.c: Likewise.
18533         * ipa-struct-reorg.c: Likewise.
18534         * ipa-type-escape.c: Likewise.
18535         * langhooks.c: Likewise.
18536         * lto-cgraph.c: Likewise.
18537         * omp-low.c: Likewise.
18538         * stor-layout.c: Likewise.
18539         * tree-cfg.c: Likewise.
18540         * tree-complex.c: Likewise.
18541         * tree-dfa.c: Likewise.
18542         * tree-dump.c: Likewise.
18543         * tree-inline.c: Likewise.
18544         * tree-mudflap.c: Likewise.
18545         * tree-nested.c: Likewise.
18546         * tree-object-size.c: Likewise.
18547         * tree-pretty-print.c: Likewise.
18548         * tree-sra.c: Likewise.
18549         * tree-ssa-live.c: Likewise.
18550         * tree-ssa-loop-niter.c: Likewise.
18551         * tree-ssa-math-opts.c: Likewise.
18552         * tree-ssa-reassoc.c: Likewise.
18553         * tree-ssa-sccvn.c: Likewise.
18554         * tree-ssa-structalias.c: Likewise.
18555         * tree-tailcall.c: Likewise.
18556         * tree-vrp.c: Likewise.
18557         * tree.c: Likewise.
18558         * var-tracking.c: Likewise.
18559         * varasm.c: Likewise.
18560
18561 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18562
18563         PR target/44877
18564         * config/spu/spu.c (spu_expand_builtin_1): Allow references
18565         (as well as pointers) as argument to mask_for_load builtins.
18566
18567 2010-07-15  Richard Guenther  <rguenther@suse.de>
18568
18569         PR tree-optimization/44946
18570         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
18571         with accessing only padding properly.
18572
18573 2010-07-15  Jan Hubicka  <jh@suse.cz>
18574
18575         * ipa.c (function_and_variable_visibility): Variables marked as used
18576         should not be localized.
18577
18578 2010-07-15  Jan Hubicka  <jh@suse.cz>
18579
18580         * cgraph.c: Include lto-streamer.h
18581         (change_decl_assembler_name): Work when assembler name hash is at place.
18582         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
18583         be sure to rename it to avoid name clash.
18584         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
18585         Localize hidden symbols only when locally defined.
18586
18587 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
18588
18589         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
18590
18591 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
18592             Kevin F. Quinn  <kevquinn@gentoo.org>
18593
18594         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
18595         * common.opt: Add -Wtrampolines.
18596         * doc/invoke.texi: Add -Wtrampolines.
18597
18598 2010-07-15  Jie Zhang  <jie@codesourcery.com>
18599
18600         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
18601         cortex_a8_issue_ls.
18602
18603 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
18604
18605         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
18606         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
18607
18608 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18609
18610         * config/spu/spu.c (reg_names): Remove prototype.
18611         (call_used_regs): Likewise.
18612
18613 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
18614
18615         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
18616         "unused" with attribute "used".
18617         (__JCR_END__): Likewise.
18618         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
18619         "used" attribute.
18620         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
18621
18622 2010-07-14  Richard Guenther  <rguenther@suse.de>
18623
18624         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
18625         (maybe_fixup_decls): Likewise.
18626         (input_gimple_stmt): Do not fixup anything.
18627         * lto-streamer-out.c (output_gimple_stmt): Make sure all
18628         non-automatic variable uses are wrapped inside a MEM_REF.
18629
18630 2010-07-14  Richard Henderson  <rth@redhat.com>
18631
18632         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
18633         for functions.
18634         * varasm.c (assemble_variable): Remove early exit for functions;
18635         assert that we're given a variable.
18636
18637 2010-07-14  Jie Zhang  <jie@codesourcery.com>
18638
18639         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
18640         cortex_a8_default when neon_type is not none.
18641
18642 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18643
18644         * lower-subreg.c (subreg_context): New static bitmap.
18645         (decompose_multiword_subregs): Allocate and free it.
18646         (find_decomposable_subregs): Set a bit in it for a register that
18647         occurs in a subreg that changes mode but not size.
18648         (can_decompose_p): Test it instead of non_decomposable_context.
18649
18650 2010-07-14  Richard Guenther  <rguenther@suse.de>
18651
18652         PR tree-optimization/44824
18653         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
18654         is_gimple_mem_ref_addr.
18655         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
18656         non-decl_address_invariant_p addresses.
18657
18658 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18659
18660         * reload.c (find_reloads): Revert code to penalize small register
18661         classes that was brought in with the IRA merge.
18662
18663 2010-07-14  Richard Guenther  <rguenther@suse.de>
18664
18665         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
18666         as base of ARRAY_REFs.
18667
18668 2010-07-14  Richard Guenther  <rguenther@suse.de>
18669
18670         PR middle-end/44930
18671         * tree-pretty-print.c (do_niy): Do not print a newline.
18672
18673 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18674
18675         * ira-int.h (struct ira_object): New.
18676         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
18677         (struct ira_allocno): Remove members min, max,
18678         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
18679         conflict_allocnos_num and conflict_vec_p.  Add new member object.
18680         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
18681         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
18682         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
18683         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
18684         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
18685         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
18686         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
18687         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
18688         an ira_object_t rather than ira_allocno_t.  All uses changed.
18689         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18690         contains a vector of ira_object_t; all uses changed.
18691         (ira_objects_num): Declare variable.
18692         (ira_create_allocno_object): Declare function.
18693         (ira_conflict_vector_profitable_p): Adjust prototype.
18694         (ira_allocate_conflict_vec): Renamed from
18695         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
18696         (ira_allocate_object_conflicts): Renamed from
18697         ira_allocate_allocno_conflicts; first arg now ira_object_t.
18698         (struct ira_object_iterator): New.
18699         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
18700         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
18701         to conflict_vec_p.  All uses changed.
18702         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
18703         Changed to take into account that conflicts are now tracked for
18704         objects.
18705         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
18706         Args changed to accept ira_object_t.  All uses changed.
18707         (allocnos_conflict_p): New static function.
18708         (collected_conflict_objects): Renamed from collected_allocno_objects;
18709         now a vector of ira_object_t.  All uses changed.
18710         (build_conflict_bit_table): Changed to take into account that
18711         conflicts are now tracked for objects.
18712         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
18713         (print_allocno_conflicts, ira_build_conflicts): Likewise.
18714         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
18715         setup_allocno_left_conflicts_size, allocno_reload_assign,
18716         fast_allocation): Likewise.
18717         * ira-lives.c (make_hard_regno_born, make_allocno_born)
18718         process_single_reg_class_operands, process_bb_node_lives): Likewise.
18719         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
18720         Likewise.
18721         * ira-build.c (ira_objects_num): New variable.
18722         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18723         contains a vector of ira_object_t; all uses changed.
18724         (ira_object_id_map_vec): Corresponding change.
18725         (object_pool): New static variable.
18726         (initiate_allocnos): Initialize it.
18727         (finish_allocnos): Free it.
18728         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
18729         New functions.
18730         (ira_create_allocno): Don't set members that were removed.
18731         (ira_set_allocno_cover_class): Don't change conflict hard regs.
18732         (merge_hard_reg_conflicts): Changed to take into account that
18733         conflicts are now tracked for objects.
18734         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
18735         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
18736         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
18737         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
18738         setup_min_max_conflict_allocno_ids, ):  Likewise.
18739         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
18740         to ira_object_t; all callers changed.
18741         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
18742         to ira_object_t, all callers changed.
18743         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
18744         to ira_object_t, all callers changed.
18745         (conflict_check, curr_conflict_check_tick): Renamed from
18746         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
18747         changed.
18748         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
18749         arg changed to ira_object_t, all callers changed.
18750         (create_cap_allocno): Call ira_create_allocno_object.
18751         (finish_allocno): Free the corresponding object.
18752         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
18753         callers changed.  Adjusted for dealing with objects.
18754         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
18755         dealing with objects.
18756         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
18757
18758         * ira-int.h (struct live_range): Rename allocno member to object
18759         and change type to ira_object_t.
18760         (struct ira_object): New member live_ranges.
18761         (struct ira_allocno): Remove member live_ranges.
18762         (ALLOCNO_LIVE_RANGES): Remove.
18763         (OBJECT_LIVE_RANGES): New macro.
18764         (ira_create_live_range, ira_copy_live_range_list,
18765         ira_merge_live_range_list, ira_live_ranges_intersect_p,
18766         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
18767         * ira-build.c (ira_create_object): Initialize live ranges here.
18768         (ira_create_allocno): Not here.
18769         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
18770         changed to ira_object_t, all callers changed.
18771         (copy_live_range): Rename from copy_allocno_live_range, all callers
18772         changed.
18773         (ira_copy_live_range_list): Rename from
18774         ira_copy_allocno_live_range_list, all callers changed.
18775         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
18776         all callers changed.
18777         (ira_live_ranges_intersect_p): Rename from
18778         ira_allocno_live_ranges_intersect_p, all callers changed.
18779         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
18780         callers changed.
18781         (ira_finish_live_range_list): Rename from
18782         ira_finish_allocno_live_range_list, all callers changed.
18783         (change_object_in_range_list): Rename from change_allocno_in_range_list,
18784         last arg changed to ira_object_t, all callers changed.
18785         (finish_allocno): Changed to expect live ranges in the allocno's object.
18786         (move_allocno_live_ranges, copy_allocno_live_ranges,
18787         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
18788         ira_flattening, ira_build): Likewise.
18789         * ira-color.c (allocnos_have_intersected_live_ranges_p,
18790         slot_coalesced_allocno_live_ranges_intersect,
18791         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
18792         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18793         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
18794         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
18795         make_allocno_dead, create_start_finish_chains,
18796         remove_some_program_points_and_update_live_ranges,
18797         ira_debug_live_range_list): Likewise.
18798
18799         * ira-int.h (ira_object_conflict_iterator): Rename from
18800         ira_allocno_conflict_iterator.
18801         (ira_object_conflict_iter_init): Rename from
18802         ira_allocno_conflict_iter_init, second arg changed to
18803         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
18804         FOR_EACH_ALLOCNO_CONFLICT.
18805         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
18806         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
18807         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
18808         * ira-conflicts.c (print_allocno_conflicts): Likewise.
18809
18810 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
18811
18812         PR other/44874
18813         * tree-dump.c (dump_options): Add enumerate_locals entry.
18814         Add TDF_NOID exclusion to all entry.
18815         * tree-dump.h (dump_enumerated_decls): Declare.
18816         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
18817         Don't display type uid.
18818         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
18819         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
18820         * tree-ssa-live.c: Include gimple.h.
18821         (numbered_tree_d): New struct.
18822         (numbered_tree): New typedef.
18823         (DEF_VEC_O (numbered_tree): New.
18824         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
18825         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
18826         (dump_enumerated_decls): Likewise.
18827         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
18828         debug info and flag_dump_final_insns, call dump_enumerated_decls.
18829         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
18830         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
18831
18832 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
18833
18834         * expmed.h (MAX_BITS_PER_WORD): Move to...
18835         * defaults.h (MAX_BITS_PER_WORD): ...here.
18836
18837 2010-07-13  DJ Delorie  <dj@redhat.com>
18838
18839         * config/h8300/h8300.c (h8300_init_once): Default to
18840         -fstrict_volatile_bitfields.
18841
18842         * config/sh/sh.c (sh_override_options): Default to
18843         -fstrict_volatile_bitfields.
18844
18845         * config/rx/rx.c (rx_option_override): New.
18846
18847         * config/m32c/m32c.c (m32c_override_options): Default to
18848         -fstrict_volatile_bitfields.
18849
18850 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
18851
18852         * tree.h (build_function_call_expr): Delete.
18853         (build_call_expr_loc_array): New function.
18854         (build_call_expr_loc_vec): New function.
18855         * tree-flow.h (struct omp_region): Change type of ws_args field
18856         to a VEC.
18857         * builtins.c (build_function_call_expr): Delete.
18858         (build_call_expr_loc_array): New function.
18859         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
18860         (build_call_expr): Likewise.
18861         (build_call_expr_loc_vec): New function.
18862         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
18863         build_function_call_expr.
18864         * expr.c (emutls_var_address): Likewise.
18865         * varasm.c (emutls_common_1): Likewise.
18866         * omp-low.c (expand_omp_atomic_mutex): Likewise.
18867         (expand_omp_taskreg): Adjust for new type of region->ws_args.
18868         (get_ws_args_for): Return a VEC instead of a tree.
18869         (expand_parallel_call): Call build_call_expr_loc_vec instead of
18870         build_function_call_expr.
18871         * stor-layout.c (self_referential_size): Likewise.
18872
18873 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18874
18875         PR testsuite/44701
18876         * recog.c (constrain_operands): Allow side-effects in memory
18877         operands if either < or > constraint is used, rather than if
18878         both < and > is used.
18879
18880 2010-07-13  Richard Guenther  <rguenther@suse.de>
18881
18882         PR middle-end/44911
18883         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
18884         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
18885         without name.
18886
18887 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
18888
18889         PR target/44761
18890         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
18891         to variable emited.
18892         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
18893         * config/sh/sh.md (symGOT_load): Likewise.
18894         (symDTPOFF2reg): Likewise.
18895         (symTPOFF2reg): Likewise.
18896
18897 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18898
18899         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
18900         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
18901
18902 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18903
18904         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
18905         explanation.
18906         Find ucontext_t * on Solaris 11.
18907         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
18908         Handle new Solaris 11 __sighndlr patterns.
18909
18910 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18911
18912         PR debug/44901
18913         * vec.h (VEC_block_remove): Fix comment.
18914         * tree-ssa-live.c (remove_unused_locals): Don't use
18915         VEC_unordered_remove on local_decls, instead replace a single
18916         vector element in each iteration if at least one element had
18917         to be removed and VEC_truncate at the end.
18918         * omp-low.c (expand_omp_taskreg): Likewise.
18919
18920 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18921
18922         * c-decl.c (finish_function): Fix typo in comment.
18923
18924 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
18925
18926         PR bootstrap/44921
18927         * postreload.c (move2add_use_add3_insn): Silence gcc warning
18928         on min_regno.
18929
18930 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
18931
18932         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
18933         (simplify_stmt_using_ranges): Use it.
18934
18935 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18936
18937         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
18938         member.  Do not mark as GTY(()).
18939         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
18940         (spu_builtin_decls): New static variable.
18941         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
18942         (spu_init_builtins): Likewise.
18943         (spu_builtin_mul_widen_even): Likewise.
18944         (spu_builtin_mul_widen_odd): Likewise.
18945         (spu_builtin_mask_for_load): Likewise.
18946         (spu_builtin_vec_perm): Likewise.
18947         * config/spu/spu-c.c: Include "target.h".
18948         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
18949         of using spu_builtins[].fndecl.
18950
18951 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18952
18953         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
18954         imply -minterlink-mips16.
18955
18956 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18957
18958         * config/mips/mips.h (mips16_globals): Declare.
18959         (SWITCHABLE_TARGET): Define.
18960         * config/mips/mips.c: Include target-globals.h.
18961         (mips16_globals): New variable.
18962         (mips_set_mips16_mode): Use save_target_globals and
18963         restore_target_globals instead of target_reinit.
18964
18965 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18966
18967         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
18968         to say that the function can be called more than once.
18969         * target-globals.c (save_target_globals): Call init_reg_sets.
18970
18971 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18972
18973         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
18974         * bb-reorder.h: New file.
18975         * bb-reorder.c (default_target_bb_reorder): New variable.
18976         (this_target_bb_reorder): New conditional variable.
18977         (uncond_jump_length): Redefine as a macro.
18978         * target-globals.h (this_target_bb_reorder): Declare.
18979         (target_globals): Add a bb_reorder field.
18980         (restore_target_globals): Copy the bb_reorder field to
18981         this_target_bb-reorder.
18982         * target-globals.c: Include bb-reorder.h.
18983         (default_target_globals): Initialize the bb_reorder field.
18984         (save_target_globals): Likewise.
18985
18986 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18987
18988         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
18989         * gcse.h: New file.
18990         * gcse.c: Include gcse.h.
18991         (default_target_gcse): New variable.
18992         (this_target_gcse): New conditional variable.
18993         (can_copy): Redefine as a macro.
18994         (can_copy_init_p): New macro.
18995         (can_copy_p): Remove can_copy_init_p.
18996         * target-globals.h (this_target_gcse): Declare.
18997         (target_globals): Add a gcse field.
18998         (restore_target_globals): Copy the gcse field to this_target_gcse.
18999         * target-globals.c: Include gcse.h.
19000         (default_target_globals): Initialize the gcse field.
19001         (save_target_globals): Likewise.
19002
19003 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19004
19005         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
19006         and x_ira_prohibited_mode_move_regs_initialized_p.
19007         (ira_prohibited_mode_move_regs): Redefine as a macro.
19008         * ira.c (ira_prohibited_mode_move_regs): Delete.
19009         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
19010
19011 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19012
19013         * reload.h (target_reload): Add x_cached_reg_save_code and
19014         x_cached_reg_restore_code.
19015         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
19016         Redefine as macros.
19017
19018 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19019
19020         * Makefile.in (target-globals.o): Depend on builtins.h.
19021         * builtins.h: New file.
19022         * builtins.c: Include builtins.h.
19023         (default_target_builtins): New variable.
19024         (this_target_builtins): New conditional variable.
19025         (apply_args_mode, apply_result_mode): Redefine as macros.
19026         * target-globals.h (this_target_builtins): Declare.
19027         (target_globals): Add a builtins field.
19028         (restore_target_globals): Copy the builtins field to
19029         this_target_builtins.
19030         * target-globals.c: Include builtins.h.
19031         (default_target_globals): Initialize the builtins field.
19032         (save_target_globals): Likewise.
19033
19034 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19035
19036         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
19037         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
19038         from expmed.c.
19039         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
19040         (alg_hash, alg_hash_used_p): New macros.
19041         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
19042         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
19043         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
19044
19045 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19046
19047         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
19048         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
19049         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
19050         (this_op_costs, costs_classes): Redefine as macros.
19051         (record_reg_classes): Don't take op_costs as a parameter.
19052         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
19053         (scan_one_insn): Update call to record_operand_costs.
19054
19055 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19056
19057         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
19058         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
19059         (target_ira_int): New structure.
19060         (default_target_ira_int): Declare.
19061         (this_target_ira_int): Declare as a variable or define as a macro.
19062         (ira_reg_mode_hard_regset, ira_register_move_cost)
19063         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
19064         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
19065         (prohibited_class_mode_regs, ira_important_classes_num)
19066         (ira_important_classes, ira_reg_class_intersect)
19067         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
19068         (ira_reg_class_union): Redefine as macros.
19069         * ira.h (target_ira): New structure.
19070         (default_target_ira): Declare.
19071         (this_target_ira): Declare as a variable or define as a macro.
19072         (ira_available_class_regs, ira_hard_regno_cover_class)
19073         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
19074         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
19075         (ira_class_hard_regs_num): Redefine as macros.
19076         * ira.c (default_target_ira, default_target_ira_int): New variables.
19077         (this_target_ira, this_target_ira_int): New conditional variables.
19078         (ira_reg_mode_hard_regset, ira_memory_move_cost)
19079         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
19080         (ira_class_subset_p): Delete.
19081         (no_unit_alloc_regs): Redefine as a macro.
19082         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
19083         (ira_class_hard_regs_num, ira_class_hard_reg_index)
19084         (ira_available_class_regs): Delete.
19085         (alloc_reg_class_subclasses): Redefine as a macro.
19086         (ira_reg_class_cover_size, ira_reg_class_cover)
19087         (ira_important_classes_num, ira_important_classes)
19088         (ira_important_class_nums, ira_class_translate): Delete.
19089         (cover_class_order): Document the variable's lifetime.
19090         (reorder_important_classes): Don't set ira_important_class_nums.
19091         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
19092         (ira_reg_class_super_classes, ira_reg_class_union)
19093         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
19094         Delete.
19095         (setup_reg_class_nregs): Don't set ira_max_regs.
19096         (prohibited_class_mode_regs): Delete.
19097         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
19098         (target_globals): Add ira and ira_int fields.
19099         (restore_target_globals): Copy the ira field to this_target_ira
19100         and the ira_int field to this_target_ira_int.
19101         * target-globals.c: Include ira-int.h.
19102         (default_target_globals): Initialize the ira and ira_int fields.
19103         (save_target_globals): Likewise.
19104
19105 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19106
19107         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
19108         * cfgloop.h (target_cfgloop): New structure.
19109         (default_target_cfgloop): Declare.
19110         (this_target_cfgloop): Declare as a variable or define as a macro.
19111         (target_avail_regs, target_clobbered_regs, target_res_regs)
19112         (target_reg_cost, target_spill_cost): Redefine as macros.
19113         * cfgloopanal.c (default_target_cfgloop): New variable.
19114         (this_target_cfgloop): New conditional variable.
19115         (target_avail_regs, target_clobbered_regs, target_res_regs)
19116         (target_reg_cost, target_spill_cost): Delete.
19117         * target-globals.h (this_target_cfgloop): Declare.
19118         (target_globals): Add a cfgloop field.
19119         (restore_target_globals): Copy the cfgloop field to
19120         this_target_cfgloop.
19121         * target-globals.c: Include cfgloop.h.
19122         (default_target_globals): Initialize the cfgloop field.
19123         (save_target_globals): Likewise.
19124
19125 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19126
19127         * regs.h (target_regs): Add x_direct_load, x_direct_store and
19128         x_float_extend_from_mem.
19129         (direct_load, direct_store, float_extend_from_mem): New macros.
19130         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
19131
19132 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19133
19134         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
19135         (target-globals.o): Depend on $(LIBFUNCS_H).
19136         * libfuncs.h: Include hashtab.h.
19137         (libfunc_entry): Moved from optabs.c.
19138         (target_libfuncs): New structure.
19139         (default_target_libfuncs): Declare.
19140         (this_target_libfuncs): Declare as a variable or define as a macro.
19141         (libfunc_table): Redefine as a macro.
19142         * optabs.c (default_target_libfuncs): New variable.
19143         (this_target_libfuncs): New conditional variable.
19144         (libfunc_table): Delete.
19145         (libfunc_entry): Moved to optabs.h.
19146         (libfunc_hash): Redefine as a macro.
19147         (hash_libfunc, eq_libfunc): Fix comments.
19148         (init_optabs): Use libfunc_hash to detect cases where the function
19149         has already been called.  Clear the hash table instead of
19150         recreating it.
19151         * target-globals.h (this_target_libfuncs): Declare.
19152         (target_globals): Add a libfuncs field.
19153         (restore_target_globals): Copy the libfuncs field to
19154         this_target_libfuncs.
19155         * target-globals.c: Include libfuncs.h.
19156         (default_target_globals): Initialize the libfuncs field.
19157         (save_target_globals): Likewise.
19158
19159 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19160
19161         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
19162         in all dependency lists.
19163
19164 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19165
19166         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
19167         * optabs.h (target_optabs): New structure.
19168         (default_target_optabs): Declare.
19169         (this_target_optabs): Declare as a variable or define as a macro.
19170         (optab_table, convert_optab_table, direct_optab_table): Redefine
19171         as macros.
19172         * optabs.c (default_target_optabs): New variable.
19173         (this_target_optabs): New conditional variable.
19174         (optab_table, convert_optab_table, direct_optab_table): Delete.
19175         * target-globals.h (this_target_optabs): Declare.
19176         (target_globals): Add a optabs field.
19177         (restore_target_globals): Copy the optabs field to
19178         this_target_optabs.
19179         * target-globals.c: Include expr.h and optabs.h.
19180         (default_target_globals): Initialize the optabs field.
19181         (save_target_globals): Likewise.
19182
19183 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19184
19185         * flags.h (target_flagstate): Add x_flag_excess_precision.
19186         (flag_excess_precision): Redefine as a macro.
19187         * toplev.c (flag_excess_precision): Delete.
19188
19189 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19190
19191         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
19192         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
19193         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
19194         (no_caller_save_reg_set): Redefine as a macro.
19195         * reload.h (target_reload): Add x_caller_save_initialized_p and
19196         x_regno_save_mode.
19197         (caller_save_initialized_p): Redefine as a macro.
19198         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
19199         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
19200         (regno_save_mode): Redefine as a macro.
19201
19202 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19203
19204         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
19205         * expmed.h: New file.
19206         * expmed.c (default_target_costs): New variable.
19207         (this_target_costs): New conditional variable.
19208         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
19209         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
19210         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
19211         * target-globals.h (this_target_expmed): Declare.
19212         (target_globals): Add a expmed field.
19213         (restore_target_globals): Copy the expmed field to
19214         this_target_expmed.
19215         * target-globals.c: Include expmed.h.
19216         (default_target_globals): Initialize the expmed field.
19217         (save_target_globals): Likewise.
19218
19219 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19220
19221         * Makefile.in (target-globals.o): Depend on reload.h.
19222         * reload.h (target_reload): New structure.
19223         (default_target_reload): Declare.
19224         (this_target_reload): Declare as a variable or define as a macro.
19225         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
19226         * reload1.c (default_target_reload): New variable
19227         (this_target_reload): New conditional variable.
19228         (indirect_symref_ok, double_reg_address_ok): Delete.
19229         (spill_indirect_levels): Redefine as a macro.
19230         * target-globals.h (this_target_reload): Declare.
19231         (target_globals): Add a reload field.
19232         (restore_target_globals): Copy the reload field to
19233         this_target_reload.
19234         * target-globals.c: Include hard-reg-set.h.
19235         (default_target_globals): Initialize the reload field.
19236         (save_target_globals): Likewise.
19237
19238 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19239
19240         * rtl.h (target_rtl): Add x_static_reg_base_value.
19241         * alias.c (static_reg_base_value): Redefine as a macro.
19242
19243 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19244
19245         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
19246         (GTFILES): Remove reginfo.c.
19247         * rtl.h (target_rtl): Add x_top_of_stack.
19248         (top_of_stack): New macro.
19249         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
19250         (top_of_stack): Delete.
19251
19252 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19253
19254         * regs.h (target_regs): Add x_hard_regs_of_mode,
19255         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
19256         x_may_move_out_cost and x_last_mode_for_init_move_cost.
19257         (have_regs_of_mode, contains_reg_of_mode, move_cost)
19258         (may_move_in_cost, may_move_out_cost): Redefine as macros.
19259         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
19260         (may_move_in_cost, may_move_out_cost): Delete.
19261         (last_mode_for_init_move_cost): Redefine as a macro.
19262
19263 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19264
19265         * hard-reg-set.h (target_hard_regs): New structure.
19266         (default_target_hard_regs): Declare.
19267         (this_target_hard_regs): Declare as a variable or define as a macro.
19268         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
19269         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
19270         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
19271         (reg_class_size, reg_class_subclasses, reg_class_subunion)
19272         (reg_class_superunion, reg_names): Redefine as macros.
19273         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
19274         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
19275         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
19276         (reg_class_contents, reg_class_size, reg_class_subclasses)
19277         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
19278         (default_target_hard_regs): New variable
19279         (this_target_hard_regs, initial_call_really_used_regs)
19280         (initial_reg_alloc_order): New conditional variables.
19281         (initial_reg_names): New variable.
19282         (init_reg_sets): Assert that initial_call_really_used_regs,
19283         initial_reg_alloc_order and initial_reg_names
19284         are all the same size as their variable counterparts.  Use them to
19285         initialize those counterparts.
19286         * target-globals.h (this_target_hard_regs): Declare.
19287         (target_globals): Add a hard_regs field.
19288         (restore_target_globals): Copy the hard_regs field to
19289         this_target_hard_regs.
19290         * target-globals.c: Include hard-reg-set.h.
19291         (default_target_globals): Initialize the hard_regs field.
19292         (save_target_globals): Likewise.
19293
19294 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19295
19296         * Makefile.in (target-globals.o): Depend on $(RTL_H).
19297         * rtl.h (target_rtl): New structure.
19298         (default_target_rtl): Declare.
19299         (this_target_rtl): Declare as a variable or define as a macro.
19300         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
19301         Redefine as macros.
19302         * emit-rtl.c (default_target_rtl): New variable.
19303         (this_target_rtl): New conditional variable.
19304         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
19305         (return_address_pointer_rtx): Delete.
19306         (initial_regno_reg_rtx): New macro.
19307         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
19308         (init_emit_regs): Likewise.
19309         * target-globals.h (this_target_rtl): Declare.
19310         (target_globals): Add a rtl field.
19311         (restore_target_globals): Copy the rtl field to this_target_rtl.
19312         * target-globals.c: Include rtl.h.
19313         (default_target_globals): Initialize the rtl field.
19314         (save_target_globals): Likewise.
19315
19316 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19317
19318         * Makefile.in (target-globals.o): Depend on $(REGS_H).
19319         * regs.h (target_reg_modes): New structure.
19320         (default_target_reg_modes): Declare.
19321         (this_target_reg_modes): Declare as a variable or define as a macro.
19322         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
19323         * reginfo.c (default_target_reg_modes): New variable.
19324         (this_target_reg_modes): New conditional variable.
19325         (hard_regno_nregs, reg_raw_mode): Delete.
19326         * target-globals.h (this_target_regs): Declare.
19327         (target_globals): Add a regs field.
19328         (restore_target_globals): Copy the regs field to this_target_regs.
19329         * target-globals.c: Include regs.h.
19330         (default_target_globals): Initialize the regs field.
19331         (save_target_globals): Likewise.
19332
19333 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19334
19335         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
19336         * doc/tm.texi: Regenerate.
19337         * Makefile.in (OBJS-common): Add target-globals.o.
19338         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
19339         and target-globals.h.
19340         (target-globals.o): New rule.
19341         (GTFILES): Include $(srcdir)/target-globals.h.
19342         * defaults.h (SWITCHABLE_TARGET): Define.
19343         * gengtype.c (open_base_files): Add target-globals.h to the
19344         list of includes.
19345         * target-globals.h: New file.
19346         * target-globals.c: Likewise.
19347
19348         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
19349         * flags.h (target_flag_state): New structure.
19350         (default_target_flag_state): Declare.
19351         (this_target_flag_state): Declare as a variable or define as a macro.
19352         (align_loops_log): Redefine as a macro.
19353         (align_loops_max_skip, align_jumps_log): Likewise.
19354         (align_jumps_max_skip, align_labels_log): Likewise.
19355         (align_labels_max_skip, align_functions_log): Likewise.
19356         * toplev.c (default_target_flag_state): New variable.
19357         (this_target_flag_state): New conditional variable.
19358         (align_loops_log): Delete.
19359         (align_loops_max_skip, align_jumps_log): Likewise.
19360         (align_jumps_max_skip, align_labels_log): Likewise.
19361         (align_labels_max_skip, align_functions_log): Likewise.
19362         * target-globals.h (this_target_flag_state): Declare.
19363         (target_globals): Add a flag_state field.
19364         (restore_target_globals): Copy the flag_state field to
19365         this_target_flag_state.
19366         * target-globals.c: Include flags.h.
19367         (default_target_globals): Initialize the flag_state field.
19368         (save_target_globals): Likewise.
19369
19370 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19371
19372         * postreload.c (reg_symbol_ref[]): New.
19373         (move2add_use_add2_insn): New.
19374         (move2add_use_add3_insn): New.
19375         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
19376         (move2add_note_store): Likewise.
19377
19378 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
19379
19380         PR rtl-optimization/44752
19381         * genautomata.c (main): Don't emit an empty file even if there
19382         is no automaton.
19383
19384 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19385
19386         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
19387         ix86_solaris_return_in_memory.
19388         * config/i386-protos.h: Reflect this.
19389         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19390         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19391         Move ...
19392         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
19393
19394 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19395
19396         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
19397         align the stack when it's going to be saved.
19398
19399 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19400
19401         PR pch/14940
19402         * config/host-solaris.c (mmap_fixed): New function.
19403         (sol_gt_pch_get_address): Use it.
19404         (sol_gt_pch_use_address): Likewise.
19405
19406 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19407
19408         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
19409         pentiumpro on Solaris 8 and 9/x86.
19410         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
19411         Document SSE/SSE2 support.
19412         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
19413
19414 2010-07-12  Andi Kleen  <ak@linux.intel.com>
19415
19416         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
19417         instead of gcc_assert to print better error message for multiple
19418         prevailing defs.
19419
19420 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
19421
19422         * config/i386/i386.c (ix86_asm_output_function_label): Change format
19423         string placeholder from 0x%x to %#x.
19424         (ix86_code_end): Use putc to output '\n'.
19425         (ix86_print_operand) <case ';'>: Use putc to output ';'.
19426
19427 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
19428
19429         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
19430         in directive -export.
19431
19432 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
19433
19434         * reginfo.h (reg_classes_intersect_p): Change arguments type to
19435         reg_class_t.
19436         * rtl.h (reg_classes_intersect_p): Adjust prototype.
19437
19438         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19439         Remove macros.
19440         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
19441         rs6000_memory_move_cost): Remove
19442         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
19443         TARGET_MEMORY_MOVE_COST): Define.
19444         (rs6000_register_move_cost): Make static. Change arguments type from
19445         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
19446         (rs6000_memory_move_cost): Make static. Change arguments type from
19447         'enum reg_class' to reg_class_t.
19448
19449 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
19450
19451         PR middle-end/42505
19452         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
19453         lookup code into....
19454         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
19455         new functions.
19456         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
19457         * cfgloopanal.c (target_clobbered_regs): Define.
19458         (init_set_costs): Initialize target_clobbered_regs.
19459         (estimate_reg_pressure_cost): Add call_p argument.  When true,
19460         adjust the number of available registers to exclude the
19461         call-clobbered registers.
19462         * cfgloop.h (target_clobbered_regs): Declare.
19463         (estimate_reg_pressure_cost): Adjust declaration.
19464         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
19465         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
19466         (determine_set_costs): Dump target_clobbered_regs.
19467         (loop_body_includes_call): New function.
19468         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
19469         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
19470         call_p flag through.
19471         (best_gain_for_invariant): Likewise.
19472         (find_invariants_to_move): Likewise.
19473         (move_single_loop_invariants): Likewise, using already-computed
19474         has_call field.
19475
19476 2010-07-10  Richard Guenther  <rguenther@suse.de>
19477             Joern Rennecke  <joern.rennecke@embecosm.com>
19478
19479         PR debug/44832
19480         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
19481         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
19482         unless they have DECL_IGNORED_P set.
19483
19484 2010-07-10  Richard Guenther  <rguenther@suse.de>
19485
19486         PR lto/44889
19487         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
19488         helper function.
19489         (gimple_types_compatible_p): Similar to pointed-to
19490         types allow and merge a mix of complete and incomplete aggregate.
19491         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
19492         (iterative_hash_gimple_type): Adjust for that.
19493
19494 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
19495
19496         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
19497
19498 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
19499
19500         PR objc/44140
19501         * config/darwin.c (output_objc_section_asm_op): Save and restore
19502         section when outputting ObjC section list.
19503
19504 2010-07-09  Jan Hubicka  <jh@suse.cz>
19505
19506         * lto-streamer-out.c (produce_symtab): Do not write alias
19507         cgraph/varpool nodes.
19508
19509 2010-07-09  Jan Hubicka  <jh@suse.cz>
19510
19511         * tree-inline.c (declare_return_variable): Fix ICE while
19512         inlining DECL_BY_VALUE function not in SSA form
19513
19514 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
19515
19516         PR tree-optimization/44576
19517         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
19518         New.  Pull out from is_loop_prefetching_profitable to implement
19519         the trip count to ahead ratio heuristic.
19520         (mem_ref_count_reasonable_p): New.  Pull out from
19521         is_loop_prefetching_profitable to implement the instruction to
19522         memory reference ratio heuristic.  Also consider not reasonable if
19523         the memory reference count is above a threshold (to avoid
19524         explosive compilation time.
19525         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
19526         is_loop_prefetching_profitable to implement the instruction to
19527         prefetch ratio heuristic.
19528         (is_loop_prefetching_profitable): Removed.
19529         (loop_prefetch_arrays): Distribute the cost analysis across the
19530         function to allow early exit of the prefetch analysis.
19531         is_loop_prefetching_profitable is splitted into three functions,
19532         with each one called as early as possible.
19533         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
19534         number of memory references in a loop is considered too many.
19535
19536 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19537
19538         * reload.c (find_reloads): Don't clear badop if we have a winreg
19539         alternative, but not win, and the class only has fixed regs.
19540         * hard-reg-set.h (class_only_fixed_regs): Declare.
19541         * reginfo.c (class_only_fixed_regs): New array.
19542         (init_reg_sets_1): Initialize it.
19543         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
19544         discourage alternatives using the stack pointer.
19545
19546         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
19547
19548         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
19549
19550         * config/arm/arm.md (cbranchqi4): Fix array size.
19551         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
19552         calculating length.
19553
19554 2010-07-09  Richard Guenther  <rguenther@suse.de>
19555
19556         * gimple.c (struct type_fixup_s): New struct and VEC type.
19557         (gimple_register_type_fixups): New static global.
19558         (gimple_queue_type_fixup): New function.
19559         (gimple_types_compatible_p): Queue type fixups instead of
19560         applying them here.
19561         (gimple_register_type): Apply queued fixups for the
19562         canonical type.  Empty the type fixup queue.
19563
19564 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19565
19566         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
19567         * configure: Regenerate.
19568         * config.in: Ditto.
19569
19570 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19571             Denys Vlasenko  <dvlasenk@redhat.com>
19572             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19573
19574         PR tree-optimization/28632
19575         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
19576         (extract_range_from_binary_expr): Further optimize
19577         BIT_AND_EXPR and BIT_IOR_EXPR.
19578
19579 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
19580
19581         * tree-if-conv.c (fold_or_predicates): New.
19582         (add_to_predicate_list): Call it.
19583
19584 2010-07-09  Richard Guenther  <rguenther@suse.de>
19585
19586         PR middle-end/44890
19587         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
19588         if base is a pointer.
19589         * tree-cfg.c (verify_expr): Update MEM_REF checking.
19590
19591 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
19592
19593         PR target/44877
19594         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
19595         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
19596         builtin mask for load/store builtins.
19597
19598 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19599
19600         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
19601         for "lock addl".
19602         * configure: Regenerate.
19603         * config/i386/i386.c (ix86_print_operand) <case ';'>:
19604         Remove TARGET_MACHO.
19605
19606 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
19607
19608         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
19609         default ISA flags.
19610         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
19611
19612 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
19613
19614         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
19615
19616 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
19617
19618         * config/picochip/picochip.md (commsTestPort): Emit more
19619         efficient sequence for tstport instruction.
19620
19621 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19622
19623         * config/i386/i386.c (ix86_veclib_handler): Make static.
19624
19625 2010-07-09  Richard Guenther  <rguenther@suse.de>
19626
19627         PR tree-optimization/44852
19628         * tree-ssa-alias.c: Include toplev.h for exact_log2.
19629         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
19630         in MEM_REF.
19631         (indirect_refs_may_alias_p): Likewise.
19632         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
19633
19634 2010-07-09  Richard Guenther  <rguenther@suse.de>
19635
19636         PR tree-optimization/44882
19637         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
19638         sets do conflict.
19639         (vectorizable_load): Likewise.
19640
19641 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19642
19643         PR target/40657
19644         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
19645         All callers changed.
19646         Handle the case when we're called for the epilogue.
19647         (thumb_unexpanded_epilogue): Use it.
19648         (thumb1_expand_epilogue): Likewise.
19649
19650 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19651
19652         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
19653         both ranges are range_int_cst_p with non-negative minimum,
19654         try harder to derive smaller range.
19655
19656 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19657
19658         * genrecog.c: Include diagnostic-core.h before toplev.h.
19659         * genoutput.c: Likewise.
19660         * genextract.c: Likewise.
19661         * genautomata.c: Likewise.
19662         * genemit.c: Likewise.
19663         * genpeep.c: Likewise.
19664         * genattrtab.c: Likewise.
19665         * genconditions.c: Likewise.
19666         * genpreds.c: Likewise.
19667
19668 2010-07-08  Andi Kleen  <ak@linux.intel.com>
19669
19670         * lto-section-in.c (lto_section_name): Add missing comma.
19671
19672 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
19673
19674         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
19675         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
19676         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
19677         (ia64_override_options): Rename to...
19678         (ia64_option_override): ... this one. Make static.
19679
19680 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19681
19682         PR middle-end/44843
19683         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
19684         pointed-to type of the offset in a MEM_REF to compute the alignment.
19685
19686 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
19687
19688         * final.c (final_scan_insn): Replace
19689         TARGET_UNWIND_INFO macro check by unwind_emit
19690         hook NULL check.
19691         * targhooks.c (default_unwind_emit): Removed.
19692         * targhooks.h (default_unwind_emit): Likewise.
19693         * target.def (unwind_emit): Set default value to NULL.
19694
19695         * config/i386/i386-protos.h (ix86_asm_output_function_label):
19696         New prototype.
19697         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
19698         for NULL fntype argument and allow 64-bit targets.
19699         (ix86_asm_output_function_label): New function.
19700         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
19701         (ix86_handle_fndecl_attribute): Likewise.
19702         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
19703         * doc/doc/tm.texi: Regenerated.
19704         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
19705         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
19706         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
19707         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
19708         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19709         * config/elfos.h: Likewise.
19710         * config/i386/cygming.h: Likewise.
19711         * config/netbsd-aout.h: Likewise.
19712         * config/openbsd.h: Likewise.
19713         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
19714         by ix86_asm_output_function_label function call.
19715         * varasm.c (assemble_start_function): Use
19716         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19717
19718 2010-07-08  Jan Hubicka  <jh@suse.cz>
19719
19720         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
19721         New function.
19722         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
19723         Declare.
19724         * ipa-cp.c (ipcp_estimate_growth): Use it.
19725         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
19726         Likewise.
19727
19728 2010-07-08  Jan Hubicka  <jh@suse.cz>
19729
19730         * tree-inline.c (declare_return_variable): Allocate annotation for new
19731         temporary.
19732
19733 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19734
19735         PR tree-optimization/44710
19736         * tree-if-conv.c (parse_predicate): New.
19737         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
19738         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
19739
19740 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19741
19742         * common.opt (ftree-loop-if-convert): New flag.
19743         * doc/invoke.texi (ftree-loop-if-convert): Documented.
19744         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
19745         when flag_tree_loop_if_convert is set.
19746
19747 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
19748
19749         * config/i386/i386.c: Use short syntax for function calls
19750         through function pointers.
19751         * config/i386/i386.md: Ditto.
19752
19753 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19754
19755         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
19756
19757 2010-07-08  Richard Guenther  <rguenther@suse.de>
19758
19759         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
19760         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
19761
19762 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
19763
19764         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
19765         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
19766         (loc_list_from_tree): Likewise.
19767         (output_loc_operands): Handle outputting DW_OP_const[48]u
19768         with loc->dtprel set.
19769         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
19770
19771 2010-07-08  Jan Hubicka  <jh@suse.cz>
19772
19773         * ipa.c: Include pointer-set.h
19774         (cgraph_externally_visible_p): New attribute ALIASED;
19775         when in LTO, hidden symbols are local unless they are aliased.
19776         (function_and_variable_visibility): Compute aliased nodes;
19777         handle LTO and hidden symbol on functions and vars.
19778         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
19779         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
19780
19781 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19782
19783         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
19784         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19785         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19786         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19787         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19788         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
19789         (ix86_gen_probe_stack_range): Likewise.
19790         (override_options): Set them.
19791         (ix86_target_stack_probe): New function.
19792         (ix86_compute_frame_layout): Force use of push instructions to
19793         save registers if stack checking with probes is enabled.
19794         (get_scratch_register_on_entry): New function.
19795         (release_scratch_register_on_entry): Likewise.
19796         (ix86_adjust_stack_and_probe): Likewise.
19797         (output_adjust_stack_and_probe): Likewise.
19798         (ix86_emit_probe_stack_range): Likewise.
19799         (output_probe_stack_range): Likewise.
19800         (ix86_expand_prologue): Emit stack checking code if static built-in
19801         stack checking is enabled.
19802         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
19803         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
19804         (output_adjust_stack_and_probe): Likewise.
19805         (output_probe_stack_range): Likewise.
19806         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
19807         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
19808         TARGET_STACK_PROBE.
19809         (allocate_stack_worker_64): Likewise.
19810         (allocate_stack): Likewise.
19811         (adjust_stack_and_probe): New insn.
19812         (probe_stack_range): Likewise.
19813
19814 2010-07-08  Richard Guenther  <rguenther@suse.de>
19815
19816         PR tree-optimization/44831
19817         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
19818         a MEM_REF preserving TBAA info of the original dereference.
19819         Dereference the original pointer if the address is not invariant.
19820         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
19821         at least one invariant address that we are going to dereference.
19822
19823 2010-07-08  Richard Guenther  <rguenther@suse.de>
19824
19825         PR tree-optimization/44861
19826         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
19827         information when building MEM_REFs.
19828         (vectorizable_load): Likewise.
19829         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
19830
19831 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19832
19833         * config/sol2-c.c: Do not include diagnostic-core.h.
19834
19835 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19836
19837         PR bootstrap/44768
19838         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
19839         with respect to current_function_decl. Pass decl of the function.
19840         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
19841         * ipa-inline.c (compute_inline_parameters): Pass decl to
19842         estimated_stack_frame_size.
19843
19844 2010-07-08  Richard Guenther  <rguenther@suse.de>
19845
19846         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
19847         New function.
19848         (valueize_refs): Call it.
19849
19850 2010-07-08  Richard Guenther  <rguenther@suse.de>
19851
19852         PR rtl-optimization/44838
19853         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
19854         SSA form do not use pointer equivalence.
19855
19856 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19857
19858         * dwarf2out.c (AT_linkage_name): Delete.
19859         (add_linkage_attr): New function.
19860         (add_linkage_name): Call it to emit the linkage attribute.
19861         (dwarf2out_finish): Likewise.
19862         (move_linkage_attr): Explicitly accept both attribute variants.
19863
19864 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19865
19866         * toplev.h: Do not include diagnostic-core.h.
19867         Include diagnostic-core.h in every file that includes toplev.h.
19868         * c-tree.h: Do not include toplev.h.
19869         * pretty-print.h: Update comment.
19870         * Makefile.in: Update dependencies.
19871         * alias.c: Include diagnostic-core.h in every file that includes
19872         toplev.h.
19873         * attribs.c: Likewise.
19874         * auto-inc-dec.c: Likewise.
19875         * bb-reorder.c: Likewise.
19876         * bt-load.c: Likewise.
19877         * caller-save.c: Likewise.
19878         * calls.c: Likewise.
19879         * cfg.c: Likewise.
19880         * cfganal.c: Likewise.
19881         * cfgbuild.c: Likewise.
19882         * cfgcleanup.c: Likewise.
19883         * cfghooks.c: Likewise.
19884         * cfgloop.c: Likewise.
19885         * combine.c: Likewise.
19886         * config/alpha/alpha.c: Likewise.
19887         * config/arc/arc.c: Likewise.
19888         * config/arm/arm.c: Likewise.
19889         * config/arm/pe.c: Likewise.
19890         * config/avr/avr.c: Likewise.
19891         * config/bfin/bfin.c: Likewise.
19892         * config/cris/cris.c: Likewise.
19893         * config/crx/crx.c: Likewise.
19894         * config/darwin-c.c: Likewise.
19895         * config/darwin.c: Likewise.
19896         * config/fr30/fr30.c: Likewise.
19897         * config/frv/frv.c: Likewise.
19898         * config/h8300/h8300.c: Likewise.
19899         * config/host-darwin.c: Likewise.
19900         * config/i386/i386.c: Likewise.
19901         * config/i386/netware.c: Likewise.
19902         * config/i386/nwld.c: Likewise.
19903         * config/i386/winnt-cxx.c: Likewise.
19904         * config/i386/winnt-stubs.c: Likewise.
19905         * config/i386/winnt.c: Likewise.
19906         * config/ia64/ia64-c.c: Likewise.
19907         * config/ia64/ia64.c: Likewise.
19908         * config/iq2000/iq2000.c: Likewise.
19909         * config/lm32/lm32.c: Likewise.
19910         * config/m32c/m32c-pragma.c: Likewise.
19911         * config/m32c/m32c.c: Likewise.
19912         * config/m32r/m32r.c: Likewise.
19913         * config/m68hc11/m68hc11.c: Likewise.
19914         * config/m68k/m68k.c: Likewise.
19915         * config/mcore/mcore.c: Likewise.
19916         * config/mep/mep-pragma.c: Likewise.
19917         * config/mep/mep.c: Likewise.
19918         * config/mmix/mmix.c: Likewise.
19919         * config/mn10300/mn10300.c: Likewise.
19920         * config/moxie/moxie.c: Likewise.
19921         * config/pa/pa.c: Likewise.
19922         * config/pdp11/pdp11.c: Likewise.
19923         * config/picochip/picochip.c: Likewise.
19924         * config/rs6000/rs6000-c.c: Likewise.
19925         * config/rs6000/rs6000.c: Likewise.
19926         * config/rx/rx.c: Likewise.
19927         * config/s390/s390.c: Likewise.
19928         * config/score/score.c: Likewise.
19929         * config/score/score3.c: Likewise.
19930         * config/score/score7.c: Likewise.
19931         * config/sh/sh.c: Likewise.
19932         * config/sh/symbian-base.c: Likewise.
19933         * config/sh/symbian-c.c: Likewise.
19934         * config/sh/symbian-cxx.c: Likewise.
19935         * config/sol2-c.c: Likewise.
19936         * config/sol2.c: Likewise.
19937         * config/sparc/sparc.c: Likewise.
19938         * config/spu/spu.c: Likewise.
19939         * config/stormy16/stormy16.c: Likewise.
19940         * config/v850/v850-c.c: Likewise.
19941         * config/v850/v850.c: Likewise.
19942         * config/vax/vax.c: Likewise.
19943         * config/vxworks.c: Likewise.
19944         * config/xtensa/xtensa.c: Likewise.
19945         * convert.c: Likewise.
19946         * cse.c: Likewise.
19947         * cselib.c: Likewise.
19948         * dbgcnt.c: Likewise.
19949         * dbxout.c: Likewise.
19950         * ddg.c: Likewise.
19951         * dominance.c: Likewise.
19952         * emit-rtl.c: Likewise.
19953         * explow.c: Likewise.
19954         * expmed.c: Likewise.
19955         * fixed-value.c: Likewise.
19956         * fold-const.c: Likewise.
19957         * fwprop.c: Likewise.
19958         * gcse.c: Likewise.
19959         * ggc-common.c: Likewise.
19960         * ggc-page.c: Likewise.
19961         * ggc-zone.c: Likewise.
19962         * gimple-low.c: Likewise.
19963         * gimplify.c: Likewise.
19964         * graph.c: Likewise.
19965         * haifa-sched.c: Likewise.
19966         * ifcvt.c: Likewise.
19967         * implicit-zee.c: Likewise.
19968         * integrate.c: Likewise.
19969         * ira-build.c: Likewise.
19970         * ira-color.c: Likewise.
19971         * ira-conflicts.c: Likewise.
19972         * ira-costs.c: Likewise.
19973         * ira-lives.c: Likewise.
19974         * ira.c: Likewise.
19975         * lists.c: Likewise.
19976         * loop-doloop.c: Likewise.
19977         * loop-iv.c: Likewise.
19978         * lto-opts.c: Likewise.
19979         * lto-symtab.c: Likewise.
19980         * main.c: Likewise.
19981         * modulo-sched.c: Likewise.
19982         * optabs.c: Likewise.
19983         * params.c: Likewise.
19984         * plugin.c: Likewise.
19985         * postreload-gcse.c: Likewise.
19986         * postreload.c: Likewise.
19987         * predict.c: Likewise.
19988         * profile.c: Likewise.
19989         * real.c: Likewise.
19990         * regcprop.c: Likewise.
19991         * reginfo.c: Likewise.
19992         * regmove.c: Likewise.
19993         * reorg.c: Likewise.
19994         * resource.c: Likewise.
19995         * rtl.c: Likewise.
19996         * rtlanal.c: Likewise.
19997         * sched-deps.c: Likewise.
19998         * sched-ebb.c: Likewise.
19999         * sched-rgn.c: Likewise.
20000         * sdbout.c: Likewise.
20001         * sel-sched-dump.c: Likewise.
20002         * sel-sched-ir.c: Likewise.
20003         * simplify-rtx.c: Likewise.
20004         * stmt.c: Likewise.
20005         * stor-layout.c: Likewise.
20006         * store-motion.c: Likewise.
20007         * targhooks.c: Likewise.
20008         * tree-cfg.c: Likewise.
20009         * tree-cfgcleanup.c: Likewise.
20010         * tree-dump.c: Likewise.
20011         * tree-eh.c: Likewise.
20012         * tree-inline.c: Likewise.
20013         * tree-nomudflap.c: Likewise.
20014         * tree-object-size.c: Likewise.
20015         * tree-optimize.c: Likewise.
20016         * tree-outof-ssa.c: Likewise.
20017         * tree-phinodes.c: Likewise.
20018         * tree-profile.c: Likewise.
20019         * tree-ssa-ccp.c: Likewise.
20020         * tree-ssa-coalesce.c: Likewise.
20021         * tree-ssa-live.c: Likewise.
20022         * tree-ssa-loop-niter.c: Likewise.
20023         * tree-ssa-loop-prefetch.c: Likewise.
20024         * tree-ssa-loop.c: Likewise.
20025         * tree-ssa-structalias.c: Likewise.
20026         * tree-ssa-uninit.c: Likewise.
20027         * tree-ssa.c: Likewise.
20028         * tree-vect-data-refs.c: Likewise.
20029         * tree-vect-loop-manip.c: Likewise.
20030         * tree-vect-loop.c: Likewise.
20031         * tree-vect-patterns.c: Likewise.
20032         * tree-vect-stmts.c: Likewise.
20033         * tree-vrp.c: Likewise.
20034         * varasm.c: Likewise.
20035         * vec.c: Likewise.
20036         * web.c: Likewise.
20037         * xcoffout.c: Likewise.
20038
20039 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
20040
20041         * gengtype.c (write_field_root): New function.
20042         (write_root): Use it.
20043
20044 2010-07-07  Wei Guozhi  <carrot@google.com>
20045
20046         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20047         of lowest bits to lshift/compare): Add a missing line.
20048
20049 2010-07-07  Wei Guozhi  <carrot@google.com>
20050
20051         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20052         of lowest bits to lshift/compare): New.
20053
20054 2010-07-07  Tom Tromey  <tromey@redhat.com>
20055
20056         * doc/tm.texi: Update.
20057         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
20058         Add @hook.
20059         * target.def (want_debug_pub_sections): New hook.
20060         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
20061         * dwarf2out.c (add_pubname_string): Check
20062         targetm.want_debug_pub_sections.
20063         (add_pubname): Likewise.
20064         (add_pubtype): Likewise.
20065
20066 2010-07-07  Jie Zhang  <jie@codesourcery.com>
20067
20068         * genautomata.c (output_automata_list_min_issue_delay_code):
20069         Correctly decompress min_issue_delay.
20070
20071 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20072
20073         PR rtl-optimization/44404
20074         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
20075         possible, use reg_overlap_mentioned_p instead.
20076
20077 2010-07-07  Duncan Sands  <baldrick@free.fr>
20078
20079         PR middle-end/41355
20080         * tree.c (build_function_type_skip_args): Copy the original type using
20081         build_distinct_type_copy rather than copy_node.
20082
20083 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20084
20085         PR target/44850
20086         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
20087         revision 161876.
20088         (ix86_expand_prologue): Likewise.
20089         (ix86_handle_fndecl_attribute): Likewise.
20090         (ix86_asm_declare_function_name): Likewise.
20091         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20092         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20093         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
20094         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
20095         * doc/extend.texi: Likewise.
20096
20097 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20098
20099         PR target/44844
20100         * config/i386/i386.md (rdrand<mode>): Changed to expand to
20101         retry if the carry flag isn't valid.
20102         (rdrand<mode>_1): New.
20103
20104 2010-07-07  Richard Guenther  <rguenther@suse.de>
20105
20106         PR middle-end/44790
20107         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
20108         for expanding the constant offset for MEM_REFs.
20109
20110 2010-07-07  Richard Guenther  <rguenther@suse.de>
20111
20112         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
20113         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
20114         * gimple.h (is_gimple_operand): Remove.
20115         * gimple.c (is_gimple_operand): Likewise.
20116         (walk_gimple_op): Fix wi->val_only setting for calls.
20117         * tree-cfg.c (verify_gimple_call): Fix argument validation.
20118         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
20119         invalid gimple calls.
20120
20121 2010-07-06  Jan Hubicka  <jh@suse.cz>
20122
20123         * lto-cgraph.c (output_cgraph): Add missing declaration.
20124
20125 2010-07-06  Jan Hubicka  <jh@suse.cz>
20126
20127         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
20128         partition.
20129
20130 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
20131
20132         * doc/gimple.texi (GIMPLE_DEBUG): Document.
20133         * doc/rtl.texi (Debug Information): New node.
20134         (NOTE_INSN_VAR_LOCATION): Document.
20135         (debug_insn): Likewise.
20136         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
20137
20138 2010-07-07  Jan Hubicka  <jh@suse.cz>
20139
20140         With parts by Richard Guenther.
20141
20142         PR middle-end/44813
20143         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
20144         for functions passed by reference.
20145         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
20146         in memory when passed by reference.
20147         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
20148         beggining.
20149         * ipa-split.c (split_function): Cleanup way return value is passed;
20150         handle SSA DECL_BY_REFERENCE retvals.
20151         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
20152         DECL_BY_REFERENCE is set.
20153         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
20154         find_what_p_points_to): Handle RESULT_DECL.
20155         * tree-inline.c (declare_return_variable): Get new entry_block argument;
20156         when passing by reference ensure that RESULT_DECL is gimple_val.
20157         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
20158         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
20159
20160 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20161
20162         PR rtl-optimization/44787
20163         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
20164         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
20165
20166 2010-07-06  Jan Hubicka  <jh@suse.cz>
20167
20168         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
20169         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
20170         with body can prevail.
20171         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
20172         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
20173         * cgraph.c (cgraph_get_node_or_alias): New function.
20174         * cgraph.h (cgraph_get_node_or_alias): Declare.
20175
20176 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
20177
20178         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
20179         support.
20180         (ix86_expand_prologue): Likewise.
20181         (ix86_handle_fndecl_attribute): Likewise.
20182         (ix86_asm_declare_function_name): New function for
20183         ASM_DECLARE_FUNCTION_NAME.
20184         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
20185         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
20186         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
20187         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
20188         * doc/extend.texi: Adjust documentation about ms_hook_prologue
20189         attribute.
20190
20191 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20192
20193         * config/i386/i386.md (immediate_operand): New mode attribute.
20194
20195         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
20196         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
20197         using P mode iterator.
20198         (pro_epilogue_adjust_stack_di_2): Rename from
20199         pro_epilogue_adjust_stack_rex64_2.
20200
20201         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
20202
20203 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20204
20205         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
20206         through gen_mov_insv_1 function pointer.
20207         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
20208         gen_truncxf<mode>2 through gen_truncxf function pointer.
20209         (remainder<mode>3): Ditto.
20210         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
20211         (allocate_stack): Call gen_allocate_stack_worker_64 or
20212         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
20213         function pointer.
20214         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
20215         function pointer.
20216
20217 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20218
20219         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
20220         operand constraint instead of <r><i>m.
20221
20222 2010-07-06  Richard Guenther  <rguenther@suse.de>
20223
20224         PR middle-end/44828
20225         * convert.c (convert_to_integer): Watch out for overflowing
20226         MULT_EXPR as well.
20227
20228 2010-07-05  Jan Hubicka  <jh@suse.cz>
20229
20230         * lto-streamer.c (write_symbol_vec): Rename to ...
20231         (write_symbol) ... this one; write only symbol given and when
20232         present in cache. Sanity check that what is defined is present
20233         in cgraph/varpool with body/finalized decl.
20234         (write_symbols_of_kind): Remove.
20235         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
20236         pairs to produce symtab.
20237         (produce_asm_for_decls): Update call of produce_symtab; don't do so
20238         when doing WPA streaming.
20239
20240 2010-07-05  Jan Hubicka  <jh@suse.cz>
20241
20242         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
20243         function is still available to fold into.
20244
20245 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20246
20247         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
20248         * function.h (struct_function): Change type of local_decls field
20249         to a VEC.
20250         (add_local_decl): New function.
20251         (FOR_EACH_LOCAL_DECL): New macro.
20252         * cfgexpand.c (init_vars_expansion): Adjust for new type of
20253         cfun->local_decls.
20254         (estimated_stack_frame_size): Likewise.
20255         (expand_used_vars): Likewise.
20256         * cgraphbuild.c (build_cgraph_edges): Likewise.
20257         * function.c (instantiate_decls_1): Likewise.
20258         * ipa-struct-reorg.c (build_data_structure): Likewise.
20259         * ipa-type-escape.c (analyze_function): Likewise.
20260         * lto-streamer-in.c (input_function): Likewise.
20261         * lto-streamer-out.c (output_function): Likewise.
20262         * tree-ssa-live.c (remove_unused_locals): Likewise.
20263         * tree.c (free_lang_data_in_decl): Likewise.
20264         (find_decls_types_in_node): Likewise.
20265         * omp-low.c (remove_exit_barrier): Likewise.
20266         (expand_omp_taskreg): Likewise.
20267         (list2chain): Rename to...
20268         (vec2chain): ...this.  Adjust.
20269         * cgraphunit.c (assemble_thunk): Call add_local_decl.
20270         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
20271         * gimple-low.c (record_vars_into): Likewise.
20272         * tree-inline.c (remap_decls): Likewise.
20273         (declare_return_variable): Likewise.
20274         (declare_inline_vars): Likewise.
20275         (copy_forbidden): Adjust for new type of cfun->local_decls.
20276         (add_local_variables): New function.
20277         (expand_call_inline): Call it.
20278         (tree_function_versioning): Likewise.
20279
20280 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
20281
20282         AVX Programming Reference (June, 2010)
20283         * config/i386/cpuid.h (bit_F16C): New.
20284         (bit_RDRND): Likewise.
20285         (bit_FSGSBASE): Likewise.
20286
20287         * config/i386/i386-builtin-types.def: Add
20288         "DEF_FUNCTION_TYPE (UINT16)", function types for
20289         float16 <-> float conversions and
20290         "DEF_FUNCTION_TYPE (VOID, UINT64)".
20291
20292         * config/i386/i386-c.c (ix86_target_macros_internal): Support
20293         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
20294         OPTION_MASK_ISA_F16C.
20295
20296         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
20297         (OPTION_MASK_ISA_RDRND_SET): Likewise.
20298         (OPTION_MASK_ISA_F16C_SET): Likewise.
20299         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
20300         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
20301         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
20302         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
20303         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
20304         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
20305         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
20306         (override_options): Handle them.
20307         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
20308         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
20309         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
20310         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
20311         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
20312         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
20313         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
20314         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
20315         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
20316         (bdesc_args): Likewise.
20317         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
20318         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
20319         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
20320         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
20321         Handle non-memory store.
20322
20323         * config/i386/i386.h (TARGET_FSGSBASE): New.
20324         (TARGET_RDRND): Likewise.
20325         (TARGET_F12C): Likewise.
20326
20327         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
20328         (UNSPEC_VCVTPS2PH): Likewise.
20329         (UNSPECV_RDFSBASE): Likewise.
20330         (UNSPECV_RDGSBASE): Likewise.
20331         (UNSPECV_WRFSBASE): Likewise.
20332         (UNSPECV_WRGSBASE): Likewise.
20333         (UNSPECV_RDRAND): Likewise.
20334         (rdfsbase<mode>): Likewise.
20335         (rdgsbase<mode>): Likewise.
20336         (wrfsbase<mode>): Likewise.
20337         (wrgsbase<mode>): Likewise.
20338         (rdrand<mode>): Likewise.
20339
20340         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
20341
20342         * config/i386/immintrin.h (_rdrand_u16): New.
20343         (_rdrand_u32): Likewise.
20344         (_readfsbase_u32): Likewise.
20345         (_readfsbase_u64): Likewise.
20346         (_readgsbase_u32): Likewise.
20347         (_readgsbase_u64): Likewise.
20348         (_writefsbase_u32): Likewise.
20349         (_writefsbase_u64): Likewise.
20350         (_writegsbase_u32): Likewise.
20351         (_writegsbase_u64): Likewise.
20352         (_rdrand_u64): Likewise.
20353         (_cvtsh_ss): Likewise.
20354         (_mm_cvtph_ps): Likewise.
20355         (_mm256_cvtph_ps): Likewise.
20356         (_cvtss_sh): Likewise.
20357         (_mm_cvtps_ph): Likewise.
20358         (_mm256_cvtps_ph): Likewise.
20359
20360         * config/i386/sse.md (vcvtph2ps): New.
20361         (*vcvtph2ps_load): Likewise.
20362         (vcvtph2ps256): Likewise.
20363         (vcvtps2ph): Likewise.
20364         (*vcvtps2ph): Likewise.
20365         (*vcvtps2ph_store): Likewise.
20366         (vcvtps2ph256): Likewise.
20367
20368         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
20369
20370         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
20371
20372 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
20373
20374         PR bootstrap/44512
20375         * genenums.c (main): Output include of insn-constants.h
20376         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
20377
20378 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
20379
20380         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
20381         (override_options): Initialize it.
20382         (ix86_expand_prologue): Use it.
20383
20384 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20385
20386         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
20387
20388 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20389
20390         * double-int.h (fit_double_type): Remove declaration.
20391         * double-int.c (fit_double_type): Remove function.
20392         * tree.h (int_fits_type_p): Adjust prototype.
20393         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
20394         instead of fit_double_type.
20395         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
20396         instead of fit_double_type and build_int_cst_wide.
20397         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
20398         instead of fit_double_type and build_int_cst_wide.
20399         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
20400         of fit_double_type.
20401
20402 2010-07-05  Jan Hubicka  <jh@suse.cz>
20403
20404         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
20405         in_other_partition.
20406         * lto-cgraph.c (referenced_from_other_partition_p,
20407         reachable_from_other_partition_p): Use in_other_partition flags.
20408         (output_node, output_varpool_node): COMDAT nodes always have private
20409         copies and thus are never used from other partition.
20410
20411 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20412
20413         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
20414         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
20415         * config/ia64/ia64.c Include reload.h.
20416         (ia64_memory_move_cost): New function.
20417         (TARGET_MEMORY_MOVE_COST): Define.
20418         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
20419         memory_move_cost.
20420
20421 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
20422
20423         PR middle-end/42505
20424         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
20425         comments about cost model.
20426         (try_add_cand_for):  Add second strategy for choosing initial set
20427         based on original IVs, controlled by ORIGINALP argument.
20428         (get_initial_solution): Add ORIGINALP argument.
20429         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
20430         (find_optimal_iv_set): Try two different strategies for choosing
20431         the IV set, and return the one with lower cost.
20432
20433 2010-07-05  Richard Guenther  <rguenther@suse.de>
20434
20435         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
20436
20437 2010-07-05  Richard Guenther  <rguenther@suse.de>
20438
20439         * tree.c (reference_alias_ptr_type): New function.
20440         * tree.h (reference_alias_ptr_type): Declare.
20441         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
20442         allow non-TARGET_MEM_REF new refs.
20443         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
20444         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
20445         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
20446         (create_mem_ref): Get alias pointer type.  Adjust calls to
20447         create_mem_ref_raw.
20448         (maybe_fold_tmr): Likewise.
20449         * tree-flow.h (create_mem_ref): Adjust prototype.
20450
20451 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20452
20453         PR c++/44808
20454         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
20455         *from_p is VAR_DECL.
20456
20457 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20458
20459         * tree.h (build_call_list): Remove.
20460         * tree.c (build_call_list): Remove.
20461
20462 2010-07-05  Richard Guenther  <rguenther@suse.de>
20463
20464         * double-int.h (double_int_sub): Declare.
20465         * double-int.c (double_int_sub): New function.
20466         * dwarf2out.c (field_byte_offset): Use it.
20467         * fixed-value.c (do_fixed_add): Likewise.
20468         (do_fixed_multiply): Likewise.
20469         (do_fixed_divide): Likewise.
20470         * tree-predcom.c (add_ref_to_chain): Likewise.
20471         (determine_roots_comp): Likewise.
20472         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
20473
20474 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20475
20476         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
20477         implementations.
20478
20479 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
20480
20481         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
20482         * arm-modes.def (CC_NOTB): Don't define.
20483         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
20484         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
20485         (LTUGEU): New code_iterator.
20486         (cnb, optab): New corresponding code_attrs.
20487         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
20488         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
20489         using LTUGEU.
20490         (addsi3_carryin_shift_<optab>): Likewise.
20491         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
20492         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
20493         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
20494         (subsi3_compare): Renamed from subsi3_compare0_c.
20495         Change CC_NOTB to CC.
20496         (arm_subsi3_insn): Allow constants for operand 0.
20497         (compare_scc peephole for eq case): New.
20498         (compare_scc splitters): Change CC_NOTB to CC.
20499
20500 2010-07-05  Richard Guenther  <rguenther@suse.de>
20501
20502         * tree-ssa-loop-im.c (for_each_index): Do not handle
20503         ALIGN_INDIRECT_REF.
20504         (gen_lsm_tmp_name): Likewise.
20505         * tree-dump.c (dequeue_and_dump): Likewise.
20506         * tree-pretty-print.c (dump_generic_node): Likewise.
20507         (op_code_prio): Likewise.
20508         (op_symbol_code): Likewise.
20509         * tree.c (staticp): Likewise.
20510         (build1_stat): Likewise.
20511         * tree.h (INDIRECT_REF_P): Likewise.
20512         * fold-const.c (maybe_lvalue_p): Likewise.
20513         (operand_equal_p): Likewise.
20514         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
20515         (ao_ref_init_from_vn_reference): Likewise.
20516         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
20517         (find_interesting_uses_address): Likewise.
20518         * dwarf2out.c (loc_list_from_tree): Likewise.
20519         * gimplify.c (gimplify_expr): Likewise.
20520         * tree-eh.c (tree_could_trap_p): Likewise.
20521         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
20522         * cfgexpand.c (expand_debug_expr): Likewise.
20523         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
20524         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
20525         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
20526         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
20527         * tree-ssa-operands.c (get_expr_operands): Likewise.
20528         * expr.c (safe_from_p): Likewise.
20529         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
20530         * tree-vect-data-refs.c (vect_setup_realignment): Build
20531         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
20532         * tree-vect-stmts.c (vectorizable_load): Likewise.
20533         * tree.def (ALIGN_INDIRECT_REF): Remove.
20534
20535 2010-07-05  Richard Guenther  <rguenther@suse.de>
20536
20537         PR tree-optimization/44784
20538         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
20539         for inserted stmts.
20540         (find_or_generate_expression): Fix SCCVN insertion check.
20541
20542 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
20543
20544         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
20545         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
20546         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
20547         directives.
20548
20549 2010-07-05  Ira Rosen  <irar@il.ibm.com>
20550
20551         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
20552         statements that are not vectorized.
20553         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
20554         in INSIDE_COST.
20555
20556 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
20557
20558         PR bootstrap/44820
20559         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
20560
20561 2010-07-05  Richard Guenther  <rguenther@suse.de>
20562
20563         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
20564         RESULT_DECLs properly.
20565
20566 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
20567
20568         PR rtl-optimization/44695
20569         * config/i386/i386.md (extract_code): Removed.
20570         (<u>divmodqi4): Likewise.
20571         (divmodqi4): New.
20572         (udivmodqi4): Likewise.
20573         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
20574         (udivmodhiqi3): Likewise.
20575
20576 2010-07-04  Jan Hubicka  <jh@suse.cz>
20577
20578         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
20579
20580 2010-07-04  Jan Hubicka  <jh@suse.cz>
20581
20582         * cgraphunit.c (init_cgraph): Only initialize dump file if it
20583         is not already initialized.
20584
20585 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20586
20587         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
20588         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
20589         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
20590         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
20591         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
20592         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
20593         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
20594         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
20595         (sync_new_nand_optab): Redefine as macros.
20596         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
20597         Delete.
20598         (direct_optab_index): New enum.
20599         (direct_optab_d): New structure.
20600         (direct_optab): New typedef.
20601         (direct_optab_table): Declare.
20602         (direct_optab_handler, set_direct_optab_handler): New functions.
20603         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
20604         (sync_lock_release_optab): New macros.
20605         * optabs.c (direct_optab_table): New variable.
20606         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
20607         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
20608         cmpstr_optab and cmpstrn_optab.
20609         (emit_conditional_move): Likewise for movcc_optab.
20610         (can_conditionally_move_p): Likewise for movcc_gen_code.
20611         (init_insn_codes): Clear direct_optab_table.
20612         (init_optabs): Don't initialize the new "direct optabs" here.
20613         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
20614         vcond_gen_code.
20615         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
20616         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
20617         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
20618         (expand_sync_operation): Likewise other sync_*_optabs.
20619         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
20620         to sync_compare_and_swap_optab.
20621         (expand_sync_lock_test_and_set): Use direct_optab_handler for
20622         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
20623         to the names of both.
20624         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
20625         cmpstr_optab and cmpstrn_optab.
20626         (expand_builtin_lock_release): Likewise sync_lock_release.
20627         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
20628         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
20629         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
20630         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
20631         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
20632         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
20633         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
20634         (sync_lock_test_and_set, sync_lock_release): Delete.
20635         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
20636         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
20637         * genopinit.c (optabs): Use set_direct_optab_handler for the new
20638         macro optabs.
20639         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
20640         the "optab" local variable.  Use direct_optab_handler for optab and
20641         sync_compare_and_swap_optab.
20642         * reload1.c (reload_in_optab, reload_out_optab): Delete.
20643         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
20644         reload_in_optab and reload_out_optab.
20645         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
20646         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
20647         * config/pa/pa.c (pa_secondary_reload): Likewise.
20648         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
20649         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
20650         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
20651         (VMSupportsCS8_builtin): Likewise.
20652
20653 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20654
20655         * optabs.h (optab_handlers): Change type of insn_code to int.
20656         (optab_handler, set_optab_handler, convert_optab_handler)
20657         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
20658         CODE_FOR_nothing".
20659         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
20660         (init_insn_codes): Zero both the above arrays.
20661         (init_optabs): Never call init_insn_codes first time around.
20662
20663 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20664
20665         * optabs.h (optab_handler, convert_optab_handler): Turn into
20666         inline functions that return an insn code.
20667         (set_optab_handler, set_convert_optab_handler): New functions.
20668         * builtins.c: Replace optab_handler(X)->insn_code with
20669         optab_handler or set_optab_handler thoughout.  Likewise
20670         convert_optab_handler(X)->insn_code with convert_optab_handler
20671         and set_convert_optab_handler.
20672         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
20673         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
20674         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
20675         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
20676         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
20677         config/spu/spu.c: Likewise.
20678
20679 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
20680
20681         PR target/44531
20682         * config.gcc (sh*-*-*): Use regular expressions instead of
20683         the 'i' modifier for sed substitutions.
20684
20685 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
20686
20687         * gimple.c (gimple_body): Comments added.
20688
20689 2010-07-04  Richard Guenther  <rguenther@suse.de>
20690
20691         PR middle-end/44809
20692         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
20693         of an INDIRECT_REF.
20694
20695 2010-07-04  Richard Guenther  <rguenther@suse.de>
20696
20697         PR tree-optimization/44479
20698         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
20699         extra SSA name copy statements which preserves points-to
20700         information.
20701         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
20702         Copy points-to information for all pointers.  Properly handle
20703         MEM_REFs.
20704         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
20705         copy statements.
20706         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
20707         dependency.
20708
20709 2010-07-04  Richard Guenther  <rguenther@suse.de>
20710
20711         PR middle-end/44785
20712         * tree-inline.c (initialize_inlined_parameters): Do not
20713         re-use pointer-map slot over remap_type call.
20714
20715 2010-07-04  Richard Guenther  <rguenther@suse.de>
20716
20717         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
20718
20719 2010-07-04  Richard Guenther  <rguenther@suse.de>
20720
20721         PR tree-optimization/44656
20722         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
20723         again after value-replacing in the defintions lhs.
20724
20725 2010-07-04  Ira Rosen  <irar@il.ibm.com>
20726             Revital Eres  <eres@il.ibm.com>
20727
20728         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
20729         Document new arguments.
20730         * doc/tm.texi: Regenerate.
20731         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
20732         Handle unaligned store.
20733         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
20734         * target.def (builtin_vectorization_cost): Add new arguments.
20735         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
20736         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
20737         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
20738         (vect_vfa_segment_size): Fix indentation.
20739         * tree-vectorizer.h (struct _vect_peel_info): New.
20740         (struct _vect_peel_extended_info): New.
20741         (struct _loop_vec_info): Add new field for peeling hash table and a
20742         macro for its access.
20743         (VECT_MAX_COST): Define.
20744         (vect_get_load_cost): Declare.
20745         (vect_get_store_cost, vect_get_known_peeling_cost,
20746         vect_get_single_scalar_iteraion_cost): Likewise.
20747         (vect_supportable_dr_alignment): Add new argument.
20748         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
20749         field.
20750         (destroy_loop_vec_info): Free peeling hash table.
20751         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
20752         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
20753         vect_analyze_slp. Fix indentation.
20754         (vect_get_single_scalar_iteraion_cost): New function.
20755         (vect_get_known_peeling_cost): Likewise.
20756         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
20757         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
20758         statement. Move outside cost calculation inside unknown peeling case.
20759         Call vect_get_known_peeling_cost for known amount of peeling.
20760         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
20761         reference to the print message of forced alignment.
20762         (vect_verify_datarefs_alignment): Update call to
20763         vect_supportable_dr_alignment.
20764         (vect_get_data_access_cost): New function.
20765         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
20766         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
20767         vect_peeling_hash_choose_best_peeling): Likewise.
20768         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
20769         to store all the accesses in the loop and find best possible access to
20770         align using peeling for known alignment case. For unknown alignment
20771         check if stores are preferred or if peeling is worthy.
20772         (vect_find_same_alignment_drs): Analyze pairs of loads too.
20773         (vect_supportable_dr_alignment): Add new argument and check aligned
20774         accesses according to it.
20775         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
20776         (cost_for_stmt): Call vect_get_stmt_cost.
20777         (vect_model_simple_cost): Likewise.
20778         (vect_model_store_cost): Call vect_get_stmt_cost. Call
20779         vect_get_store_cost to calculate the cost of the statement.
20780         (vect_get_store_cost): New function.
20781         (vect_model_load_cost): Call vect_get_stmt_cost. Call
20782         vect_get_load_cost to calculate the cost of the statement.
20783         (vect_get_load_cost): New function.
20784         (vectorizable_store): Update call to vect_supportable_dr_alignment.
20785         (vectorizable_load): Likewise.
20786         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
20787         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
20788         arguments. Handle unaligned store.
20789         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
20790         (rs6000_builtin_support_vector_misalignment): Return true for word and
20791         double word alignments for VSX.
20792         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
20793         vect_supportable_dr_alignment and builtin_vectorization_cost.
20794
20795 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20796
20797         PR target/44597
20798         * config/pa/predicates.md (prefetch_cc_operand): Remove.
20799         (prefetch_nocc_operand): Likewise.
20800         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
20801         (prefetch_20): New insn.
20802         (prefetch_cc): Remove.
20803         (prefetch_nocc): Likewise.
20804
20805 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20806
20807         * expr.c (vector_mode_valid_p): Move to c-common.c.
20808         * expr.h (vector_mode_valid_p): Do not declare here.
20809         * system.h: Poison GCC_EXPR_H in front-ends.
20810         * Makefile.in: Update dependencies.
20811
20812 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20813
20814         PR target/44705
20815         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
20816
20817 2010-07-03  Jan Hubicka  <jh@suse.cz>
20818
20819         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
20820         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
20821         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
20822         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
20823         Likewise.
20824
20825         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
20826         Update timevars.V
20827         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
20828         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
20829         TV_IPA_LTO_DECL_OUT): New.
20830         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
20831
20832 2010-07-03  Jan Hubicka  <jh@suse.cz>
20833
20834         * ipa-inline.c (update_edge_key): Break out from ...
20835         update_callers_keys): ... here;
20836         (update_callee_keys): Update only the edges from caller to callee.
20837         (update_all_calle_keys): Do what update_calle_keys did.
20838         (decide_inlining_of_small_functions): Avoid recomputing of all
20839         callees when badness increase.
20840
20841 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20842
20843         * config/arm/arm.c (arm_attr_length_move_neon): New.
20844         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
20845         * config/arm/neon.md (define_mode_attr V_slen): Remove.
20846         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
20847         to compute length attribute.
20848
20849 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20850
20851         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
20852         as predicate for operand 1 and remove its constraint.
20853         * config/arm/predicates.md (vfp_register_operand): New.
20854         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
20855         (*push_fp_multi): Likewise.
20856
20857 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
20858
20859         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
20860
20861 2010-07-03  Jan Hubicka  <jh@suse.cz>
20862
20863         * config/i386/i386.c (override_options): Revert accidental commit.
20864
20865 2010-07-02  Le-Chun Wu  <lcwu@google.com>
20866
20867         PR c++/44128
20868         * doc/invoke.texi: Update documentation of -Wshadow.
20869
20870 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
20871             Julian Brown  <julian@codesourcery.com>
20872             Sandra Loosemore  <sandra@codesourcery.com>
20873
20874         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
20875         comparisons.  Adjust to take both operands.
20876         (arm_select_cc_mode): Handle DImode comparisons.
20877         (arm_gen_compare_reg): Generate a scratch register for DImode
20878         comparisons which require one.  Use xor for Thumb equality checks.
20879         (arm_const_double_by_immediates): New.
20880         (arm_print_operand): Allow 'Q' and 'R' for constants.
20881         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
20882         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
20883         arm_canonicalize_comparison.
20884         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
20885         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
20886         prototype.
20887         (arm_const_double_by_immediates): Declare.
20888         * config/arm/constraints.md (Di): New constraint.
20889         * config/arm/predicates.md (arm_immediate_di_operand)
20890         (arm_di_operand, cmpdi_operand): New.
20891         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
20892         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
20893         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
20894         (cstoredi4): Handle non-Cirrus also.
20895
20896 2010-07-02  Julian Brown  <julian@codesourcery.com>
20897             Sandra Loosemore  <sandra@codesourcery.com>
20898
20899         PR target/43703
20900         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
20901         (smax<mode>3): Disable for NEON float modes when
20902         flag_unsafe_math_optimizations is false.
20903         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
20904         (*mul<mode>3_neon)
20905         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
20906         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
20907         for NEON float modes when flag_unsafe_math_optimizations is false.
20908         (quad_halves_<code>v4sf): Only enable if
20909         flag_unsafe_math_optimizations is true.
20910         * doc/invoke.texi (ARM Options): Add note about floating point
20911         vectorization requiring -funsafe-math-optimizations.
20912
20913 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20914             Julian Brown  <julian@codesourcery.com>
20915
20916         * config/arm/neon.md (UNSPEC_VABA): Delete.
20917         (UNSPEC_VABAL): Delete.
20918         (UNSPEC_VABS): Delete.
20919         (UNSPEC_VMUL_N): Delete.
20920         (adddi3_neon): New.
20921         (subdi3_neon): New.
20922         (mul<mode>3add<mode>_neon): Make the pattern named.
20923         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
20924         (neon_vadd<mode>): Replace with define_expand, and move the remaining
20925         unspec parts...
20926         (neon_vadd<mode>_unspec): ...to this.
20927         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
20928         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
20929         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
20930         (neon_vaba<mode>): Rewrite in terms of vabd.
20931         (neon_vabal<mode>): Rewrite in terms of vabdl.
20932         (neon_vabs<mode>): Rewrite without unspec.
20933         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
20934         (*arm_subdi3): Likewise.
20935         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
20936         No_op attribute to disable assembly output checks.
20937         * config/arm/arm_neon.h: Regenerated.
20938         * doc/arm-neon-intrinsics.texi: Regenerated.
20939
20940 2010-07-02  Jan Hubicka  <jh@suse.cz>
20941
20942         * ipa-split.c (split_function): For aggregate values, set the return
20943         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
20944         *<retval> = fncall.part ().
20945         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
20946
20947 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20948
20949         * config/arm/neon.md (UNSPEC_VAND): Delete.
20950         (UNSPEC_VBIC): Delete.
20951         (UNSPEC_VCLZ): Delete.
20952         (UNSPEC_VCNT): Delete.
20953         (UNSPEC_VEOR): Delete.
20954         (UNSPEC_VORN): Delete.
20955         (UNSPEC_VORR): Delete.
20956         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
20957         core registers too.
20958         (anddi3_neon): Likewise.
20959         (orndi3_neon): Likewise.
20960         (bicdi3_neon): Likewise.
20961         (xordi3_neon): Likewise.
20962         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
20963         rid of unspec and handle unused operand.
20964         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
20965         * config/arm/predicates.md (imm_for_neon_logic_operand):
20966         Require TARGET_NEON.
20967         (imm_for_neon_inv_logic_operand): Likewise.
20968         * config/arm/arm.md (define_split for logical_binary_operator):
20969         Disable for NEON registers.
20970         (anddi3): Add new define_expand, and rename the insn.  Disable
20971         this insn for NEON, where anddi3_neon now applies.
20972         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
20973         (iordi3): As for anddi3.
20974         (xordi3): Likewise.
20975         * config/arm/neon.ml (Vand): Split DImode variants and mark them
20976         as No_op to disable testing for exact instruction match.
20977         (Vorr): Likewise.
20978         (Veor): Likewise.
20979         (Vbic): Likewise.
20980         (Vorn): Likewise.
20981         * config/arm/arm_neon.h: Regenerated.
20982         * doc/arm-neon-intrinsics.texi: Regenerated.
20983
20984 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
20985
20986         * expr.h (emit_stack_probe): Declare.
20987         * explow.c (emit_stack_probe): Make global.
20988         (anti_adjust_stack_and_probe): Fix comments.
20989         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
20990         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20991         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20992         * config/sparc/sparc.c: Include except.h.
20993         (sparc_emit_probe_stack_range): New function.
20994         (output_probe_stack_range): Likewise.
20995         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
20996         built-in stack checking is enabled.
20997         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
20998         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
20999         (probe_stack_range): New insn.
21000
21001 2010-07-02  Richard Guenther  <rguenther@suse.de>
21002
21003         PR target/43958
21004         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
21005         for argument alignment.
21006
21007 2010-07-02  Jan Hubicka  <jh@suse.cz>
21008
21009         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
21010         walk backwards from entry_bb to check only those basic block of header
21011         that might lead to execution of split part.
21012         (consider_split) ... here.
21013         (find_return_bb): Allow assignment in return BB.
21014         (find_retval): New.
21015         (split_function): Fix name of cloned function; take care of updating
21016         return value in return_bb containing move.
21017
21018 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
21019
21020         PR target/44771
21021         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
21022         used variable insn.
21023
21024 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
21025
21026         * implicit-zee.c (combine_reaching_defs): Fix long lines.
21027         (is_set_with_extension_DI): Delete.
21028         (struct zero_extend_info): New structure.
21029         (add_removable_zero_extend): New function.
21030         (find_removable_zero_extends): Use note_stores to find SETs.
21031         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
21032
21033 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21034
21035         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
21036         is_miss_rate_acceptable. Pull total_positions computation
21037         out of the loops.  Early return if miss_positions exceeds
21038         the acceptable threshold.
21039         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
21040         is_miss_rate_acceptable after renaming of compute_miss_rate.
21041
21042 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21043
21044         PR middle-end/44576
21045         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
21046         of 1000) for miss rate if the address diference is greater than or
21047         equal to the cache line size (the two reference will never hit the
21048         same cache line).
21049
21050 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
21051
21052         PR target/42835
21053         * config/arm/arm-modes.def (CC_NOTB): New mode.
21054         * config/arm/arm.c (get_arm_condition_code): Handle it.
21055         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
21056         * config/arm/arm.md (subsi3_compare0_c): New pattern.
21057         (compare_scc): Now a define_and_split.  Add a number of extra
21058         splitters before it.
21059
21060         PR target/42172
21061         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
21062         and ZERO_EXTEND.
21063         (arm_rtx_costs_1): Likewise.
21064         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
21065         * config/arm/arm.md (is_arch6): New attribute.
21066         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
21067         extendqisi2): Tighten the code somewhat, avoiding invalid
21068         RTL to occur in the expander patterns.
21069         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
21070         (thumb1_zero_extendhisi2_v6): Delete.
21071         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
21072         (thumb1_extendhisi2_v6): Delete.
21073         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
21074         (thumb1_extendqisi2_v6): Delete.
21075         (zero_extendhisi2 for register input splitter): New.
21076         (zero_extendqisi2 for register input splitter): New.
21077         (thumb1_extendhisi2 for register input splitter): New.
21078         (extendhisi2 for register input splitter): New.
21079         (extendqisi2 for register input splitter): New.
21080         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
21081         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
21082         and add support for a register alternative requiring a split.
21083         (thumb1_zero_extendqisi2): Likewise.
21084         (arm_zero_extendqisi2): Likewise.
21085         (arm_extendhisi2): Likewise.
21086         (arm_extendqisi2): Likewise.
21087
21088 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21089
21090         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
21091         instead of an unspec.
21092         (neon_expand_vector_init): Likewise.
21093         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
21094         (UNSPEC_VDUP_LANE): Delete.
21095         (UNSPEC VDUP_N): Delete.
21096         (UNSPEC_VGET_HIGH): Delete.
21097         (UNSPEC_VGET_LANE): Delete.
21098         (UNSPEC_VGET_LOW): Delete.
21099         (UNSPEC_VMVN): Delete.
21100         (UNSPEC_VSET_LANE): Delete.
21101         (V_double_vector_mode): New.
21102         (vec_set<mode>_internal): Make code emitted match that for the
21103         corresponding intrinsics.
21104         (vec_setv2di_internal): Likewise.
21105         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
21106         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
21107         (neon_vset_lane<mode>): Combine double and quad patterns and
21108         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
21109         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
21110         (neon_vdup_n<mode>): Rewrite RTL without unspec.
21111         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
21112         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
21113         with neon_vdup_lanev2di, adjusting the pattern from the latter
21114         to be predicable for consistency.
21115         (neon_vdup_lane<mode>_internal): New.
21116         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
21117         to avoid using an unspec.
21118         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
21119         (neon_vdup_lanev2di): Turn into a define_expand.
21120         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
21121         (neon_vget_high<mode>): Replace with....
21122         (neon_vget_highv16qi): New pattern using canonical RTL.
21123         (neon_vget_highv8hi): Likewise.
21124         (neon_vget_highv4si): Likewise.
21125         (neon_vget_highv4sf): Likewise.
21126         (neon_vget_highv2di): Likewise.
21127         (neon_vget_low<mode>): Replace with....
21128         (neon_vget_lowv16qi): New pattern using canonical RTL.
21129         (neon_vget_lowv8hi): Likewise.
21130         (neon_vget_lowv4si): Likewise.
21131         (neon_vget_lowv4sf): Likewise.
21132         (neon_vget_lowv2di): Likewise.
21133
21134         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
21135         test for this emitting vmov.
21136         (Vset_lane): Likewise.
21137         (Vdup_n): Likewise.
21138         (Vmov_n): Likewise.
21139
21140         * doc/arm-neon-intrinsics.texi: Regenerated.
21141
21142 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21143
21144         * config/arm/neon.md (vec_extractv2di): Correct error in register
21145         numbering to reconcile with neon_vget_lanev2di.
21146
21147 2010-07-02  Richard Guenther  <rguenther@suse.de>
21148
21149         * tree-ssa-structalias.c (pt_solution_set_var): New function.
21150         * tree-ssa-alias.h (pt_solution_set_var): Declare.
21151         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
21152         points-to information.
21153
21154 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
21155
21156         * config/s390/s390.c (override_options): Adopt prefetching
21157         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
21158
21159 2010-07-02  Jan Hubicka  <jh@suse.cz>
21160
21161         * df-problems.c (df_kill_notes): Do not collect dead  notes.
21162         (df_set_note): Just call add_reg_note.
21163         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
21164         df_create_unused_note): Do not deal with lists of old notes.
21165         (df_note_bb_compute): Likewise.
21166
21167 2010-07-02  Richard Guenther  <rguenther@suse.de>
21168
21169         * tree-ssa-structalias.c (find_func_aliases): Handle
21170         pointer alignment via BIT_AND_EXPR.
21171         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
21172
21173 2010-07-02  Richard Guenther  <rguenther@suse.de>
21174
21175         * tree-data-ref.c (initialize_data_dependence_relation): Handle
21176         mismatching number of dimensions properly.
21177
21178 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21179
21180         PR target/44707
21181         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
21182         (lo_sum (high ...) ...) patterns generated by earlier passes.
21183
21184 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21185
21186         * doc/install.texi (Prerequisites): Document Perl requirement on
21187         Solaris 2.
21188         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
21189
21190 2010-07-02  Richard Guenther  <rguenther@suse.de>
21191
21192         PR middle-end/44777
21193         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
21194
21195 2010-07-02  Jan Hubicka  <jh@suse.cz>
21196
21197         PR middle-end/44706
21198         * predict.c (predict_paths_for_bb): Handle case when control dependence
21199         BB has only abnormal edges.
21200
21201 2010-07-02  Richard Guenther  <rguenther@suse.de>
21202
21203         PR tree-optimization/44748
21204         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
21205         the embedded conversion in MEM_REFs.
21206
21207 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
21208
21209         * reload.c: Include toplev.h.
21210         * recog.c:  Likewise.
21211         * Makefile.in: Adjust dependencies.
21212
21213 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
21214
21215         PR debug/44694
21216         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
21217         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
21218
21219 2010-07-01  Richard Guenther  <rguenther@suse.de>
21220
21221         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
21222         types for offsets.
21223
21224 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
21225
21226         PR target/44732
21227         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
21228         Fix argument types.
21229
21230 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
21231
21232         PR target/44727
21233         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21234         Make sure operand 0 dies.
21235
21236 2010-07-01  Richard Guenther  <rguenther@suse.de>
21237
21238         PR middle-end/42834
21239         PR middle-end/44468
21240         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
21241         * doc/generic.texi (References to storage): Document MEM_REF.
21242         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
21243         (print_call_name): Likewise.
21244         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
21245         (build_simple_mem_ref_loc): New function.
21246         (mem_ref_offset): Likewise.
21247         * tree.h (build_simple_mem_ref_loc): Declare.
21248         (build_simple_mem_ref): Define.
21249         (mem_ref_offset): Declare.
21250         * fold-const.c: Include tree-flow.h.
21251         (operand_equal_p): Handle MEM_REF.
21252         (build_fold_addr_expr_with_type_loc): Likewise.
21253         (fold_comparison): Likewise.
21254         (fold_unary_loc): Fold
21255         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
21256         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
21257         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
21258         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
21259         (ptr_deref_may_alias_ref_p_1): Likewise.
21260         (ao_ref_base_alias_set): Properly differentiate base object for
21261         offset and TBAA.
21262         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
21263         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
21264         (indirect_refs_may_alias_p): Likewise.
21265         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
21266         chasing code.
21267         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
21268         (call_may_clobber_ref_p_1): Likewise.
21269         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
21270         * expr.c (expand_assignment): Handle MEM_REF.
21271         (store_expr): Handle MEM_REFs from STRING_CSTs.
21272         (store_field): If expanding a MEM_REF of a non-addressable
21273         decl use bitfield operations.
21274         (get_inner_reference): Handle MEM_REF.
21275         (expand_expr_addr_expr_1): Likewise.
21276         (expand_expr_real_1): Likewise.
21277         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
21278         * alias.c (ao_ref_from_mem): Handle MEM_REF.
21279         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
21280         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
21281         (dr_analyze_indices): Likewise.
21282         (dr_analyze_alias): Likewise.
21283         (object_address_invariant_in_loop_p): Likewise.
21284         * gimplify.c (mark_addressable): Handle MEM_REF.
21285         (gimplify_cond_expr): Build MEM_REFs.
21286         (gimplify_modify_expr_to_memcpy): Likewise.
21287         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
21288         (gimple_fold_indirect_ref): Adjust.
21289         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
21290         * tree.def (MEM_REF): New tree code.
21291         * tree-dfa.c: Include toplev.h.
21292         (get_ref_base_and_extent): Handle MEM_REF.
21293         (get_addr_base_and_unit_offset): New function.
21294         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
21295         * gimple-fold.c (may_propagate_address_into_dereference): Handle
21296         MEM_REF.
21297         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
21298         accesses if the array has just one dimension.  Remove always true
21299         parameter.  Do not require type compatibility here.
21300         (maybe_fold_offset_to_component_ref): Remove.
21301         (maybe_fold_stmt_indirect): Remove.
21302         (maybe_fold_reference): Remove INDIRECT_REF handling.
21303         Fold back to non-MEM_REF.
21304         (maybe_fold_offset_to_address): Simplify.  Deal with type
21305         mismatches here.
21306         (maybe_fold_reference): Likewise.
21307         (maybe_fold_stmt_addition): Likewise.  Also handle
21308         &ARRAY + I in addition to &ARRAY[0] + I.
21309         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
21310         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
21311         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
21312         * tree-ssa.c (useless_type_conversion_p): Make most pointer
21313         conversions useless.
21314         (warn_uninitialized_var): Handle MEM_REF.
21315         (maybe_rewrite_mem_ref_base): New function.
21316         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
21317         to SSA form.
21318         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
21319         INDIRECT_REF handling.
21320         (copy_tree_body_r): Handle MEM_REF.
21321         * gimple.c (is_gimple_addressable): Adjust.
21322         (is_gimple_address): Likewise.
21323         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
21324         invariant base are invariant.
21325         (is_gimple_min_lval): Adjust.
21326         (is_gimple_mem_ref_addr): New function.
21327         (get_base_address): Handle MEM_REF.
21328         (count_ptr_derefs): Likewise.
21329         (get_base_loadstore): Likewise.
21330         * gimple.h (is_gimple_mem_ref_addr): Declare.
21331         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
21332         * tree-cfg.c (verify_address): New function, split out from ...
21333         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
21334         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
21335         INDIRECT_REFs.
21336         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
21337         INDIRECT_REF.  Allow conversions.
21338         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
21339         a register does not change its size.
21340         (verify_types_in_gimple_reference): Verify MEM_REF.
21341         (verify_gimple_assign_single): Disallow INDIRECT_REF.
21342         Handle MEM_REF.
21343         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
21344         New.
21345         (mark_address_taken): Handle MEM_REF.
21346         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
21347         (get_asm_expr_operands): Pass opf_not_non_addressable.
21348         (get_expr_operands): Handle opf_[not_]non_addressable.
21349         Handle MEM_REF.  Remove INDIRECT_REF handling.
21350         * tree-vrp.c (check_array_ref): Handle MEM_REF.
21351         (search_for_addr_array): Likewise.
21352         (check_array_bounds): Likewise.
21353         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
21354         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
21355         (ref_always_accessed_p): Likewise.
21356         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
21357         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
21358         Handle MEM_REF.
21359         * cgraphbuild.c (mark_load): Properly check for NULL result
21360         from get_base_address.
21361         (mark_store): Likewise.
21362         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
21363         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
21364         handling for MEM_REF.
21365         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
21366         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
21367         * builtins.c (stabilize_va_list_loc): Use the function ABI
21368         valist type if we couldn't canonicalize the argument type.
21369         Always dereference with the canonical va-list type.
21370         (maybe_emit_free_warning): Handle MEM_REF.
21371         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
21372         memmove to memcpy.
21373         * builtins.c (fold_builtin_memory_op): Use ref-all types
21374         for all memcpy foldings.
21375         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
21376         (build_outer_var_ref): Likewise.
21377         (scan_omp_1_op): Likewise.
21378         (lower_rec_input_clauses): Likewise.
21379         (lower_lastprivate_clauses): Likewise.
21380         (lower_reduction_clauses): Likewise.
21381         (lower_copyprivate_clauses): Likewise.
21382         (expand_omp_atomic_pipeline): Likewise.
21383         (expand_omp_atomic_mutex): Likewise.
21384         (create_task_copyfn): Likewise.
21385         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
21386         Remove old union trick.  Initialize constant offsets.
21387         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
21388         INDIRECT_REF.  Init base_alias_set properly.
21389         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
21390         (vn_reference_fold_indirect): Adjust for MEM_REFs.
21391         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
21392         for ARRAY_REFs.
21393         (may_insert): Remove.
21394         (visit_reference_op_load): Do not test may_insert.
21395         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
21396         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
21397         a field to store the constant offset this op applies.
21398         (run_scc_vn): Adjust prototype.
21399         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
21400         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
21401         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
21402         bother about volatile qualifiers on pointers.
21403         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
21404         * tree-ssa-loop-ivopts.c
21405         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
21406         (strip_offset_1): Likewise.
21407         (find_interesting_uses_address): Replace INDIRECT_REF handling with
21408         MEM_REF handling.
21409         (get_computation_cost_at): Likewise.
21410         * ipa-pure-const.c (check_op): Handle MEM_REF.
21411         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
21412         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
21413         and constants.
21414         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
21415         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
21416         (eliminate_local_variables_1): Likewise.
21417         (create_call_for_reduction_1): Likewise.
21418         (create_loads_for_reductions): Likewise.
21419         (create_loads_and_stores_for_name): Likewise.
21420         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
21421         (ssa_accessed_in_tree): Handle MEM_REF.
21422         (ssa_accessed_in_assign_rhs): Likewise.
21423         (update_type_size): Likewise.
21424         (analyze_accesses_for_call_stmt): Likewise.
21425         (analyze_accesses_for_assign_stmt): Likewise.
21426         (transform_access_sites): Likewise.
21427         (transform_allocation_sites): Likewise.
21428         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
21429         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
21430         not handle INDIRECT_REF.
21431         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
21432         (cond_store_replacement): Likewise.
21433         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
21434         MEM_REF, no not handle INDIRECT_REFs.
21435         (insert_into_preds_of_block): Properly initialize avail.
21436         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
21437         for ARRAY_REFs.  Properly handle reference lookups that
21438         require a bit re-interpretation.
21439         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
21440         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
21441         (build_ref_for_offset_1): Remove.
21442         (build_ref_for_offset): Build MEM_REFs.
21443         (gate_intra_sra): Disable for now.
21444         (sra_ipa_modify_expr): Handle MEM_REF.
21445         (ipa_early_sra_gate): Disable for now.
21446         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
21447         MEM_REF handling.
21448         (disqualify_base_of_expr): Likewise.
21449         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
21450         MEM_REF handling.
21451         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
21452         Use mem_ref_offset.  Remove bogus folding.
21453         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
21454         (make_fancy_name_1): Add support for MEM_REF.
21455         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
21456         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
21457         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
21458         (compute_complex_ancestor_jump_func): Likewise.
21459         (ipa_analyze_virtual_call_uses): Likewise.
21460         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
21461         INDIRECT_REF folding with more generalized MEM_REF folding.
21462         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
21463         (forward_propagate_addr_into_variable_array_index): Also handle
21464         &ARRAY + I in addition to &ARRAY[0] + I.
21465         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
21466         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
21467         creates assignments with overlap.
21468         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
21469         (get_frame_field): Likewise.
21470         (get_nonlocal_debug_decl): Likewise.
21471         (convert_nonlocal_reference_op): Likewise.
21472         (struct nesting_info): Add mem_refs pointer-set.
21473         (create_nesting_tree): Allocate it.
21474         (convert_local_reference_op): Insert to be folded mem-refs.
21475         (fold_mem_refs): New function.
21476         (finalize_nesting_tree_1): Perform defered folding of mem-refs
21477         (free_nesting_tree): Free the pointer-set.
21478         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
21479         (vectorizable_load): Likewise.
21480         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
21481         (propagate_with_phi): Likewise.
21482         * tree-object-size.c (addr_object_size): Handle MEM_REFs
21483         instead of INDIRECT_REFs.
21484         (compute_object_offset): Handle MEM_REF.
21485         (plus_stmt_object_size): Handle MEM_REF.
21486         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
21487         for &MEM_REF.
21488         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
21489         (symbol_marked_for_renaming): Likewise.
21490         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
21491         (fold-const.o): Add $(TREE_FLOW_H).
21492         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
21493         (find_func_clobbers): Likewise.
21494         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
21495         (decompose_access): Likewise.
21496         (replace_field_acc): Likewise.
21497         (replace_field_access_stmt): Likewise.
21498         (insert_new_var_in_stmt): Likewise.
21499         (get_stmt_accesses): Likewise.
21500         (reorg_structs_drive): Disable.
21501         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
21502         (ix86_canonical_va_list_type): Likewise.
21503
21504 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21505
21506         PR other/44566
21507         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
21508         * target.def (struct gcc_target): Replace enum reg_class with
21509         reg_class_t in hook argument / return types.
21510         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
21511         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
21512         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
21513         * targhooks.h (default_branch_target_register_class): Likewise.
21514         (default_ira_cover_classes, default_secondary_reload): Likewise.
21515         (default_memory_move_cost, default_register_move_cost): Likewise.
21516         * targhooks.c (default_branch_target_register_class): Likewise.
21517         (default_ira_cover_classes, default_secondary_reload): Likewise.
21518         (default_memory_move_cost, default_register_move_cost): Likewise.
21519         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
21520         * bt-load.c (branch_target_load_optimize): Likewise.
21521         * ira.c (setup_cover_and_important_classes): Likewise.
21522         * ira-costs.c (copy_cost): Likewise.
21523         * reload1.c (emit_input_reload_insns): Likewise.
21524         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
21525         * config/frv/frv.c (frv_secondary_reload): Likewise.
21526         * config/s390/s390.c (s390_secondary_reload): Likewise.
21527         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
21528         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
21529         (ix86_register_move_cost): Likewise.
21530         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
21531         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
21532         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
21533         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
21534         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
21535         (rs6000_ira_cover_classes): Likewise.
21536         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
21537         * config/picochip/picochip-protos.h (picochip_secondary_reload):
21538         Likewise.
21539         * config/pa/pa.c (pa_secondary_reload): Likewise.
21540         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
21541         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
21542         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
21543         * doc/tm.texi: Regenerate.
21544
21545 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
21546
21547         PR bootstrrap/44726
21548         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
21549         use.
21550         (build_alias_set_optimal_p): Likewise.
21551         (build_base_obj_set_for_drs): Likewise.
21552
21553 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21554
21555         * target.def: Remove comment about licensing problems of function
21556         declarations.
21557
21558         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
21559         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
21560         * doc/tm.texi: Regenerate.
21561
21562         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
21563         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
21564
21565         * target.def (enum_va_list_p): Use DEFHOOK.
21566         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
21567         Rename ptype to ptree.
21568         * doc/tm.texi: Regenerate.
21569
21570         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
21571         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
21572         * doc/tm.texi: Regenerate.
21573
21574         * target.def (memory_move_cost): Use DEFHOOK.
21575         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
21576         Rename regclass AKA class to rclass.
21577         * doc/tm.texi: Regenerate.
21578
21579         * target.def (pragma_parse): Use DEFHOOK.
21580         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
21581         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
21582         * doc/tm.texi: Regenerate.
21583
21584         * target.def (pass_by_reference): Use DEFHOOK.
21585         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
21586         * doc/tm.texi: Regenerate.
21587
21588         * target.def (resolve_overloaded_builtin): Rename params to arglist.
21589         Use DEFHOOK.
21590         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
21591         * doc/tm.texi: Regenerate.
21592
21593         * target.def (return_pops_args): Use DEFHOOK.
21594         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
21595         Rename stack-size to size.
21596         * doc/tm.texi: Regenerate.
21597
21598         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
21599         last-sched_cycle to last_clock, cur_cycle to clock.
21600         * doc/tm.texi.in: Use @hook.
21601         * doc/tm.texi: Regenerate.
21602
21603         * target.def (print_operand, print_operand_address): Update comment.
21604         (print_operand_punct_valid_p): Likewise.
21605
21606 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21607
21608         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
21609         to rtl.h.
21610         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
21611         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
21612         * rtl-error.h: New.
21613         * regrename.c: Do not include toplev.h. Include rtl-error.h.
21614         * rtl-error.c: Likewise.
21615         * reload.c: Likewise.
21616         * recog.c:  Likewise.
21617         * sel-sched.c: Likewise.
21618         * function.c: Likewise.
21619         * reg-stack.c: Likewise.
21620         * cfgrtl.c: Likewise.
21621         * reload1.c: Likewise.
21622         * final.c: Include rtl-error.
21623         * Makefile.in: Adjust dependencies.
21624
21625 2010-06-30  Jan Hubicka  <jh@suse.cz>
21626
21627         PR middle-end/PR44706
21628         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
21629         to return the value.
21630
21631 2010-06-30  Michael Matz  <matz@suse.de>
21632
21633         PR bootstrap/44699
21634         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
21635         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
21636         a gimple reg, attach the original VDEF to the last store in the
21637         sequence.
21638
21639 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
21640
21641         PR other/44034
21642         * config/darwin.c (darwin_override_options): Use renamed
21643         targetm.asm_out.emit_unwind_label.
21644
21645 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21646
21647         PR tree-optimization/39799
21648         * tree-inline.c (remap_ssa_name): Initialize variable only if
21649         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
21650
21651 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
21652
21653         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
21654
21655 2010-06-30  Richard Guenther  <rguenther@suse.de>
21656
21657         PR target/44722
21658         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
21659         against oscillation with reverse peephole2.
21660
21661 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
21662
21663         PR target/44721
21664         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21665         Fix last commit.
21666
21667 2010-06-30  Nick Clifton  <nickc@redhat.com>
21668
21669         * config/rx/rx-modes.def: New file.
21670         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
21671         (CC_REGNUM): Define.
21672         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
21673         register.
21674         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
21675         (SELECT_CC_MODE): Define.
21676         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
21677         (reg:CC CC_REG) instead of (cc0).
21678         (attr "cc"): Delete.
21679         (cbranchsi4): Do not split compare and branch here. Instead move
21680         it to...
21681         (cbranchsi4_<code>): ... here.  New patterns.
21682         (cmpsi): Call rx-compare_redundant to find out if it is necessary
21683         to emit the compare instruction.
21684         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
21685         cc_status flags.
21686         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
21687         FIRST_PSEUDO_REGNUM.
21688         (rx_expand_prologue, rx_expand_epilogue): Likewise.
21689         (rx_notice_update_cc): Delete.
21690         (rx_cc_modes_compatible): New function.
21691         (flags_needed_for_conditional): New function.
21692         (flags_from_mode): New function.
21693         (rx_compare_redundant): New function - scans backwards through
21694         insn list to find out if condition flags are already set correctly.
21695         (TARGET_CC_MODES_COMPATIBLE): Define.
21696         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
21697
21698         * config/rx/rx.h (BRANCH_COST): Define.
21699         (REGISTER_MOVE_COST): Define.
21700         * config/rx/predicates (rx_source_operand): Allow all constant types.
21701         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
21702         (tstsi4): New pattern.
21703         * config/rx/rx.c (rx_memory_move_cost): Define.
21704         (TARGET_MEMORY_MOVE_COST): Define.
21705
21706 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21707
21708         * tree.h (block_may_fallthru): Declare here.
21709         * tree-flow.h (block_may_fallthru): Do not declare here.
21710         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
21711         bitmap.h
21712         * Makefile.in (c-typeck.o): Update dependencies.
21713
21714 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
21715
21716         PR debug/44694
21717         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
21718         * cselib.c (cfa_base_preserved_regno): New static variable.
21719         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
21720         of REGNO (cfa_base_preserved_val->locs->loc).
21721         (cselib_preserve_cfa_base_value): Add regno argument, set
21722         cfa_base_preserved_regno to it.
21723         (cselib_invalidate_regno): Allow removal of registers other than
21724         cfa_base_preserved_regno from cfa_base_preserved_val.
21725         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
21726         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
21727         of MEM addresses, if not on LHS.
21728         (reverse_op): Don't add reverse ops for cfa_base_rtx.
21729         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
21730
21731 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21732
21733         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
21734         static variables.
21735         (peep2_buf_position): New static function.
21736         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
21737         peephole2_optimize): Use it.
21738         (peep2_attempt, peep2_update_life): New static functions, broken out
21739         of peephole2_optimize.
21740         (peep2_fill_buffer): New static function.
21741         (peephole2_optimize): Change the main loop to try to fill the buffer
21742         with the maximum number of insns before matching them against
21743         peepholes.  Use a forward scan.  Remove special case for targets with
21744         conditional execution.
21745         * genrecog.c (change_state): Delete dead code.
21746         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21747         Rewrite so as not to expect the second insn to have had a peephole
21748         applied yet.
21749
21750 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21751
21752         * genhooks.c (emit_findices): Cast field precision to int.
21753         (emit_documentation): Likewise.
21754
21755 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
21756
21757         PR tree-optimization/43801
21758         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
21759         if old_decl was DECL_ONE_ONLY.
21760
21761         PR debug/44668
21762         * dwarf2out.c (add_accessibility_attribute): New function.
21763         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
21764         instead of adding DW_AT_accessibility manually.
21765         (gen_enumeration_type_die, gen_struct_or_union_type_die,
21766         gen_typedef_die): Use it.
21767
21768 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21769
21770         * vmsdbgout.c (full_name): Just output the file name if not native.
21771
21772 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21773
21774         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
21775         (funcnam_table): New static table.
21776         (funcnum_table): New static table.
21777         (write_rtnbeg): Write value saved in funcnum_table.
21778         (write_rtnend): Write value saved in funcnum_table.
21779         (vmsdbgout_begin_function): Save current function info in
21780         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
21781         (vmsdbgout_finish): Iterate over funcnum_table.
21782
21783 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21784
21785         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
21786         (vmsdbgout_type_decl): Declare
21787         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
21788         (FUNC_EPILOGUE_LABEL): New macro
21789         (vmsdbgout_begin_epilogue): New function.
21790         (vmsdbgout_type_decl): New function.
21791
21792 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21793
21794         * vmsdbg.h: Update copyright.
21795
21796 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21797
21798         * vmsdbg.h (DST_K_TBG): New DST constant.
21799         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
21800         (write_modbeg): Cast module_language to avoid warning.
21801         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
21802
21803 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21804
21805         PR other/44034
21806         * target.def, doc/tm.texi.in, genhooks.c: New files.
21807         * target.h: Instead of defining individual hook members,
21808         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
21809         include target.def.
21810         * target-def.h: Instead of defining individual hook initializers,
21811         include target-hooks-def.h.
21812         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
21813         targetm.live_on_entry -> targetm.extra_live_on_entry
21814         targetm.sched.md_finish ->targetm.sched.finish
21815         targetm.sched.md_init -> targetm.sched.init
21816         targetm.sched.md_init_global -> targetm.sched.init_global
21817         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
21818         targetm.asm_out.except_table_label ->
21819           targetm.asm_out.emit_except_table_label
21820         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
21821         targetm.target_help -> targetm.help
21822         targetm.vectorize.builtin_support_vector_misalignment ->
21823           targetm.vectorize.support_vector_misalignment
21824         targetm.file_start_app_off -> targetm.asm_file_start_app_off
21825         targetm.file_start_file_directive ->
21826          targetm.asm_file_start_file_directive
21827         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
21828         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
21829         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
21830         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
21831           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
21832         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
21833           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
21834         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
21835         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
21836         * Makefile.in (TARGET_H): Depend on target.def.
21837         (TARGET_DEF_H): Depend on target-hooks-def.h.
21838         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
21839         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
21840         * doc/tm.texi: Regenerate.
21841
21842         * Makefile.in (s-tm-texi): Remove stray tab / rule.
21843
21844         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
21845         (targetm.sched.init): Likewise.
21846
21847 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21848
21849         PR bootstrap/44713
21850         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
21851         (function_arg_advance_32): Const-ify TYPE parameter.
21852         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
21853         (ix86_function_arg_advance): Change type of NAMED to bool.
21854         (function_arg_32): Const-ify CUM and TYPE parameters.
21855         (function_arg_64): Likewise.  Change type of NAMED to bool.
21856         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
21857         to bool.
21858         (ix86_function_arg): Change type of NAMED to bool.
21859         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
21860         last argument as a bool.
21861
21862 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21863
21864         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
21865         (OVERRIDE_OPTIONS): Add note of obsolescence.
21866         Replace references with references to TARGET_OPTION_OVERRIDE.
21867         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
21868          the macro).
21869         * targhooks.c (default_target_option_override): New function.
21870         * targhooks.h (default_target_option_override): Declare.
21871         * target.h (struct gcc_target): Add override member to
21872         target_option member.
21873         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
21874         targetm.target_option.override call.
21875         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
21876         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
21877
21878 2010-06-29  Jan Hubicka  <jh@suse.cz>
21879
21880         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
21881
21882 2010-06-29  Jan Hubicka  <jh@suse.cz>
21883
21884         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
21885         unreachable.
21886         (rebuild_frequencies): New function.
21887         * predict.h (rebuild_frequencies): Declare.
21888         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
21889         entry block and edge reaching new_entry.
21890         (tree_function_versioning): When doing partial cloning, rebuild
21891         frequencies when done.
21892         * passes.c (execute_function_todo): Use rebild_frequencies.
21893
21894 2010-06-29  Richard Guenther  <rguenther@suse.de>
21895
21896         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
21897         * tree-flow.h (enum noalias_state): Remove.
21898         (struct var_ann_d): Remove noalias_state member.
21899
21900 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
21901
21902         PR target/43902
21903         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
21904         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
21905         (maddhidi4): Likewise.
21906
21907         Revert parts of the change for PR25130.
21908         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
21909         MEM_ALIAS_SET.
21910
21911 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21912
21913         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
21914         targetm.calls.function_incoming_arg, and
21915         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
21916         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
21917         * target.h (struct gcc_target): Add function_arg_advance,
21918         function_arg, and function_incoming_arg fields.
21919         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
21920         (TARGET_FUNCTION_INCOMING_ARG): Define.
21921         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
21922         and TARGET_FUNCTION_INCOMING_ARG.
21923         * targhooks.h (default_function_arg_advance): Declare.
21924         (default_function_arg, default_function_incoming_arg): Declare.
21925         * targhooks.c (default_function_arg_advance): New function.
21926         (default_function_arg, default_function_incoming_arg): New function.
21927         * config/i386/i386.c (function_arg_advance): Rename to...
21928         (ix86_function_arg_advance): ...this.  Make static.
21929         (function_arg): Rename to...
21930         (ix86_function_arg): ...this.  Make static.
21931         (TARGET_FUNCTION_ARG_ADVANCE): Define.
21932         (TARGET_FUNCTION_ARG): Define.
21933         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
21934         (FUNCTION_ARG): Delete.
21935         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
21936         (function_arg): Delete prototype.
21937
21938 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21939
21940         * reginfo.c (init_reg_sets_1): Adjust comments.
21941         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
21942         * calls.c (prepare_call_address): Likewise.
21943         (emit_call_1): Use targetm.calls.return_pops_args.
21944         (expand_call): Likewise.
21945         * function.c (assign_parms): Likewise.
21946         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
21947         * target.h (struct gcc_target) [struct calls]: Add
21948         return_pops_args field.
21949         * targhooks.h (default_return_pops_args): Declare.
21950         * targhooks.c (default_return_pops_args): Define.
21951         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
21952         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
21953         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
21954         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
21955         documentation.
21956         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
21957         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
21958         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
21959         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
21960         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
21961         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
21962         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
21963         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
21964         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
21965         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
21966         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
21967         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
21968         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
21969         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
21970         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
21971         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
21972         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
21973         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
21974         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
21975         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
21976         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
21977         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
21978         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
21979         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
21980         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
21981         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
21982         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
21983         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
21984         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
21985         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
21986         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
21987         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
21988         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
21989         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
21990         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
21991         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
21992         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
21993         * config/i386/i386.c (ix86_return_pops_args): Make static.
21994         Constify arguments.
21995         (TARGET_RETURN_POPS_ARGS): Define.
21996         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
21997         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
21998         (TARGET_RETURN_POPS_ARGS): Define.
21999         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
22000         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
22001         (TARGET_RETURN_POPS_ARGS): Define.
22002
22003 2010-06-29  Richard Guenther  <rguenther@suse.de>
22004
22005         PR middle-end/44667
22006         * tree-inline.c (initialize_inlined_parameters): Make sure
22007         to remap the inlined parameter variable substitutions types.
22008
22009 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
22010
22011         PR rtl-optimization/44659
22012         * combine.c (make_compound_operation) <SUBREG>: Do not return the
22013         result of force_to_mode if it partially re-expanded the compound.
22014
22015 2010-06-28  Jan Hubicka  <jh@suse.cz>
22016
22017         PR middle-end/44671
22018         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
22019         RESULT_DECL.
22020
22021 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
22022
22023         * double-int.h (force_fit_type_double): Remove declaration.
22024         * double-int.c (force_fit_type_double): Move to tree.c.
22025         * tree.h (force_fit_type_double): Declare.
22026         * tree.h (force_fit_type_double): Moved from double-int.c. Use
22027         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
22028         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
22029         * convert.c (convert_to_pointer): Adjust call to
22030         force_fit_type_double.
22031         * tree-vrp.c (extract_range_from_assert,
22032         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
22033         * fold-const.c: Update comment.
22034         (int_const_binop, fold_convert_const_int_from_int,
22035         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
22036         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
22037         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
22038         round_up_loc): Adjust call to force_fit_type_double.
22039
22040 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22041
22042         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
22043
22044 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22045
22046         * tree-sra.c (convert_callers): New parameter, change fndecls of
22047         recursive calls.
22048         (modify_function): Pass the old decl to convert_callers.
22049
22050 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22051
22052         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
22053         ipa_check_create_node_params and ipa_initialize_node_params with
22054         checking asserts they are not necessary.
22055
22056 2010-06-28  Jan Hubicka  <jh@suse.cz>
22057
22058         PR tree-optimization/44687
22059         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
22060
22061 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22062
22063         PR c++/44535
22064         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
22065         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
22066         instead of BINFO_BASE_BINFO.
22067
22068 2010-06-28  Michael Matz  <matz@suse.de>
22069
22070         PR middle-end/44592
22071         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
22072         proper VDEF chain for intermediate stores in the sequence.
22073
22074 2010-06-28  Jan Hubicka  <jh@suse.cz>
22075
22076         PR tree-optimization/44357
22077         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
22078         uninlinable functions.
22079
22080 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22081
22082         * config.gcc (powerpc*-*-*): Handle titan.
22083         * config/rs6000/rs6000.c (titan_cost): New costs.
22084         (rs6000_override_options): Add "titan" to processor_target_table.
22085         Add Titan to branch alignment logic.
22086         Correctly set rs6000_cost for titan.
22087         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
22088         * config/rs6000/titan.md: New file.
22089         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
22090
22091 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22092
22093         * tree-browser.c (TB_history_stack): Convert to a VEC.
22094         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
22095         (TB_history_prev): Likewise.
22096
22097 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22098
22099         * vec.h (vec_heap_free): Add parentheses around free.
22100
22101 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
22102
22103         * system.h: Poison GCC_EXCEPT_H for front-end files.
22104
22105         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
22106         langhook.
22107         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
22108         Define to NULL by default.
22109         * except.h: Define GCC_EXCEPT_H.
22110         (doing_eh): Remove prototype.
22111         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
22112         (lang_protect_cleanup_actions): Remove.
22113         * except.c (lang_protect_cleanup_actions): Remove.
22114         (doing_eh): Remove.
22115         (gen_eh_region): Don't check doing_eh here.
22116         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
22117         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
22118         instead of lang_protect_cleanup_actions.
22119         * omp-low.c (maybe_catch_exception): Likewise.
22120         * Makefile.in: Update dependencies.
22121
22122 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
22123
22124         * cgraph.h (struct varpool_node): new used_from_object_file flag.
22125         (struct cgraph_local_info): new used_from_object_file flag.
22126         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
22127         (cgraph_clone_node): initialize used_from_object_file.
22128         (cgraph_create_virtual_clone): initialize used_from_object_file.
22129         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
22130         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
22131         when compiling with -fwhole-program.
22132         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
22133         internal resolver.
22134         * ipa.c (function_and_variable_visibility): Set externally_visible
22135         flag of varpool_node if used_from_object_file flag is set.
22136         (cgraph_externally_visible_p): check used_from_object_file flag.
22137         * doc/invoke.texi (-fwhole-program option): Change description of
22138         externally_visible attribute accordingly.
22139         * doc/extend.texi (externally_visible): Ditto.
22140
22141 2010-06-27  Jan Hubicka  <jh@suse.cz>
22142
22143         * params.def (max-inline-insns-auto): Default to 40.
22144         * doc/invoke.texi (max-inline-insns-auto): Document the change.
22145
22146 2010-06-27  Jan Hubicka  <jh@suse.cz>
22147
22148         PR middle-end/44671
22149         PR middle-end/44686
22150         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
22151         signature change.
22152         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
22153         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
22154
22155 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
22156
22157         * target.h (struct gcc_target): Add register_move_cost field.
22158         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
22159         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
22160         * targhooks.c (default_register_move_cost): New function.
22161         * targhooks.h (default_register_move_cost): Declare function.
22162         * defaults.h (REGISTER_MOVE_COST): Delete.
22163         * ira-int.h (ira_register_move_cost): Update comment.
22164         * ira.c (ira_register_move_cost): Update comment.
22165         * reload.h (register_move_cost): Declare.
22166         * reginfo.c (register_move_cost): New function.
22167         (move_cost): Update comment.
22168         (init_move_cost, memory_move_secondary_cost): Replace
22169         REGISTER_MOVE_COST with register_move_cost.
22170         * postreload.c (reload_cse_simplify_set): (Ditto.).
22171         * reload.c (find_valid_class, find_reloads): (Ditto.).
22172         * reload1.c (choose_reload_regs): (Ditto.).
22173         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
22174         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
22175         * doc/md.texi (can_create_pseudo_p): Update documentation.
22176
22177         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
22178         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
22179         * config/i386/i386.h (ix86_memory_move_cost): Make static.
22180         (TARGET_MEMORY_MOVE_COST): Define.
22181
22182         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
22183         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
22184         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
22185         (TARGET_MEMORY_MOVE_COST): Define.
22186
22187 2010-06-27  Richard Guenther  <rguenther@suse.de>
22188
22189         PR tree-optimization/44683
22190         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
22191         false edge from the inverted condition.
22192
22193 2010-06-27  Richard Guenther  <rguenther@suse.de>
22194
22195         PR middle-end/44684
22196         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
22197         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
22198         for register LHS.  Or non-store assignments.
22199
22200 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
22201
22202         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
22203         (sparc_emit_set_const64): Likewise.  Remove disabled code.
22204         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
22205         (sparc_emit_set_const64): Likewise.
22206
22207 2010-06-26  Catherine Moore  <clm@codesourcery.com>
22208
22209         * config/mips/mips.md (alu_type): New attribute.
22210         (type): Infer type from alu_type.
22211         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
22212         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
22213         *subsi3_extended, negsi2, negdi2, *low<mode>,
22214         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
22215         xor<mode>3, *nor<mode>3,
22216         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
22217         *zero_extendhi_truncqi):  Set alu_type instead of type.
22218
22219 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
22220
22221         * config/alpha/alpha.c (alpha_need_linkage): Adjust
22222         splay_tree_new_ggc call.
22223         (alpha_use_linkage): Likewise.
22224
22225 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22226
22227         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
22228         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
22229         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
22230         (static_specs): Remove switches_need_spaces.
22231         (process_command, do_self_spec): Hardcode handling "-o" instead of
22232         checking switches_need_spaces.
22233         * system.h (SWITCHES_NEED_SPACES): Poison.
22234
22235 2010-06-26  Richard Guenther  <rguenther@suse.de>
22236
22237         PR tree-optimization/44393
22238         * tree-loop-distribution.c (generate_loops_for_partition): Fix
22239         stmt removal and VOP renaming.
22240         (generate_memset_zero): Remove redundant stmt updating.
22241         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
22242         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
22243
22244 2010-06-26  Jan Hubicka  <jh@suse.cz>
22245
22246         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
22247         edges comming from header are equivalent.
22248         (visit_bb): Handle PHIs correctly.
22249         * tree-inline.c (copy_phis_for_bb): Be able to copy
22250         PHI from entry edge.
22251         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
22252
22253 2010-06-26  Richard Guenther  <rguenther@suse.de>
22254
22255         PR middle-end/44674
22256         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
22257         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
22258
22259 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22260
22261         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
22262         add_infile, alloc_switch): New.
22263         (process_command): Remove variable lang_n_infiles.  Process
22264         options in a single pass.  Use new functions for allocating
22265         infiles and switches arrays.  Properly skip operands of
22266         -Xpreprocessor and -Xassembler.
22267
22268 2010-06-26  Jan Hubicka  <jh@suse.cz>
22269
22270         PR middle-end/44671
22271         * cgraphunit.c (cgraph_function_versioning): Remove wrong
22272         cgraph_make_decl_local call; fix typo copying RTL data.
22273
22274 2010-06-25  DJ Delorie  <dj@redhat.com>
22275
22276         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
22277         (m32c_output_aligned_common): Likewise.
22278         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
22279         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
22280         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
22281         (m32c_register_pragmas): Register it.
22282         * config/m32c/m32c.c (m32c_get_pragma_address): New.
22283         (m32c_insert_attributes): Set #pragma address decls volatile.
22284         (pragma_entry_eq): New.
22285         (pragma_entry_hash): New.
22286         (m32c_note_pragma_address): New.
22287         (m32c_get_pragma_address): New.
22288         (m32c_output_aligned_common): New.
22289         * doc/extend.texi: Document the new pragma.
22290
22291         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
22292         also.
22293         * config/m32c/predicates.md (m32c_any_operand): Check the code
22294         instead of memory_operand so as to allow matching volatile MEMs.
22295         (m32c_nonimmediate_operand): Likewise.
22296         (mra_operand): Allow volatiles.
22297
22298 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
22299
22300         PR debug/44610
22301         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
22302         address if the offset is unknown.
22303
22304 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
22305
22306         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
22307         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
22308         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
22309         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
22310         to ia64_start_function. Invoke it.
22311         * config/ia64/ia64.c (ia64_start_function): Call new function
22312         dwarf2out_vms_debug_main_pointer.
22313
22314 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22315
22316         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
22317         statements computing the true predicate.
22318
22319 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22320
22321         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
22322         to boolean_true_node.
22323         (reset_bb_predicate): New.
22324         (predicate_bbs): Call reset_bb_predicate.
22325
22326 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22327
22328         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
22329         (tree_if_conversion): Returns true when something has been changed.
22330         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
22331         changed something.
22332
22333 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22334
22335         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
22336         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
22337         * tree-if-conv.c: Include dbgcnt.h.
22338         (tree_if_conversion): Use if_conversion_tree to count the number of
22339         if-convertible loops.
22340
22341 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
22342
22343         * common.opt (fprefetch-loop-arrays): Re-define
22344         -fprefetch-loop-arrays as a tri-state option with the initial
22345         value of -1.
22346         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
22347         pass only when flag_prefetch_loop_arrays > 0.
22348         * toplev.c (process_options): Note that, with tri-states,
22349         flag_prefetch_loop_arrays>0 means prefetching is enabled.
22350         * config/i386/i386.c (override_options): Enable prefetching at -O3
22351         for a set of CPUs that sw prefetching is helpful.
22352         (software_prefetching_beneficial_p): New.  Return TRUE if software
22353         prefetching is beneficial for the given CPU.
22354
22355 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
22356
22357         PR rtl-optimization/44326
22358         * implicit-zee.c (find_removable_zero_extends): Replace
22359         INSN_P with NONDEBUG_INSN_P.
22360
22361 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22362
22363         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
22364         (struct ipa_node_params): Removed the modification_analysis_done flag.
22365         (ipa_is_param_modified): Removed.
22366         (ipa_analyze_node): Declare.
22367         (ipa_compute_jump_functions): Remove declaration.
22368         (ipa_count_arguments): Likewise.
22369         (ipa_detect_param_modifications): Likewise.
22370         (ipa_analyze_params_uses): Likewise.
22371         * ipa-prop.c (struct param_analysis_info): New type.
22372         (visit_store_addr_for_mod_analysis): Removed.
22373         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
22374         moved down in the file.
22375         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
22376         (ipa_count_arguments): Made static.
22377         (mark_modified): New function.
22378         (is_parm_modified_before_call): New function.
22379         (compute_pass_through_member_ptrs): New parameter parms_info, call
22380         is_parm_modified_before_call instead of ipa_is_param_modified.
22381         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
22382         it to compute_pass_through_member_ptrs.
22383         (ipa_compute_jump_functions): New parameter parms_info, pass it to
22384         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
22385         on the callee if it is analyzed.  Made static.
22386         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
22387         is_parm_modified_before_call instead of ipa_is_param_modified.
22388         (ipa_analyze_call_uses): New parameter parms_info, pass it to
22389         ipa_analyze_indirect_call_uses.
22390         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
22391         ipa_analyze_call_uses.
22392         (ipa_analyze_params_uses): New parameter parms_info, pass it to
22393         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
22394         (ipa_analyze_node): New function.
22395         (ipa_print_node_params): Do not dump the modified flag.
22396         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
22397         it.  Do not stream the modified parameter flag.
22398         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
22399         it.  Do not stream the modified parameter flag.
22400         * ipa-cp.c (ipcp_analyze_node): Removed.
22401         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
22402         with only a call to ipa_analyze_node.
22403         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
22404         node with only a call to ipa_analyze_node.
22405
22406 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22407
22408         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
22409
22410 2010-06-25  Jan Hubicka  <jh@suse.cz>
22411
22412         * tree-pass.h (pass_split_functions): Declare.
22413         * opts.c (decode_options): Enable function splitting at -O2
22414         * timevar.def (TV_IPA_FNSPLIT): New macro.
22415         * ipa-split.c: New file.
22416         * common.opt (-fpartial-inlining): New flag.
22417         * Makefile.in (ipa-split.o): New object file.
22418         * passes.c (init_optimization_passes): Add ipa-split.
22419         * params.def (partial-inlining-entry-probability): New parameters.
22420         * doc/invoke.texi (-fpartial-inlining): New.
22421
22422 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22423
22424         PR 44665
22425         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
22426         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
22427         (gimplify_expr): Likewise.
22428
22429 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22430
22431         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
22432         statements instead of bailing out on them.
22433         (ipa_analyze_indirect_call_uses): Do not require that loads from the
22434         parameter are in the same BB as the condition.  Update comments.
22435
22436 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
22437
22438         PR middle-end/43866
22439         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
22440         true or always false, return NULL_TREE.
22441         (tree_unswitch_single_loop): Optimize conditions even when reaching
22442         max-unswitch-level parameter.  If num > 0, optimize first all conditions
22443         using entry checks, then do still reachable block discovery and consider
22444         only conditions in still reachable basic blocks in the loop.
22445
22446         PR tree-optimization/44539
22447         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
22448         the call doesn't have LHS, but has VDEF.
22449
22450 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22451
22452         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
22453         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
22454         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
22455         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
22456         * system.h (MODIFY_TARGET_NAME): Poison.
22457
22458 2010-06-25  Alan Modra  <amodra@gmail.com>
22459
22460         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
22461         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
22462         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
22463         CMODEL_LARGE as default.
22464         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
22465         (offsettable_ok_by_alignment): Delete.
22466         (rs6000_emit_move): Remove mcmodel=medium optimization.
22467
22468 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22469
22470         With large parts from Jim Wilson:
22471         PR target/43902
22472         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
22473         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22474         * optabs.c (optab_for_tree_code): Likewise.
22475         (expand_widen_pattern_expr): Likewise.
22476         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
22477         out of execute_optimize_widening_mul.
22478         (convert_plusminus_to_widen): New function.
22479         (execute_optimize_widening_mul): Use the two new functions.
22480         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
22481         Remove code to generate widening multiply-accumulate.  Add support
22482         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22483         * gimple-pretty-print.c (dump_ternary_rhs): New function.
22484         (dump_gimple_assign): Call it when appropriate.
22485         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
22486         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
22487         (expand_gimple_stmt_1): Likewise.
22488         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
22489         WIDEN_MULT_MINUS_EXPR.
22490         * tree-ssa-operands.c (get_expr_operands): Likewise.
22491         * tree-inline.c (estimate_operator_cost): Likewise.
22492         * gimple.c (extract_ops_from_tree_1): Renamed from
22493         extract_ops_from_tree.  Add new arg for a third operand; fill it.
22494         (gimple_build_assign_stat): Support operations with three operands.
22495         (gimple_build_assign_with_ops_stat): Likewise.
22496         (gimple_assign_set_rhs_from_tree): Likewise.
22497         (gimple_assign_set_rhs_with_ops_1): Renamed from
22498         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
22499         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
22500         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
22501         WIDEN_MULT_MINUS_EXPR.
22502         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
22503         (extract_ops_from_tree_1): Adjust declaration.
22504         (gimple_assign_set_rhs_with_ops_1): Likewise.
22505         (gimple_build_assign_with_ops): Pass NULL for last operand.
22506         (gimple_build_assign_with_ops3): New macro.
22507         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
22508         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
22509         functions.
22510         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
22511         (verify_gimple_assign): Call it.
22512         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
22513         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
22514         functions for dealing with three-operand statements.
22515         * tree.c (commutative_ternary_tree_code): New function.
22516         * tree.h (commutative_ternary_tree_code): Declare it.
22517         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
22518         ternary statements.
22519         (gimple_assign_nonzero_warnv_p): Likewise.
22520         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
22521         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
22522         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
22523         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
22524         (struct hashtable_expr): New member ternary in the union.
22525         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
22526         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
22527         (iterative_hash_hashable_expr): Likewise.
22528         (print_expr_hash_elt): Handle EXPR_TERNARY.
22529         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
22530         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
22531         statements.  Handle GIMPLE_TERNARY_RHS.
22532
22533 2010-06-25  Jan Hubicka  <jh@suse.cz>
22534
22535         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
22536
22537 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
22538
22539         PR c/44517
22540         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
22541         parameters are not good.
22542         (c_parser_parameter_declaration): Error unknown type name if the type
22543         name can't start declaration specifiers.
22544
22545 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22546
22547         * gcc.c (translate_options): Don't mention +e in comment.
22548         (process_command): Don't handle +e specially.
22549
22550 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22551
22552         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
22553
22554         * ira-build.c (merge_hard_reg_conflicts): New function.
22555         (create_cap_allocno, copy_info_to_removed_store_destinations,
22556         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
22557         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
22558         (remove_unnecessary_allocnos, remove_low_level_allocnos)
22559         copy_nifo_to_removed_store_destination): Use them.
22560         * ira-lives.c (make_hard_regno_born): New function, split out of
22561         make_regno_born.
22562         (make_allocno_born): Likewise.
22563         (make_hard_regno_dead): New function, split out of make_regno_dead.
22564         (make_allocno_dead): Likewise.
22565         (inc_register_pressure): New function, split out of set_allocno_live.
22566         (dec_register_pressure): New function, split out of clear_allocno_live.
22567         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
22568         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
22569         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
22570         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
22571         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
22572         mark_pseudo_regno_live.
22573         (process_bb_node_lives): Use mark_pseudo_regno_live,
22574         make_hard_regno_born and make_allocno_dead.
22575         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
22576         set_allocno_live, clear_allocno_live): Delete functions.
22577
22578         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
22579         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
22580         functions.
22581         (ira_flattening): Use ira_parent_allocno.
22582         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
22583         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
22584
22585         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
22586         statement.
22587
22588         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
22589         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
22590         minmax_set_iter_cond, minmax_set_iter_next,
22591         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
22592         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
22593         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
22594         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
22595         uses changed.
22596
22597         * ira-int.h (struct live_range, live_range_t): Renamed from struct
22598         ira_allocno_live_range and allocno_live_range_t; all uses changed.
22599         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
22600         All uses changed.
22601
22602 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
22603
22604         * thumb2.md (thumb2_tlobits_cbranch): Delete.
22605         (peephole2 to convert zero_extract/compare of single bit to
22606          lshift/compare): New.
22607
22608 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
22609
22610         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
22611         recursive call and call to 'int_const_binop'.
22612         (build_range_check, fold_cond_expr_with_comparison, unextend,
22613         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
22614         multiple_of_p): Adjust call to const_binop.
22615
22616 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
22617
22618         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
22619         determine size of XFmode operand.
22620         (XFmode extended DFmode push splitter): Ditto.
22621         (XFmode extended SFmode push splitter): Ditto.
22622
22623 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
22624
22625         PR target/44588
22626         * config/i386/i386.md (extract_code): New.
22627         (<u>divmodqi4): Likewise.
22628         (divmodhiqi3): Likewise.
22629         (udivmodhiqi3): Likewise.
22630         (<u>divqi3): Remvoved.
22631
22632 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
22633
22634         PR middle-end/44492
22635         * recog.h (struct recog_data): Add is_asm field.
22636         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
22637         present in constraints of inline-asm operand and memory operand
22638         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
22639         (extract_insn): Initialize recog_data.is_asm.
22640         * doc/md.texi (Constraints): Document operand side-effect rules.
22641
22642 2010-06-24  Andi Kleen  <ak@linux.intel.com>
22643
22644         * c-parser.c (c_parser_conditional_expression): Call
22645         warn_for_omitted_condop.
22646         * doc/invoke.texi: Document omitted condop warning.
22647
22648 2010-06-24  Nick Clifton<nickc@redhat.com>
22649
22650         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
22651         insn in the sequence is a jump insn before setting its label.
22652
22653 2010-06-24  Alan Modra  <amodra@gmail.com>
22654
22655         * collect2.c (main): Match exactly --version and --help.
22656
22657 2010-06-24  DJ Delorie  <dj@redhat.com>
22658
22659         * config/m32c/m32c-pragma.c: Don't include rtl.h.
22660
22661 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
22662
22663         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
22664         using X87MODEF mode iterator.
22665         (pushsf splitter): Macroize splitter using P mode iterator.
22666         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
22667         mode iterator.
22668
22669         (*movxf_internal): Rename from *movxf_integer.
22670         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
22671         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
22672         (*movdf_internal): Rename from *movdf_integer.
22673         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
22674         (*movsf_internal): Rename from *movdf_1.
22675
22676 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
22677
22678         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
22679         (const_gimple_seq_node): Removed typedefs.
22680
22681         * gimple.h (gimple_seq_node_d, gimple_seq_node)
22682         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
22683
22684 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
22685
22686         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
22687         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
22688         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
22689         and CODE_FOR_vec_extract_lo_v4df.
22690
22691         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
22692         Changed to define_insn_and_split.
22693         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
22694         (vec_extract_lo_v16hi): Likewise.
22695         (vec_extract_lo_v32qi): Likewise.
22696         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
22697         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
22698
22699 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
22700
22701         PR target/44640
22702         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
22703         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
22704         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
22705         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
22706         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
22707
22708         PR target/44640
22709         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
22710
22711         PR other/44644
22712         * df-core.c (struct df): Rename to df_d.
22713         * df.h (struct df): Likewise.
22714         * dse.h (struct df): Remove forward declaration.
22715         * recog.h (struct insn_data): Rename to:
22716         (struct_insn_data_d).  Adjusted all users.
22717
22718 2010-06-23  Arnaud Charlet  <charlet@adacore.com
22719
22720         PR ada/22220
22721         * doc/install.texi: Update requirements to build GNAT.
22722
22723 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
22724
22725         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
22726         enum type.
22727         (m68k_sched_attr_opx_type): Remove unreachable return.
22728         (m68k_sched_attr_opy_type): Likewise.
22729         (m68k_sched_attr_size): Likewise.
22730         (sched_get_opxy_mem_type): Likewise.
22731         (m68k_sched_attr_op_mem): Likewise.
22732
22733 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
22734
22735         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
22736         new statement and adjust VDEF only if necessary.  Remove superfluous
22737         call to maybe_clean_or_replace_eh_stmt.
22738         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
22739         copy the flags.
22740         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
22741         * tree-inline.c (copy_bb): ...and not there.
22742
22743 2010-06-22  Cary Coutant  <ccoutant@google.com>
22744
22745         * dwarf2out.c (is_nested_in_subprogram): New function.
22746         (should_move_die_to_comdat): Use it.
22747         (copy_ancestor_tree): Don't mark DIEs here.
22748         (copy_decls_walk): Start walk from root of newly-added tree;
22749         mark DIEs here instead.
22750
22751 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
22752
22753         * config/i386/i386.md (unit): Also check sseishft1.
22754
22755 2010-06-22  Jan Hubicka  <jh@suse.cz>
22756
22757         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
22758         enabled.
22759
22760 2010-06-22  Jan Hubicka  <jh@suse.cz>
22761
22762         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
22763         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
22764         Return true if something changed.
22765         * df.h (df_confluence_function_n): Return bool.
22766         * df-core.c (df_worklist_propagate_forward,
22767         df_worklist_propagate_backward): Track changes and ages.
22768         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
22769         track ages.
22770         * dse.c (dse_confluence_n): Return always true.
22771
22772 2010-06-22  Jan Hubicka  <jh@suse.cz>
22773
22774         * bitmap.c (bitmap_clear_bit): Micro optimize.
22775
22776 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
22777
22778         * config/i386/i386.md (SWI1248x): New mode iterator.
22779         (SWI48x): Ditto.
22780         (SWI12): Ditto.
22781         (SWI24): Ditto.
22782
22783         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
22784         SWI1248x mode iterator.
22785         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
22786         using SWI124 mode iterator.
22787         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
22788         mode iterator.
22789         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
22790         *pushdi2_prologue_rex64 using P mode iterator.
22791         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
22792         using SWI48 mode iterator.
22793         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
22794         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
22795         using SWI1248x mode iterator.
22796         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
22797         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
22798         SWI48 mode iterator.
22799         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
22800         iterator.
22801         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
22802         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
22803         SWI12 mode iterator.
22804         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
22805         SWI12 mode iterator.
22806         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
22807         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
22808         SWI24 mode iterator.
22809         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
22810         SWI48 mode iterator.
22811         (mov<mode>_insn_1): New expander.
22812         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
22813         using SWI48x mode iterator.
22814
22815         (*movoi_internal_avx): Rename from *movoi_internal.
22816         (*movti_internal_rex64): Rename from *movti_rex64.
22817         (*movti_internal_sse): Rename from *movti_sse.
22818         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
22819         (*movdi_internal): Rename from *movdi_2.
22820         (*movsi_internal): Rename from *movsi_1.
22821         (*movhi_internal): Rename from *movhi_1.
22822         (*movqi_internal): Rename from *movqi_1.
22823
22824         (insv): Update the call to gen_movsi_insv_1 for rename.
22825         * config/i386/i386.c (promote_duplicated_reg): Ditto.
22826
22827 2010-06-22  Jan Hubicka  <jh@suse.cz>
22828
22829         * passes.c (execute_function_todo): Move call of statistics_fini_pass
22830         to ...
22831         (execute_todo) ... this one.
22832
22833 2010-06-22  Alan Modra  <amodra@gmail.com>
22834
22835         PR target/44364
22836         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
22837         * caller-save.c (insert_restore, insert_save): Use non-validate
22838         form of adjust_address.
22839
22840 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22841
22842         PR target/39690
22843         * config/pa/pa.c (override_options): Disable
22844         -freorder-blocks-and-partition.
22845
22846 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
22847
22848         PR target/44615
22849         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
22850
22851         * config/i386/i386.md (type): Add sseishft1
22852
22853         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
22854         (ppro_insn_load): Likewise.
22855         (ppro_insn_store): Likewise.
22856         (ppro_insn_both): Likewise.
22857
22858         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
22859         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
22860         for type.
22861         (*vec_extractv2di_1_avx): Likewise.
22862         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
22863         type.  Remove atom_unit.
22864         (*vec_extractv2di_1_sse2): Likewise.
22865
22866 2010-06-21  DJ Delorie  <dj@redhat.com>
22867
22868         * diagnostic.h (diagnostic_classification_change_t): New.
22869         (diagnostic_context): Add history and push/pop list.
22870         (diagnostic_push_diagnostics): Declare.
22871         (diagnostic_pop_diagnostics): Declare.
22872         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
22873         from pragmas in a history chain instead of the global table.
22874         (diagnostic_push_diagnostics): New.
22875         (diagnostic_pop_diagnostics): New.
22876         (diagnostic_report_diagnostic): Scan history chain to find state
22877         of diagnostics as of the diagnostic location.
22878         * opts.c (set_option): Pass UNKNOWN_LOCATION to
22879         diagnostic_classify_diagnostic.
22880         (enable_warning_as_error): Likewise.
22881         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
22882         use in the history chain.
22883         * doc/extend.texi: Document pragma GCC diagnostic changes.
22884
22885 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
22886
22887         * dwarf2out.c (add_linkage_name): New function.  Don't add
22888         anything to DW_TAG_member DIEs.
22889         (add_name_and_src_coords_attributes): Use it.
22890         (gen_variable_die): Call it for C++ static data members if
22891         specification is DW_TAG_member.
22892
22893         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
22894         C++ char16_t and char32_t.
22895
22896         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
22897         * genattrtab.c: Include vecprim.h.
22898         (cached_attrs, cached_attr_count, attrs_seen_once,
22899         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
22900         attrs_cached_after): New variables.
22901         (find_attrs_to_cache): New function.
22902         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
22903         (write_test_expr): Add attrs_cached argument, return it too,
22904         attempt to cache non-const attributes used more than once in
22905         a single case handling.
22906         (write_attr_get): Use find_attrs_to_cache, for caching candidates
22907         emit cached_* variables.  Adjust write_attr_set callers.
22908         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
22909         to find attributes that should be cached in this block.  Adjust
22910         write_test_expr callers.
22911         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
22912         callers.
22913         (make_automaton_attrs): Adjust write_test_expr caller.
22914
22915         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
22916         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
22917         (make_automaton_attrs): If find_tune_attr returns non-NULL,
22918         write separate internal_dfa_insn_code_* and insn_default_latency_*
22919         functions for each attribute's value and emit init_sched_attrs
22920         function and function pointers.
22921         * genattr.c (const_attrs, reservations): New variables.
22922         (gen_attr): Add const attributes to const_attrs vector.
22923         (check_tune_attr, find_tune_attr): New functions.
22924         (main): Add reservations to reservations vector.  If find_tune_attr
22925         returns true, add prototype for init_sched_attrs and make
22926         internal_dfa_insn_code and insn_default_latency function pointers,
22927         otherwise define init_sched_attrs as dummy macro.
22928         * cfgexpand.c: Include insn-attr.h.
22929         (gimple_expand_cfg): Call init_sched_attrs.
22930
22931         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
22932
22933         PR target/44575
22934         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
22935         va_arg from a set of register save slots into a temporary,
22936         if the container is bigger than type size, do the copying
22937         using smaller mode or using memcpy.
22938
22939         PR bootstrap/44426
22940         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
22941         prototype.
22942         (sel_print_to_dot): Remove macro.
22943         (sel_print): Likewise.  New prototype.
22944         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
22945         (sel_print): New function.
22946
22947 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22948
22949         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
22950         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
22951
22952 2010-06-21  Nick Clifton  <nickc@redhat.com>
22953
22954         * config/rx/rx.h (PTRDIFF_TYPE): Define.
22955         (SMALL_REGISTER_CLASS): Define (to zero).
22956         (PRINT_OPERAND): Delete.
22957         (PRINT_OPERAND_ADDRESS): Delete.
22958         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
22959         (rx_print_operand_address): Delete prototype.
22960         * config/rx/rx.c (rx_print_operand): Make static.
22961         Allow %H and %L to handle CONST_DOUBLEs.
22962         (rx_print_operand_address): Make static.
22963         (rx_gen_move_template): Rename local variable 'template' to
22964         out_template.
22965         (rx_function_arg): Do not pass unknown sized objects in registers.
22966         (TARGET_PRINT_OPERAND): Define.
22967         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22968
22969 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
22970
22971         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
22972
22973 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
22974
22975         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
22976         stack-alignment for simple leaf-functions.
22977
22978 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
22979
22980         * doc/install.texi: Document bootstrap-lto.
22981
22982 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
22983
22984         PR debug/44248
22985         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
22986         (input_function): Drop them here, if VTA is disabled.
22987
22988 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
22989
22990         PR target/44546
22991         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
22992         New predicate.
22993         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
22994         ix86_swapped_fp_comparsion_operator instead of
22995         ix86_fp_comparison_operator.
22996
22997         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
22998         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
22999         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
23000         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
23001         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
23002         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
23003
23004 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
23005
23006         PR other/32998
23007         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
23008         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
23009         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
23010         (decode_cmdline_option): Update for this return value.  Set
23011         orig_option_with_args_text field.  Set arg field for unknown
23012         options.  Make static.
23013         (decode_cmdline_options_to_array): New.
23014         (prune_options): Update handling of find_opt return value.
23015         * opts.c (read_cmdline_option): Take decoded option.  Return void.
23016         (read_cmdline_options): Take decoded options.
23017         (decode_options): Add parameters for decoded options.  Use
23018         decode_cmdline_options_to_array.  Use decoded options for -O
23019         scan.  Use integral_argument for -O parameters.  Update call to
23020         read_cmdline_options.
23021         (enable_warning_as_error): Update handling of find_opt return value.
23022         * opts.h: Update comment on unknown options.
23023         (struct cl_decoded_option): Update comments on opt_index and arg.
23024         Add orig_option_with_args_text.
23025         (decode_cmdline_option): Remove.
23026         (decode_cmdline_options_to_array): Declare.
23027         (decode_options): Update prototype.
23028         * toplev.c (save_argv): Remove.
23029         (save_decoded_options, save_decoded_options_count): New.
23030         (read_integral_parameter): Remove.
23031         (print_switch_values): Use decoded options.
23032         (toplev_main): Don't set save_argv.  Update call to decode_options.
23033         * toplev.h (read_integral_parameter): Remove.
23034         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
23035
23036 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
23037
23038         PR target/44072
23039         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
23040         immediate.
23041         * constraints.md (Pw, Px): New constraints.
23042         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
23043
23044 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
23045
23046         * config/i386/sse.md (fma4modesuffixf4): Removed.
23047         (ssemodesuffixf2s): Likewise.
23048         (ssemodesuffixf4): Likewise.
23049         (ssemodesuffixf2c): Likewise.
23050         (ssescalarmodesuffix2s): Likewise.
23051         (avxmodesuffixf2c): Likewise.
23052         (ssemodesuffix): New.
23053         (ssescalarmodesuffix): Likewise.
23054         Update patterns with ssemodesuffix and ssescalarmodesuffix.
23055
23056 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
23057
23058         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
23059
23060 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
23061
23062         * stor-layout.c (debug_rli): Remove unused local variables.
23063
23064 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
23065
23066         PR rtl-optimization/40900
23067         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
23068         original expression for later reuse.
23069         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
23070         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
23071
23072 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
23073
23074         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
23075         double_int_fits_in_uhwi_p): Implement as static inline.
23076         (double_int_xor): New inline function.
23077         (double_int_lrotate, double_int_rrotate, double_int_max,
23078         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23079         double_int_smin): Declare.
23080         (lrotate_double, rrotate_double): Remove declaration.
23081         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
23082         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
23083         (double_int_lrotate, double_int_rrotate, double_int_max,
23084         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23085         double_int_smin): New function.
23086         * fold-const.c (int_const_binop): Clean up, use double_int_*
23087         functions.
23088         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
23089         double_int_* and immed_double_int_const functions.
23090
23091 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23092
23093         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
23094         * function.c (types_used_by_cur_var_decl): Likewise.
23095         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
23096
23097 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23098
23099         * tree.h (record_layout_info): Change type of pending_statics field
23100         to a VEC.
23101         * stor-layout.c (start_record_layout): Store NULL into
23102         pending_statics.
23103         (debug_rli): Call debug_vec_tree instead of debug_tree.
23104         (place_field): Likewise.
23105         (finish_record_layout): Likewise.
23106
23107 2010-06-18  Alan Modra  <amodra@gmail.com>
23108
23109         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
23110
23111 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23112
23113         PR target/43740
23114         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
23115         for SET source operand from SET destination operand.
23116
23117 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
23118
23119         PR rtl-optimization/39871
23120         * reload1.c (init_eliminable_invariants): For flag_pic, disable
23121         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
23122         (function_invariant_p): Rule out a plus of frame or arg pointer with
23123         a SYMBOL_REF.
23124         * ira.c (find_reg_equiv_invariant_const): Likewise.
23125
23126 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
23127
23128         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
23129         print_operand_address and puts to output the operand for CONST.
23130
23131 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
23132
23133         PR debug/44572
23134         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
23135         hook.
23136
23137 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23138
23139         * v850-protos.h (print_operand): Delete.
23140         (print_operand_address): Delete.
23141         * v850.h (PRINT_OPERAND): Delete.
23142         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23143         (PRINT_OPERAND_ADDRESS): Delete.
23144         * v850.c (print_operand_address): Rename to...
23145         (v850_print_operand_address): ...this.  Make static. Call
23146         v850_print_operand.
23147         (print_operand): Rename to...
23148         (v850_print_operand): ...this.  Make static.  Call
23149         v850_print_operand_address.
23150         (v850_print_operand_punct_valid_p): New function.
23151         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23152         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23153
23154 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23155
23156         * config/sh/sh-protos.h (print_operand): Delete.
23157         (print_operand_address): Delete.
23158         * config/sh/sh.h (PRINT_OPERAND): Delete.
23159         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23160         (PRINT_OPERAND_ADDRESS): Delete.
23161         * config/sh/sh.c (sh_print_operand_address): Make static.
23162         (sh_print_operand): Make static.  Call sh_print_operand_address
23163         and sh_print_operand.
23164         (sh_print_operand_punct_valid_p): New function.
23165         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23166         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23167
23168 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23169
23170         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
23171         (mcore_print_operand_address): Delete.
23172         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
23173         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23174         (PRINT_OPERAND_ADDRESS): Delete.
23175         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
23176         (mcore_print_operand): Make static.
23177         (mcore_print_operand_punct_valid_p): New function.
23178         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
23179         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23180
23181 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23182
23183         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
23184         (print_operand_address): Delete.
23185         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
23186         (PRINT_OPERAND_ADDRESS): Delete.
23187         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
23188         static.
23189         (m68hc11_print_operand): Make static.
23190         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23191
23192 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23193
23194         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
23195         (m32r_print_operand_address): Delete.
23196         * config/m32r/m32r.h (m32r_punct_chars): Delete.
23197         (PRINT_OPERAND): Delete.
23198         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23199         (PRINT_OPERAND_ADDRESS): Delete.
23200         * config/m32r/m32r.c (m32r_punct_chars): Make static.
23201         (m32r_print_operand_address): Make static.
23202         (m32r_print_operand): Make static.
23203         (m32r_print_operand_punct_valid_p): New function.
23204         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23205         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23206
23207 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23208
23209         * config/iq2000/iq2000-protos.h (print_operand): Delete.
23210         (print_operand_address): Delete.
23211         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
23212         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23213         (PRINT_OPERAND_ADDRESS): Delete.
23214         (iq2000_print_operand_punct): Delete.
23215         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
23216         (iq2000_print_operand_address): Make static.
23217         (iq2000_print_operand): Make static.
23218         (iq2000_print_operand_punct_valid_p): New function.
23219         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23220         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23221
23222 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23223
23224         * config/frv/frv-protos.h (frv_print_operand): Delete.
23225         (frv_print_operand_address): Delete.
23226         * config/frv/frv.h (PRINT_OPERAND): Delete.
23227         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23228         (PRINT_OPERAND_ADDRESS): Delete.
23229         * config/frv/frv.c (frv_print_operand_address): Make static.
23230         (frv_print_operand): Make static.
23231         (frv_print_operand_punct_valid_p): New function.
23232         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23233         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23234
23235 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23236
23237         * tree.h (vec_member): Declare.
23238         * tree.c (vec_member): Define.
23239
23240 2010-06-17  Richard Guenther  <rguenther@suse.de>
23241
23242         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
23243         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
23244
23245 2010-06-17  Richard Guenther  <rguenther@suse.de>
23246
23247         * tree-inline.c (declare_return_variable): Remove bogus code.
23248
23249 2010-06-17  Richard Guenther  <rguenther@suse.de>
23250
23251         * gimplify.c (gimplify_bind_expr): Always promote complex
23252         and vector variables to registers if possible.
23253
23254 2010-06-17  Richard Guenther  <rguenther@suse.de>
23255
23256         * expr.c (get_inner_reference): Use double_int for bit_offset
23257         calculation.
23258
23259 2010-06-16  DJ Delorie  <dj@redhat.com>
23260
23261         * common.opt (-fstrict-volatile-bitfields): new.
23262         * doc/invoke.texi: Document it.
23263         * fold-const.c (optimize_bit_field_compare): For volatile
23264         bitfields, use the field's type to determine the mode, not the
23265         field's size.
23266         * expr.c (expand_assignment): Likewise.
23267         (get_inner_reference): Likewise.
23268         (expand_expr_real_1): Likewise.
23269         * expmed.c (store_fixed_bit_field): Likewise.
23270         (extract_bit_field_1): Likewise.
23271         (extract_fixed_bit_field): Likewise.
23272
23273 2010-06-16  Richard Guenther  <rguenther@suse.de>
23274
23275         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
23276
23277 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
23278
23279         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
23280         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
23281         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
23282         * debug.c: Likewise.
23283         * sdbout.c: Likewise.
23284         * vmsdbgout.c: Likewise.
23285         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
23286         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
23287         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
23288         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
23289         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
23290         * dwarf2out.c (dw_fde_struct): New fields
23291         dw_fde_vms_{end,begin}_prologue.
23292         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
23293         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
23294         (dwarf2out_vms_end_prologue): New function.
23295         (dwarf2out_vms_begin_epilogue): New function.
23296         (dw_val_struct): New value dw_val_class_vms_delta.
23297         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
23298         begin_epilogue for VMS.
23299         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
23300         new static functions.
23301         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
23302         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
23303         static functions.
23304         (print_die): New case dw_val_class_vms_delta.
23305         (attr_checksum): Likewise.
23306         (same_dw_val_p: Likewise.
23307         (size_of_die): Likewise.
23308         (value_format): Likewise.
23309         (output_die): Likewise.
23310         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
23311         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
23312         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
23313         dwarf2out_cfi_begin_epilogue
23314         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
23315
23316 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23317
23318         * config/cris/cris-protos.h (cris_print_operand): Delete.
23319         (cris_print_operand_address): Delete.
23320         * config/cris/cris.h (PRINT_OPERAND): Delete.
23321         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23322         (PRINT_OPERAND_ADDRESS): Delete.
23323         * config/cris/cris.c (cris_print_operand_address): Make static.
23324         (cris_print_operand): Make static.
23325         (cris_print_operand_punct_valid_p): New function.
23326         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23327         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23328
23329 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23330
23331         * config/arm/arm-protos.h (arm_print_operand): Delete.
23332         (arm_print_operand_address): Delete.
23333         * config/arm/arm.h (PRINT_OPERAND): Delete.
23334         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23335         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
23336         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
23337         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
23338         (arm_print_operand): Make static.
23339         (arm_print_operand_punct_valid_p): New function.
23340         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23341         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23342
23343 2010-06-16  Nick Clifton  <nickc@redhat.com>
23344
23345         * config/rx/constraints.md (NEGint4): New constraint.
23346         * config/rx/rx.md (attr cc): Add set_zsc.
23347         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
23348         initialised.
23349         (cmpsf): Likewise.
23350         (call_internal): Clobber the cc0 register.
23351         (call_value_internal): Likewise.
23352         (cstoresi4): Likewise.
23353         (movsieq): Likewise.
23354         (movsine): Likewise.
23355         (addsi3): Add alternative to handle small negative constants.
23356         (sunsi3): Likewise.
23357         (addsi3): Do not set the O bit in the cc0 register.
23358         (adddi3): Likewise.
23359         (subsi3): Likewise.
23360         (subdi3): Likewise.
23361         (andsi3): Reorder alternatives to prefer shorter forms.
23362         (mulsi3): Likewise.
23363         (iorsi3): Likewise.
23364         (negsi2): Note that the cc0 flags are set.
23365         (rotlsi3): Note that only the Z and S bits are set in cc0.
23366         (lshrsi3): Likewise.
23367         (ashlsi3): Likewise.
23368         (subsf3): Use %Q for the MEM operand.
23369         (fix_truncsfsi2): Likewise.
23370         (floatsisf2): Likewise.
23371         (bitset): Remove early clobber from destination.
23372         (bitset_in_memory): Likewise.
23373         (lrintsf2): Clobber the cc0 register.
23374         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
23375         (rx_print_operand): Handle %N.
23376
23377 2010-06-16  Jan Hubicka  <jh@suse.cz>
23378
23379         * df-core.c (df_compact_blocks): Free problem_temps vector.
23380
23381 2010-06-16  Martin Jambor  <mjambor@suse.cz>
23382
23383         PR tree-optimization/43905
23384         * tree-sra.c: Include tree-inline.h.
23385         (create_abstract_origin): Removed.
23386         (modify_function): Version the call graph node instead of creating
23387         abstract origins and dealing with same_body aliases.
23388         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
23389         function is versionable.
23390         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
23391
23392 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
23393
23394         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
23395         (CHOOSE_DYNAMIC_LINKER): Update.
23396
23397 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
23398
23399         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
23400         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
23401         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
23402         *prefetch_3dnow_rex.
23403
23404 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
23405
23406         * target.h (struct asm_out):Add declare_constant_name field.
23407         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23408         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
23409         * output.h (default_asm_declare_constant_name): Declare.
23410         (assemble_label): Update prototype.
23411         * varasm.c (assemble_constant_contents): Use
23412         targetm.asm_out.declare_constant_name target hook.
23413         (assemble_label): Add 'file' argument.
23414         (default_asm_declare_constant_name): New function.
23415         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
23416         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
23417         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
23418
23419         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
23420         * config/darwin.c (darwin_asm_declare_constant_name): New function.
23421         (machopic_output_indirection): Update assemble_label argument list.
23422         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
23423         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23424
23425 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
23426
23427         PR middle-end/44391
23428         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
23429         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
23430
23431 2010-06-15  Richard Guenther  <rguenther@suse.de>
23432
23433         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
23434
23435 2010-06-15  Paul Brook  <paul@codesourcery.com>
23436
23437         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
23438         hard-float ABI.
23439
23440 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
23441
23442         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
23443         don't get a vector type for output.
23444
23445 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
23446
23447         PR fortran/44536
23448         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
23449         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
23450         (LANG_HOOKS_DECLS): Add it.
23451         * gimplify.c (omp_notice_variable): Call
23452         lang_hooks.decls.omp_report_decl.
23453
23454 2010-06-15  Martin Jambor  <mjambor@suse.cz>
23455
23456         PR lto/44464
23457         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
23458         on the newly dead SSA name.
23459
23460 2010-06-15  Alan Modra  <amodra@gmail.com>
23461
23462         * doc/invoke.texi: Add mcmodel to powerpc options.
23463         * configure.ac: Add HAVE_LD_LARGE_TOC test.
23464         * configure: Regenerate.
23465         * config.in: Regenerate.
23466         * config/rs6000/linux64.opt (mcmodel): New.
23467         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
23468         (TARGET_CMODEL, SET_CMODEL): Define.
23469         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
23470         select CMODEL_MEDIUM default.
23471         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
23472         (TARGET_CMODEL): Define default.
23473         * config/rs6000/rs6000.c (cmodel): New variable.
23474         (rs6000_explicit_options): Add cmodel field.
23475         (rs6000_handle_option): Handle -mcmodel.
23476         (create_TOC_reference): Add largetoc_reg param.  Generate high,
23477         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
23478         (rs6000_delegitimize_address): Recognise new toc reference rtl
23479         and minimal-toc rtl.
23480         (rs6000_legitimize_reload_address): Handle new toc references.
23481         (print_operand_address): Handle legitimate_constant_pool_address_p
23482         match before lo_sum.
23483         (rs6000_eliminate_indexed_memrefs): Tidy.
23484         (rs6000_emit_move): Tweak threshold for inlining constants.
23485         Keep rs6000_emit_allocate_stack large stack frame offsets
23486         loaded into r0 inline.
23487         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
23488         (tocrel_base, tocrel_offset): New variables.
23489         (toc_relative_expr_p): Set them here.
23490         (print_operand_address): Skip over any offset on constant pool address.
23491         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
23492         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
23493         (offsettable_ok_by_alignment): New function.
23494         (rs6000_emit_move): Address suitably aligned local symbol_refs
23495         relative to the toc pointer for -mcmodel=medium.
23496         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
23497         strict param.  Allow lo_sum version of addressing.  Verify reg
23498         used for -mminimal-toc and -mcmodel != small.  Update all callers.
23499         * config/rs6000/constraints.md: Update for above change.
23500         * config/rs6000/predicates.md: Likewise.
23501         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
23502         code.
23503         (tls_gd): Split for -mcmodel=medium/large.
23504         (tls_gd_high, tls_gd_low): New.
23505         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
23506         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
23507         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
23508         (largetoc_high, largetoc_low): New.
23509         (cmptf_internal2): Add clobber.
23510         * config/rs6000/rs6000-protos.h: Update.
23511
23512 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
23513
23514         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
23515         true if no prefetch is going to be generated for a given group.
23516         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
23517         estimate the prefetch_count.
23518         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
23519         prefetch count by considering the unroll_factor and prefetch_mod
23520         for is_loop_prefetching_profitable.
23521
23522 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
23523
23524         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
23525         anything if the argument is not a MEM.
23526
23527 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23528
23529         PR debug/43650
23530         PR debug/44181
23531         PR debug/44247
23532         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
23533         debug stmts.
23534         (canonicalize_loop_ivs): Likewise.
23535
23536 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23537
23538         PR debug/43656
23539         * haifa-sched.c (setup_insn_reg_pressure_info,
23540         update_register_pressure): Reject debug insns.
23541         (ready_sort): Don't setup reg pressure for debug insns.
23542         (schedule_insn): Don't update reg pressure for debug insns.
23543
23544 2010-06-14  Richard Guenther  <rguenther@suse.de>
23545
23546         * lto-streamer.c (cached_bp): Remove.
23547         (bitpack_delete): Likewise.
23548         (bitpack_create): Likewise.
23549         (bp_get_next_word): Likewise.
23550         (bp_pack_value, bp_unpack_value): Move ...
23551         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
23552         Re-implement.
23553         (struct bitpack_d): Likewise.
23554         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
23555         New inline functions.
23556         * lto-streamer-out.c (lto_output_bitpack): Remove.
23557         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23558         (pack_value_fields): Adjust.
23559         (lto_write_tree): Likewise.
23560         (output_gimple_stmt): Likewise.
23561         (output_function): Likewise.
23562         * lto-streamer-in.c (input_gimple_stmt): Adjust.
23563         (input_function): Likewise.
23564         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23565         (lto_input_bitpack): Remove.
23566         (lto_materialize_tree): Adjust.
23567         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
23568         * lto-cgraph.c (lto_output_edge): Adjust.
23569         (lto_output_node): Likewise.
23570         (lto_output_varpool_node): Likewise.
23571         (lto_output_ref): Likewise.
23572         (input_node): Likewise.
23573         (input_varpool_node): Likewise.
23574         (input_ref): Likewise.
23575         (input_edge): Likewise.
23576         (output_node_opt_summary): Likewise.
23577         (input_node_opt_summary): Likewise.
23578         * ipa-pure-const.c (pure_const_write_summary): Likewise.
23579         (pure_const_read_summary): Likewise.
23580         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
23581         (ipa_read_indirect_edge_info): Likewise.
23582         (ipa_write_node_info): Likewise.
23583         (ipa_read_node_info): Likewise.
23584
23585 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
23586
23587         PR target/44534
23588         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
23589         (vec_extract_lo_v16hi): Likewise.
23590         (vec_extract_lo_v32qi): Likewise.
23591
23592 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23593
23594         PR bootstrap/44426
23595         * tree.h (build_call_expr): Don't define as vararg macro, instead
23596         add a prototype.
23597         * builtins.c (build_call_nofold): Remove.
23598         (expand_builtin_int_roundingfn, expand_builtin_pow,
23599         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
23600         expand_builtin_memset_args, expand_builtin_strcmp,
23601         expand_builtin_strncmp, expand_builtin_memory_chk): Use
23602         build_call_nofold_loc instead of build_call_nofold.
23603         (build_call_expr): New function.
23604
23605         PR tree-optimization/44508
23606         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
23607         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
23608         don't eliminate trivially dead stmts.
23609         * tree-vrp.c (vrp_finalize): Pass false as last argument
23610         to substitute_and_fold.
23611         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
23612         to substitute_and_fold.
23613         * tree-ssa-ccp.c (ccp_finalize): Likewise.
23614
23615         PR bootstrap/44509
23616         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
23617
23618 2010-06-14  Ira Rosen  <irar@il.ibm.com>
23619
23620         PR tree-optimization/44507
23621         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
23622         to build initial vector for BIT_AND_EXPR.
23623         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
23624
23625 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23626
23627         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
23628         adjust z10prop set_attr.
23629
23630 2010-06-13  Jan Hubicka  <jh@suse.cz>
23631
23632         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
23633         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
23634         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
23635         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
23636         datastructure checks into checking asserts.
23637         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
23638         * tree-ssa-sccvn.c (VN_INFO): Likewise.
23639         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
23640         df_ref_create_structure): Likewise.
23641         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
23642         pool_free): Use gcc_checking_assert.
23643         * alias.c (get_alias_set): Likewise.
23644         * var-tracking.c (variable_htab_free, shared_hash_copy,
23645         canonicalize_values_mark, variable_merge_over_cur): Likewise.
23646         * lto-streamer.c (bp_unpack_value): Likewise.
23647
23648 2010-06-13  Richard Guenther  <rguenther@suse.de>
23649
23650         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
23651         Do not stream but initialize TYPE_CANONICAL to NULL.
23652         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
23653         * gimple.c (gimple_types_compatible_p): Disregard
23654         TYPE_STRUCTURAL_EQUALITY_P.
23655         (gimple_register_type): Use TYPE_CANONICAL as cache.
23656         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
23657         before registering common types.
23658         * config/i386/i386.c (ix86_function_arg_boundary): Do not
23659         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
23660         * tree.h (TYPE_CANONICAL): Clarify documentation.
23661
23662 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
23663
23664         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
23665         LIBCALL_VALUE): Remove macros.
23666         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
23667         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23668         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23669         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
23670         (ia64_function_value): Make static. Handle receiving the function
23671         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
23672
23673 2010-06-12  Jan Hubicka  <jh@suse.cz>
23674
23675         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
23676         at correct place.
23677
23678 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
23679
23680         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
23681
23682 2010-06-12  Jan Hubicka  <jh@suse.cz>
23683
23684         * df-core.c (df_clear_bb_info): New function.
23685         (df_set_blocks): bb_info is always allocated.
23686         (df_get_bb_info): Use block_info_elt_size.
23687         (df_set_bb_info): Likewise.
23688         (df_compact_blocks): Update for new block_info.
23689         (grow_bb_info): New function.
23690         * df-problems.c (df_grow_bb_info): Move to df-core.c
23691         (df_rd_set_bb_info): Remove.
23692         (df_rd_free_bb_info): Do not free block pool.
23693         (df_rd_alloc): Do not create pool, use check for
23694         obstack presence instead of NULL pointer for new blocks.
23695         (df_rd_free): DO not free alloc pool; clear block_info.
23696         (problem_RD): Add size of block info structure.
23697         (df_lr_set_bb_info): Remove.
23698         (df_lr_free_bb_info): Do not free block pool.
23699         (df_lr_alloc): Do not create pool, use check for
23700         obstack presence instead of NULL pointer for new blocks.
23701         (df_lr_free): DO not free alloc pool; clear block_info.
23702         (problem_LR): Add size of block info structure.
23703         (df_live_set_bb_info): Remove.
23704         (df_live_free_bb_info): Do not free block pool.
23705         (df_live_alloc): Do not create pool, use check for
23706         obstack presence instead of NULL pointer for new blocks.
23707         (df_live_free): DO not free alloc pool; clear block_info.
23708         (problem_LIVE): Add size of block info structure.
23709         (problem_CHAIN): Add size of block info structure.
23710         (df_byte_lr_set_bb_info): Remove.
23711         (df_byte_lr_free_bb_info): Do not free block pool.
23712         (df_byte_lr_alloc): Do not create pool, use check for
23713         obstack presence instead of NULL pointer for new blocks.
23714         (df_byte_lr_free): DO not free alloc pool; clear block_info.
23715         (problem_BYTE_LR): Add size of block info structure.
23716         (problem_NOTE): Add size of block info structure.
23717         (df_byte_MD_set_bb_info): Remove.
23718         (df_byte_MD_free_bb_info): Do not free block pool.
23719         (df_byte_MD_alloc): Do not create pool, use check for
23720         obstack presence instead of NULL pointer for new blocks.
23721         (df_byte_MD_free): DO not free alloc pool; clear block_info.
23722         (problem_BD): Add size of block info structure.
23723         * df-scan.c (df_scan_free_internal): Free block pool.
23724         (df_scan_set_bb_info): Remove.
23725         (df_scan_free_bb_info): Check for artificial_defs instead
23726         of bb_info being non-NULL.
23727         (df_scan_alloc): DO not create df_scan_block pool.
23728         (problem_SCAN): Set size of block info.
23729         (df_bb_refs_record): Do not allocate bb_info.
23730         * df.h (df_problem): Add block_info_elt_size.
23731         (struct dataflow): Change block_info to void *.
23732         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
23733         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
23734         in-line structures.
23735
23736 2010-06-12  Jan Hubicka  <jh@suse.cz>
23737
23738         PR tree-optimize/44485
23739         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
23740         containing use of return value of noreturn function.
23741
23742 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
23743
23744         * targhooks.c (default_function_value): Don't use
23745         FUNCTION_OUTGOING_VALUE.
23746         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
23747         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
23748
23749 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
23750
23751         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
23752         Add crtfastmath.o to extra_parts.
23753         * config/mips/crtfastmath.c: New.
23754         * config/mips/linux.h (ENDFILE_SPEC): New.
23755
23756 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
23757
23758         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
23759         old_type in parameter.
23760         (gcc_type_for_value): Update call to gcc_type_for_interval.
23761         (compute_type_for_level_1): Renamed compute_type_for_level.
23762         Update call to gcc_type_for_interval.
23763
23764 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23765
23766         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
23767         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
23768
23769 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23770
23771         * opts-common.c: Include options.h.
23772         (integral_argument): Move from opts.c.
23773         (decode_cmdline_option): New.  Based on read_cmdline_option.
23774         * opts.c (integral_argument): Move to opts-common.c.
23775         (read_cmdline_option): Move most contents to
23776         decode_cmdline_option.  Use %qs in diagnostics.
23777         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
23778         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
23779         decode_cmdline_option): New.
23780
23781 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23782
23783         PR target/44481
23784         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
23785         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
23786         (partiysi2_cmp): Ditto.
23787         (*partiyhi2_cmp): Ditto.
23788         (*parityqi2_cmp): Remove.
23789
23790 2010-06-11  Jan Hubicka  <jh@suse.cz>
23791
23792         * bitmap.h (bmp_iter_next_bit): New.
23793         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
23794
23795 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
23796             Eric Botcazou  <ebotcazou@adacore.com>
23797
23798         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
23799         computed cost.
23800
23801 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23802
23803         * config/i386/i386.md (unspec): New define_c_enum.
23804         (unspecv): Ditto.
23805
23806 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
23807
23808         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
23809
23810 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
23811
23812         PR middle-end/44483
23813         * tree-if-conv.c (bb_predicate_s): New struct.
23814         (bb_predicate_p): New.
23815         (bb_has_predicate): New.
23816         (bb_predicate): New.
23817         (set_bb_predicate): New.
23818         (bb_predicate_gimplified_stmts): New.
23819         (set_bb_predicate_gimplified_stmts): New.
23820         (add_bb_predicate_gimplified_stmts): New.
23821         (init_bb_predicate): New.
23822         (free_bb_predicate): New.
23823         (is_predicated): Use bb_predicate.
23824         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
23825         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
23826         before processing their successors.
23827         (clean_predicate_lists): Removed.
23828         (find_phi_replacement_condition): Use bb_predicate.
23829         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
23830         computations.
23831         (insert_gimplified_predicates): New.
23832         (combine_blocks): Call insert_gimplified_predicates.
23833         (tree_if_conversion): Call free_bb_predicate instead of
23834         clean_predicate_lists.
23835
23836 2010-10-11  Paul Brook  <paul@codesourcery.com>
23837
23838         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
23839         * config/arm/arm.c (all_architectures): Change v7e-m default to
23840         cortexm4.
23841         * config/arm/arm-cores.def: Add cortex-m4.
23842         * config/arm/arm-tune.md: Regenerate.
23843
23844 2010-06-11  Jan Hubicka  <jh@suse.cz>
23845
23846         * ipa-pure-const.c (special_builtlin_state): New function.
23847         (check_call): Use it instead of special casign BUILT_IN_RETURN.
23848         (propagate_pure_const): Use it.
23849
23850 2010-06-11  Jan Hubicka  <jh@suse.cz>
23851
23852         * df-problems.c (df_live_scratch): Convert to bitmap_head.
23853         (df_live_alloc): Initialize df_live_scratch when initializing
23854         problem_data.
23855         (df_live_transfer_function): Update uses of df_live_scratch.
23856         (df_live_free): Free problem_data; clear df_live_scratch before
23857         releasing the obstack.
23858         (df_md_free): Free problem data.
23859
23860 2010-06-11  Jan Hubicka  <jh@suse.cz>
23861
23862         * doc/invoke.texi (Wsuggest-attribute): Document.
23863         (Wmissing-noreturn): Remove.
23864         * ipa-pure-const.c (warn_function_noreturn): New function.
23865         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
23866         warn_missing_noreturn.
23867         * common.opt (Wsuggest-attribute=noreturn): New.
23868         * tree-flow.h (warn_function_noreturn): Declare.
23869         * tree-cfg.c (execute_warn_function_noreturn): Use
23870         warn_function_noreturn.
23871         (gate_warn_function_noreturn): New.
23872         (pass_warn_function_noreturn): Update.
23873
23874 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23875
23876         * c-typeck.c (handle_warn_cast_qual): Add loc
23877         parameter. Improve warning message.
23878         (build_c_cast): Pass location to handle_warn_cast_qual.
23879
23880 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23881
23882         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
23883         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
23884         insn mnemonic.
23885         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
23886
23887 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
23888
23889         Fix bootstap on mips
23890         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
23891         be naming typedefs.
23892
23893 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
23894
23895         * system.h (helper_const_non_const_cast): New inline for
23896         gcc version <= 4.0.
23897         (CONST_CAST2): For gcc version <= 4.0 use
23898         new helper to do const/non-const casting.
23899
23900 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23901
23902         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
23903         * Makefile.in (OBJS-common): Include insn-enums.o.
23904         (insn-enums.o): New rule.
23905         (simple_generated_c): Add insn-enums.c.
23906         (build/genenums.o): New rule.
23907         (genprogmd): Add "enums".
23908         * genconstants.c (print_enum_type): Declare a C string array
23909         for each enum.
23910         * genenums.c: New file.
23911         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
23912         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
23913         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
23914
23915 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23916
23917         * doc/md.texi (define_enum_attr): Document.
23918         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
23919         * read-md.h (lookup_enum_type): Declare.
23920         * read-md.c (lookup_enum_type): New function.
23921         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
23922         * genattrtab.c (attr_desc): Add an enum_name field.
23923         (evaluate_eq_attr): Take the associated attribute as argument.
23924         Get the enum prefix from the enum_name field, if defined.
23925         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
23926         (simplify_test_exp): Pass attr to evaluate_eq_attr.
23927         (add_attr_value): New function, split out from...
23928         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
23929         (write_test_expr): Pass attr to evaluate_eq_attr.
23930         (write_attr_get): Use the enum_name as the enum tag, if defined.
23931         (write_attr_valueq): Use the enum_name as a prefix, if defined.
23932         (find_attr): Initialize enum_name.
23933         (main): Handle DEFINE_ENUM_ATTR.
23934         * gensupport.c (process_rtx): Likewise.
23935         * config/mips/mips.h (mips_tune_attr): Delete.
23936         * config/mips/mips.md (cpu): Use define_attr_enum.
23937
23938 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23939
23940         * doc/md.texi (define_c_enum, define_enum): Document.
23941         * read-md.h (md_constant): Add a parent_enum field.
23942         (enum_value, enum_type): New structures.
23943         (upcase_string, traverse_enum_types): Declare.
23944         * read-md.c (enum_types): New variable.
23945         (upcase_string, add_constant): New functions.
23946         (handle_constants): Don't create the hash table here.
23947         Use add_constant.
23948         (traverse_md_constants): Don't check for a null md_constants.
23949         (decimal_string, handle_enum, traverse_enum_types): New functions.
23950         (read_md_files): Initialize md_constants and md_enums.
23951         * genconstants.c (print_md_constant): Ignore info argument.
23952         Only print constants that belong to no enum.
23953         (print_enum_type): New function.
23954         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
23955         for each defined enum type.
23956         * config/mips/mips.md (processor): New define_enum.
23957         (unspec): New define_c_enum.
23958         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
23959         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
23960         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
23961         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
23962         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
23963         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
23964         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
23965         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
23966         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
23967         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
23968         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
23969         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
23970         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
23971         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
23972         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
23973         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
23974         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
23975         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
23976         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
23977         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
23978         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
23979         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
23980         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
23981         (UNSPEC_RDDSP): Move to mips-dsp.md.
23982         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
23983         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
23984         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
23985         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
23986         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
23987         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
23988         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
23989         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
23990         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
23991         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
23992         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
23993         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
23994         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
23995         Moved to mips-dspr2.md.
23996         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
23997         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
23998         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
23999         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
24000         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
24001         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
24002         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24003         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24004         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24005         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24006         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24007         UNSPEC_LOONGSON_PSADBH)
24008         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24009         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24010         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
24011         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24012         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24013         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24014         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
24015         (cpu): Update comment.
24016         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
24017         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
24018         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
24019         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
24020         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
24021         UNSPEC_LOONGSON_PCMPEQ)
24022         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
24023         UNSPEC_LOONGSON_PINSR_0)
24024         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24025         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24026         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24027         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24028         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24029         UNSPEC_LOONGSON_PSADBH)
24030         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24031         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24032         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
24033         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24034         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24035         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24036         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
24037         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
24038         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
24039         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
24040         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
24041         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
24042         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
24043         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
24044         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
24045         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
24046         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
24047         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
24048         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
24049         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
24050         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
24051         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
24052         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
24053         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
24054         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
24055         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
24056         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24057         (UNSPEC_RDDSP): Moved from mips.md.
24058         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
24059         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
24060         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
24061         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
24062         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
24063         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
24064         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
24065         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
24066         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
24067         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
24068         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
24069         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
24070         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
24071         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
24072         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
24073         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
24074         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
24075         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
24076         (UNSPEC_SCC): Moved from mips.md.
24077         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
24078         "processor_type" to "processor".
24079         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
24080         * config/mips/mips.h (processor_type): Delete.
24081         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
24082         "processor_type" to "processor".
24083
24084 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24085
24086         * configure.ac (tm_include_list): Add insn-constants.h.
24087         * configure: Regenerate.
24088         * Makefile.in (GTM_H): Move insn-constants.h here from...
24089         (TM_H): ...here.
24090         * mkconfig.sh: Remove special handling for insn-constants.h.
24091
24092 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24093
24094         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
24095         (BUILD_MD): ...this new variable.
24096         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
24097         that include the old contents of simple_generated_h and
24098         simple_generated_c.
24099         (simple_generated_h, simple_generated_c): Include them.  Add
24100         insn-constants.h.
24101         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
24102         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
24103         Remove these dependencies from the main rule and include
24104         insn-conditions.md in the command line only if it appears
24105         in the dependency list.
24106         (insn-constants.h, s-constants): Delete.
24107         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
24108         or gensupport.h.
24109         (build/genmddeps.o): Likewise.
24110         (genprogrtl): New variable that contains everything from genprogmd
24111         except mddeps and constants.
24112         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
24113         depend on $(BUILD_MD)
24114         (genprog): New variable.  Make these programs depend on
24115         $(BUILD_ERRORS).
24116         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
24117         (main): Use read_md_files instead of init_rtx_reader_args.
24118         * genconstants.c: As for genmddeps.c.
24119         * read-md.h (read_skip_construct): Declare.
24120         * read-md.c (read_skip_construct): New function.
24121         (handle_file): Allow a null handle_directive, skipping the
24122         construct if so.
24123         (parse_include): Update the comment accordingly.
24124
24125 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24126
24127         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
24128         * genmddeps.c: Include read-md.h.
24129         (main): Call init_rtx_reader_args instead of init_md_reader_args.
24130         * genattr.c (main): Likewise.
24131         * genattrtab.c (main): Likewise.
24132         * genautomata.c (main): Likewise.
24133         * gencodes.c (main): Likewise.
24134         * genconditions.c (main): Likewise.
24135         * genconfig.c (main): Likewise.
24136         * genconstants.c (main): Likewise.
24137         * genemit.c (main): Likewise.
24138         * genextract.c (main): Likewise.
24139         * genflags.c (main): Likewise.
24140         * genopinit.c (main): Likewise.
24141         * genoutput.c (main): Likewise.
24142         * genpeep.c (main): Likewise.
24143         * genrecog.c (main): Likewise.
24144         * genpreds.c (main): Likewise.
24145         * gensupport.h (in_fname): Move to read-md.h.
24146         (init_md_reader_args_cb): Rename to...
24147         (init_rtx_reader_args_cb): ...this and return a bool.
24148         (init_md_reader_args): Rename to...
24149         (init_rtx_reader_args): ...this and return a bool.
24150         (include_callback): Move to read-md.h.
24151         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
24152         (file_name_list, first_dir_md_include): Move to read-md.c
24153         (first_bracket_include): Delete unused variable.
24154         (last_dir_md_include): Move to read-md.c.
24155         (process_include): Delete, moving code to read-md.c:handle_include.
24156         (process_rtx): Don't handle INCLUDE.
24157         (save_string): Delete.
24158         (rtx_handle_directive): New function.
24159         (init_md_reader_args_cb): Rename to...
24160         (init_rtx_reader_args_cb): ...this and return a boolean success value.
24161         Use read_md_args.
24162         (init_md_reader_args): Rename to...
24163         (init_rtx_reader_args): ...this and return a boolean success value.
24164         * rtl.def (INCLUDE): Delete.
24165         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
24166         argument.
24167         * read-rtl.c (read_conditions): Don't gobble ')' here.
24168         (read_mapping): Likewise.
24169         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
24170         Handle top-level non-rtx constructs here rather than in read_rtx_1.
24171         Store the whole queue in *X.  Remove call to init_md_reader.
24172         (read_rtx_1): Rename to...
24173         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
24174         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
24175         here.
24176         (read_nested_rtx): New function.  Handle (nil) here rather than
24177         in read_rtx_code.
24178         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
24179         gobble ')' here.
24180         * read-md.h (directive_handler_t): New type.
24181         (in_fname, include_callback): Moved from read-md.h.
24182         (read_constants, init_md_reader): Delete.
24183         (read_md_files): Declare.
24184         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
24185         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
24186         from gensupport.c.
24187         (read_constants): Rename to...
24188         (handle_constants): ...this.  Don't gobble ')' here.
24189         (handle_include, handle_file, handle_toplevel_file)
24190         (parse_include): New functions, mostly taken from gensupport.c.
24191         (init_md_reader): Subsume into...
24192         (read_md_files): ...this new function.
24193
24194 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24195
24196         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
24197         (unread_char): Decrement read_md_lineno after putting back '\n'.
24198         * read-md.c (fatal_with_file_and_line): Push back any characters
24199         that we decide not to add to the context.
24200         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
24201         fatal_expected_char in cases where '/' ends a line (for example).
24202         (read_name): Don't increment read_md_lineno here.
24203         (read_escape): Likewise.
24204         (read_quoted_string): Likewise.
24205         (read_braced_string): Likewise.
24206
24207 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24208
24209         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
24210         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
24211         * genconstants.c: Include read-md.h.
24212         * read-rtl.c (md_constants): Move to read-md.c.
24213         (md_name): Move to read-md.h.
24214         (initialize_iterators): Use leading_string_hash instead of def_hash
24215         and leading_string_eq_p instead of def_name_eq_p.
24216         (read_name): Move to read-md.c.
24217         (def_hash, def_name_eq_p): Delete.
24218         (read_constants, traverse_md_constants): Move to read-md.c.
24219         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
24220         * read-md.h: Include hashtab.h.
24221         (md_name): Moved from read-rtl.c.
24222         (md_constant): Moved from read-md.h.
24223         (leading_string_hash, leading_string_eq_p, read_name)
24224         (read_constants, traverse_md_constants): Declare.
24225         * read-md.c (md_constants): Moved from read-rtl.c.
24226         (leading_string_hash, leading_string_eq_p): New functions.
24227         (read_name, read_constants, traverse_md_constants): Moved from
24228         read-rtl.c.
24229
24230 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24231
24232         * read-rtl.c (md_name): New structure.
24233         (read_name): Take an md_name instead of a buffer pointer.
24234         Use the "string" field instead of strcpy when expanding constants.
24235         (read_constants): Remove the tmp_char argument.  Update the calls
24236         to read_name, using two local name buffers instead of the tmp_char
24237         argument.  Merge the constant-creation code.
24238         (read_conditions): Remove the tmp_char argument.  Update the calls
24239         to read_name, using a local name buffer instead of the tmp_char
24240         argument.
24241         (read_mapping): Replace tmp_char variable with a local name buffer.
24242         Update the calls to read_name.
24243         (read_rtx_1): Likewise.  Update the calls to read_constants and
24244         read_conditions.
24245
24246 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24247
24248         * Makefile.in (build/read-md.o): Depend on errors.h.
24249         * read-md.h (error_with_line): Declare.
24250         * read-md.c: Include errors.h.
24251         (message_with_line_1): New function, extracted from...
24252         (message_with_line): ...here.
24253         (error_with_line): New function.
24254         * genattrtab.c: If a call to message_with_line is followed by
24255         "have_error = 1;", replace both statements with a call to
24256         error_with_line.
24257         * genoutput.c: Likewise.
24258         * genpreds.c: Likewise.
24259         * genrecog.c: If a call to message_with_line is followed by
24260         "error_count++;", replace both statements with a call to
24261         error_with_line.
24262         (errorcount): Delete.
24263         (main): Don't check it.
24264         * gensupport.c: If a call to message_with_line is followed by
24265         "errors = 1;", replace both statements with a call to error_with_line.
24266         (errors): Delete.
24267         (process_define_cond_exec): Check have_error instead of errors.
24268         (init_md_reader_args_cb): Likewise.  Don't set errors.
24269
24270 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24271
24272         * read-md.h (read_md_file): Declare.
24273         (read_char, unread_char): New functions.
24274         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24275         (read_quoted_string, read_string): Remove FILE * argument.
24276         * read-md.c (read_md_file): New variable.
24277         (read_md_filename, read_md_lineno): Update comments and remove
24278         unnecessary initialization.
24279         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24280         (read_escape, read_quoted_string, read_braced_string, read_string):
24281         Remove FILE * argument.  Update calls accordingly, using read_char
24282         and unread_char instead of getc and ungetc.
24283         * rtl.h (read_rtx): Remove FILE * argument.
24284         * read-rtl.c (iterator_group): Remove FILE * argument from
24285         "find_builtin".
24286         (iterator_traverse_data): Remove "infile" field.
24287         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
24288         (add_mapping, read_name, read_constants, read_conditions)
24289         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
24290         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
24291         Remove file arguments from all calls, using read_char and unread_char
24292         instead of getc and ungetc.
24293         * gensupport.c (process_include): Preserve read_md_file around
24294         the include.  Set read_md_file to the handle of the included file.
24295         Update call to read_rtx.
24296         (init_md_reader_args_cb): Set read_md_file to the handle of the file
24297         and remove local FILE *.  Update calls to read_rtx.
24298
24299 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24300
24301         * read-md.h (read_rtx_lineno): Rename to...
24302         (read_md_lineno): ...this.
24303         (read_rtx_filename): Rename to...
24304         (read_md_filename): ...this.
24305         (copy_rtx_ptr_loc): Rename to...
24306         (copy_md_ptr_loc): ...this.
24307         (print_rtx_ptr_loc): Rename to...
24308         (print_md_ptr_loc): ...this.
24309         * read-md.c: Likewise.  Update references after renaming.
24310         (string_obstack): Replace RTL with MD in comment.
24311         (set_rtx_ptr_loc): Rename to...
24312         (set_md_ptr_loc): ...this.
24313         (get_rtx_ptr_loc): Rename to...
24314         (get_md_ptr_loc): ...this.
24315         * genconditions.c: Update references after renaming.
24316         * genemit.c: Likewise.
24317         * genoutput.c: Likewise.
24318         * genpreds.c: Likewise.
24319         * gensupport.c: Likewise.
24320         * read-rtl.c: Likewise.
24321
24322 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24323
24324         * Makefile.in (READ_MD_H): New variable.
24325         (BUILD_RTL): Add build/read-md.o.
24326         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
24327         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
24328         (build/genattrtab.o, build/genconditions.o build/genemit.o)
24329         (build/genextract.o, build/genflags.o, build/genoutput.o)
24330         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
24331         (build/read-md.o): New rule.
24332         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
24333         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
24334         * coretypes.h: ...here.
24335         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
24336         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
24337         * genattr.c: Include read-md.h.
24338         * genattrtab.c: Likewise.
24339         * genconditions.c: Likewise.
24340         * genemit.c: Likewise.
24341         * genextract.c: Likewise.
24342         * genflags.c: Likewise.
24343         * genoutput.c: Likewise.
24344         * genpreds.c: Likewise.
24345         * genrecog.c: Likewise.
24346         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
24347         (join_c_conditions, print_c_condition, read_rtx_filename)
24348         (read_rtx_lineno): Move to read-md.h.
24349         * read-rtl.c: Include read-md.h.
24350         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
24351         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
24352         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
24353         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
24354         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
24355         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
24356         (read_braced_string, read_string): Move to read-md.c.
24357         (read_rtx): Move some initialization to init_md_reader and call
24358         init_md_reader here.
24359         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
24360         Move to read-md.h.
24361         * gensupport.c: Include read-md.h.
24362         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
24363         * read-md.h, read-md.c: New files.
24364
24365 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
24366
24367         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24368         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24369         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
24370         * config/moxie/moxie.c (moxie_function_value): Make static.
24371         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
24372         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
24373
24374 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24375
24376         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
24377         * dbgcnt.def (tree_sra): New counter.
24378         * tree-sra.c: Include dbgcnt.h.
24379         (gate_intra_sra): Check tree_sra debug counter.
24380
24381 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24382
24383         PR tree-optimization/44258
24384         * tree-sra.c (build_access_subtree): Return false iff there is a
24385         partial overlap.
24386         (build_access_trees): Likewise.
24387         (analyze_all_variable_accesses): Disqualify candidates if
24388         build_access_trees returns true for them.
24389
24390 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
24391
24392         PR debug/41371
24393         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
24394         tail-recurse into canonical node.  Fast-forward over
24395         non-canonical VALUEs.
24396
24397 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
24398
24399         PR boostrap/44470
24400         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
24401         (*addsi_1_zext) <TYPE_LEA>: Likewise.
24402         (add lea splitter): Likewise.
24403         (add_zext lea splitter): Likewise.
24404
24405 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
24406
24407         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
24408
24409 2010-06-10  Jan Hubicka  <jh@suse.cz>
24410
24411         * df-problems.c (df_live_problem_data): Add live_bitmaps.
24412         (df_live_alloc): Initialize problem data and live_osbtacks.
24413         (df_live_finalize): Remove obstack, problem data; do not
24414         clear all bitmaps.
24415         (df_live_top_dump, df_live_bottom_dump): Do not dump old
24416         data when not allocated.
24417         (df_live_verify_solution_start): Do not allocate problem data.
24418         (df_live_verify_solution_end): Check if out is allocated.
24419         (struct df_md_problem_data): New structure.
24420         (df_md_alloc): Allocate problem data.
24421         (df_md_free): Free problem data; do not clear bitmaps.
24422
24423 2010-06-10  Jan Beulich  <jbeulich@novell.com>
24424
24425         PR bootstrap/37304
24426         * configure.ac: Replace $() with ${} when intending to expand
24427         variables rather than invoking commands.
24428         * configure: Re-generate.
24429
24430 2010-06-10  Jan Hubicka  <jh@suse.cz>
24431
24432         PR rtl-optimization/44460
24433         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
24434         TYPE_NEEDS_CONSTRUCTING sanity check.
24435
24436 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
24437
24438         * doc/include/fdl.texi: Move to GFDL version 1.3.
24439
24440         * doc/cpp.texi: Move to GFDL version 1.3.
24441         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
24442         * doc/gccint.texi: Move to GFDL version 1.3.
24443         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
24444         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
24445         * doc/invoke.texi: Move to GFDL version 1.3.
24446
24447 2010-06-09  Jan Hubicka  <jh@suse.cz>
24448
24449         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
24450         Break out from ...
24451         (propagate) ... here; swap the order.
24452
24453 2010-06-09  Jan Hubicka  <jh@suse.cz>
24454
24455         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
24456         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
24457         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
24458         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
24459
24460 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24461
24462         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
24463         Do not the gather memory reference in the outer loop if the step
24464         is not a constant.
24465
24466 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24467
24468         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
24469         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
24470         8 to 4.  Minor change of the related comments.
24471
24472 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24473
24474         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
24475         the scev analysis when the variable is not used outside the loop
24476         in a close phi node: call compute_overall_effect_of_inner_loop.
24477
24478 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24479
24480         * graphite-sese-to-poly.c (single_pred_cond): Renamed
24481         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
24482         (build_sese_conditions_before): Renamed call to single_pred_cond.
24483         (build_sese_conditions_after): Same.
24484
24485 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24486
24487         * graphite-poly.h: Fix comments and indentation.
24488         * graphite-sese-to-poly.c: Same.
24489         (build_sese_conditions_before): Compute stmt and gbb only when needed.
24490         * tree-chrec.c: Fix comments and indentation.
24491         (tree-ssa-loop-niter.c): Same.
24492
24493 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
24494
24495         PR rtl-optimization/42461
24496         * dce.c (deletable_insn_p): Return true for const or pure calls again.
24497         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
24498
24499 2010-06-09  Jan Hubicka  <jh@suse.cz>
24500
24501         * bitmap.c (bitmap_and): Walk array forward.
24502         (bitmap_and_compl_into): Likewise.
24503         (bitmap_xor): Likewise.
24504         (bitmap_xor_into):  Likewise.
24505         (bitmap_equal_p): Likewise.
24506         (bitmap_intersect_p): Likewise.
24507         (bitmap_intersect_compl_p): Likewise.
24508         (bitmap_ior_and_into): Likewise.
24509         (bitmap_elt_copy): Likewise.
24510         (bitmap_and_compl): Likewise.
24511         (bitmap_elt_ior): Likewise.
24512
24513 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
24514
24515         * opts-common.c (prune_options): Ensure replacement argv array
24516         is correctly terminated by a NULL entry.
24517
24518 2010-06-09  Jan Hubicka  <jh@suse.cz>
24519
24520         * cgraph.h (varpool_first_static_initializer,
24521         varpool_next_static_initializer): Make checking only when
24522         checking enabled.
24523         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
24524         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
24525         gcc_assert to gcc_checking_assert.
24526         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
24527         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
24528         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
24529         op_iter_init_phiuse, op_iter_init_phidef,
24530         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
24531         gcc_checking_assert.
24532         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
24533         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
24534         partition_is_global, live_on_entry, live_on_exit,
24535         live_merge_and_clear): Likewise.
24536         * system.h (gcc_checking_assert): New macro.
24537         * gimple.h (set_bb_seq): Use gcc_checking_assert.
24538
24539 2010-06-09  Jason Merrill  <jason@redhat.com>
24540
24541         * Makefile.in (TAGS): Collect tags info from c-family.
24542
24543 2010-06-09  Jan Hubicka  <jh@suse.cz>
24544
24545         * gimple.h (gcc_gimple_checking_assert): New macro.
24546         (gimple_set_def_ops, gimple_set_use_ops,
24547         gimple_set_vuse, gimple_set_vdef,
24548         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
24549         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
24550         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
24551         gimple_asm_output_op, gimple_asm_output_op_ptr,
24552         gimple_asm_set_output_op, gimple_asm_clobber_op,
24553         gimple_asm_set_clobber_op, gimple_asm_label_op,
24554         gimple_asm_set_label_op, gimple_try_set_kind,
24555         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
24556         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
24557         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
24558         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
24559         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
24560         gimple_omp_for_set_initial, gimple_omp_for_final,
24561         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
24562         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
24563         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
24564         conditional with ENABLE_GIMPLE_CHECKING.
24565         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
24566
24567 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
24568
24569         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
24570         (get_computation_cost_at): Use it.
24571         (determine_use_iv_cost_condition): Likewise.
24572         (determine_iv_cost): Likewise.
24573
24574 2010-06-09  Richard Guenther  <rguenther@suse.de>
24575
24576         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
24577         replace constants.
24578
24579 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
24580
24581         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
24582
24583 2010-06-09  Martin Jambor  <mjambor@suse.cz>
24584
24585         PR tree-optimization/44423
24586         * tree-sra.c (dump_access): Dump also grp_assignment_read.
24587         (analyze_access_subtree): Pass negative allow_replacements to children
24588         if the current type is scalar.
24589
24590 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24591
24592         PR testsuite/42843
24593         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
24594         * doc/plugins.texi (Plugin license check): Update information
24595         on type of plugin_is_GPL_compatible.
24596         * Makefile.in (PLUGINCC): Define as $(COMPILER).
24597         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
24598
24599 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
24600
24601         * config/arm/arm.c (thumb2_reorg): New function.
24602         (arm_reorg): Call it.
24603         * config/arm/thumb2.md (define_peephole2 for flag clobbering
24604         arithmetic operations): Delete.
24605
24606 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
24607
24608         PR target/44067
24609         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
24610         e500v2 target.
24611
24612 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24613
24614         PR plugins/44459
24615         * gcc-plugin.h: Encapsulate all declarations in extern "C".
24616
24617 2010-06-08  Jan Hubicka  <jh@suse.cz>
24618
24619         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
24620         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
24621
24622 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
24623
24624         PR tree-optimization/39874
24625         PR middle-end/28685
24626         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
24627         Declare.
24628         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
24629         same_bool_result_p): New.
24630         (and_var_with_comparison, and_var_with_comparison_1,
24631         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
24632         (or_var_with_comparison, or_var_with_comparison_1,
24633         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
24634         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
24635         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
24636         of combine_comparisons.
24637         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
24638
24639 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
24640
24641         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24642         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24643         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
24644         pdp11_function_value_regno_p): New functions.
24645         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24646         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24647
24648 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
24649
24650         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
24651         Thumb-2 in the MINUS case.
24652
24653 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24654
24655         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
24656
24657         * doc/gty.texi (GTY Options): Document typed GC allocation and
24658         variable_size GTY option.
24659
24660         * ggc-internal.h: New.
24661
24662         * ggc.h: Update copyright year.
24663         (digit_string): Move to stringpool.c.
24664         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
24665         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
24666         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
24667         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
24668         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
24669         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
24670         (ggc_force_collect, ggc_get_size, ggc_statistics)
24671         (ggc_print_common_statistics): Move to ggc-internal.h.
24672         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
24673         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
24674         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
24675         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
24676         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
24677         (ggc_alloc_zone_pass_stat): Remove.
24678         (ggc_internal_alloc_stat, ggc_internal_alloc)
24679         (ggc_internal_cleared_alloc_stat): New.
24680         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
24681         (ggc_internal_vec_alloc_stat)
24682         (ggc_internal_cleared_vec_alloc_stat)
24683         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
24684         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
24685         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
24686         (ggc_cleared_alloc_ptr_array_two_args): New.
24687         (htab_create_ggc, splay_tree_new_ggc): Redefine.
24688         (ggc_splay_alloc): Change the type of the first argument to
24689         enum gt_types_enum.
24690         (ggc_alloc_string): Make macro.
24691         (ggc_alloc_string_stat): New.
24692         (ggc_strdup): Redefine.
24693         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
24694         (ggc_alloc_rtvec_sized): New.
24695         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
24696         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
24697         (ggc_internal_cleared_alloc_zone_stat)
24698         (ggc_internal_zone_alloc_stat)
24699         (ggc_internal_zone_cleared_alloc_stat)
24700         (ggc_internal_zone_vec_alloc_stat)
24701         (ggc_alloc_zone_rtx_def_stat)
24702         (ggc_alloc_zone_tree_node_stat)
24703         (ggc_alloc_zone_cleared_tree_node_stat)
24704         (ggc_alloc_cleared_gimple_statement_d_stat): New.
24705
24706         * ggc-common.c: Include ggc-internal.h.
24707         (ggc_internal_cleared_alloc_stat): Rename from
24708         ggc_alloc_cleared_stat.
24709         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
24710         (ggc_calloc): Remove.
24711         (ggc_cleared_alloc_htab_ignore_args): New.
24712         (ggc_cleared_alloc_ptr_array_two_args): New.
24713         (ggc_splay_alloc): Add obj_type parameter.
24714         (init_ggc_heuristics): Formatting fixes.
24715
24716         * ggc-none.c: Update copyright year.
24717         (ggc_alloc_stat): Rename to ggc_alloc_stat.
24718         (ggc_alloc_cleared_stat): Rename to
24719         ggc_internal_cleared_alloc_stat.
24720         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24721
24722         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
24723         Remove references to ggc_alloc in comments.
24724         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
24725         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
24726         (new_ggc_zone, destroy_ggc_zone): Remove.
24727         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24728
24729         * ggc-zone.c: Include ggc-internal.h.  Remove references to
24730         ggc_alloc in comments.
24731         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
24732         (ggc_internal_alloc_zone_pass_stat): New.
24733         (ggc_internal_cleared_alloc_zone_stat): New.
24734         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
24735         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
24736         (new_ggc_zone, destroy_ggc_zone): Remove.
24737
24738         * stringpool.c: Update copyright year.  Include ggc-internal.h
24739         (digit_vector): Make static.
24740         (digit_string): Moved from ggc.h.
24741         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
24742         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
24743
24744         * Makefile.in (GGC_INTERNAL_H): New.
24745         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
24746         $(GGC_INTERNAL_H) to dependencies.
24747
24748         * gengtype.c: Update copyright year.
24749         (walk_type): Accept variable_size GTY option.
24750         (USED_BY_TYPED_GC_P): New macro.
24751         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
24752         whitespace at the end of strings.
24753         (get_type_specifier, variable_size_p): New functions.
24754         (alloc_quantity, alloc_zone): New enums.
24755         (write_typed_alloc_def): New function.
24756         (write_typed_struct_alloc_def): Likewise.
24757         (write_typed_typed_typedef_alloc_def): Likewise.
24758         (write_typed_alloc_defns): Likewise.
24759         (output_typename, write_splay_tree_allocator_def): Likewise.
24760         (write_splay_tree_allocators): Likewise.
24761         (main): Call write_typed_alloc_defns and
24762         write_splay_tree_allocators.
24763
24764         * lto-streamer.h (lto_file_decl_data_ptr): New.
24765
24766         * passes.c (order): Define using cgraph_node_ptr.
24767
24768         * strinpool.c (struct string_pool_data): Declare nested_ptr using
24769         ht_identifier_ptr.
24770
24771         * gimple.h (union gimple_statement_d): Likewise.
24772
24773         * rtl.h (struct rtx_def): Likewise.
24774         (struct rtvec_def): Likewise.
24775
24776         * tree.h (union tree_node): Likewise.
24777
24778         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
24779
24780         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
24781
24782         * tree-scalar-evolution.c (scev_initialize): Likewise.
24783
24784         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
24785
24786         * dwarf2asm.c (dw2_force_const_mem): Likewise.
24787
24788         * omp-low.c (lower_omp_critical): Likewise.
24789
24790         * bitmap.h (struct bitmap_head_def): Update comment to not
24791         reference ggc_alloc.
24792
24793         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
24794
24795         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
24796
24797         * ipa-prop.c (duplicate_ggc_array): Rename to
24798         duplicate_ipa_jump_func_array.  Use typed GC allocation.
24799         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
24800
24801         * gimple.c (gimple_alloc_stat): Use
24802         ggc_alloc_cleared_gimple_statement_d_stat.
24803
24804         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
24805
24806         * tree.c (make_node_stat): Use
24807         ggc_alloc_zone_cleared_tree_node_stat.
24808         (make_tree_vec_stat): Likewise.
24809         (build_vl_exp_stat): Likewise.
24810         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
24811         (make_tree_binfo_stat): Likewise.
24812         (tree_cons_stat): Likewise.
24813
24814         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
24815         (shallow_copy_rtx_stat): Likewise.
24816         (make_node_stat): Likewise.
24817
24818         * lto-symtab.c: Fix comment.
24819
24820         * tree-cfg.c (create_bb): Update comment to not reference
24821         ggc_alloc_cleared.
24822         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
24823
24824         * varpool.c (varpool_node): Use typed GC allocation.
24825         (varpool_extra_name_alias): Likewise.
24826
24827         * varasm.c (emutls_decl): Likewise.
24828         (get_unnamed_section): Likewise.
24829         (get_noswitch_section): Likewise.
24830         (get_section): Likewise.
24831         (get_block_for_section): Likewise.
24832         (build_constant_desc): Likewise.
24833         (create_constant_pool): Likewise.
24834         (force_const_mem): Likewise.
24835
24836         * tree.c (build_vl_exp_stat): Likewise.
24837         (build_real): Likewise.
24838         (build_string): Likewise.
24839         (decl_debug_expr_insert): Likewise.
24840         (decl_value_expr_insert): Likewise.
24841         (type_hash_add): Likewise.
24842         (build_omp_clause): Likewise.
24843
24844         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
24845
24846         * tree-ssa.c (init_tree_ssa): Likewise.
24847
24848         * tree-ssa-structalias.c (heapvar_insert): Likewise.
24849
24850         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
24851
24852         * tree-ssa-loop-niter.c (record_estimate): Likewise.
24853
24854         * tree-ssa-alias.c (get_ptr_info): Likewise.
24855
24856         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
24857
24858         * tree-phinodes.c (allocate_phi_node): Likewise.
24859
24860         * tree-iterator.c (tsi_link_before): Likewise.
24861         (tsi_link_after): Likewise.
24862
24863         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
24864
24865         * tree-dfa.c (create_var_ann): Likewise.
24866
24867         * tree-cfg.c (create_bb): Likewise.
24868
24869         * toplev.c (alloc_for_identifier_to_locale): Likewise.
24870         (general_init): Likewise.
24871
24872         * stringpool.c (stringpool_ggc_alloc): Likewise.
24873         (gt_pch_save_stringpool): Likewise.
24874
24875         * sese.c (if_region_set_false_region): Likewise.
24876
24877         * passes.c (do_per_function_toporder): Likewise.
24878
24879         * optabs.c (set_optab_libfunc): Likewise.
24880         (set_conv_libfunc): Likewise.
24881
24882         * lto-symtab.c (lto_symtab_register_decl): Likewise.
24883
24884         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
24885         (input_eh_region): Likewise.
24886         (input_eh_lp): Likewise.
24887         (make_new_block): Likewise.
24888         (unpack_ts_real_cst_value_fields): Likewise.
24889
24890         * lto-section-in.c (lto_new_in_decl_state): Likewise.
24891
24892         * lto-cgraph.c (input_node_opt_summary): Likewise.
24893
24894         * loop-init.c (loop_optimizer_init): Likewise.
24895
24896         * lambda.h (lambda_vector_new): Likewise.
24897
24898         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
24899
24900         * ira.c (update_equiv_regs): Likewise.
24901
24902         * ipa.c (cgraph_node_set_new): Likewise.
24903         (cgraph_node_set_add): Likewise.
24904         (varpool_node_set_new): Likewise.
24905         (varpool_node_set_add): Likewise.
24906
24907         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
24908         (duplicate_ipa_jump_func_array): Likewise.
24909         (ipa_read_node_info): Likewise.
24910
24911         * ipa-cp.c (ipcp_create_replace_map): Likewise.
24912
24913         * integrate.c (get_hard_reg_initial_val): Likewise.
24914
24915         * gimple.c (gimple_alloc_stat): Likewise.
24916         (gimple_build_omp_for): Likewise.
24917         (gimple_seq_alloc): Likewise.
24918         (gimple_copy): Likewise.
24919
24920         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
24921         (gsi_insert_after_without_update): Likewise.
24922
24923         * function.c (add_frame_space): Likewise.
24924         (insert_temp_slot_address): Likewise.
24925         (assign_stack_temp_for_type): Likewise.
24926         (allocate_struct_function): Likewise.
24927         (types_used_by_var_decl_insert): Likewise.
24928
24929         * except.c (init_eh_for_function): Likewise.
24930         (gen_eh_region): Likewise.
24931         (gen_eh_region_catch): Likewise.
24932         (gen_eh_landing_pad): Likewise.
24933         (add_call_site): Likewise.
24934
24935         * emit-rtl.c (get_mem_attrs): Likewise.
24936         (get_reg_attrs): Likewise.
24937         (start_sequence): Likewise.
24938         (init_emit): Likewise.
24939
24940         * dwarf2out.c (new_cfi): Likewise.
24941         (queue_reg_save): Likewise.
24942         (dwarf2out_frame_init): Likewise.
24943         (new_loc_descr): Likewise.
24944         (find_AT_string): Likewise.
24945         (new_die): Likewise.
24946         (add_var_loc_to_decl): Likewise.
24947         (clone_die): Likewise.
24948         (clone_as_declaration): Likewise.
24949         (break_out_comdat_types): Likewise.
24950         (new_loc_list): Likewise.
24951         (loc_descriptor): Likewise.
24952         (add_loc_descr_to_each): Likewise.
24953         (add_const_value_attribute): Likewise.
24954         (tree_add_const_value_attribute): Likewise.
24955         (add_comp_dir_attribute): Likewise.
24956         (add_name_and_src_coords_attributes): Likewise.
24957         (lookup_filename): Likewise.
24958         (store_vcall_insn): Likewise.
24959         (dwarf2out_init): Likewise.
24960
24961         * dbxout.c (dbxout_init): Likewise.
24962
24963         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
24964
24965         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
24966
24967         * config/score/score7.c (score7_output_external): Likewise.
24968
24969         * config/score/score3.c (score3_output_external): Likewise.
24970
24971         * config/s390/s390.c (s390_init_machine_status): Likewise.
24972
24973         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
24974         (rs6000_init_machine_status): Likewise.
24975         (output_toc): Likewise.
24976
24977         * config/pa/pa.c (pa_init_machine_status): Likewise.
24978         (get_deferred_plabel): Likewise.
24979
24980         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
24981
24982         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
24983
24984         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
24985
24986         * config/mep/mep.c (mep_init_machine_status): Likewise.
24987         (mep_note_pragma_flag): Likewise.
24988
24989         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
24990
24991         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
24992
24993         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
24994
24995         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
24996         (i386_pe_maybe_record_exported_symbol): Likewise.
24997
24998         * config/i386/i386.c (get_dllimport_decl): Likewise.
24999         (ix86_init_machine_status): Likewise.
25000         (assign_386_stack_local): Likewise.
25001
25002         * config/frv/frv.c (frv_init_machine_status): Likewise.
25003
25004         * config/darwin.c (machopic_indirection_name): Likewise.
25005
25006         * config/cris/cris.c (cris_init_machine_status): Likewise.
25007
25008         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
25009
25010         * config/avr/avr.c (avr_init_machine_status): Likewise.
25011
25012         * config/arm/arm.c (arm_init_machine_status): Likewise.
25013
25014         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
25015         (alpha_need_linkage): Likewise.
25016         (alpha_use_linkage): Likewise.
25017
25018         * cgraph.c (cgraph_allocate_node): Likewise.
25019         (cgraph_create_edge_1): Likewise.
25020         (cgraph_create_indirect_edge): Likewise.
25021         (cgraph_add_asm_node): Likewise.
25022
25023         * cfgrtl.c (init_rtl_bb_info): Likewise.
25024
25025         * cfgloop.c (alloc_loop): Likewise.
25026         (rescan_loop_exit): Likewise.
25027
25028         * cfg.c (init_flow): Likewise.
25029         (alloc_block): Likewise.
25030         (unchecked_make_edge): Likewise.
25031
25032         * c-parser.c (c_parse_init): Likewise.
25033         (c_parse_file): Likewise.
25034
25035         * c-decl.c (bind): Likewise.
25036         (record_inline_static): Likewise.
25037         (push_scope): Likewise.
25038         (make_label): Likewise.
25039         (lookup_label_for_goto): Likewise.
25040         (finish_struct): Likewise.
25041         (finish_enum): Likewise.
25042         (c_push_function_context): Likewise.
25043
25044         * bitmap.c (bitmap_element_allocate): Likewise.
25045         (bitmap_gc_alloc_stat): Likewise.
25046
25047         * alias.c (record_alias_subset): Likewise.
25048         (init_alias_analysis): Likewise.
25049
25050 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
25051
25052         * fold-const.c (fold_comparison): Remove redundant parenthesis.
25053         * tree-inline.c (expand_call_inline): Pass translated return value of
25054         cgraph_inline_failed_string to diagnostic function.
25055
25056 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
25057             Shujing Zhao  <pearly.zhao@oracle.com>
25058
25059         PR c/37724
25060         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
25061         implicit bad conversions is initialization.
25062         (error_init): Use gmsgid instead of msgid for argument name and change
25063         the call for error.
25064         (pedwarn_init): Use gmsgid instead of msgid for argument name and
25065         change the call for pedwarn.
25066         (warning_init): Use gmsgid instead of msgid for argument name and
25067         change the call for warning.
25068
25069 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
25070
25071         * config/mips/mips-protos.h (mips_print_operand): Delete.
25072         (mips_print_operand_address): Delete.
25073         * config/mips/mips.h (mips_print_operand_punct): Delete.
25074         (PRINT_OPERAND): Delete.
25075         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25076         (PRINT_OPERAND_ADDRESS): Delete.
25077         * config/mips/mips.c (mips_print_operand_punct): Make static.
25078         (mips_print_operand_address): Make static.
25079         (mips_print_operand): Make static.  Call
25080         mips_print_operand_punct_valid_p.
25081         (mips_print_operand_punct_valid_p): New function.
25082         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25083         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25084
25085 2010-06-07  Jan Hubicka  <jh@suse.cz>
25086
25087         PR middle-end/44454
25088         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
25089         are allocated.
25090
25091 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
25092
25093         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
25094         name of RECORD.
25095
25096 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25097
25098         * doc/sourcebuild.texi (Effective-Target Keywords, Other
25099         attributes): Document gas.
25100
25101 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
25102
25103         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
25104         <TYPE_LEA>: Split instruction.
25105         <default>: Remove alternative 2 handling.
25106         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
25107         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
25108         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
25109
25110         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
25111         (ashift_zext lea splitter): Use DImode for multiplication.
25112
25113         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
25114         to generate addition.
25115
25116 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
25117
25118         * common.opt (fira-verbose): Use Var.
25119         (fpcc-struct-return): Use Init instead of VarExists.
25120         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
25121         toplev.c.
25122         * flags.h (flag_signed_char, flag_short_enums,
25123         flag_pcc_struct_return, flag_ira_verbose,
25124         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
25125         * toplev.c (flag_detailed_statistics, flag_signed_char,
25126         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
25127         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
25128         * toplev.h (flag_crossjumping, flag_if_conversion,
25129         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
25130         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
25131         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
25132         flag_cprop_registers, time_report, flag_ira_loop_pressure,
25133         flag_ira_coalesce, flag_ira_move_spills,
25134         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
25135
25136 2010-06-07  Jan Hubicka  <jh@suse.cz>
25137
25138         * df-core.c (df_analyze_problem): Do verification after allocation.
25139
25140         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
25141         (df_lr_alloc): Initialize problem data; move bitmaps to
25142         lr_bitmaps obstack.
25143         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
25144         (df_lr_verify_solution_start): Do not initialize problem data;
25145         allocate bitmaps in lr_bitmaps.
25146         (df_lr_verify_solution_end): Do not free problem data.
25147
25148 2010-06-07  Jan Hubicka  <jh@suse.cz>
25149
25150         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
25151         if caller is noreturn.
25152         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
25153         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
25154         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
25155         * ipa-pure-const.c (check_decl): Add IPA parameter.
25156         (state_from_flags): New function.
25157         (better_state, worse_state): New functions.
25158         (check_call): When in IPA mode, do not care about callees.
25159         (check_load, check_store): Update.
25160         (check_ipa_load, check_ipa_store): New.
25161         (check_stmt): When in IPA mode, use IPA checkers.
25162         (analyze_function): Use state_from_flags.
25163         (propagate): Check indirect edges and references.
25164
25165 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
25166
25167         PR rtl-optimization/44404
25168         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
25169         of count_occurrences to see if it's safe to modify mem_insn.
25170
25171 2010-06-07  Richard Guenther  <rguenther@suse.de>
25172
25173         * gimplify.c (gimplify_cleanup_point_expr): For empty body
25174         and EH-only cleanup drop the cleanup instead of inserting it
25175         unconditionally.
25176
25177 2010-06-07  Ira Rosen  <irar@il.ibm.com>
25178
25179         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
25180         documentation.
25181         * targhooks.c (default_builtin_vectorization_cost): New function.
25182         * targhooks.h (default_builtin_vectorization_cost): Declare.
25183         * target.h (enum vect_cost_for_stmt): Define.
25184         (builtin_vectorization_cost): Change argument and comment.
25185         * tree-vectorizer.h: Remove cost model macros.
25186         * tree-vect-loop.c: Include target.h.
25187         (vect_get_cost): New function.
25188         (vect_estimate_min_profitable_iters): Replace cost model macros with
25189         calls to vect_get_cost.
25190         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
25191         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
25192         default implementation.
25193         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
25194         calls to target hook builtin_vectorization_cost.
25195         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
25196         Likewise.
25197         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
25198         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
25199         implementation to return costs.
25200         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
25201         * config/spu/spu.h: Remove vectorizer cost model macros.
25202         * config/i386/i386.h: Likewise.
25203         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
25204         a call to target hook builtin_vectorization_cost.
25205
25206 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
25207
25208         PR target/44319
25209         * config/i386/i386.c (override_options): Turn zee pass on for level 2
25210         and above and defer till target is known.
25211         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
25212         turn off otherwise.
25213
25214 2010-05-25  Jan Hubicka  <jh@suse.cz>
25215
25216         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
25217         (df_compact_blocks): Likewise.
25218         * df.h (struct df): Turn hardware_regs_used,
25219         regular_block_artificial_uses, eh_block_artificial_uses,
25220         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
25221         bitmap_head.
25222         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
25223         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
25224         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
25225         df_scan_blocks, df_insn_delete, df_insn_rescan,
25226         df_insn_rescan_debug_internal, df_insn_rescan_all,
25227         df_process_deferred_rescans, df_process_deferred_rescans,
25228         df_notes_rescan, df_get_call_refs, df_get_call_refs,
25229         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
25230         df_record_entry_block_defs, df_record_exit_block_uses,
25231         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
25232         df_scan_verify): Update.
25233
25234 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
25235
25236         PR c++/44188
25237         * c-common.c (is_typedef_decl): Move this definition ...
25238         * tree.c (is_typedef_decl): ... here.
25239         (typdef_variant_p): Move definition here from cp/tree.c.
25240         * c-common.h (is_typedef_decl): Move this declaration ...
25241         * tree.h (is_typedef_decl): ... here.
25242         (typedef_variant_p): Move declaration here from cp/cp-tree.h
25243         * dwarf2out.c (is_naming_typedef_decl): New function.
25244         (gen_tagged_type_die): Split out of ...
25245         (gen_type_die_with_usage): ... this function. When an anonymous
25246         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
25247         is emitted for the typedef.
25248         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
25249         anonymous tagged types.
25250
25251 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25252
25253         PR c/20000
25254         * c-decl.c (grokdeclarator): Delete warning.
25255
25256 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
25257
25258         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
25259         newly built CALL_EXPR.
25260         * tree-profile.c (tree_profiling): Don't profile functions produced
25261         for built-in stuff.
25262
25263 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
25264
25265         PR bootstrap/44427
25266         PR bootstrap/44428
25267         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
25268         endianness-independent.
25269
25270 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
25271
25272         * c-common.c: Move to c-family/.
25273         * c-common.def: Likewise.
25274         * c-common.h: Likewise.
25275         * c-cppbuiltin.c: Likewise.
25276         * c-dump.c: Likewise.
25277         * c-format.c: Likewise.
25278         * c-format.h : Likewise.
25279         * c-gimplify.c: Likewise.
25280         * c-lex.c: Likewise.
25281         * c-omp.c: Likewise.
25282         * c.opt: Likewise.
25283         * c-opts.c: Likewise.
25284         * c-pch.c: Likewise.
25285         * c-ppoutput.c: Likewise.
25286         * c-pragma.c: Likewise.
25287         * c-pragma.h: Likewise.
25288         * c-pretty-print.c: Likewise.
25289         * c-pretty-print.h: Likewise.
25290         * c-semantics.c: Likewise.
25291         * stub-objc.c: Likewise.
25292
25293         * gengtype.c (get_file_langdir): Special-case files in c-family/.
25294         (get_output_file_with_visibility): Fix name for c-common.h.
25295         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
25296
25297         * c-tree.h: Update include path for moved files.
25298         * c-lang.c: Likewise.
25299         * c-lang.h: Likewise.
25300         * c-parser.c: Likewise.
25301         * c-convert.c: Likewise.
25302         * c-decl.c: Likewise.
25303         * c-objc-common.c: Likewise.
25304         * configure.ac: Make sure c-family/ exists in the build directory.
25305         * configure: Regenerate.
25306         * Makefile.in: Update paths for moved files.  Regroup files per
25307         location and update dependencies.  Move generated_files down after
25308         ALL_GTFILES_H.
25309
25310         * config/spu/spu-c.c: Update paths for moved files.
25311         * config/mep/mep-pragma.c: Likewise.
25312         * config/darwin-c.c: Likewise.
25313         * config/i386/msformat-c.c: Likewise.
25314         * config/i386/i386-c.c: Likewise.
25315         * config/avr/avr-c.c: Likewise.
25316         * config/sol2-c.c: Likewise.
25317         * config/ia64/ia64-c.c: Likewise.
25318         * config/rs6000/rs6000-c.c: Likewise.
25319         * config/arm/arm.c: Likewise.
25320         * config/arm/arm-c.c: Likewise.
25321         * config/h8300/h8300.c: Likewise.
25322         * config/v850/v850-c.c: Likewise.
25323
25324         * config/t-darwin: Fix dependencies for moved files.
25325         * config/t-sol2: Fix dependencies for moved files.
25326         * config/mep/t-mep: Fix dependencies for moved files.
25327         * config/ia64/t-ia64: Fix dependencies for moved files.
25328         * config/rs6000/t-rs6000: Fix dependencies for moved files.
25329         * config/v850/t-v850: Fix dependencies for moved files.
25330         * config/v850/t-v850e: Fix dependencies for moved files.
25331
25332         * config/m32c/m32c-pragma.c
25333
25334         * po/exgettext: Look in c-family/ also.
25335
25336 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
25337
25338         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
25339         (mark_control_dependent_edges_necessary): Call it instead of marking
25340         the last statement manually.
25341         (propagate_necessity): Likewise.
25342
25343 2010-06-05  Jan Hubicka  <jh@suse.cz>
25344
25345         * basic-block.h (compute_dominance_frontiers): Updated.
25346         (compute_idf): Likewise.
25347
25348         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
25349         for dominance frontiers.
25350         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
25351         (insert_updated_phi_nodes_for): Likewise.
25352         (update_ssa): Likewise.
25353         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25354         (compute_dominance_frontiers): Likewise.
25355         (compute_idf): Likewise.
25356         * df-problems.c (df_md_local_compute): Likewise.
25357
25358 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
25359
25360         * target.h (struct gcc_target): Add memory_move_cost field.
25361         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
25362         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
25363         * targhooks.c (default_memory_move_cost): New function.
25364         * targhooks.h (default_memory_move_cost): Declare function.
25365         * reload.h (memory_move_cost): Declare.
25366         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25367         * reginfo.c (memory_move_cost): New function.
25368         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25369         * ira.h (ira_memory_move_cost): Update comment.
25370         * ira.c (ira_memory_move_cost): Update comment.
25371         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
25372         with memory_move_cost.
25373         * postreload.c (reload_cse_simplify_set): (Ditto.).
25374         * reload1.c (choose_reload_regs): (Ditto.).
25375         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
25376         (MEMORY_MOVE_COST):  Revise documentation.
25377
25378         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
25379         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
25380         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
25381         type of 'in' argument to bool.
25382         (TARGET_MEMORY_MOVE_COST): Define.
25383
25384 2010-06-05  Jan Hubicka  <jh@suse.cz>
25385
25386         * ipa-pure-const.c (propagate): Fix typo in handling of functions
25387         that cannot return.  Be more careful when merging the results with
25388         previously known ones.
25389
25390 2010-06-05  Matthias Klose  <doko@ubuntu.com>
25391
25392         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
25393         function to add the -iplugindir option.
25394         (find_plugindir_spec_function): Add new declaration and function.
25395         (static_spec_func): Use it for "find-plugindir".
25396
25397 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
25398
25399         PR c++/44361
25400         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
25401         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
25402         statement expression.
25403
25404 2010-06-05  Jan Hubicka  <jh@suse.cz>
25405
25406         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
25407         (df_rd_problem_data): Convert sparse_invalidated_by_call,
25408         dense_invalidated_by_call to bitmap head.
25409         (df_rd_alloc, df_rd_bb_local_compute_process_def,
25410         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
25411         df_rd_start_dump, df_lr_verify_transfer_functions,
25412         df_live_verify_transfer_functions, df_chain_create_bb,
25413         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
25414         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
25415         df_simulate_one_insn_forwards, df_md_alloc,
25416         df_md_bb_local_compute_process_def,
25417         df_md_bb_local_compute_process_def, df_md_local_compute,
25418         df_md_transfer_function df_md_free): Update.
25419
25420 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
25421
25422         PR c/44322
25423         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
25424         target type for ADDR_EXPR; require no changes to qualifiers except
25425         for function types.
25426         * c-tree.h (c_build_type_variant): Remove.
25427
25428 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25429
25430         * genautomata.c (get_excl_set): Do work per element, not per char.
25431         (check_presence_pattern_sets): Similar.
25432         (check_absence_pattern_sets): Similar.
25433
25434 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25435
25436         * genautomata.c (curr_state_pass_num): Delete.
25437         (min_issue_delay_pass_states): Delete.
25438         (min_issue_delay): Delete.
25439         (initiate_min_issue_delay_pass_states): Delete.
25440         (output_min_issue_delay_table): Compute min_issue_delay_vect
25441         using a breadth-first search variant.
25442         (output_tables): Don't call initiate_min_issue_delay_pass_states.
25443
25444 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
25445
25446         PR boostrap/44421
25447         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
25448         (df_byte_lr_bb_local_compute): Likewise.
25449
25450 2010-06-03  Jason Merrill  <jason@redhat.com>
25451
25452         Implement noexcept operator (5.3.7)
25453         * c-common.c (c_common_reswords): Add noexcept.
25454         * c-common.h (enum rid): Add RID_NOEXCEPT.
25455
25456 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
25457
25458         * config/darwin-driver.c (darwin_default_min_version): Use
25459         GCC-specific formats in diagnostics.
25460         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
25461         diagnostics.
25462         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
25463         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
25464         eval_spec_function, handle_braces, process_brace_body, main,
25465         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
25466         getenv_spec_function, compare_version_strings,
25467         version_compare_spec_function): Use GCC-specific formats in
25468         diagnostics.
25469
25470 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25471
25472         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
25473         that operand 0 and operand 1 are equal.
25474         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
25475         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
25476         and operand 1 are equal.
25477         <default>: Ditto.  Remove ??? comment.
25478         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
25479         and operand 1 are equal.
25480         <default>: Ditto.  Remove ??? comment.
25481         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
25482         are equal.
25483         (*add<mode>_4) <default>: Ditto.
25484         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
25485
25486 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
25487
25488         * config/i386/i386-protos.h (ix86_print_operand): Declare.
25489         * config/i386/i386.c (ix86_print_operand): Make non-static.
25490         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
25491         * output.h (output_operand): Declare.
25492         * final.c (output_operand): Make non-static.
25493
25494 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
25495
25496         PR rtl-optimization/44013
25497         * sched-deps.c (add_dependence_list_and_free): Don't free lists
25498         when processing debug insns.
25499
25500         PR debug/41371
25501         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
25502         recursing.  Check that recursion is bounded.  Rename inner var
25503         to avoid hiding incoming argument.
25504
25505 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25506
25507         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
25508         operands[2] == 255.
25509         (*addqi_3): Ditto.
25510         (*addqi_4): Ditto.
25511         (*addqi_5): Ditto.
25512         (*addqi_ext_1_rex64): Ditto.
25513         (*addqi_ext_1): Ditto.
25514
25515         (*addqi_4): Check for incdec_operand in QImode.
25516
25517         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
25518         using SWI mode iterator.
25519         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
25520         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
25521         mode iterator.
25522         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
25523         using SWI mode iterator.
25524
25525 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25526
25527         PR c/25880
25528         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
25529         * c-format.c (gcc_diag_flag_specs): Add hash.
25530         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
25531         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
25532         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
25533         pp_c_cv_qualifiers. Handle qualifiers spelling here.
25534         (pp_c_type_qualifier_list): Call the function above.
25535         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
25536         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
25537         (WARN_FOR_QUALIFIERS): New macro.
25538         (convert_for_assignment): Use it.
25539
25540 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
25541
25542         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
25543
25544 2010-06-04  Jan Hubicka  <jh@suse.cz>
25545
25546         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
25547         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
25548         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
25549         DF_BYTE_LR_OUT): Update for embedded bitmaps.
25550         * fwprop.c (single_def_use_enter_block): Likewise.
25551         * ddg.c (create_ddg_dep_from_intra_loop_link,
25552         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
25553         * loop-iv.c (latch_dominating_def): Likewise.
25554         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
25555         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
25556         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
25557         df_rd_transfer_function, df_rd_top_dump,
25558         df_rd_bottom_dump): Update.
25559         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
25560         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
25561         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
25562         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
25563         df_lr_verify_solution_start, df_lr_verify_solution_end,
25564         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
25565         df_live_free_bb_info, df_live_alloc, df_live_reset,
25566         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
25567         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
25568         df_live_verify_solution_start, df_live_verify_solution_end,
25569         df_live_verify_transfer_functions, df_chain_create_bb,
25570         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
25571         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25572         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25573         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
25574         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
25575         df_byte_lr_transfer_function, df_byte_lr_top_dump,
25576         df_byte_lr_bottom_dump, df_create_unused_note,
25577         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
25578         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
25579         df_md_transfer_function, df_md_init, df_md_confluence_0,
25580         df_md_confluence_n,
25581         df_md_top_dump, df_md_bottom_dump): Update.
25582         (struct df_lr_problem_data): Embedd bitmap headers.
25583
25584 2010-06-04  Jan Hubicka  <jh@suse.cz>
25585
25586         * dce.c (dce_process_block): Do not re-scan already marked
25587         instructions.
25588
25589 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
25590
25591         PR rtl-optimization/39871
25592         PR rtl-optimization/40615
25593         PR rtl-optimization/42500
25594         PR rtl-optimization/42502
25595         * ira.c (init_reg_equiv_memory_loc: New function.
25596         (ira): Call it twice.
25597         * reload.h (calculate_elim_costs_all_insns): Declare.
25598         * ira-costs.c: Include "reload.h".
25599         (regno_equiv_gains): New static variable.
25600         (init_costs): Allocate it.
25601         (finish_costs): Free it.
25602         (ira_costs): Call calculate_elim_costs_all_insns.
25603         (find_costs_and_classes): Take estimated elimination costs
25604         into account.
25605         (ira_adjust_equiv_reg_cost): New function.
25606         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
25607         * reload1.c (init_eliminable_invariants, free_reg_equiv,
25608         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
25609         (elim_bb): New static variable.
25610         (reload): Move code out of here into init_eliminable_invariants and
25611         free_reg_equiv.  Call them.
25612         (calculate_elim_costs_all_insns): New function.
25613         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
25614         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
25615         but call note_reg_elim_costly if we turned a valid memory address
25616         into an invalid one.
25617         * Makefile.in (ira-costs.o): Depend on reload.h.
25618
25619 2010-06-04  Julian Brown  <julian@codesourcery.com>
25620
25621         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
25622         for pool ranges.
25623
25624 2010-06-04  Richard Guenther  <rguenther@suse.de>
25625
25626         PR lto/41584
25627         * cgraph.h (struct varpool_node): Add lto_file_data field.
25628         * lto-cgraph.c (input_varpool_node): Initialize it.
25629
25630 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25631
25632         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
25633         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
25634         predicate in "type" attribute calculation.
25635         (*addsi_1_zext): Ditto.
25636         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
25637         (*addsi_2_zext): Ditto.
25638         (*add<mode>_3): Ditto.
25639         (*addsi_3_zext): Ditto.
25640         (*add<mode>_5): Ditto.
25641
25642 2010-06-03  Jan Hubicka  <jh@suse.cz>
25643
25644         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
25645         of bitmap_bit_p.
25646         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25647
25648 2010-06-03  Jan Hubicka  <jh@suse.cz>
25649
25650         * df-problems.c (df_create_unused_note, df_note_bb_compute):
25651         micro-optimize the checks when to add new note.
25652
25653 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
25654
25655         * final.c (output_asm_insn): Call
25656         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
25657         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
25658         (output_address): Call targetm.asm_out.print_operand_address.
25659         Update comments.
25660         * target.h (struct gcc_target): Add print_operand,
25661         print_operand_address, and print_operand_punct_valid_p fields.
25662         * targhooks.h (default_print_operand): Declare.
25663         (default_print_operand_address): Declare.
25664         (default_print_operand_punct_valid_p): Declare.
25665         * targhooks.c (default_print_operand): Define.
25666         (default_print_operand_address): Define.
25667         (default_print_operand_punct_valid_p): Define.
25668         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
25669         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
25670         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
25671         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
25672         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
25673         * vmsdbgout.c (addr_const_to_string): Update comment.
25674         * config/i386/i386.c (print_operand): Rename to...
25675         (ix86_print_operand): ...this.  Make static.
25676         (print_operand_address): Rename to...
25677         (ix86_print_operand_address): ...this.  Make static.  Call
25678         ix86_print_operand instead of PRINT_OPERAND.
25679         (ix86_print_operand_punct_valid_p): New function.
25680         (TARGET_PRINT_OPERAND): Define.
25681         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25682         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25683         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
25684         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25685         (PRINT_OPERAND): Delete.
25686         (PRINT_OPERAND_ADDRESS): Delete.
25687         * config/i386/i386-protos.h (print_operand): Delete prototype.
25688         (print_operand_address): Delete prototype.
25689
25690 2010-06-03  Richard Guenther  <rguenther@suse.de>
25691
25692         PR tree-optimization/44403
25693         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
25694         Preserve pointer qualifiers.
25695         (vect_create_data_ref_ptr): Likewise.
25696
25697 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
25698
25699         PR c++/44294
25700         * defaults.h (MAX_FIXED_MODE_SIZE): New.
25701
25702         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
25703
25704 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
25705
25706         PR debug/44375
25707         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
25708         return false if merging the bbs would lead to goto_locus
25709         location being lost from the IL.
25710
25711 2010-06-03  Jan Hubicka  <jh@suse.cz>
25712             Jakub Jelinek  <jakub@redhat.com>
25713
25714         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
25715         set->regs[i] is NULL or has just one entry.
25716
25717 2010-06-03  Jan Hubicka  <jh@suse.cz>
25718
25719         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
25720         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
25721
25722 2010-06-03  Paul Brook  <paul@codesourcery.com>
25723
25724         * config/arm/arm.c (FL_TUNE): Define.
25725         (arm_default_cpu, arm_cpu_select): Remove.
25726         (all_cores): Populate core field.
25727         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
25728         (arm_find_cpu): New function.
25729         (arm_handle_option): Lookup cpu/architecture names.
25730         (arm_override_options): Cleanup mcpu/march/mtune handling.
25731         (arm_file_start): Ditto.
25732
25733 2010-06-03  Alan Modra  <amodra@gmail.com>
25734
25735         PR target/44169
25736         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
25737         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
25738         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
25739         (rs6000_emit_load_toc_table): Likewise.
25740
25741 2010-06-02  Jan Hubicka  <jh@suse.cz>
25742
25743         * passes.c (init_optimization_passes): Put ipa reference
25744         after ipa pure-const.
25745
25746 2010-06-02  Jan Hubicka  <jh@suse.cz>
25747
25748         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
25749         calls_read_all and calls_write_all.
25750         (get_reference_optimization_summary): Fix formatting.
25751         (is_proper_for_analysis): Check that decl is not readonly.
25752         (propagate_bits): Check CONST/PURE/noreturn flags.
25753         (ipa_init): Move all_module_statics to optimization_summary_obstack.
25754         (analyze_function): Ignore indirect edges.
25755         (copy_global_bitmap): For all module statics, do nothing.
25756         (generate_summary): Do not print calls_read_all/calls_write_all.
25757         (read_write_all_from_decl): Take node as argument; check
25758         cgraph_node_cannot_return.
25759         (propagate): Reorganize read_all/write_all computation;
25760         check indirect edges; check ecf flags; use all_module_statics
25761         in the results; do not free all_module_statics.
25762         (stream_out_bitmap): Handle all_module_statics.
25763         (ipa_reference_write_optimization_summary): Likewise; use
25764         varpool/cgraph encoders to get boundaries.
25765         (ipa_reference_read_optimization_summary): Read in all_module_statics;
25766         use it when possible.
25767
25768 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25769
25770         PR target/44218
25771         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
25772         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
25773
25774         * doc/extend.texi (powerpc builtins): Document vec_recip,
25775         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
25776
25777         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
25778         (rs6000_emit_swrsqrt): Ditto.
25779         (rs6000_emit_swdivsf): Delete.
25780         (rs6000_emit_swdivdf): Ditto.
25781         (rs6000_emit_swrsqrtsf): Ditto.
25782
25783         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
25784         describe the reciprocal estimate support for each type.
25785         (recip_options): Map -mrecip=<opt> into option bits.
25786         (gen_2arg_fn_t): New typedef for binary rtx gen function.
25787         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
25788         reciprocal estimate instructions.
25789         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
25790         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
25791         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
25792         cost information if -mdebug=cost or -mdebug=reg.
25793         (rs6000_override_options): Set -mrecip-precision for power6, and
25794         power7 machines.  If -mvsx or -mdfp, enable various options that
25795         came in previous instruction set ISAs, unless the option was
25796         explicitly disabled by the command line option.  Parse
25797         -mrecip=<opt> options.
25798         (rs6000_builtin_vectorized_function): Add support for vectorizing
25799         the reciprocal estimate builtins and expansions.
25800         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
25801         (bdesc_2arg): Add reciprocal estimate builtins.
25802         (bdesc_1arg): Add reciprocal square root estimate builtins.
25803         (rs6000_expand_builtin): Rewrite to use a switch statement,
25804         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
25805         (rs6000_init_builtins): Create declarations for reciprocal
25806         estimate builtins.
25807         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
25808         sized, prefer traditional floating point registers, if integer
25809         vector types, prefer altivec registers.  Don't actually look at
25810         the memory address any more.
25811         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
25812         builtins.
25813         (rs6000_load_constant_and_splat): New helper function to load up
25814         the constant for reciprocal estimate instructions.
25815         (rs6000_emit_madd): New helper function for generating
25816         multiply/add type instructions, based on the current switches.
25817         (rs6000_emit_msub): Ditto.
25818         (rs6000_emit_mnsub): Ditto.
25819         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
25820         replace a divide with a reciprocal estimate and fixup, adding
25821         support for machines with high precision and vectors.
25822         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
25823         low precision machines.
25824         (rs6000_emit_swdiv): New common function to be called to replace a
25825         division with reciprocal estimate and fixup.
25826         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
25827         for double and vector types.  Add support for high precision machines.
25828
25829         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
25830         the reciprocal estimate instructions can be generated.
25831         (TARGET_FRE): Ditto.
25832         (TARGET_FRSQRTES): Ditto.
25833         (TARGET_FRSQRTE): Ditto.
25834         (RS6000_RECIP_*): New macros for reciprocal estimate support.
25835
25836         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
25837         square root estimate on vectors.
25838         (re<mode>2): New insn for reciprocal division estimate on vectors.
25839
25840         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
25841         New builtin.
25842         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
25843         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
25844         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
25845         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
25846         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
25847         (RS6000_BUILTIN_RSQRT): Ditto.
25848         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
25849         floating point builtin.
25850
25851         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
25852         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
25853         __RECIP_PRECISION__ based on the command line switches.
25854         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
25855
25856         * config/rs6000/rs6000.opt (-mrecip): Document add support for
25857         replacing division instructions with reciprocal estimate and fixup.
25858         (-mrecip=<opt>): New option.
25859         (-mrecip-precision): Ditto.
25860
25861         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
25862         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
25863         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
25864         precision scalar.
25865
25866         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
25867         (UNSPEC_VREFP): Ditto.
25868         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
25869         conterparts with regard to support of -mno-fused-madd and -ffast-math.
25870         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
25871         reciprocal estimate instructions to be generated.
25872         (altivec_vrefp): Ditto.
25873
25874         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
25875         estimate support.
25876         (rreg): New mode attribute for reciprocal estimate support.
25877         (recip<mode>3): New insn for division using reciprocal estimate
25878         and fixup builtins.
25879         (divide define_split): New define_split to convert floating point
25880         division to use reciprocal estimate if the user used the
25881         appropriate options and the split is run when we can add new
25882         pseudo registers for the fixup.
25883         (rsqrt<mode>2): New insn for reciprocal square root support.
25884         (recipsf3): Move into recip<mode>3.
25885         (recipdf3): Ditto.
25886         (fres): Use TARGET_FRES.
25887         (rsqrtsf2): Move into rsqrt<mode>2.
25888         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
25889         (copysignsf3): Add support for VSX.
25890         (fred): Use TARGET_FRE.
25891         (fred_fpr): Ditto.
25892         (rsqrtdf_internal1): New function for frsqrte instruciton.
25893
25894         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
25895         (vec_rsqrt): Ditto.
25896
25897 2010-06-03  Richard Guenther  <rguenther@suse.de>
25898
25899         PR middle-end/44291
25900         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
25901         (set_user_assembler_libfunc): Likewise.
25902
25903 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25904
25905         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
25906         defaults.h.
25907         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
25908         to defaults.h
25909         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
25910         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
25911         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
25912         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
25913         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
25914         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
25915         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
25916         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
25917         * defaults.h: Updated for above mentioned changes.
25918
25919 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
25920
25921         * c-common.c: Remove header include of tm_p.h.
25922         * Makefile.in (c-common.o): Remove TM_P_H dependency.
25923
25924 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
25925
25926         * tree.h (struct tree_decl_map): New type.
25927         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
25928         (tree_decl_map_hash): New prototype.
25929         (debug_expr_for_decl, value_expr_for_decl): Change into
25930         tree_decl_map hashtab from tree_map.
25931         (init_ttree): Adjust initialization.
25932         (tree_decl_map_hash): New function.
25933         (decl_debug_expr_lookup, decl_debug_expr_insert,
25934         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
25935
25936 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25937
25938         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
25939         linker emulations.
25940         * configure: Regenerate.
25941         * config.in: Regenerate.
25942
25943         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
25944         (X86_64_EMULATION): Define.
25945         (TARGET_LD_EMULATION): Use them.
25946
25947         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
25948         (SPARC64_EMULATION): Define.
25949         (LINK_ARCH_SPEC): Use them.
25950
25951 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25952
25953         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
25954         smallest_mode_for_size for computing the precision types of new
25955         graphite IVs.  Do not call lang_hooks.types.type_for_size.
25956
25957 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25958
25959         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
25960         information.
25961         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
25962
25963 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25964
25965         PR middle-end/44363
25966         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
25967         return false instead.
25968
25969 2010-06-02  Jan Hubicka  <jh@suse.cz>
25970
25971         PR middle-end/44295
25972         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
25973         create new cgraph node to check callee.
25974
25975 2010-06-02  Richard Guenther  <rguenther@suse.de>
25976
25977         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
25978
25979 2010-06-02  Richard Guenther  <rguenther@suse.de>
25980
25981         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
25982         (lto_wrapper_cleanup): ... this.  Do not exit.
25983         (fatal): Adjust.  Exit here.
25984         (fatal_perror): Likewise.
25985         (fatal_signal): New function.
25986         (main): Set up signal handlers to cleanup temporary files.
25987         * Makefile.in (lto-wrapper.o): Adjust dependencies.
25988
25989 2010-06-02  Richard Guenther  <rguenther@suse.de>
25990
25991         PR tree-optimization/44377
25992         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
25993
25994 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25995
25996         * config/s390/2097.md (z10_fhex): Remove insn reservation.
25997         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
25998         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
25999         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
26000         instruction.
26001         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
26002
26003 2010-06-02  Jan Hubicka  <jh@suse.cz>
26004
26005         * bitmap.c (bitmap_descriptor): Add search_iter.
26006         (bitmap_find_bit): Increment it.
26007         (print_statistics): Print it.
26008
26009 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
26010
26011         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
26012         instead of gimple_build_call_vec.  Delete unnecessary local variable.
26013
26014 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26015
26016         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
26017         change from yesterday.
26018
26019 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26020
26021         * c-ada-spec.c: Clean up redundant includes.
26022
26023 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
26024
26025         * gimplify.c: Do not include except.h and optabs.h.
26026         (gimplify_body): Do not initialize RTL profiling.
26027         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
26028         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
26029         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
26030         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
26031         langhooks.h.
26032
26033         * tree-pretty-print.h: Include pretty-print.h.
26034         * gimple-pretty-print.h: Include pretty-print.h.
26035
26036         * tree-pretty-print.c: Do not include diagnostic.h.
26037         * tree-vrp.c: Likewise.
26038         * tree-tailcall.c: Likewise
26039         * tree-scalar-evolution.c: Likewise
26040         * tree-ssa-dse.c: Likewise
26041         * tree-chrec.c: Likewise
26042         * tree-ssa-sccvn.c: Likewise
26043         * tree-ssa-copyrename.c: Likewise
26044         * tree-nomudflap.c: Likewise
26045         * tree-call-cdce.c: Likewise
26046         * tree-stdarg.c: Likewise
26047         * tree-ssa-math-opts.c: Likewise
26048         * tree-nrv.c: Likewise
26049         * tree-ssa-sink.c: Likewise
26050         * tree-browser.c: Likewise
26051         * tree-ssa-loop-ivcanon.c: Likewise
26052         * tree-ssa-loop.c: Likewise
26053         * tree-parloops.c: Likewise
26054         * tree-ssa-address.c: Likewise
26055         * tree-ssa-ifcombine.c: Likewise
26056         * tree-if-conv.c: Likewise
26057         * tree-data-ref.c: Likewise
26058         * tree-affine.c: Likewise
26059         * tree-ssa-phiopt.c: Likewise
26060         * tree-ssa-coalesce.c: Likewise
26061         * tree-ssa-pre.c: Likewise
26062         * tree-ssa-live.c: Likewise
26063         * tree-predcom.c: Likewise
26064         * tree-ssa-forwprop.c: Likewise
26065         * tree-ssa-dce.c: Likewise
26066         * tree-ssa-ter.c: Likewise
26067         * tree-ssa-loop-prefetch.c: Likewise
26068         * tree-optimize.c: Likewise
26069         * tree-ssa-phiprop.c: Likewise
26070         * tree-object-size.c: Likewise
26071         * tree-outof-ssa.c: Likewise
26072         * tree-ssa-structalias.c: Likewise
26073         * tree-switch-conversion.c: Likewise
26074         * tree-ssa-reassoc.c: Likewise
26075         * tree-ssa-operands.c: Likewise
26076         * tree-vectorizer.c: Likewise
26077         * tree-vect-data-refs.c: Likewise
26078         * tree-vect-generic.c: Likewise
26079         * tree-vect-stmts.c: Likewise
26080         * tree-vect-patterns.c: Likewise
26081         * tree-vect-slp.c: Likewise
26082         * tree-vect-loop.c: Likewise
26083         * tree-ssa-loop-ivopts.c: Likewise
26084         * tree-ssa-loop-im.c: Likewise
26085         * tree-ssa-loop-niter.c: Likewise
26086         * tree-ssa-loop-unswitch.c: Likewise
26087         * tree-ssa-loop-manip.c: Likewise
26088         * tree-ssa-loop-ch.c: Likewise
26089         * tree-dump.c: Likewise
26090         * tree-complex.c: Likewise
26091
26092         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
26093         * tree-ssa-uninit.c: Likewise
26094         * tree-ssa-threadupdate.c: Likewise
26095         * tree-ssa-uncprop.c: Likewise
26096         * tree-ssa-ccp.c: Likewise
26097         * tree-ssa-dom.c: Likewise
26098         * tree-ssa-propagate.c: Likewise
26099         * tree-ssa-alias.c: Likewise
26100         * tree-dfa.c: Likewise
26101         * tree-cfgcleanup.c: Likewise
26102         * tree-sra.c: Likewise
26103         * tree-ssa-copy.c: Likewise
26104         * tree-ssa.c: Likewise
26105         * tree-profile.c: Likewise
26106         * tree-cfg.c: Likewise
26107         * tree-ssa-threadedge.c: Likewise
26108         * tree-vect-loop-manip.c: Likewise
26109
26110         * tree-inline.c: Do not include diagnostic.h and expr.h.
26111         Include rtl.h.
26112         (copy_decl_for_dup_finish): Do not use NULL_RTX.
26113
26114         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
26115         * tree-loop-distribution.c: Likewise.
26116
26117 2010-06-01  Jan Hubicka  <jh@suse.cz>
26118
26119         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
26120
26121 2010-06-01  Jan Hubicka  <jh@suse.cz>
26122
26123         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
26124         remove return value.
26125         (split_bbs_on_noreturn_calls) .... here.
26126         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
26127         * tree-flow.h (fixup_noreturn_call): New.
26128
26129 2010-06-01  Jan Hubicka  <jh@suse.cz>
26130
26131         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
26132
26133 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
26134
26135         * tree.h (build_nt_call_list): Delete.
26136         * tree.c (build_nt_call_list): Delete.
26137
26138 2010-06-01  Jan Hubicka  <jh@suse.cz>
26139
26140         * fwprop.c: Make emit-rtl.h include last.
26141         * rtlanal.c: Include emit-rtl.h.
26142         * genautomata.c: Output emit-rtl include into insn-automata.c
26143         * df-scan.c: Include emit-rtl.h.
26144         * haifa-sched.c: Indlude emit-rtl.h.
26145         * mode-switching.c: Indlude emit-rtl.h.
26146         * graph.c: Indlude emit-rtl.h.
26147         * sel-sched.c: Include emit-rtl.h.
26148         * sel-sched-ir.c: Include emit-rtl.h.
26149         * ira-build.c: Include emit-rtl.h.
26150         * emit-rtl.c (first_insn, last_insn): Remove defines.
26151         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
26152         Move to emit-rtl.h.
26153         (set_new_first_and_last_insn, get_last_insn_anywhere,
26154         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
26155         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
26156         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
26157         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
26158         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
26159         Use accessor functions.
26160         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26161          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26162         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26163         mem_expr_equal_p): Move here from rtl.h.
26164         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
26165         Move here from emit-rtl.c; make inline.
26166         * cfglayout.h: Include emit-rtl.h.
26167         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26168          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26169         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26170         mem_expr_equal_p, get_insns, set_first-insn,
26171         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
26172         * reg-stack.c: Include emit-rtl.h.
26173         * dce.c: Likewise.
26174
26175 2010-06-01  Jan Hubicka  <jh@suse.cz>
26176
26177         * cgraph.h (tree_function_versioning): Update prototype.
26178         (cgraph_function_versioning): Update prototype.
26179         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
26180         bitmap.
26181         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
26182         (cgraph_materialize_clone, save_inline_function_body): Update use of
26183         tree_function_versioning.
26184         * tree-inline.c (copy_bb): Look for previous copied block to link
26185         after; fix debug output.
26186         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
26187         (copy_body): Likewise.
26188         (expand_call_inline): Update use of copy_body.
26189         (tree_function_versioning): Update use of copy body; accept
26190         blocks_to_copy and new_entry.
26191
26192 2010-06-01  Jan Hubicka  <jh@suse.cz>
26193
26194         * gegenrtl.c: Remove unnecesary prototypes.
26195         (gendecl): Remove.
26196         (gendef): Produce static inline.
26197         (gencode): Remove.
26198         (main): Do not decode parameters; generate header only.
26199         * Makefile.in (genrtl.c): Remove.
26200
26201 2010-06-01  Jan Hubicka  <jh@suse.cz>
26202
26203         * tree-switch-conversion.c (build_one_array): Make it readonly.
26204
26205 2010-06-01  Richard Guenther  <rguenther@suse.de>
26206
26207         * optabs.c (init_optabs): Guard all accesses to reinit.
26208         * ipa-pure-const.c (propagate): Fix another typo.
26209         * opts.c (common_handle_option): Split assignment to bool.
26210         * c-opts.c (c_common_handle_option): Likewise.
26211
26212 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
26213             Matthew Gingell  <gingell@adacore.com>
26214
26215         * doc/invoke.texi: Mention -fdump-ada-spec.
26216         * tree-dump.c (dump_files): Add ada-spec.
26217         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
26218         * tree-pass.h (tree_dump_index): Add TDI_ada.
26219         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
26220         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
26221         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
26222         * c-decl.c: Include c-ada-spec.h.
26223         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
26224         functions.
26225         (c_write_global_declarations): Add handling of -fdump-ada-spec.
26226         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
26227         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
26228         * c-ada-spec.h, c-ada-spec.c: New files.
26229
26230 2010-06-01  Richard Guenther  <rguenther@suse.de>
26231
26232         PR lto/43853
26233         * ipa-pure-const.c (get_function_state): Hand back varying state
26234         if we do not have one.
26235         (has_function_state): New function.
26236         (duplicate_node_data): Adjust.
26237         (remove_node_data): Likewise.
26238         (pure_const_write_summary): Likewise.
26239         (propagate): Likewise.  Fix typo.
26240
26241 2010-06-01  Jan Hubicka  <jh@suse.cz>
26242
26243         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
26244         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
26245         (execute_all_ipa_transforms): Do not play with the states.
26246
26247 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
26248
26249         * config/arm/t-linux-androideabi: New.
26250         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
26251
26252 2010-06-01  Jan Hubicka  <jh@suse.cz>
26253
26254         * tree-inline.c (estimate_num_insns): For stdarg functions look
26255         into call statement to count cost of argument passing.
26256
26257 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
26258
26259         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
26260         argument for fprintf.
26261         (ix86_output_addr_diff_elt): Likewise.
26262         (x86_function_profiler): Likewise.
26263         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
26264         (LPREFIX): Likewise.
26265         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
26266
26267 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26268
26269         PR target/44338
26270         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
26271         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
26272         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
26273         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
26274         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
26275         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
26276         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
26277         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
26278         TARGET_FUSED_MADD.
26279
26280 2010-05-31  Jan Hubicka  <jh@suse.cz>
26281
26282         * tree.h (tree_range_check_failed): Declare noreturn.
26283
26284 2010-05-31  Jan Hubicka  <jh@suse.cz>
26285
26286         * gimple.c (gimple_call_builtin_p): New function.
26287         * gimple.h (gimple_call_builtin_p): Declare.
26288         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
26289         to exit.
26290         (execute_warn_function_return): BUILT_IN_RETURN is return.
26291         (split_critical_edges): Return edges are not critical.
26292         (is_ctrl_altering_stmt): Builtin_in_return is altering.
26293         (gimple_verify_flow_info): Handle built_in_return.
26294         (execute_warn_function_return): Handle built_in_return.
26295         * ipa-pure-const.c (check_call): Ignore builtin_return.
26296
26297 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26298
26299         PR middle-end/44337
26300         * expr.c (expand_assignment): Don't store anything for out-of-bounds
26301         array accesses with non-MEM.
26302
26303         PR tree-optimization/44182
26304         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
26305         newly needs to end a bb is followed by debug stmts, instead return
26306         true from the function at the end.
26307         (maybe_move_debug_stmts_to_successors): New function.
26308         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
26309
26310 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
26311
26312         PR target/44161
26313         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
26314
26315 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
26316
26317         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
26318         for nested functions in non-optimized compilation.
26319
26320 2010-05-31  Richard Guenther  <rguenther@suse.de>
26321
26322         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
26323
26324 2010-05-30  Jan Hubicka  <jh@suse.cz>
26325
26326         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
26327
26328 2010-05-30  Richard Guenther  <rguenther@suse.de>
26329
26330         PR lto/42975
26331         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
26332         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
26333         no longer needed.
26334
26335 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
26336
26337         * config/darwin.c (output_objc_section_asm_op): Add comment.
26338         (name_needs_quotes): Add '_' to list of valid comment chars.
26339         (machopic_output_function_base_name): Remove unneeded quotes.
26340         (darwin_encode_section_info): Adjust asm whitespace.
26341         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
26342         (ASM_OUTPUT_LOCAL): Ditto.
26343         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
26344         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
26345         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
26346
26347 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
26348
26349         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
26350         RS6000_OUTPUT_BASENAME unconditionally.
26351         (rs6000_output_function_epilogue): Likewise.
26352
26353 2010-05-30  Jan Hubicka  <jh@suse.cz>
26354
26355         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
26356         nodes.
26357
26358 2010-05-30  Richard Guenther  <rguenther@suse.de>
26359
26360         * tree-cfg.c (verify_gimple_assign_single): Implement
26361         verification for COND_EXPR rhs.
26362
26363 2010-05-30  Jan Hubicka  <jh@suse.cz>
26364
26365         * cgraph.h (cgraph_dump_file): Declare.
26366         * cgraphunit.c (cgraph_dump_file): Export.
26367         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
26368
26369 2010-05-30  Jan Hubicka  <jh@suse.cz>
26370
26371         * dwarf2out.c (reference_to_unused,
26372         premark_types_used_by_global_vars_helper): Avoid creation of new
26373         varpool nodes.
26374
26375 2010-05-30  Jan Hubicka  <jh@suse.cz>
26376
26377         * cgraph.h (cgraph_node_cannot_return,
26378         cgraph_edge_cannot_lead_to_return): New functions.
26379         * cgraph.c (cgraph_node_cannot_return,
26380         cgraph_edge_cannot_lead_to_return): Use them.
26381         * ipa-pure-const.c (pure_const_names): New static var.
26382         (check_call): Handle calls not leading to return.
26383         (pure_const_read_summary): Dump info read.
26384         (propagate): Dump info about propagation process; ignore side effects
26385         of functions not leading to exit; fix handling of pure functions.
26386
26387 2010-05-30  Jan Hubicka  <jh@suse.cz>
26388
26389         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
26390         for tail call epilogues.
26391
26392 2010-05-30  Jan Hubicka  <jh@suse.cz>
26393
26394         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
26395         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
26396         dump files.
26397
26398 2010-05-29  Jan Hubicka  <jh@suse.cz>
26399
26400         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
26401         node; remove references in node we no longer keep in cgrpah but need
26402         body of.
26403
26404 2010-05-29  Jan Hubicka  <jh@suse.cz>
26405
26406         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
26407
26408 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26409
26410         PR target/44165
26411         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
26412
26413 2010-05-29  Jan Hubicka  <jh@suse.cz>
26414
26415         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
26416         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
26417         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
26418         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
26419         debug_names_replaced_by, debug_update_ssa): Likewise.
26420         * sbitmap.c (debug_sbitmap): Likewise.
26421         * genrecog.c (debug_decision, debug_decision_list): Likewise.
26422         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
26423         debug_tree_chain): Likewise.
26424         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
26425         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
26426         * optabs.c (debug_optab_libfuncs): Likewise.
26427         (verify_loop_closed_ssa): Likewise.
26428         * value-prof.c (verify_histograms): Likewise.
26429         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
26430         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
26431         * cfghooks.c (verify_flow_info): Likewise.
26432         * fold-const.c (debug_fold_checksum): Likewise.
26433         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
26434         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
26435         Likewise.
26436         * omega.c (debug_omega_problem): Likewise.
26437         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
26438         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
26439         * dominance.c (verify_dominators, debug_dominance_info,
26440         debug_dominance_tree): Likewise.
26441         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
26442         * df_regno_debug, df_ref_debug,
26443         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
26444         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
26445         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
26446         * sel-sched.c (debug_state): Likewise.
26447         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
26448         Likewise.
26449         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
26450         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
26451         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
26452         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
26453         Likewise.
26454         * c-pretty-print.c (debug_c_tree): Likewise.
26455         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
26456         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
26457         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
26458         * ebitmap.c (debug_ebitmap): Likewise.
26459         * function.c (debug_find_var_in_block_tree): Likewise.
26460         * print-rtl.c (debug_rtx): Likewise.
26461         (debug_rtx_count): Likewise.
26462         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
26463         * stor-layout.c (debug_rli): Likewise.
26464         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
26465         * tree-data-ref.c (debug_data_references,
26466         debug_data_dependence_relations, debug_data_reference,
26467         debug_data_dependence_relation, debug_rdg_vertex,
26468         debug_rdg_component, debug_rdg): Likewise.
26469         * tree-affine.c (debug_aff): Likewise.
26470         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
26471         Likewise.
26472         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
26473         * emit-rtl.c (verify_rtl_sharing): Likewise.
26474         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
26475         debug_value_expressions): Likewise.
26476         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
26477         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
26478         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
26479         * cfglayout.c (verify_insn_chain): Likewise.
26480         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
26481         debug_clast_stmt, debug_generated_program): Likewise.
26482         * ggc-page.c (debug_print_page_list): Likewise.
26483         * tree-ssa-ter.c (debug_ter): Likewise.
26484         * graphite-dependences.c (debug_pddr): Likewise.
26485         * sched-deps.c (debug_ds): Likewise.
26486         * tree-ssa.c (verify_ssa): Likewise.
26487         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
26488         debug_scattering_functions, debug_iteration_domains, debug_pdr,
26489         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
26490         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
26491         * tree-inline.c (debug_find_tree): Likewise.
26492         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
26493         debug_ppl_powerset_matrix): Likewise.
26494         * var-tracking.c (debug_dv): Likewise.
26495         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
26496         * cfgloop.c (verify_loop_structure): Likewise.
26497         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
26498         * c-common.c (verify_sequence_points): Likewise.
26499         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
26500         debug_candidates, debug_rgn_dependencies): Likewise.
26501         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
26502         * debug_constraint_graph, debug_solution_for_var,
26503         debug_sa_points_to_info): Likewise.
26504         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
26505         Likewie.
26506         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
26507         debug_loops, debug_loop, debug_loop_num): Likewise.
26508         * passes.c (debug_pass): Likewise.
26509         (dump_properties): Likewise; add cfglayout property.
26510         (debug_properties): Likewise.
26511         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
26512         * varpool.c (debug_varpool): Likewise.
26513         * regcprop.c (debug_value_data): Likewise.
26514         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
26515         debug_immediate_uses_for): Likewise.
26516
26517 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26518
26519         PR bootstrap/44315
26520         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
26521         Filter out insn-flags.h.
26522
26523 2010-05-29  Jan Hubicka  <jh@suse.cz>
26524
26525         * cgraph.h (struct varpool_node_set_def,
26526         struct cgraph_node_set_def): Remove unused AUX pointer.
26527         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
26528         VEC_empty macro.
26529
26530 2010-05-29  Jan Hubicka  <jh@suse.cz>
26531
26532         PR middle-end/44324
26533         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
26534
26535 2010-05-29  Richard Guenther  <rguenther@suse.de>
26536
26537         * lto-streamer.c (cached_bp): New global variable.
26538         (bitpack_create): Return the cached bitpack, if available.
26539         (bitpack_delete): Clear and cache the bitpack, if appropriate.
26540         (bp_pack_value): Remove redundant asserts.
26541
26542 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26543
26544         PR middle-end/44306
26545         * tree-if-conv.c (is_true_predicate): New.
26546         (is_predicated): Use is_true_predicate.
26547         (add_to_predicate_list): Same.  Do not use unshare_expr.
26548         (add_to_dst_predicate_list): Same.
26549
26550 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26551
26552         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
26553         field on edges.
26554         (predicate_bbs): Same.
26555         (clean_predicate_lists): Same.
26556         (find_phi_replacement_condition): Do not AND the predicate from
26557         edge->aux.
26558
26559 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26560
26561         PR bootstrap/44315
26562         * Makefile.in (build/gencondmd.o): Add a missing `\'.
26563
26564 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26565
26566         PR target/44261
26567         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
26568         (negdf2): Adjust expander pattern and use negdf2_slow.
26569         (negsf2): Likewise.
26570
26571 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
26572
26573         * basic-block.h (struct control_flow_graph): Move last_label_uid field
26574         up.
26575         * df.h (struct df_base_ref): Move regno field up.
26576         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
26577         * expr.h (struct separate_ops): Move location field up.
26578         * optabs.h (struct optab_d): Move libcall_basename field down.
26579         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
26580         * config/i386/i386.h (struct machine_function): Convert call_abi field
26581         into a bitfield.  Move cfa field to the end of the structure.
26582
26583 2010-05-29  Jan Hubicka  <jh@suse.cz>
26584
26585         * varpool.c (varpool_get_node): Fix lookup.
26586
26587 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26588
26589         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
26590         RTL specific prototypes with #ifdef RTX_CODE.
26591         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
26592         * config/spu/t-spu-elf: Fix dependencies.
26593
26594         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
26595
26596 2010-05-29  Mike Stump  <mikestump@comcast.net>
26597
26598         PR bootstrap/44315
26599         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
26600         TM_H when building to avoid dependency loops.
26601
26602 2010-05-29  Jan Hubicka  <jh@suse.cz>
26603
26604         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
26605         refs and body; not the whole node for masters of materialized clones.
26606
26607 2010-05-29  Mike Stump  <mikestump@comcast.net>
26608
26609         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
26610
26611 2010-05-29  Jan Hubicka  <jh@suse.cz>
26612
26613         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
26614         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
26615         use of clone_function_name.
26616         * cgraph.h (cgraph_create_virtual_clone,
26617         cgraph_function_versioning): update prototypes.
26618         (clone_function_name): Declare.
26619         * ipa-cp.c (ipcp_insert_stage): Update call of
26620         cgraph_create_virtual_clone.
26621         * omp-low.c (create_omp_child_function_name): Use
26622         cgraph_create_virtual_clone.
26623         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
26624         (cgraph_function_versioning): Take SUFFIX argument; produce new name
26625         and make decl local.
26626
26627 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26628
26629         * vec.h: Include statistics.h
26630         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
26631         with VEC_H.
26632
26633 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26634
26635         * c-lex.c: Do not include c-tree.h.
26636         * c-pretty-print.c: Likewise.
26637         * c-opts.c: Likewise.
26638         * c-gimplify.c: Likewise.
26639         * c-common.c: Likewise.
26640         * c-dump.c: Likewise.  Include c-common.h.
26641
26642 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26643
26644         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
26645         before including diagnostic-core.h.
26646         (c_cpp_error): New prototype moved from c-tree.h.
26647         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
26648         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
26649         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
26650         (c_cpp_error): Prototype moved to c-common.h.
26651         * Makefile.in: Update dependency for C_COMMON_H.
26652
26653 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26654
26655         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
26656         * c-common.c (c_register_addr_space): Remove here.
26657         * c-decl.c (c_register_addr_space): Re-add here.
26658
26659 2010-05-28  Mike Stump  <mikestump@comcast.net>
26660
26661         * config/darwin-c.c: Remove c-tree.h include.
26662
26663 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26664
26665         * gcc.c: Include diagnostic.h.
26666         (error_count): Remove.  All users changed to use errorcount.
26667         (programname): Remove.  All users changed to use progname.
26668         (fancy_abort, internal_error, fatal_error, error, warning, inform,
26669         fnotice): Remove.
26670         (execute): Don't include "Internal error" and bug reporting
26671         information in argument of internal_error call.
26672         (process_command): Don't increment error_count after calling
26673         perror_with_name.
26674         (input_filename): Rename to gcc_input_filename.  All users
26675         changed.
26676         (main): Call diagnostic_initialize.  Register delete_temp_files
26677         with atexit.  Use seen_error to test for errors.
26678         * gcc.h: Include diagnostic-core.h.
26679         (fatal_error, error, warning): Remove.
26680         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
26681         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
26682         (gcc.o): Update dependencies.
26683
26684 2010-05-28  Jeff Law  <law@redhat.com>
26685
26686         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
26687         functions.
26688         * ira.h (ira_bad_reload_regno): Declare
26689         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
26690
26691         * ira-color.c (update_curr_costs): Free updated hard reg costs.
26692         (ira_reassign_conflict_allocnos): Remove bogus asserts.
26693         (allocno_reload_assign): Likewise.
26694
26695 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
26696
26697         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
26698         build1_stat.
26699
26700 2010-05-28  Richard Guenther  <rguenther@suse.de>
26701
26702         PR lto/44312
26703         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
26704         Stream fixed-point constants mode.
26705         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
26706         and TYPE_PRECISION.
26707         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
26708         Stream fixed-point constants mode.
26709         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
26710         and TYPE_PRECISION.
26711
26712 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26713
26714         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
26715         only place it was called from.
26716         (number_of_latch_executions): Do not return chrec_dont_know when the
26717         may_be_zero is a runtime condition: instead, return a COND_EXPR
26718         including the may_be_zero condition.
26719         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
26720         of nb_iterations.
26721         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
26722         COND_EXPRs.
26723
26724 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26725
26726         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
26727         generate COND_EXPRs for degenerate_phi_result.
26728
26729 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26730
26731         PR middle-end/44293
26732         * tree-if-conv.c (if_convertible_loop_p): Check the
26733         if-convertibility of phi nodes in non predicated BBs.
26734
26735 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26736
26737         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
26738
26739 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26740
26741         PR driver/15303
26742         * gcc.c (inform, warning, inform): New functions.
26743         (fatal_ice): Rename to internal_error; change cmsgid parameter to
26744         gmsgid.  All callers changed.
26745         (notice): Rename to fnotice; add parameter fp.  All callers changed.
26746         (fatal_error): Rename to fatal_signal.  All users changed.
26747         (fatal): Rename to fatal_error; change cmsgid parameter to
26748         gmsgid.  All callers changed.
26749         (process_command): Use warning instead of error for warnings.
26750         (end_going_arg): Don't use _() around argument of error.
26751         (do_spec_1): Use inform for message from %n specs.  Use warning
26752         instead of error for warnings.
26753         (main): Use inform for comparison messages.  Use warning for
26754         message about unused linker input.
26755         (error): Increment error_count.  Print "error: ".
26756         * gcc.h (fatal): Change to fatal_error.
26757         (warning): Declare.
26758         * config/darwin-driver.c (darwin_default_min_version): Use warning
26759         instead of fprintf for warnings.
26760         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
26761
26762 2010-05-28  Julian Brown  <julian@codesourcery.com>
26763
26764         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
26765         (*thumb2_addsi3_compare0_scratch): New.
26766         * config/arm/constraints.md (Pv): New.
26767         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
26768         for ARM mode only.
26769         (*addsi3_compare0_scratch): Likewise.
26770
26771 2010-05-28  Jan Hubicka  <jh@suse.cz>
26772
26773         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
26774         check.
26775         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
26776         only on local statics.
26777
26778 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
26779
26780         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
26781
26782 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
26783
26784         PR bootstrap/44314
26785         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
26786         (OPTION_GLIBC): Define.
26787
26788 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26789
26790         PR debug/41048
26791         * dwarf2out.c (double_int_type_size_in_bits): New function.
26792         (round_up_to_align): Change first argument and return value to
26793         double_int.
26794         (field_byte_offset): Work internally on double_ints.
26795
26796         PR target/43636
26797         * builtins.c (expand_movstr): Use a temporary pseudo instead
26798         of target even when target is not NULL and not const0_rtx, but
26799         fails movstr predicate.
26800         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
26801
26802 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26803
26804         * final.c (rest_of_clean_state): Use %m in errors instead of
26805         strerror (errno).
26806         * gengtype.c (read_input_list, close_output_files): Use xstrerror
26807         instead of strerror.
26808         * toplev.c (process_options): Use %m in errors instead of strerror
26809         (errno).
26810         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
26811         (errno).
26812
26813 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
26814
26815         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
26816         (ix86_canonical_va_list_type): Make static.  Add declaration.
26817         (ix86_enum_va_list): Make static.  Reindent.
26818         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
26819         (ix86_canonical_va_list_type): Ditto.
26820         (ix86_enum_va_list): Ditto.
26821
26822 2010-05-28  Richard Guenther  <rguenther@suse.de>
26823
26824         * lto-wrapper.c (run_gcc): With -save-temps generate a
26825         user-visible ltrans filename.  Fixup ltrans unit numbering.
26826
26827 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
26828
26829         * c-common.c (c_common_nodes_and_builtins): Replace use
26830         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
26831         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
26832         to ix86_enum_va_list.
26833         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
26834         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
26835         (TARGET_ENUM_VA_LIST_P): Add hook description.
26836         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
26837         * target.h (gcc_target): Add enum_va_list hook.
26838
26839         PR bootstrap/44299
26840         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
26841         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
26842         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
26843
26844 2010-05-28  Alan Modra  <amodra@gmail.com>
26845
26846         PR target/44266
26847         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
26848         emit_library_call machinery to set up __tls_get_addr calls.
26849
26850 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26851
26852         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
26853
26854 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
26855
26856         Revert fix for PR c++/44188
26857         * c-common.c (is_typedef_decl): Revert the moving of  this
26858         definition ...
26859         * tree.c (is_typedef_decl): ... here.
26860         (typdef_variant_p): Revert the moving of this  definition
26861         here from cp/tree.c.
26862         * c-common.h (is_typedef_decl): Revert the moving of this
26863         declaration ...
26864         * tree.h (is_typedef_decl): ... here.
26865         (typedef_variant_p): Revert the moving of this  declaration here
26866         from cp/cp-tree.h
26867         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
26868         (gen_tagged_type_die): Revert the splitting out of ...
26869         (gen_type_die_with_usage): ... this function. Revert the anonymous
26870         tagged type handling.
26871         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
26872         typedefs naming anonymous tagged types.
26873
26874 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26875
26876         * config/rs6000/rs6000-modes.def (PSImode): Delete.
26877
26878 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26879
26880         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
26881         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
26882         throughout.
26883         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
26884         "xer" to "ca".
26885         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
26886         XER_REGS to CA_REGS throughout.
26887         * config/rs6000/rs6000.h: Same.
26888         (ADDITIONAL_REGISTER_NAMES): Add "xer".
26889         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
26890         that mode_iterator "P" is the size for arithmetic carries as well.
26891         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
26892
26893 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26894
26895         PR bootstrap/44255
26896         * combine.c (struct rtx_subst_pair): Define unconditionally.
26897         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
26898         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
26899         Call make_compound_operation on pair->to.
26900         (propagate_for_debug): Don't call make_compound_operation here.
26901         Always use simplify_replace_fn_rtx.
26902
26903 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
26904
26905         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
26906         * config/xtensa/xtensa.c (override_options): Check
26907           TARGET_FORCE_NO_PIC and set flag_pic.
26908         * config/xtensa/xtensa.opt: Document -mforce-no-pic
26909
26910 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
26911
26912         PR bootstrap/44299
26913         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
26914         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
26915
26916 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
26917
26918         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
26919         toplev.h.
26920         * diagnostic.c: Don't include toplev.h.
26921         (progname): Define.  Moved from toplev.c.
26922         (seen_error): New function.
26923         * diagnostic.h: Include diagnostic-core.h.
26924         (diagnostic_t, emit_diagnostic): Don't declare here.
26925         * toplev.c (progname): Move to toplev.c.
26926         (emit_debug_global_declarations, compile_file, finalize,
26927         do_compile, toplev_main): Use seen_error.
26928         * toplev.h: Include diagnostic-core.h.
26929         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
26930         internal_error, warning, warning_at, error, error_n, error_at,
26931         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
26932         verbatim, fnotice, progname): Move to diagnostic-core.h.
26933         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
26934         (expand_builtin_expect): Use seen_error.
26935         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
26936         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
26937         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
26938         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
26939         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
26940         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
26941         errorcount for errors.
26942         * c-opts.c (c_common_finish): Use seen_error.
26943         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
26944         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
26945         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
26946         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
26947         (get_coverage_counts): Use seen_error.
26948         * dwarf2out.c (dwarf2out_finish): Use seen_error.
26949         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
26950         gimplify_body): Use seen_error.
26951         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
26952         * ipa-pure-const.c (gate_pure_const): Use seen_error.
26953         * ipa-reference.c (gate_reference): Use seen_error.
26954         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
26955         * lambda-code.c: Include diagnostic-core.h instead of
26956         diagnostic.h.
26957         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
26958         * lto-compress.c: Include diagnostic-core.h instead of
26959         diagnostic.h.
26960         * lto-section-in.c: Include diagnostic-core.h instead of
26961         diagnostic.h.
26962         * lto-streamer-out.c: Include diagnostic-core.h instead of
26963         diagnostic.h.
26964         * lto-streamer.c: Include diagnostic-core.h instead of
26965         diagnostic.h.
26966         (gate_lto_out): Use seen_error.
26967         * matrix-reorg.c: Include diagnostic-core.h instead of
26968         diagnostic.h.
26969         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
26970         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
26971         (gate_expand_omp, lower_omp_1): Use seen_error.
26972         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
26973         (rest_of_decl_compilation, rest_of_type_compilation,
26974         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
26975         * tree-cfg.c (label_to_block_fn): Use seen_error.
26976         * tree-inline.c (optimize_inline_calls): Use seen_error.
26977         * tree-mudflap.c (mudflap_finish_file): Use
26978         seen_error.
26979         * tree-optimize.c (gate_all_optimizations,
26980         gate_all_early_local_passes, gate_all_early_optimizations): Use
26981         seen_error.
26982         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
26983         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
26984         (varpool_remove_unreferenced_decls,
26985         varpool_assemble_pending_decls): Use seen_error.
26986         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
26987         (TOPLEV_H, DIAGNOSTIC_H): Update.
26988         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
26989         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
26990         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
26991         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
26992         coverage.o, lambda-code.o): Update dependencies.
26993
26994 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
26995
26996         PR c++/44188
26997         * c-common.c (is_typedef_decl): Move this definition ...
26998         * tree.c (is_typedef_decl): ... here.
26999         (typdef_variant_p): Move definition here from cp/tree.c.
27000         * c-common.h (is_typedef_decl): Move this declaration ...
27001         * tree.h (is_typedef_decl): ... here.
27002         (typedef_variant_p): Move declaration here from cp/cp-tree.h
27003         * dwarf2out.c (is_naming_typedef_decl): New function.
27004         (gen_tagged_type_die): Split out of ...
27005         (gen_type_die_with_usage): ... this function. When an anonymous
27006         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
27007         is emitted for the typedef.
27008         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
27009         anonymous tagged types.
27010
27011 2010-05-27  Jason Merrill  <jason@redhat.com>
27012
27013         * print-tree.c (debug_vec_tree): New fn.
27014         (print_vec_tree): New fn.
27015         * tree.h: Declare them.
27016         * gdbinit.in (pvt): New command.
27017
27018         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
27019
27020         * gdbinit.in (pdd): New command.
27021
27022 2010-05-27  Jan Hubicka  <jh@suse.cz>
27023
27024         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
27025         (update_caller_keys): Return early if there are no callers;
27026         only update fibheap when decresing the key.
27027         (update_callee_keys): Avoid recursion.
27028         (decide_inlining_of_small_functions): When badness does not match;
27029         re-insert into fibheap.
27030
27031 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
27032
27033         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
27034         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
27035         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
27036         (ALL_HOST_OBJS): Now a union of the above two.
27037         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
27038         all files in ALL_HOST_FRONTEND_OBJS.
27039         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
27040
27041         * c-common.c: Pretend to be a backend file by undefining
27042         IN_GCC_FRONTEND (still need rtl.h here).
27043
27044 2010-05-27  Jan Hubicka  <jh@suse.cz>
27045
27046         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
27047         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
27048
27049 2010-05-27  Jan Hubicka  <jh@suse.cz>
27050
27051         * sched-ebb.c: Rename struct deps to struct deps_desc.
27052         * ddg.c: Likewise.
27053         * sel-sched-ir.c: Likewise.
27054         * sched-deps.c: Likewise.
27055         * sched-int.h: Likewise.
27056         * sched-rgn.c: Likewise.
27057
27058 2010-05-27  Jon Beniston  <jon@beniston.com>
27059
27060         PR 43726
27061         * config/lm32/lm32.h: Remove definition of
27062         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
27063
27064 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
27065
27066         PR lto/44230
27067         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
27068
27069 2010-05-27  Richard Guenther  <rguenther@suse.de>
27070
27071         PR tree-optimization/44284
27072         * tree-vect-stmts.c (vectorizable_assignment): Handle
27073         sign-changing conversions as simple copy.
27074
27075 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27076
27077         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
27078         Bionic C library.
27079         (__gthread_active_p): Check for pthread_create if compiling against
27080         Bionic C library.
27081
27082 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27083
27084         Support compilation for Android platform.  Reimplement -mandroid.
27085
27086         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
27087         (*android*): Set ANDROID_DEFAULT.
27088         (arm*-*-linux*): Include linux-android.h.
27089         (arm*-*-eabi*): Don't include previous -mandroid implementation.
27090         * config/arm/eabi.h: Remove, move Android-specific parts ...
27091         * config/linux-android.h: ... here.  New file.
27092         * config/arm/eabi.opt: Rename to ...
27093         * config/linux-android.opt: ... this.
27094         (mandroid): Allow -mno-android option.  Initialize based on
27095         ANDROID_DEFAULT.
27096         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
27097         Move logic to corresponding LINUX_TARGET_* macros.
27098         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
27099         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
27100         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
27101         Android definitions.
27102         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
27103         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
27104         Document.
27105
27106 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27107
27108         Add support for Bionic C library
27109
27110         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
27111         macro.
27112         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
27113         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
27114
27115         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
27116         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
27117         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
27118         to support multiple C libraries.  Handle Bionic.
27119         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
27120         (BIONIC_DYNAMIC_LINKER64): Define.
27121         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
27122         Update.
27123         (TARGET_HAS_SINCOS): Enable for Bionic.
27124
27125         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
27126         the last option specified on command line take effect.
27127         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
27128         (mbionic): New.
27129         (mglibc, muclibc): Update.
27130
27131         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
27132         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
27133         DEFAULT_LIBC.
27134
27135         * doc/invoke.texi (-mglibc, -muclibc): Update.
27136         (-mbionic): Document.
27137
27138 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27139
27140         * c-common.h (c_register_addr_space): Add prototype.
27141         (ADDR_SPACE_KEYWORD): Remove.
27142         * c-common.c (c_register_addr_space): New function.
27143         (c_addr_space_name): Reimplement.
27144         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
27145
27146         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
27147         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
27148
27149         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
27150         Remove TARGET_ADDR_SPACE_KEYWORDS.
27151
27152 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
27153
27154         * input.c: New file.
27155         * input.h (main_input_filename): Move declaration to toplev.h.
27156         * toplev.c (input_location, line_table): Move to input.c
27157         * toplev.h (main_input_filename): Move declaration from input.h.
27158         * tree.c (expand_location): Move to input.c.
27159         * Makefile.in (OBJS-common): Add input.o.
27160         (input.o): Add dependencies.
27161
27162 2010-05-27  Richard Guenther  <rguenther@suse.de>
27163
27164         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
27165         for non-existant files.
27166         (fork_execute): Mark args_name file as deleted.
27167
27168 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
27169
27170         PR bootstrp/44287
27171         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
27172         (narrow_signed_type): Likewise.
27173
27174 2010-05-26  Jan Hubicka  <jh@suse.cz>
27175
27176         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
27177         edge only when checking is enabled; check using former_clone_of;
27178         check inline clones too.
27179         (cgraph_materialize_clone): Record former_clone_of pointer.
27180         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
27181         combining redirections; dump args_to_skip bitmap
27182         (cgraph_materialize_all_clones): Do no redirection here.
27183         * ipa-inline.c (inline_transform): Do redirection here.
27184         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
27185         cheking only).
27186
27187 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27188
27189         * config/avr/avr-c.c: Do not include regs.h.
27190         Include cpplib.h for cpp_define and tree.h for c-common.h.
27191         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
27192         * config/avr/t-avr: Fix dependencies for avr-c.o.
27193
27194 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27195
27196         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
27197         string instead of SYMBOL_REF rtx.
27198         * rtl.h (set_stack_check_libfunc): Move prototype from here...
27199         * libfuncs.h: ...to here.  Adjust for explow.c change.
27200
27201 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27202
27203         * pretty-print.c: Don't include ggc.h.
27204         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
27205         (identifier_to_locale): Use them for allocation.
27206         * pretty-print.h (identifier_to_locale_alloc,
27207         identifier_to_locale_free): Declare.
27208         * toplev.c (alloc_for_identifier_to_locale): New.
27209         (general_init): Set identifier_to_locale_alloc and
27210         identifier_to_locale_free.
27211         * Makefile.in (pretty-print.o): Update dependencies.
27212
27213 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27214
27215         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
27216         pointer types if they have different alignment or mode.
27217
27218 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
27219
27220         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
27221         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27222         * config/sparc/sparc-protos.h (function_value): Remove declaration.
27223         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
27224         sparc_function_value_regno_p): New functions.
27225         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27226         TARGET_FUNCTION_VALUE_REGNO_P): Define.
27227         (function_value): Rename to...
27228         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
27229         argument to 'outgoing'.
27230         (function_arg_record_value, function_arg_union_value,
27231         function_arg_vector_value): Update comment.
27232
27233 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27234
27235         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
27236         (fde_needed_for_eh_p): New predicate.
27237         (output_call_frame_info): Use it throughout to decide whether FDEs
27238         are needed for EH purpose.
27239         (dwarf2out_begin_prologue): Reorder assignments.
27240
27241 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27242
27243         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
27244         special case loop->header.
27245         (is_predicated): New.
27246         (if_convertible_loop_p): Call it.
27247
27248 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27249
27250         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
27251         iterator in parameter.  Do not generate code during the analysis.
27252         (tree_if_convert_cond_stmt): Removed.
27253         (tree_if_convert_stmt): Removed.
27254         (predicate_bbs): New.
27255         (if_convertible_loop_p): Call predicate_bbs.
27256         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
27257         now contains all the analysis part.
27258
27259 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27260
27261         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
27262         statements in the analysis part.
27263         (tree_if_convert_stmt): Update comment.
27264         (remove_conditions_and_labels): New.
27265         (combine_blocks): Call remove_conditions_and_labels.
27266         (tree_if_conversion): Update comment.
27267
27268 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27269
27270         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
27271         than 2 predecessors or more than 2 successors.
27272
27273 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27274
27275         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
27276         of loops in which the data dependence analysis fails.
27277
27278 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27279
27280         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
27281         CDI_POST_DOMINATORS.
27282         (tree_if_conversion): Same.
27283
27284 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27285
27286         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
27287
27288 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27289
27290         * tree-if-conv.c: Update copyright years.  Fix comments.
27291         Fix indentation.
27292
27293 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
27294
27295         * builtin-types.def (BT_INT128): New primitive type.
27296         (BT_UINT128): Likewise.
27297         * c-common.c (c_common_r): Add __int128 keyword.
27298         (c_common_type_for_size): Handle __int128.
27299         (c_common_type_for_mode): Likewise.
27300         (c_common_signed_or_unsigned_type): Likewise.
27301         (c_common_nodes_and_builtins): Add builtin type
27302         if target supports 128-bit integer scalar.
27303         * c-common.h (enum rid): Add RID_INT128.
27304         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
27305         if target supports 128-bit integer scalar.
27306         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
27307         (finish_declspecs): Likewise.
27308         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
27309         (c_token_starts_declspecs): Likewise.
27310         (c_parser_declspecs): Likewise.
27311         (c_parser_attributes): Likewise.
27312         (c_parser_objc_selector): Likewise.
27313         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
27314         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
27315         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
27316         * tree.c (make_or_reuse_type): Likewise.
27317         (make_unsigned_type): Likewise.
27318         (build_common_tree_nodes_2): Likewise.
27319         * tree.h (enum integer_type_kind): Add itk_int128 and
27320         itk_unsigned_int128.
27321         (int128_integer_type_node): New define.
27322         (int128_unsigned_type_node): New define.
27323         * doc/extend.texi: Add documentation about __int128 type.
27324
27325 2010-05-26  Richard Guenther  <rguenther@suse.de>
27326
27327         * tree-ssa-sccvn.c (copy_nary): Adjust.
27328         (copy_phis): Rename to ...
27329         (copy_phi): ... this.  Adjust.
27330         (copy_references): Rename to ...
27331         (copy_reference): ... this.  Adjust.
27332         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
27333         result into the valid table.
27334
27335 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27336
27337         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
27338         insn-config.h, insn-codes.h, recog.h, and optabs.h.
27339
27340 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27341
27342         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
27343
27344 2010-05-26  Richard Guenther  <rguenther@suse.de>
27345
27346         * opts.c (common_handle_option): Handle OPT_Ofast.
27347
27348 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27349
27350         * diagnostic.c: Don't include opts.h.
27351         (permissive_error_option): Define.
27352         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
27353         for classify_diagnostic.  Don't use memset for
27354         classify_diagnostic.  Initialize new and recently added fields.
27355         (diagnostic_classify_diagnostic): Use context->n_opts instead of
27356         N_OPTS.
27357         (diagnostic_report_diagnostic): Pass context parameter to
27358         diagnostic_report_warnings_p.  Use option_enabled and option_name
27359         hooks from context.
27360         (emit_diagnostic): Use permissive_error_option.
27361         (permerror): Likewise.
27362         * diagnostic.h: Don't include options.h.
27363         (struct diagnostic_context): Add n_opts, opt_permissive,
27364         inhibit_warnings, warn_system_headers, option_enabled and
27365         option_name fields.  Change classify_diagnostic to a pointer.
27366         * opts-diagnostic.h: New file.
27367         * opts.c: Include opts-diagnostic.h.
27368         (common_handle_option): Set global_dc fields for -Wfatal-errors,
27369         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
27370         (option_name): New function.
27371         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
27372         (c_common_handle_option): Set global_dc->permissive for
27373         -fpermissive.
27374         * c-common.c (c_cpp_error): Save and restore
27375         global_dc->warn_system_headers, not variable warn_system_headers.
27376         * toplev.c: Include opts-diagnostic.h.
27377         (general_init): Update call to diagnostic_initialize.  Set
27378         global_dc->show_column, global_dc->option_enabled and
27379         global_dc->option_name.
27380         (process_options): Don't set global_dc fields here.
27381         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
27382         (diagnostic.o, opts.o, toplev.o): Update dependencies.
27383
27384 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
27385
27386         * config/picochip/picochip.md (movsi): Split a movsi from a
27387         const after reload.
27388
27389 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27390
27391         * ggc-zone.c: Update copyright year.
27392         (poison_region): Mark memory for Valgrind as undefined before
27393         memset () call and inaccessible afterwards.
27394         (ggc_pch_total_size): Change type of i to int.
27395
27396 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27397
27398         * ggc-common.c (ggc_free_overhead): Allow empty slot.
27399
27400 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27401
27402         * ggc-common.c: Update copyright year.
27403         (ggc_rlimit_bound): Remove prototype.  Compile only if
27404         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
27405         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
27406         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
27407         (ggc_min_heapsize_heuristic): Likewise.
27408
27409 2010-05-26  Richard Guenther  <rguenther@suse.de>
27410
27411         PR rtl-optimization/44164
27412         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
27413         no-common access-path disambiguation.
27414         (indirect_ref_may_alias_decl_p): Adjust.
27415         (indirect_refs_may_alias_p): Likewise.
27416         (refs_may_alias_p_1): Likewise.
27417
27418 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27419
27420         * c-typeck.c: Do not include expr.h.
27421
27422 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27423
27424         * rtl.h (decl_default_tls_model): Move prototype from here...
27425         * output.h: ...to here.
27426         * c-decl.c: Do not include rtl.h.
27427         * c-pragma.c: Likewise.
27428         * c-parser.c: Likewise.
27429         * c-gimplify.c: Likewise.  And also not hard-reg-set.
27430         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
27431         FIXME note for it.  Add a FIXME note for expr.h.
27432         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
27433         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
27434         defined.
27435
27436 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
27437
27438         PR target/44199
27439         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
27440         or total_size is larger than red zone size for non-V4 ABI, emit a
27441         stack_tie resp. frame_tie insn before stack pointer restore.
27442         * config/rs6000/rs6000.md (frame_tie): New insn.
27443
27444 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
27445
27446         * function.h (struct function): Add can_throw_non_call_exceptions bit.
27447         * lto-streamer-in.c (input_function): Stream it in.
27448         * lto-streamer-out.c (output_function): Stream it out.
27449         * function.c (allocate_struct_function): Set it.
27450         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
27451         for flag_non_call_exceptions.
27452         * cfgbuild.c (control_flow_insn_p): Likewise.
27453         (make_edges): Likewise.
27454         * cfgexpand.c (expand_stack_alignment): Likewise.
27455         * combine.c (distribute_notes): Likewise.
27456         * cse.c (cse_extended_basic_block): Likewise.
27457         * except.c (insn_could_throw_p): Likewise.
27458         * gcse.c (simple_mem): Likewise.
27459         * ipa-pure-const.c (check_call): Likewise.
27460         (check_stmt ): Likewise.
27461         * lower-subreg.c (lower-subreg.c): Likewise.
27462         * optabs.c (emit_libcall_block): Likewise.
27463         (prepare_cmp_insn): Likewise.
27464         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
27465         * postreload.c (rest_of_handle_postreload): Likewise.
27466         * reload1.c (reload_as_needed): Likewise.
27467         (emit_input_reload_insns): Likewise.
27468         (emit_output_reload_insns): Likewise.
27469         (fixup_abnormal_edges): Likewise.
27470         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
27471         * store-motion.c (find_moveable_store): Likewise.
27472         * tree-eh.c (stmt_could_throw_p): Likewise.
27473         (tree_could_throw_p): Likewise.
27474         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
27475         * config/arm/arm.c (arm_expand_prologue): Likewise.
27476         (thumb1_expand_prologue): Likewise.
27477         * config/rx/rx.md (cbranchsf4): Likewise.
27478         (cmpsf): Likewise.
27479         * config/s390/s390.c (s390_emit_prologue): Likewise.
27480         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
27481         (inline_forbidden_into_p): New predicate.
27482         (expand_call_inline): Use it to forbid inlining.
27483         (tree_can_inline_p): Likewise.
27484
27485 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27486
27487         * config/i386/i386-c.c: Do not include rtl.h.
27488         * config/i386/t-i386: Update dependencies.
27489
27490 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27491
27492         * attribs.c: Do not include rtl.h.
27493         * Makefile.in: Update dependencies.
27494
27495 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
27496
27497         * double-int.h (double_int_and): New.
27498         * combine.c (try_combine): Clean up, use double_int_* and
27499         immed_double_int_const functions.
27500
27501 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27502
27503         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
27504         stderr to /dev/null instead of grep -q.
27505         * configure: Regenerate.
27506
27507 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27508
27509         * Makefile.in (EXCEPT_H): Fix typo.
27510
27511 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
27512
27513         * ira-build.c (update_conflict_hard_reg_costs): New.
27514         (ira_build): Call update_conflict_hard_reg_costs.
27515
27516 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27517
27518         PR debug/41371
27519         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
27520         ENABLE_CHECKING.
27521         (intersect_loc_chains): Walk the s2var's loc_chain together
27522         with s1node chain as long as the locations are equal, don't
27523         call find_loc_in_1pdv in that case.
27524
27525         PR debug/42801
27526         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
27527         (copy_bind_expr): ... instead of here.
27528         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
27529         if the block hasn't been remapped.
27530         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
27531         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
27532
27533 2010-05-25  Richard Guenther  <rguenther@suse.de>
27534
27535         PR middle-end/44069
27536         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
27537         out-of-bounds array accesses.
27538
27539 2010-05-25  Richard Guenther  <rguenther@suse.de>
27540
27541         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
27542         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
27543         (run_gcc): Re-organize to make cleanup easier.
27544
27545 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27546
27547         * config/s390/s390.c (optimization_options): Fix and move the
27548         flag_prefetch_loop_arrays override ...
27549         (override_options): ... here.
27550
27551 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
27552
27553         * diagnostic.c: Don't include plugin.h.
27554         (diagnostic_report_diagnostic): Don't handle plugins specially
27555         here.  Pass context to internal_error callback.
27556         * diagnostic.h (struct diagnostic_context): Add context parameter
27557         to internal_error callback.
27558         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
27559         * plugin.h (struct diagnostic_context): Declare.
27560         (warn_if_plugins, plugins_internal_error_function): Declare.
27561         * toplev.c (general_init): Set global_dc->internal_error.
27562         * Makefile.in (diagnostic.o): Update dependencies.
27563
27564 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
27565
27566         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
27567         * config/rs6000/t-darwin64: New.
27568         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
27569         build crt2.
27570
27571 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
27572
27573         PR 44203
27574         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
27575         match the original (and intended) behaviour before r159557.  This
27576         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
27577         in two ways.
27578
27579 2010-05-25  Richard Guenther  <rguenther@suse.de>
27580
27581         * doc/invoke.texi: Document -Ofast.
27582         * target.h (struct gcc_target): Add handle_ofast.
27583         * target-def.h (TARGET_HANDLE_OFAST): Add.
27584         (TARGET_INITIALIZER): Adjust.
27585         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
27586         * common.opt (Ofast): Add.
27587
27588 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27589
27590         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
27591         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
27592
27593 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27594
27595         PR target/43610
27596         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
27597         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
27598         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
27599         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
27600
27601 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27602
27603         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
27604         DW_OP_minus with negated offset instead of DW_OP_plus.
27605         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
27606
27607 2010-05-25  Wei Guozhi  <carrot@google.com>
27608
27609         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
27610         tst instruction and a new alternative.
27611         * config/arm/constraints.md (Pu): New constraint.
27612
27613 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
27614
27615         * function.c (assign_stack_local_1): Initialize variable
27616         to avoid warning when bootstrapping at -O3.
27617
27618 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
27619
27620         * configure.ac (all_lang_makefiles): Remove everything related to it.
27621         * configure: Regenerate.
27622         * Makefile.in: Fix reference to ada Make-lang.in.
27623         Remove support for LANG_MAKEFILES.
27624
27625 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
27626             Sandra Loosemore  <sandra@codesourcery.com>
27627
27628         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
27629         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
27630         description.  Add arm_neon_fp16_ok.
27631         (Add Options): Add arm_neon and arm_neon_fp16.
27632
27633 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
27634
27635         * diagnostic.c: Don't include flags.h.
27636         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
27637         context parameters.  Check flags in the context passed as a parameter.
27638         (diagnostic_build_prefix): Add context parameter.  Check
27639         show_column flag in context.
27640         (diagnostic_action_after_output): Check fatal_errors flag in context.
27641         (diagnostic_report_current_module): Check show_column flag in context.
27642         (default_diagnostic_starter): Update call to
27643         diagnostic_build_prefix.
27644         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
27645         (emit_diagnostic): Pass context to permissive_error_kind.
27646         (permerror): Pass context to permissive_error_kind.
27647         * diagnostic.h (struct diagnostic_context): Add show_column,
27648         pedantic_errors, permissive and fatal_errors fields.
27649         (diagnostic_build_prefix): Update prototype.
27650         * langhooks.c
27651         * toplev.c (process_options): Set flags in global_dc from
27652         flag_show_column, flag_pedantic_errors, flag_permissive,
27653         flag_fatal_errors.
27654         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
27655         to diagnostic_build_prefix.
27656         * Makefile.in (diagnostic.o): Update dependencies.
27657
27658 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
27659
27660         * config/i386/ia32intrin.h (__crc32q): Define only if
27661         __SSE4_2__ is defined.
27662
27663 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
27664
27665         PR target/44132
27666         PR middle-end/43602
27667         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
27668         DECL_VISIBILITY_SPECIFIED.
27669         (emutls_decl): Set DECL_PRESERVE_P and copy
27670         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
27671         (emutls_finalize_control_var): New callback.
27672         (emutls_finish): Finalize emutls control variables.
27673         * toplev.c (compile_file): Move the call to emutls_finish ()
27674         before varpool_assemble_pending_decls ().
27675
27676 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
27677
27678         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
27679         added to the preprocessor condition.
27680
27681 2010-05-24  Paul Brook  <paul@codesourcery.com>
27682
27683         * gengtype-lex.l: Add HARD_REG_SET.
27684         * expr.c (expand_expr_real_1): Record writes to hard registers.
27685         * function.c (rtl_data): Add asm_clobbers.
27686         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
27687         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
27688         Use crtl->asm_clobbers.
27689
27690 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27691
27692         * doc/makefile.texi (Makefile): Mention stages 'profile'
27693         and 'feedback' for profiledbootstrap.
27694
27695 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
27696
27697         PR target/44245
27698         * config/i386/i386.c (def_builtin): Properly check
27699         OPTION_MASK_ISA_64BIT.
27700
27701 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
27702
27703         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
27704         typedefs with different but compatible types.  Allow duplicate
27705         typedefs with the same type except for pedantic non-C1X, but give
27706         warning for variably modified types.
27707         * c-typeck.c (tagged_types_tu_compatible_p,
27708         function_types_compatible_p, type_lists_compatible_p,
27709         comptypes_internal): Add parameter different_types_p; set
27710         *different_types_p for different but compatible types.  All
27711         callers changed.
27712         (comptypes_check_different_types): New.
27713         * c-tree.h (comptypes_check_different_types): Declare.
27714
27715 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27716
27717         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
27718         * jump.c: Include basic-block.h.
27719         * profile.c: Likewise.
27720         * tree-profile.c: Likewise.
27721         * coverage.c: Likewise.
27722         * basic-block.h (optimize_function_for_size_p): Move to function.h.
27723         (optimize_function_for_speed_p): Likewise.
27724         * function.h (optimize_function_for_size_p,
27725         optimize_function_for_speed_p): Moved here from basic-block.h.
27726         * Makefile.in: Update dependencies.
27727
27728 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27729
27730         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
27731         before calling make; allow override through $MAKE.
27732         * doc/invoke.texi (Optimize Options): Document override.
27733
27734 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
27735
27736         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
27737         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27738         (rs6000_mode_dependent_address_ptr): Make static.
27739         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27740         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
27741         Remove.
27742
27743 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
27744
27745         PR target/43869
27746         * config/i386/i386.c: Make sure that the correct regparm is passed.
27747
27748 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27749
27750         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
27751         * sbitmap.c: ...to here to internalize sbitmap element access.
27752         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
27753         Explain why basic-block.h is included.
27754         * function.h: Include tm.h for CUMULATIVE_ARGS.
27755         * Makefile.in: Update dependencies.
27756
27757 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27758
27759         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
27760         New core types.
27761         * sbitmap.h (struct sbitmap_def): Do not typedef here.
27762         * sbitmap.c: Include sbitmap.h.
27763         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
27764         hard-reg-set.h.  Split everything related to regsets out from here...
27765         * regset.h: ...to here.  New file.
27766         * df.h: Include regset.h and sbitmap.h.
27767         * tree-flow.h: Likewise.
27768         * cfgloop.h: Likewise.
27769         * except.h: Do not include sbitmap.h.  Include hashtab.h.
27770         * cgraph.h: Include vec.h and function.h.
27771         * reload.h (struct insn_chain): Change types of live_throughout
27772         and dead_or_set from regset_head to bitmap_head.
27773         (compute_use_by_pseudos): Be defined also if regset.h is not included.
27774         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
27775         spilled_regs from regset_head to bitmap_head to avoid dependency
27776         in regset.h.
27777         * sel-sched-ir.h: Include regset.h.
27778         * reload.c: Include df.h before reload.h.
27779         * caller-save.c: Likewise.
27780         * reload1.c: Likewise.
27781         * ira.c: Likewise.
27782         (mark_elimination): Update type of r to bitmap, consistent with
27783         DF_LR_IN.
27784         * dominance.c: Include bitmap.h.
27785         * modulo-sched.c: Include df.h.
27786         * cfganal.c: Include bitmap.h and sbitmap.h.
27787         * cfgbuild.c: Include sbitmap.h.
27788         * lcm.c: Include sbitmap.h.
27789         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
27790         * domwalk.c: Include sbitmap.h, exclude ggc.h.
27791         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
27792         * cselib.c: Include bitmap.h.
27793         * tree-optimize.c: Include regset.h.
27794         * stmt.c: Include bitmap.h.
27795         * Makefile.in: Update dependencies.
27796
27797 2010-05-22  Jan Hubicka  <jh@suse.cz>
27798
27799         * cgraph.h (struct varpool_node): Add same_comdat_group.
27800         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
27801         pointer.
27802         (output_varpool): Update call of lto_output_varpool_node.
27803         (input_varpool): Read same_comdat_group pointer.
27804         (input_varpool_1): Fixup same_comdat_group pointer.
27805         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
27806         group is needed, all are.
27807         * varpool.c (varpool_remove_node): Remove node from same comdat group
27808         linklist too.
27809         (varpool_analyze_pending_decls): Walk same comdat groups.
27810
27811 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27812
27813         * rtl.h (union rtunion_def): Remove rt_bit member.
27814         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
27815         * print-rtl (print_rtx): Do not print the member.
27816         * gengtype.c (adjust_field_rtx_def): Do not handle it.
27817         * gengenrtl.c (type_from_format): Likewise.
27818         (accessor_from_format): Likewise.
27819
27820 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
27821
27822         * dbgcnt.c: Include toplev.h instead of errors.h.
27823         * ira-emit.c: Don't include errors.h.
27824         * ira.c: Include toplev.h instead of errors.h.
27825         * lto-compress.c: Include toplev.h instead of errors.h.
27826         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
27827         ira.o, dbgcnt.o): Update dependencies.
27828
27829 2010-05-22  Richard Guenther  <rguenther@suse.de>
27830
27831         * gimple.c (gimple_types_compatible_p): Check type qualifications
27832         before merging pointer to complete and pointer to incomplete type.
27833         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
27834         we use our own resolution algorithm.  The gold linker plugin
27835         doesn't do the job we want it to do here.
27836
27837 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
27838
27839         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27840         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27841         (sparc_mode_dependent_address_p): New function.
27842
27843 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27844
27845         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
27846
27847         * timevar.c: Do not include any core headers.
27848         (timevar_print): De-i18n-ize.
27849         (print_time): Likewise.
27850         * timevar.h (timevar_push, timevar_pop): Make inline functions.
27851
27852 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
27853
27854         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
27855         langhooks-def.h.
27856         (diagnostic_initialize): Initialize x_data not last_function.
27857         (diagnostic_report_current_function): Move to tree-diagnostic.c.
27858         (default_diagnostic_starter): Call
27859         diagnostic_report_current_module not
27860         diagnostic_report_current_function.
27861         (diagnostic_report_diagnostic): Initialize x_data not
27862         abstract_origin.
27863         (verbatim): Likewise.
27864         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
27865         x_data.
27866         (struct diagnostic_context): Change last_function to x_data.
27867         (diagnostic_auxiliary_data): Replace with
27868         diagnostic_context_auxiliary_data and
27869         diagnostic_info_auxiliary_data.
27870         (diagnostic_last_function_changed, diagnostic_set_last_function,
27871         diagnostic_report_current_function): Move to tree-diagnostic.h.
27872         (print_declaration, dump_generic_node, print_generic_stmt,
27873         print_generic_stmt_indented, print_generic_expr,
27874         print_generic_decl, debug_c_tree, dump_omp_clauses,
27875         print_call_name, debug_generic_expr, debug_generic_stmt,
27876         debug_tree_chain, default_tree_printer): Move to
27877         tree-pretty-print.h.
27878         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
27879         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
27880         gimple-pretty-print.h.
27881         * pretty-print.c: Don't include tree.h
27882         (pp_base_format): Don't handle %K here.
27883         (pp_base_tree_identifier): Move to tree-pretty-print.c.
27884         * pretty-print.h (text_info): Change abstract_origin to x_data.
27885         (pp_tree_identifier, pp_unsupported_tree,
27886         pp_base_tree_identifier): Move to tree-pretty-print.h.
27887         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
27888         tree-pretty-print.h: New files.
27889         * tree-pretty-print.c: Include tree-pretty-print.h.
27890         (percent_K_format): New.  Moved from pretty-print.c.
27891         (pp_base_tree_identifier): Move from pretty-print.c.
27892         * c-objc-common.c: Include tree-pretty-print.h.
27893         (c_tree_printer): Handle %K here.
27894         * langhooks.c: Include tree-diagnostic.h.
27895         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
27896         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
27897         (default_tree_printer): Handle %K using percent_K_format.
27898         (general_init): Use default_tree_diagnostic_starter.
27899         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
27900         (free_lang_data): Use default_tree_diagnostic_starter.
27901         * c-pretty-print.c: Include tree-pretty-print.h.
27902         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27903         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27904         * dwarf2out.c: Include tree-pretty-print.h.
27905         * except.c: Include tree-pretty-print.h.
27906         * gimple-pretty-print.c: Include tree-pretty-print.h and
27907         gimple-pretty-print.h.
27908         * gimplify.c: Include tree-pretty-print.h.
27909         * graphite-poly.c: Include tree-pretty-print.h and
27910         gimple-pretty-print.h.
27911         * ipa-cp.c: Include tree-pretty-print.h.
27912         * ipa-inline.c: Include gimple-pretty-print.h.
27913         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27914         * ipa-pure-const.c: Include gimple-pretty-print.h.
27915         * ipa-struct-reorg.c: Include tree-pretty-print.h and
27916         gimple-pretty-print.h.
27917         * ipa-type-escape.c: Include tree-pretty-print.h.
27918         * print-rtl.c: Include tree-pretty-print.h.
27919         * print-tree.c: Include gimple-pretty-print.h.
27920         * sese.c: Include tree-pretty-print.h.
27921         * tree-affine.c: Include tree-pretty-print.h.
27922         * tree-browser.c: Include tree-pretty-print.h.
27923         * tree-call-cdce.c: Include gimple-pretty-print.h.
27924         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27925         * tree-chrec.c: Include tree-pretty-print.h.
27926         * tree-data-ref.c: Include tree-pretty-print.h and
27927         gimple-pretty-print.h.
27928         * tree-dfa.c: Include tree-pretty-print.h.
27929         * tree-if-conv.c: Include tree-pretty-print.h and
27930         gimple-pretty-print.h.
27931         * tree-inline.c: Include tree-pretty-print.h.
27932         * tree-into-ssa.c: Include tree-pretty-print.h and
27933         gimple-pretty-print.h.
27934         * tree-nrv.c: Include tree-pretty-print.h.
27935         * tree-object-size.c: Include tree-pretty-print.h and
27936         gimple-pretty-print.h.
27937         * tree-outof-ssa.c: Include tree-pretty-print.h and
27938         gimple-pretty-print.h.
27939         * tree-parloops.c: Include tree-pretty-print.h and
27940         gimple-pretty-print.h.
27941         * tree-predcom.c: Include tree-pretty-print.h and
27942         gimple-pretty-print.h.
27943         * tree-scalar-evolution.c: Include tree-pretty-print.h and
27944         gimple-pretty-print.h.
27945         * tree-sra.c: Include tree-pretty-print.h.
27946         * tree-ssa-address.c: Include tree-pretty-print.h.
27947         * tree-ssa-alias.c: Include tree-pretty-print.h.
27948         * tree-ssa-ccp.c: Include tree-pretty-print.h and
27949         gimple-pretty-print.h.
27950         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
27951         * tree-ssa-copy.c: Include tree-pretty-print.h and
27952         gimple-pretty-print.h.
27953         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
27954         * tree-ssa-dce.c: Include tree-pretty-print.h and
27955         gimple-pretty-print.h.
27956         * tree-ssa-dom.c: Include tree-pretty-print.h and
27957         gimple-pretty-print.h.
27958         * tree-ssa-dse.c: Include gimple-pretty-print.h.
27959         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
27960         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
27961         * tree-ssa-live.c: Include tree-pretty-print.h and
27962         gimple-pretty-print.h.
27963         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
27964         gimple-pretty-print.h.
27965         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
27966         gimple-pretty-print.h.
27967         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
27968         gimple-pretty-print.h.
27969         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
27970         gimple-pretty-print.h.
27971         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
27972         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
27973         * tree-ssa-operands.c: Include tree-pretty-print.h and
27974         gimple-pretty-print.h.
27975         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
27976         gimple-pretty-print.h.
27977         * tree-ssa-pre.c: Include tree-pretty-print.h and
27978         gimple-pretty-print.h.
27979         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
27980         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
27981         gimple-pretty-print.h.
27982         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
27983         gimple-pretty-print.h.
27984         * tree-ssa-sink.c: Include gimple-pretty-print.h.
27985         * tree-ssa-ter.c: Include tree-pretty-print.h and
27986         gimple-pretty-print.h.
27987         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
27988         * tree-ssa.c: Include tree-pretty-print.h and
27989         gimple-pretty-print.h.
27990         * tree-stdarg.c: Include gimple-pretty-print.h.
27991         * tree-switch-conversion.c: Include gimple-pretty-print.h.
27992         * tree-tailcall.c: Include tree-pretty-print.h and
27993         gimple-pretty-print.h.
27994         * tree-vect-data-refs.c: Include tree-pretty-print.h and
27995         gimple-pretty-print.h.
27996         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
27997         gimple-pretty-print.h.
27998         * tree-vect-loop.c: Include tree-pretty-print.h and
27999         gimple-pretty-print.h.
28000         * tree-vect-patterns.c: Include gimple-pretty-print.h.
28001         * tree-vect-slp.c: Include tree-pretty-print.h and
28002         gimple-pretty-print.h.
28003         * tree-vect-stmts.c: Include tree-pretty-print.h and
28004         gimple-pretty-print.h.
28005         * tree-vectorizer.c: Include tree-pretty-print.h.
28006         * tree-vrp.c: Include tree-pretty-print.h and
28007         gimple-pretty-print.h.
28008         * value-prof.c: Include tree-pretty-print.h and
28009         gimple-pretty-print.h.
28010         * var-tracking.c: Include tree-pretty-print.h.
28011         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
28012         (tree-diagnostic.o): New dependencies.
28013         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
28014         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
28015         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
28016         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
28017         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
28018         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
28019         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
28020         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
28021         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
28022         tree-ssa-address.o, tree-ssa-loop-niter.o,
28023         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
28024         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
28025         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
28026         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
28027         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
28028         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
28029         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
28030         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
28031         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
28032         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
28033         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
28034         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
28035         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
28036         tree-switch-conversion.o, var-tracking.o, value-prof.o,
28037         cfgexpand.o, pretty-print.o): Update dependencies.
28038
28039 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
28040
28041         * tree-ssa-structalias.c: Remove tm_p.h from include.
28042
28043 2010-05-21  Jeff Law  <law@redhat.com>
28044
28045         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
28046
28047 2010-05-21  Jason Merrill  <jason@redhat.com>
28048
28049         * tree-eh.c (cleanup_is_dead_in): New.
28050         (lower_try_finally): Don't generate a dead cleanup region.
28051         (lower_cleanup): Likewise.
28052
28053 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28054
28055         PR debug/44223
28056         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
28057         unchain each use from the cyclic next_regno_use chain first.
28058
28059 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28060
28061         * real: Do not include gmp.h, mpfr.h, and mpc.h.
28062         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
28063         (real_value_negate, real_value_abs): New prototypes.
28064         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
28065         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
28066         new include file for interface between MPFR and REAL_VALUE_TYPE.
28067         * real.c: Include realmpfr.h.
28068         (real_arithmetic2): Remove legacy function.
28069         (real_value_negate): New.
28070         (real_value_abs): New.
28071         (mfpr_from_real, real_from_mpfr): Move from here...
28072         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
28073         * builtins.c: Include realmpfr.h.
28074         * fold-const.c: Include realmpfr.h.
28075         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
28076         (fold_negate_const): Likewise.
28077         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
28078         * toplev.c: Include realmpfr.h.
28079         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
28080         and real_value_negate.
28081         * fixed-value.c (check_real_for_fixed_mode): Likewise.
28082         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
28083         (vfp3_const_double_index): Likewise.
28084         (arm_print_operand): Likewise.
28085         * Makefile.in: Update dependencies.
28086
28087 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28088
28089         * config/s390/s390.c (override_options): Increase the default
28090         of max-completely-peel-times.
28091
28092 2010-05-21  Julian Brown  <julian@codesourcery.com>
28093             Mark Mitchell  <mark@codesourcery.com>
28094
28095         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
28096         sibling calls for Thumb-1.
28097         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
28098         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
28099         Thumb-2.
28100         (*call_insn, *call_value_insn): Don't use for Thumb-2.
28101         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
28102         for Thumb-2.
28103         (return): New expander.
28104         (*arm_return): New name for ARM return insn.
28105         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
28106
28107 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
28108
28109         * config.gcc (sparc64-*-rtems*): New target.
28110
28111 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28112
28113         * tree.c (build_function_decl_skip_args): Fix grammar.
28114         (build_function_type_list_1): Fix typos, adjust formatting.
28115
28116 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28117
28118         * tree.h: Include real.h and fixed-value.h as basic datatypes.
28119         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
28120         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
28121         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
28122         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
28123         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
28124         tree-pretty-print.c, tree-loop-distribution.c,
28125         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
28126         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
28127         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
28128         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
28129         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
28130         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
28131         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
28132         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
28133         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
28134         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
28135         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
28136         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
28137         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
28138         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
28139         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
28140         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
28141         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
28142         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
28143         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
28144         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
28145         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
28146         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
28147         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
28148         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
28149         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
28150         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
28151         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
28152         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
28153         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
28154         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
28155         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
28156         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
28157         config/score/score7.c, config/score/score.c, config/arm/arm.c,
28158         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
28159         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
28160         config/bfin/bfin.c: Clean up redundant includes.
28161         * Makefile.in: Update accordingly.
28162
28163 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28164
28165         PR middle-end/44204
28166         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
28167         statement has no arguments.
28168
28169 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
28170
28171         PR/44139
28172         * varasm.c (emutls_decl): Merge attributes to new decl.
28173
28174 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
28175
28176         PR middle-end/44101
28177         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
28178         around the uniquized constructor if its type requires a conversion.
28179
28180 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28181
28182         PR debug/44205
28183         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
28184         at -O0 goto_locus of any of the incoming edges differs from
28185         goto_locus of outgoing edge, or gimple_location of any of the
28186         labels differs.
28187
28188 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
28189
28190         * ira.c (ira_non_ordered_class_hard_regs): Define.
28191         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
28192         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
28193         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
28194         cost of unaligned hard regs when allocating multi-reg pseudos.
28195
28196 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
28197
28198         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
28199         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
28200         for TARGET_NO_FLOAT.
28201         * config/mips/mips.c (mips_file_start): Expand conditional expression
28202         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
28203         (mips_override_options): Move -mno-float override -msoft-float and
28204         -mhard-float.
28205         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
28206         Condition(TARGET_SUPPORTS_NO_FLOAT).
28207         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
28208         __mips_no_float here.
28209         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
28210         (TARGET_SUPPORTS_NO_FLOAT): Define.
28211         * config/mips/sdemtk.opt: Delete.
28212
28213 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
28214
28215         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
28216
28217 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
28218
28219         PR target/43733
28220         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
28221         * configure: Regenerate.
28222         * config.in: Regenerate.
28223         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
28224         instead of sahf only for 64bit targets.
28225
28226 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28227
28228         PR debug/44178
28229         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
28230         setup_ref_regs for DEBUG_INSNs.
28231
28232 2010-05-20  Jan Hubicka  <jh@suse.cz>
28233
28234         PR middle-end/44197
28235         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
28236
28237 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
28238
28239         PR bootstrap/43870
28240         * df-scan.c (df_ref_compare): Stabilize sort.
28241
28242 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28243
28244         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
28245         argument.  Don't use DW_OP_piece if offset is non-zero,
28246         put offset into second DW_OP_bit_piece argument.
28247         (dw_sra_loc_expr): Adjust callers.  For memory expressions
28248         compute offset.
28249
28250 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
28251
28252         PR target/44202
28253         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
28254         settings for 16-bit-constant "addo" alternative.
28255
28256 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
28257
28258         * config/mips/mips-dsp.md (add<DSPV:mode>3,
28259         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
28260
28261         PR target/43764
28262         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
28263         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
28264         Use it.
28265
28266 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
28267
28268         * diagnostic.c (FLOAT, FFS): Don't undefine.
28269         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
28270         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
28271         include ordering.
28272
28273 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
28274
28275         * combine.c (propagate_for_debug): Call make_compound_operation
28276         on the source value.
28277         (try_combine): When implementing a split chosen by find_split_point,
28278         either copy i2src or set it to null.  Assert that i2src is not null
28279         before substituting into CALL_INSN_FUNCTION_USAGE.
28280
28281 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
28282
28283         * double-int.h (double_int_ior): New function.
28284         * tree.h (build_int_cst_wide_type): Remove.
28285         * tree.c (build_int_cst_wide_type): Remove.
28286         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
28287         of build_int_cst_wide_type.
28288         * stor-layout.c (set_sizetype): (Ditto.).
28289         * dojump.c (do_jump): Use build_int_cstu instead of
28290         build_int_cst_wide_type.
28291
28292 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
28293
28294         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
28295         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
28296         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
28297         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
28298         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
28299         propagate the 'data' argument to copy_tree_r.
28300         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
28301         Propagate 'data' argument to walk_tree.
28302         (copy_if_shared): New function.
28303         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
28304         (unmark_visited): New function.
28305         (unshare_body): Call copy_if_shared instead of doing it manually.
28306         (unvisit_body): Call unmark_visited instead of doing it manually.
28307
28308 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
28309
28310         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
28311         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
28312         * hooks.c: Likewise.
28313         * target-def.h (TARGET_FOLD_BUILTIN): Define to
28314         hook_tree_tree_int_treep_bool_null.
28315         * target.h (struct gcc_target): Update signature of fold_builtin
28316         field.
28317         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
28318         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
28319         instead of the call expression.
28320         (fold_builtin_call_array): Pass n and argarray directly.
28321         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
28322         consing a list.
28323         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
28324         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
28325         `i' and use it in place of `arity'.
28326         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
28327         Dereference `args' directly.
28328         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
28329
28330 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28331
28332         * doc/sourcebuild.texi (Effective-Target Keywords): Document
28333         3dnow, sse3, sse2.
28334         (Directives): Document optional dg-require-effective-target
28335         selector.
28336
28337 2010-05-19  Richard Guenther  <rguenther@suse.de>
28338
28339         PR lto/44196
28340         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
28341
28342 2010-05-19  Richard Guenther  <rguenther@suse.de>
28343
28344         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
28345         * common.opt (fwhopr=): New.
28346         * opts.c (common_handle_option): Handle OPT_fwhopr.
28347         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
28348         * collect2.c (main): Match -fwhopr*.
28349         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
28350         Execute ltrans stage in parallel when jobs is bigger than 1.
28351
28352 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28353
28354         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
28355         pentiumpro on Solaris 8/x86 with Sun as.
28356         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
28357         hidden alias bug.
28358         (gcc_cv_as_ix86_quad): Check for .quad directive.
28359         * configure: Regenerate.
28360         * config.in: Regenerate.
28361         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
28362
28363 2010-05-19  Martin Jambor  <mjambor@suse.cz>
28364
28365         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
28366         also for indirect edges.  Actual printing moved...
28367         (ipa_print_node_jump_functions_for_edge): ...here.
28368         (ipa_compute_jump_functions): Renamed to
28369         ipa_compute_jump_functions_for_edge and made static.
28370         (ipa_compute_jump_functions): New function.
28371         (make_edge_direct_to_target): Check if the number of arguments on
28372         the newly direct edge is the same as the number of parametrs of
28373         the callee.
28374         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
28375         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
28376         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
28377         analysis functions unconditionally, call the new
28378         ipa_analyze_params_uses on the node instead of every edge.
28379
28380 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
28381
28382         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
28383         to tree.
28384         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
28385         also checks for a constant int vs.  non-constant but
28386         loop-invariant steps.
28387         (find_or_create_group): Change the sort algorithm to only consider
28388         steps that are constant ints.
28389         (idx_analyze_ref): Adopt code to handle a tree instead of a
28390         HOST_WIDE_INT for step.
28391         (gather_memory_references_ref): Handle tree instead of int and be
28392         prepared to see a NULL_TREE.
28393         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
28394         prefetches if the step cannot be calculated at compile time.
28395         (issue_prefetch_ref): Issue prefetches for non-constant but
28396         loop-invariant steps.
28397
28398 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28399
28400         Revert:
28401         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28402
28403         * tree.h (build_call_list): Remove.
28404         * tree.c (build_call_list): Remove.
28405
28406 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28407
28408         * tree.h (build_call_list): Remove.
28409         * tree.c (build_call_list): Remove.
28410
28411 2010-05-18  Jan Hubicka  <jh@suse.cz>
28412
28413         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
28414
28415 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
28416
28417         PR rtl-optimization/43332
28418         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
28419
28420 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
28421
28422         * tree.h (build_int_cstu): Implement as static inline.
28423         * tree.c (build_int_cstu): Remove function.
28424         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
28425         sign extended.
28426
28427 2010-05-18  Richard Guenther  <rguenther@suse.de>
28428
28429         PR lto/44143
28430         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
28431         (debug): Initialize from -save-temps.
28432         (collect_execute): Print command-line when verbose.
28433         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
28434         for ltrans invocation.  Produce -dumpbase flag again.
28435         (process_args): Remove.
28436         (main): Simplify.
28437         * collect2.c (maybe_run_lto_and_relink): Only pass object
28438         files to lto-wrapper.
28439         * gcc.c (LINK_COMMAND_SPEC): Likewise.
28440
28441 2010-05-18  Jan Hubicka  <jh@suse.cz>
28442
28443         * opts.c (decode_options): Do not disable whopr at ipa_cp.
28444         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
28445
28446 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28447
28448         PR lto/44184
28449         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
28450         in a GIMPLE_ASM.
28451         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
28452         in a GIMPLE_ASM.
28453
28454 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
28455
28456         PR debug/41371
28457         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
28458         rtx_equal_p inline.
28459
28460 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28461
28462         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
28463         lto-macho as lto_binary_reader.
28464
28465         * darwin.c (darwin_asm_named_section): Do not add assembler comment
28466         after .section directive; just print it before the directive instead.
28467
28468 2010-05-17  Jan Hubicka  <jh@suse.cz>
28469
28470         * cgraph.c (cgraph_create_virtual_clone): Only check
28471         versionable_function_p when not in wpa and checking is enabled.
28472         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
28473         there are no more functions to materialize.
28474
28475 2010-05-17  Jan Hubicka  <jh@suse.cz>
28476
28477         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
28478         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
28479         New functions.
28480         (output_cgraph): Call output_cgraph_opt_summary.
28481         (input_cgrpah): Call input_cgraph_opt_summary.
28482         (output_cgraph_opt_summary_p, output_node_opt_summary,
28483         input_node_opt_summary, input_cgraph_opt_section): New functions.
28484         * lto-section-in.c (lto_section_name): Add cgraphopt.
28485         * tree-inline.c (tree_function_versioning): Handle parm_num.
28486         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
28487         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
28488
28489 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28490
28491         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
28492         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
28493         the insn to prefetch ratio heuristic to loops with known trip count.
28494
28495 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28496
28497         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
28498         (schedule_prefetches): Do not generate a prefetch if the unroll factor
28499         is far from what is required by the prefetch.
28500
28501 2010-05-17  Jan Hubicka  <jh@suse.cz>
28502
28503         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
28504         (ipcp_estimate_growth): Likewise.
28505         (ipcp_const_param_count): Likewise.
28506         (ipcp_insert_stage): Likewise.
28507         * ipa-prop.c (visit_load_for_mod_analysis): New function.
28508         (visit_store_addr_for_mod_analysis): Set used flag.
28509         (ipa_detect_param_modifications): Set used flag for SSE params;
28510         update use of walk_stmt_load_store_addr_ops.
28511         (ipa_print_node_params): Print used flag.
28512         (ipa_write_node_info): Stream used flag.
28513         (ipa_read_node_info): Likewise.
28514         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
28515         (ipa_is_param_used): New function.
28516         (lto_ipa_fixup_call_notes): Remove unused declaration.
28517
28518 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28519
28520         PR target/44074
28521         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
28522         * configure: Regenerate.
28523         * config.in: Regenerate.
28524         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
28525         !HAVE_AS_IX86_REP_LOCK_PREFIX.
28526         Don't emit whitespace.
28527         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
28528         (*rep_movsi): Likewise.
28529         (*rep_movsi_rex64): Likewise.
28530         (*rep_movqi): Likewise.
28531         (*rep_movqi_rex64): Likewise.
28532         (*rep_stosdi_rex64): Likewise.
28533         (*rep_stossi): Likewise.
28534         (*rep_stossi_rex64): Likewise.
28535         (*rep_stosqi): Likewise.
28536         (*rep_stosqi_rex64): Likewise.
28537         (*cmpstrnqi_nz_1): Use {%;} after repz.
28538         (*cmpstrnqi_nz_rex_1): Likewise.
28539         (*cmpstrnqi_1): Likewise.
28540         (*cmpstrnqi_rex_1): Likewise.
28541         (*strlenqi_1): Use {%;} after repnz.
28542         (*strlenqi_rex_1): Likewise.
28543         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
28544         (*sync_compare_and_swap<mode>): Likewise.
28545         (sync_double_compare_and_swap<mode>): Likewise.
28546         (*sync_double_compare_and_swapdi_pic): Likewise.
28547         (sync_old_add<mode>): Likewise.
28548         (sync_add<mode>): Likewise.
28549         (sync_sub<mode>): Likewise.
28550         (sync_<code><mode>): Likewise.
28551
28552 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28553
28554         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
28555         otr_token and polymorphic.
28556         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
28557         (cgraph_clone_edge): Copy the above fields.
28558         * tree.c (get_binfo_at_offset): New function.
28559         * tree.h (get_binfo_at_offset): Declare.
28560         * ipa-prop.h (enum jump_func_type): Added known_type jump function
28561         type, reordered items, updated comments.
28562         (union jump_func_value): Added base_type field, reordered fields.
28563         (enum ipa_lattice_type): Moved down in the file.
28564         (struct ipa_param_descriptor): New field polymorphic.
28565         (ipa_is_param_polymorphic): New function.
28566         * ipa-prop.c: Include gimple.h and gimple-fold.h.
28567         (ipa_print_node_jump_functions): Print known type jump functions.
28568         (compute_complex_pass_through): Renamed to...
28569         (compute_complex_assign_jump_func): this.
28570         (compute_complex_ancestor_jump_func): New function.
28571         (compute_known_type_jump_func): Likewise.
28572         (compute_scalar_jump_functions): Create known type and complex ancestor
28573         jump functions.
28574         (ipa_note_param_call): New parameter polymorphic, set the corresponding
28575         flag in the call note accordingly.
28576         (ipa_analyze_call_uses): Renamed to...
28577         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
28578         variable var only in the block where it is used.
28579         (ipa_analyze_virtual_call_uses): New function.
28580         (ipa_analyze_call_uses): Likewise.
28581         (combine_known_type_and_ancestor_jfs): Likewise.
28582         (update_jump_functions_after_inlining): Implemented handling of a
28583         number of new jump function types combination.
28584         (print_edge_addition_message): Removed.
28585         (make_edge_direct_to_target): New function.
28586         (try_make_edge_direct_simple_call): Likewise.
28587         (try_make_edge_direct_virtual_call): Likewise.
28588         (update_call_notes_after_inlining): Renamed to...
28589         (update_indirect_edges_after_inlining): this.  Moved edge creation for
28590         indirect calls to try_make_edge_direct_simple_call, also calls
28591         try_make_edge_direct_virtual_call for virtual calls.
28592         (ipa_print_node_params): Changed the header message.
28593         (ipa_write_jump_function): Stream also known type jump functions.
28594         (ipa_read_jump_function): Likewise.
28595         (ipa_write_indirect_edge_info): Stream new fields in
28596         cgraph_indirect_call_info.
28597         (ipa_read_indirect_edge_info): Likewise.
28598         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
28599         GIMPLE_FOLD_H.
28600
28601 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28602
28603         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
28604
28605 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28606
28607         * tree.h (CALL_EXPR_ARGS): Delete.
28608         (call_expr_arglist): Delete.
28609         * tree.c (call_expr_arglist): Delete.
28610         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
28611         targetm.fold_builtin.
28612         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
28613         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
28614         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
28615         arglist parameter.  Use CALL_EXPR_ARG.
28616         (picochip_expand_builtin_3op): Likewise.
28617         (picochip_expand_builtin_2opvoid): Likewise.
28618         (picochip_expand_array_get): Likewise.
28619         (picochip_expand_array_put): Likewise.
28620         (picochip_expand_array_testport): Likewise.
28621         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
28622         rather than arglist.
28623         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
28624         CALL_EXPR_ARGS.
28625         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
28626         than TREE_VALUE and TREE_CHAIN.
28627         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
28628         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
28629         the arglist.
28630
28631 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28632
28633         PR bootstrap/42347
28634         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
28635         to have no fallthru edge.
28636
28637         PR middle-end/44102
28638         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
28639         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
28640         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
28641         add BARRIER after previous bb if needed.
28642
28643 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28644
28645         * tree.c (build_function_type_list_1): Remove bogus assert condition.
28646
28647 2010-05-17  Alan Modra  <amodra@gmail.com>
28648
28649         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
28650         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
28651         with copy_reg rtx param.
28652         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
28653         Correct cases where code for ABI_V4 did not initialise the reg
28654         used to access frame.  Also leave frame_reg_rtx as sp for large
28655         frames that save no regs.
28656
28657 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28658
28659         PR middle-end/44133
28660         * tree-sra.c (create_access_replacement): New parameter rename, mark
28661         the replaement for renaming only when it is true.
28662         (get_access_replacement): Pass true in the rename parameter of
28663         create_access_replacement.
28664         (get_unrenamed_access_replacement): New function.
28665         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
28666         replacement declaration from it.
28667
28668 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
28669
28670         * function.c (try_fit_stack_local, add_frame_space): New static
28671         functions.
28672         (assign_stack_local_1): Use them.  Look for opportunities to use
28673         space previously wasted on alignment.
28674         * function.h (struct frame_space): New.
28675         (struct rtl_data): Add FRAME_SPACE_LIST member.
28676         * reload1.c (something_was_spilled): New static variable.
28677         (alter_reg): Set it.
28678         (reload): Test it in addition to testing if the frame size changed.
28679
28680 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
28681
28682         * config/s390/s390.c: Define sane prefetch settings and activate
28683         flag_prefetch_loop_arrays on -O3.
28684         * config/s390/s390.h: Declare that read can use write prefetch.
28685
28686 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28687
28688         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
28689         build.
28690
28691 2010-05-16  Jan Hubicka  <jh@suse.cz>
28692
28693         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
28694         function body; do not check stdarg field of struct function.
28695
28696 2010-05-16  Jan Hubicka  <jh@suse.cz>
28697
28698         * cgraph.c (dump_cgraph_node): Dump versionable flag.
28699         * cgraph.h (cgraph_local_info): Add versionable flag.
28700         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
28701         (ipcp_versionable_function_p): Use it.
28702         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
28703         versionable flag.
28704
28705 2010-05-16  Jan Hubicka  <jh@suse.cz>
28706
28707         * cgraph.c (cgraph_clone_node): Take decl argument and insert
28708         clone into hash when it is different from orig.
28709         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
28710         * cgraph.h (cgraph_clone_node): Update prototype.
28711         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
28712         (lto_cgraph_encoder_delete): Delete body map.
28713         (lto_cgraph_encoder_size): Move to header.
28714         (lto_cgraph_encoder_encode_body_p,
28715         lto_set_cgraph_encoder_encode_body): New.
28716         (lto_output_node): Do not take written_decls argument; output clone_of
28717         pointer.
28718         (add_node_to): Add include_body_argument; call
28719         lto_set_cgraph_encoder_encode_body on master of the clone.
28720         (add_references): Update use of add_node_to.
28721         (compute_ltrans_boundary): Likewise.
28722         (output_cgraph): Do not create written_decls bitmap.
28723         (input_node): Take nodes argument; stream in clone_of correctly.
28724         (input_cgraph_1): Update use of input_node.
28725         * lto-streamer-out.c (lto_output): Use encoder info to decide
28726         what bodies to output.
28727         * ipa-inline.c (cgraph_clone_inlined_nodes,
28728         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
28729         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
28730         (lto_cgraph_encoder_size): Define here.
28731         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
28732         Declare.
28733
28734 2010-05-16  Richard Guenther  <rguenther@suse.de>
28735
28736         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
28737         -fipa-type-escape.
28738         * ipa-type-escape.c (gate_type_escape_vars): Run when
28739         -fipa-struct-reorg runs.
28740         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
28741         * common.opt (fipa-type-escape): Remove.
28742
28743 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28744
28745         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
28746         (decode_options): Likewise.
28747         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
28748
28749 2010-05-16  Jan Hubicka  <jh@suse.cz>
28750
28751         * ipa.c (function_and_variable_visibility): Also bring local all
28752         aliases.
28753
28754 2010-05-16  Richard Guenther  <rguenther@suse.de>
28755
28756         * alias.c (nonoverlapping_memrefs_p): Remove use of
28757         IPA type-escape information.
28758
28759 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
28760
28761         * c-common.c (c_common_reswords): Add _Static_assert for C.
28762         * c-parser.c (c_token_starts_declaration,
28763         c_parser_next_token_starts_declaration,
28764         c_parser_static_assert_declaration_no_semi,
28765         c_parser_static_assert_declaration): New.
28766         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
28767         Handle static assertions if static_assert_ok.
28768         (c_parser_external_declaration, c_parser_declaration_or_fndef,
28769         c_parser_compound_statement_nostart, c_parser_label,
28770         c_parser_for_statement, c_parser_objc_methodprotolist,
28771         c_parser_omp_for_loop): All callers of
28772         c_parser_declaration_or_fndef changed.
28773         (c_parser_struct_declaration): Handle static assertions.
28774         (c_parser_compound_statement_nostart): Use
28775         c_parser_next_token_starts_declaration and
28776         c_token_starts_declaration to detect start of declarations.
28777         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
28778         Likewise.
28779
28780 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
28781
28782         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
28783         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
28784         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
28785         TARGET_FUNCTION_VALUE_REGNO_P): Define.
28786         (mmix_function_outgoing_value): Rename to...
28787         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
28788         (mmix_function_value_regno_p): Make static.
28789         (mmix_libcall_value): New function.
28790         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
28791         mmix_function_value_regno_p): Remove declaration.
28792
28793 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28794
28795         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
28796         BUILT_IN_ALLOCA if stack checking is enabled.
28797
28798 2010-05-16  Richard Guenther  <rguenther@suse.de>
28799
28800         * var-tracking.c (vars_copy_1): Inline ...
28801         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28802         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
28803         (variable_merge_over_cur): Adjust.  Merge asserts.
28804         (variable_merge_over_src): Likewise.
28805         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
28806         (variable_post_merge_new_vals): Merge asserts.
28807         (variable_post_merge_perm_vals): Likewise.
28808         (find_mem_expr_in_1pdv): Likewise.
28809         (dataflow_set_different_value): Remove.
28810         (onepart_variable_different_p): Merge asserts.
28811         (variable_different_p): Likewise.
28812         (dataflow_set_different_1): Inline ...
28813         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28814         (emit_notes_for_differences_1): Merge asserts.
28815
28816 2010-05-16  Richard Guenther  <rguenther@suse.de>
28817
28818         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
28819         * optabs.c (libfunc_decl_hash): Likewise.
28820         * varasm.c (emutls_decl): Likewise.
28821
28822 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
28823
28824         * c-decl.c: Don't include gimple.h.
28825         (merge_decls): Do not copy gimple_body.
28826
28827 2010-05-15  Jason Merrill  <jason@redhat.com>
28828
28829         * c.opt: Add -fnothrow-opt.
28830
28831 2010-05-15  Jan Hubicka  <jh@suse.cz>
28832
28833         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
28834         analyzed.
28835         * passes.c (ipa_write_summaries): Write all analyzed nodes.
28836
28837 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
28838
28839         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
28840         * Makefile.in: Add it.
28841         Fix all other Makefile dependencies for changes below.
28842         * tree.h: Include it instead of defining VEC primitives here.
28843         * gimple.h: Likewise.
28844         * rtl.h: Likewise.
28845         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
28846         * except.h: Include vecir.h, break dependence on tree.h.
28847
28848         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
28849         Move from here...
28850         * tree-iterator.c: ...to here.
28851         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
28852
28853         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
28854         tm_p.h.
28855         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
28856         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
28857         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
28858         tree-mudflap.h, and target.h.
28859         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
28860         predict.h, tree-inline.h, gimple.h, and langhooks.h.
28861         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
28862         Add FIXME for why gimple.h is still included (should be unnecessary
28863         since GCC 4.5 gimplification unit-at-a-time).
28864         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
28865         * c-pragma.c: Add FIXME for why function.h needs to be included just
28866         for cfun, at front-end level.
28867         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
28868         Do not include ggc.h, but include vecprim.h for VEC(char).
28869         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
28870         Explain why target.h is included.
28871         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
28872         Explain why gimple.h is included.
28873         * c-ppoutput.c: Do not include tm.h.
28874         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
28875         * c-parses.c: Explain why rtl.h is included, and that this (and only
28876         this) is also why tm.h must be included.
28877         Do not include except.h.
28878         * c-lang.c: Do not include ggc.h.
28879
28880 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
28881
28882         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
28883
28884 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
28885
28886         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
28887         unions by default if those structs and unions have no tags.  Do
28888         not condition anonymous struct and unions handling on flag_iso.
28889         Allow anonymous structs and unions for C1X.
28890         (finish_struct): Do not diagnose lack of named fields when
28891         anonymous structs and unions present for C1X.  Accept flexible
28892         array members in structure with anonymous structs or unions but no
28893         directly named fields.
28894         * doc/extend.texi (Unnamed Fields): Update.
28895
28896 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
28897
28898         * gimple.h (compare_field_offset): Rename into...
28899         (gimple_compare_field_offset): ...this.
28900         * gimple.c (compare_field_offset): Rename into...
28901         (gimple_compare_field_offset): ...this.  Compare the full access if
28902         the offset is self-referential.
28903         (gimple_types_compatible_p): Adjust for above renaming.
28904         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
28905         DECL_NONADDRESSABLE_P flag of fields before merging them.
28906
28907 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
28908
28909         * tree.h (ctor_to_list): Delete.
28910         * tree.c (ctor_to_list): Delete.
28911
28912 2010-05-15  Jan Hubicka  <jh@suse.cz>
28913
28914         * ipa-reference.c: Include toplev.h
28915         (is_proper_for_analysis): Only add to all_module_statics
28916         if it is allocated.
28917         (write_node_summary_p, stream_out_bitmap,
28918         ipa_reference_write_optimization_summary,
28919         ipa_reference_read_optimization_summary): New.
28920         (struct ipa_opt_pass_d pass_ipa_reference): Add
28921         optimization summary streaming.
28922         * lto-cgraph.c (referenced_from_this_partition_p,
28923         reachable_from_this_partition_p): New functions.
28924         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
28925         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
28926         * opts.c (decode_options): Enable ipa_reference.
28927         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
28928         * lto-streamer.h (referenced_from_this_partition_p,
28929         reachable_from_this_partition_p): Declare.
28930
28931 2010-05-15  Richard Guenther  <rguenther@suse.de>
28932
28933         PR tree-optimization/44038
28934         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
28935         taking the address of a V_C_E of a constant.
28936
28937 2010-05-14  Jan Hubicka  <jh@suse.cz>
28938
28939         * tree.h (memory_identifier_string): Remove.
28940         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
28941         (ipa_reference_global_vars_info_d): Remove statics_not_read and
28942         statics_not_written.
28943         (ipa_reference_optimization_summary_d): New structure.
28944         (ipa_reference_optimization_summary_t): New type and vector.
28945         (ipa_reference_vars_info_d): Embedd structures instead of using
28946         pointers.
28947         (reference_vars_to_consider): Remove out of GGC space.
28948         (module_statics_escape): Remove.
28949         (global_info_obstack): Rename to ...
28950         (optimization_summary_obstack): ... this one.
28951         (initialization_status_t): Remove.
28952         (memory_identifier_string): Remove.
28953         (get_reference_vars_info): Fix indenting.
28954         (set_reference_vars_info): Likewise.
28955         (get_reference_optimization_summary): New.
28956         (set_reference_optimization_summary): New.
28957         (get_global_reference_vars_info): Remove.
28958         (ipa_reference_get_read_global): Remove.
28959         (ipa_reference_get_written_global): Remove.
28960         (ipa_reference_get_not_read_global): Update.
28961         (ipa_reference_get_not_written_global): Update.
28962         (is_proper_for_analysis): Outlaw addressable.
28963         (propagate_bits): Update for new datastructures.
28964         (analyze_variable): Remove.
28965         (init_function_info): Update for new datastructures.
28966         (clean_function_local_data): Remove.
28967         (clean_function): Remove.
28968         (copy_global_bitmap): Use optimizations_summary_obstack.
28969         (duplicate_node_data): Duplicate optimization summary only.
28970         (remove_node_data): Remove optimization summary only.
28971         (generate_summary): Do not analyze variables; do not compute
28972         module_statics_escape; do not prune solutions by it.
28973         (read_write_all_from_decl): Fix typos in comments.
28974         (propagate): Doscover readonly and nonaddressable first;
28975         update for new datastructures; share global bitmaps.
28976         * ipa-reference.h (ipa_reference_get_read_global,
28977         ipa_reference_get_written_global): Remove.
28978         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
28979         * Makefile.in: Remove ipa-refereference from GT files.
28980
28981 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
28982
28983         PR debug/44112
28984         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
28985         for all SYMBOL_REF_DECLs.
28986
28987 2010-05-14  Jan Hubicka  <jh@suse.cz>
28988
28989         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
28990         (varpool_all_refs_explicit_p): New inline function.
28991         * ipa-reference.c: Update comment.
28992         (module_statics_written): Remove.
28993         (get_static_decl): Remove.
28994         (ipa_init): Do not initialize module_statics_written.
28995         (analyze_function): Likewise.
28996         (generate_summary): Likewise; do not compute module_statics_readonly
28997         and do not update variable flags.
28998         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
28999         * ipa.c: Inlucde flags.h
29000         (cgraph_local_node_p): New.
29001         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
29002         promote functions to local.
29003         (ipa_discover_readonly_nonaddressable_vars): New function.
29004         (function_and_variable_visibility): Use cgraph_local_node_p.
29005         * varpool.c (varpool_finalize_decl): Set force_output for
29006         DECL_PRESERVE_P vars.
29007
29008 2010-05-14  Jan Hubicka  <jh@suse.cz>
29009
29010         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
29011
29012 2010-05-14  Richard Guenther  <rguenther@suse.de>
29013
29014         PR tree-optimization/44119
29015         * tree-ssa-pre.c (eliminate): Properly mark replacement of
29016         a PHI node necessary.
29017
29018 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
29019
29020         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
29021
29022 2010-05-14  Jason Merrill  <jason@redhat.com>
29023
29024         PR c++/44127
29025         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
29026         (gimple_call_set_nothrow): New.
29027         * gimple.c (gimple_build_call_from_tree): Call it.
29028         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
29029
29030         PR c++/44127
29031         * gimplify.c (gimplify_seq_add_stmt): No longer static.
29032         * gimple.h: Declare it.
29033         * gimple.c (gimple_build_eh_filter): No ops.
29034
29035 2010-05-14  Jan Hubicka  <jh@suse.cz>
29036
29037         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
29038         nodes already in queue.
29039         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
29040         re-enqueueing node.
29041
29042 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29043
29044         PR debug/44136
29045         * cfgexpand.c (expand_debug_expr): If non-memory op0
29046         has BLKmode, return NULL.
29047
29048 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
29049
29050         * config.gcc: Add support for --with-cpu option for bdver1.
29051         * config/i386/i386.h (TARGET_BDVER1): New macro.
29052         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
29053         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29054         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
29055         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29056         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
29057         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
29058         (processor_type): Add PROCESSOR_BDVER1.
29059         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
29060         processor_type in config/i386/i386.h.
29061         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
29062         movaps <reg, reg> instead of movapd <reg, reg> when replacing
29063         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
29064         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
29065         to emit packed xor instead of packed double/packed integer
29066         xor for SSE and AVX when moving a zero value.
29067         * config/i386/sse.md: Add check for
29068         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
29069         movapd/movdqa for SSE and AVX.
29070         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
29071         single logical operations i.e and, or and xor instead of packed double
29072         logical operations for SSE and AVX.
29073         * config/i386/i386-c.c (ix86_target_macros_internal):
29074         Add PROCESSOR_BDVER1.
29075         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
29076         (has_fma4, has_xop): New.
29077         * config/i386/i386.c (bdver1_cost): New variable.
29078         (m_BDVER1): New macro.
29079         (m_AMD_MULTIPLE): Add m_BDVER1.
29080         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
29081         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
29082         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
29083         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
29084         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
29085         x86_tune_sse_partial_reg_dependency,
29086         x86_tune_sse_unaligned_load_optimal,
29087         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
29088         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
29089         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
29090         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
29091         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
29092         Enable/disable for bdver1.
29093         (processor_target_table): Add bdver1_cost.
29094         (cpu_names): Add bdver1.
29095         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
29096          processor_alias_table.
29097         (ix86_expand_vector_move_misalign): Change.
29098         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
29099         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
29100         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
29101         of movupd/movdqu for SSE and AVX.
29102         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
29103         (ix86_tune_adjust_cost): Add code for bdver1.
29104         (standard_sse_constant_opcode): Add check for
29105         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
29106         of packed double xor for SSE and AVX.
29107
29108 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
29109
29110         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
29111         result to unsigned.
29112
29113 2010-05-14  Tristan Gingold  <gingold@adacore.com>
29114
29115         * toplev.c (default_debug_hooks): Remove this variable.
29116         (process_options): Remove assignments to default_debug_hooks.
29117
29118 2010-05-14  Martin Jambor  <mjambor@suse.cz>
29119
29120         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
29121         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
29122         * langhooks.h (struct lang_hooks_for_decls): Removed field
29123         fold_obj_type_ref.
29124         * tree.c (free_lang_data): Remove assignment to
29125         lang_hooks.fold_obj_type_ref.
29126         * tree.def (OBJ_TYPE_REF): Update comment.
29127
29128 2010-05-14  Richard Guenther  <rguenther@suse.de>
29129
29130         PR tree-optimization/44124
29131         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
29132
29133 2010-05-14  Alan Modra  <amodra@gmail.com>
29134
29135         PR target/44075
29136         * config/rs6000/rs6000.c (struct machine_function): Reorder
29137         fields for better packing.  Add lr_save_state.
29138         (rs6000_ra_ever_killed): Return lr_save_state if set.
29139         (rs6000_emit_eh_reg_restore): Set lr_save_state.
29140
29141 2010-05-13  Jan Hubicka  <jh@suse.cz>
29142
29143         * varpool.c (decide_is_variable_needed): Drop code checking
29144         TREE_SYMBOL_REFERENCED.
29145
29146 2010-05-13  Jan Hubicka  <jh@suse.cz>
29147
29148         * final.c (output_addr_const): Do not call mark_decl_referenced.
29149         * cgraphunit.c (process_function_and_variable_attributes): Use
29150         mark_needed_node dirrectly.
29151         (assemble_thunk): Do not call mark_decl_referenced.
29152
29153 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
29154
29155         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
29156
29157 2010-05-13  Jeff Law  <law@redhat.com>
29158
29159         * ira-conflicts.c (print_allocno_conflicts): New function broken out
29160         from...
29161         (print_conflicts): Call print_allocno_conflicts.
29162
29163 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29164
29165         PR debug/44104
29166         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
29167         if it is NULL.
29168
29169 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
29170
29171         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
29172         t-mingw-w64 or t-mingw-w32 for multilib configuration.
29173         * config/i386/t-mingw-w32: New.
29174         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
29175
29176 2010-05-13  Martin Jambor  <mjambor@suse.cz>
29177
29178         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
29179         gimple-fold.c).
29180         * gimple-fold.c (get_base_binfo_for_type): New function.
29181         (gimple_get_relevant_ref_binfo): Likewise.
29182         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29183         (gimple_fold_obj_type_ref): Likewise.
29184         (fold_gimple_call): Simplify condition for folding virtual calls
29185         and call gimple_fold_obj_type_ref.
29186         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
29187         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29188
29189 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
29190
29191         * config/rs6000/rs6000-protos.h
29192         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
29193         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
29194         (rs6000_debug_mode_dependent_address)
29195         (rs6000_mode_dependent_address_ptr): Likewise.
29196
29197 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29198
29199         PR debug/43983
29200         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
29201         by SRA.
29202         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
29203         * tree-sra.c (create_access_replacement): Call unshare_expr before
29204         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
29205         * dwarf2out.c: Include tree-flow.h.
29206         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
29207         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
29208         Handle DW_OP_bit_piece.
29209         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
29210         construct_piece_list, adjust_piece_list): New functions.
29211         (add_var_loc_to_decl): Handle SRA optimized variables.
29212         Adjust for var_loc_note to loc field renaming.
29213         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
29214         in VAR_LOCATION note.
29215         (new_loc_descr_op_bit_piece): New function.
29216         (dw_sra_loc_expr): New function.
29217         (dw_loc_list): Use it.  Don't handle the last range after the
29218         loop, handle it inside of the loop.  Adjust for var_loc_note
29219         to loc field renaming.
29220         (add_location_or_const_value_attribute): Only special case
29221         single entry loc lists if loc is NOTE_P.  Adjust for
29222         var_loc_note to loc field renaming.
29223         (dwarf2out_var_location): Don't set newloc->var_loc_note
29224         and newloc->next here.
29225
29226 2010-05-12  Jan Hubicka  <jh@suse.cz>
29227
29228         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
29229         flag.
29230         * cgraph.h (cgraph_only_called_directly_p,
29231         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
29232         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
29233         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
29234         (assemble
29235         * ipa.c (cgraph_remove_unreachable_nodes): Use
29236         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
29237         flags.
29238         * tree-inline.c (copy_bb): Check address_taken flag.
29239         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
29240         externally_visible flag.
29241
29242 2010-05-12  Jason Merrill  <jason@redhat.com>
29243
29244         PR bootstrap/44048
29245         PR target/44099
29246         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
29247         * sdbout.c (plain_type_1): Likewise.
29248         * dwarf2out.c (is_base_type): Likewise.
29249         (gen_type_die_with_usage): Likewise.  Generate
29250         DW_TAG_unspecified_type for any LANG_TYPE.
29251
29252 2010-05-12  Jan Hubicka  <jh@suse.cz>
29253
29254         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
29255         indrect edges too.
29256         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
29257         (cgraph_clone_edge): Update.
29258         (cgraph_node_remove_callees): Remove indirect calls too.
29259         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
29260         (cgraph_create_indirect_edge): Update prototype.
29261         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
29262         is_proper_for_analysis.
29263         (add_new_function, visited_nodes, function_insertion_hook_holder,
29264         get_local_reference_vars_info, mark_address_taken, mark_address,
29265         mark_load, mark_store, check_asm_memory_clobber, check_call,
29266         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
29267         (ipa_init): Do not initialize visited_nodes;
29268         function_insertion_hook_holder.
29269         (analyze_variable): Rewrite.
29270         (analyze_function): Rewrite.
29271         (copy_local_bitmap): Remove.
29272         (duplicate_node_dat): Do not duplicate local info.
29273         (generate_summary): Simplify to only walk cgraph.
29274         (write_node_summary_p, ipa_reference_write_summary,
29275         ipa_reference_read_summary): Remove.
29276         (propagate): Do not remove function insertion;
29277         generate summary.
29278         (pass_ipa_reference): NULLify summary handling fields.
29279         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
29280         (input_edge): Input ecf_flags.
29281         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
29282         (update_indirect_edges_after_inlining): Ignore edges with unknown
29283         param.
29284
29285 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
29286
29287         * implicit-zee.c: New file.
29288         * tree-pass.h (pass_implicit_zee): Declare.
29289         * passes.c (init_optimization_passes): Add zee pass.
29290         * common.opt (fzee): New flag.
29291         * timevar.def (TV_ZEE): Define.
29292         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
29293         and beyond.
29294         * Makefile.in (implicit-zee.o): Add new build file.
29295
29296 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29297             Nathan Froyd  <froydnj@codesourcery.com>
29298
29299         * c-common.c (sync_resolve_params): Remove write-only variable.
29300
29301 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
29302
29303         * target.h (struct gcc_target): Add mode_dependent_address_p field.
29304         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29305         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
29306         * targhooks.c (default_mode_dependent_address_p): New function.
29307         * targhooks.h (default_mode_dependent_address_p): Declare function.
29308         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29309         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
29310         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
29311         target hook. Change return type to bool.
29312         * recog.h (mode_dependent_address_p): Change return type to bool.
29313
29314 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29315             Nathan Froyd  <froydnj@codesourcery.com>
29316
29317         * tree-mudflap.c (build_function_type_0, build_function_type_1,
29318         build_function_type_2, build_function_type_3): Remove.
29319         (mudflap_init): Use build_function_type_list.
29320
29321 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29322             Nathan Froyd  <froydnj@codesourcery.com>
29323
29324         * coverage.c (build_fn_info_value): Call build_constructor instead of
29325         build_constructor_from_list.
29326         (build_ctr_info_value): Likewise.
29327         (build_gcov_info): Likewise.
29328
29329 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
29330
29331         * tree.c (build_constructor): Compute TREE_CONSTANT for the
29332         resultant constructor.
29333         (build_constructor_single): Don't set TREE_CONSTANT.
29334         (build_constructor_from_list): Don't compute TREE_CONSTANT.
29335
29336 2010-05-12  Jan Hubicka  <jh@suse.cz>
29337
29338         * cgraph.h (struct varpool_node): Add aux.
29339         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
29340         * varpool.c (varpool_remove_node): Do not remove initializer.
29341         (varpool_reset_queue): Export.
29342         (varpool_finalize_decl): Volatile vars are forced to be output.
29343         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
29344         replaced decl.
29345         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
29346         process_references, varpool_can_remove_if_no_refs): New functions.
29347         (cgraph_remove_unreachable_nodes): Handle variables too.
29348
29349 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
29350
29351         PR target/44088
29352         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
29353
29354 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
29355
29356         PR middle-end/44085
29357         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
29358         change value of ORT_TASK.
29359         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
29360         (omp_notice_threadprivate_variable): New function.
29361         (omp_notice_variable): Call it for threadprivate variables.
29362         If enclosing ctx is a task, print enclosing task rather than
29363         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
29364         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
29365         if task has untied clause.
29366
29367         PR debug/42278
29368         * dwarf2out.c (base_type_die): Don't add name attribute here.
29369         (modified_type_die): Instead of sizetype use
29370         its underlying original type.  If a DW_TAG_base_type doesn't
29371         have name added, add __unknown__.
29372         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
29373         always call force_type_die instead.
29374
29375 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
29376
29377         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
29378         for __stack_chk_guard.
29379
29380 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29381
29382         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
29383         don't call start_source_file debug hook here...
29384         (finish_options): ... but here, after outputting predefined and
29385         command line defines and undefs.
29386
29387         PR middle-end/44071
29388         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
29389         no fallthru edge.
29390         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
29391         optimizing away empty bb with no successors, move over its
29392         footer chain to fallthru predecessor.
29393         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
29394         (rtl_split_edge): For asm goto call patch_jump_insn even if
29395         splitting fallthru edge.
29396
29397         PR c++/44059
29398         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
29399         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
29400         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
29401         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
29402         on DW.ref.* decls.
29403
29404         PR c++/44062
29405         * c-parser.c (c_parser_expression): Mark LHS of a comma
29406         expression as read if it is a decl, handled component or
29407         COMPOUND_EXPR with that on the RHS.
29408         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
29409         if it is a decl or handled component.
29410
29411 2010-05-11  Jan Hubicka  <jh@suse.cz>
29412
29413         * lto-symtab.c (lto_symtab_free): New function.
29414         * lto-streamer.h (lto_symtab_free): Declare.
29415
29416 2010-05-11  Jan Hubicka  <jh@suse.cz>
29417
29418         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
29419         that if function is needed it is reachable.
29420         (lto_output_node): See if it the function is reachable or referenced.
29421         (output_cgraph): Update call of lto_output_node.
29422         * lto-streamer.h (reachable_from_other_partition_p): Declare.
29423
29424 2010-05-11  Jan Hubicka  <jh@suse.cz>
29425
29426         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
29427         Mark as used.
29428
29429 2010-05-11  Jan Hubicka  <jh@suse.cz>
29430
29431         PR tree-optimize/44063
29432         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
29433         queue.
29434         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
29435         limits.
29436         (estimate_function_body_sizes): Compute sizes even when disregarding.
29437
29438 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
29439
29440         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
29441
29442 2010-05-11  Jan Hubicka  <jh@suse.cz>
29443
29444         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
29445         into every boundary.
29446
29447 2010-05-11  Jan Hubicka  <jh@suse.cz>
29448
29449         * matrix-reorg.c (matrix_reorg): Rebuild edges.
29450
29451 2010-05-11  Jan Hubicka  <jh@suse.cz>
29452
29453         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
29454         lto_streamer_cache_delete): Put nodes into heap.
29455         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
29456         heap.
29457
29458 2010-05-11  Jan Hubicka  <jh@suse.cz>
29459
29460         * cgraphbuild.c (cgraph_rebuild_references): New.
29461         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
29462         out extern inlines.
29463         * cgraph.h (cgraph_rebuild_references): Declare.
29464         * tree-inline.c (tree_function_versioning): Use it.
29465         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
29466
29467 2010-05-11  Jan Hubicka  <jh@suse.cz>
29468
29469         * cgraph.c: Include ipa-utils.h
29470         (cgraph_create_virtual_clone): Update references.
29471         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
29472
29473 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29474
29475         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
29476         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
29477         cache size.
29478
29479 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29480
29481         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
29482
29483 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29484
29485         * gcc.c (execute): For -### don't quote arguments that
29486         contain just alphanumerics and _/-. characters.
29487         * doc/invoke.texi: Document that change for -###.
29488
29489         PR debug/44023
29490         * df-problems.c (struct dead_debug): Add to_rescan field.
29491         (dead_debug_init): Clear to_rescan field.
29492         (dead_debug_finish): Rescan all debug insns in to_rescan
29493         bitmap and free the bitmap.
29494         (dead_debug_insert_before): Instead of rescanning debug insns
29495         immediately queue their rescanning until dead_debug_finish.
29496         (df_note_bb_compute): After dead_debug_add do continue instead
29497         of break.
29498
29499 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
29500
29501         PR debug/44028
29502         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
29503         clear also INSN_REG_USE_LIST.
29504
29505 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29506
29507         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
29508
29509 2010-05-10  Jan Hubicka  <jh@suse.cz>
29510
29511         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
29512         commited change.
29513
29514 2010-05-10  Jan Hubicka  <jh@suse.cz>
29515
29516         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
29517         Allocate encoders.
29518         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
29519         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
29520         (lto_streamer_cache_create): Init alloc pool.
29521         (lto_streamer_cache_delete): Free alloc pool.
29522         * lto-streamer.h: Include alloc pool.
29523         (lto_streamer_cache_d): Use alloc pool.
29524         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
29525
29526 2010-05-10  Jan Hubicka  <jh@suse.cz>
29527
29528         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
29529         * cgraphbuild.c: Include except.h
29530         (record_type_list, record_eh_tables): New function.
29531         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
29532
29533 2010-05-10  Jan Hubicka  <jh@suse.cz>
29534
29535         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
29536         __frame_dummy_init_array_entry, force_to_data): Attribute as used
29537         rather than unused.
29538
29539 2010-05-10  Michael Matz  <matz@suse.de>
29540
29541         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
29542         (can_reassociate_p): Use FLOAT_TYPE_P.
29543         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
29544         (vect_force_simple_reduction): ... this.
29545         * tree-parloops.c (gather_scalar_reductions): Use
29546         vect_force_simple_reduction.
29547         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
29548         vect_is_simple_reduction, add modify argument, if true rewrite
29549         "a-b" into "a+(-b)".
29550         (vect_is_simple_reduction, vect_force_simple_reduction): New
29551         functions.
29552         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
29553
29554 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
29555             Vladimir Makarov  <vmakarov@redhat.com>
29556
29557         PR rtl-optimization/44012
29558         * ira-build.c (remove_unnecessary_allocnos): Nullify
29559         regno_allocno_map of the removed allocno.
29560
29561 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29562
29563         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
29564         to /dev/null.
29565         * configure: Regenerate.
29566
29567 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29568
29569         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
29570         unused.
29571         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
29572         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
29573         support in Sun ld.
29574         * configure: Regenerate.
29575
29576 2010-05-10  Richard Guenther  <rguenther@suse.de>
29577
29578         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
29579         marked if the entry identifier is marked.
29580
29581 2010-05-10  Richard Guenther  <rguenther@suse.de>
29582
29583         * c-common.c (struct c_common_attributes): Add fnspec attribute.
29584         (handle_fnspec_attribute): New function.
29585         * gimple.h (gimple_call_return_flags): Declare.
29586         (gimple_call_arg_flags): Likewise.
29587         * gimple.c (gimple_call_arg_flags): New function.
29588         (gimple_call_return_flags): Likewise.
29589         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
29590         New argument flags.
29591         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
29592         return value flags.
29593         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
29594         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
29595         main work to ...
29596         (make_heapvar_for): ... this new function.
29597         (handle_rhs_call): Handle fnspec attribute argument specifiers.
29598         (handle_lhs_call): Likewise.
29599         (find_func_aliases): Adjust.
29600
29601 2010-05-10  Richard Guenther  <rguenther@suse.de>
29602
29603         PR tree-optimization/44050
29604         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
29605
29606 2010-05-10  Wei Guozhi  <carrot@google.com>
29607
29608         PR target/42879
29609         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
29610
29611 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29612
29613         PR c/10676
29614         * c-typeck.c (lookup_field): Take a type directly.  Update
29615         recursive calls.
29616         (build_component_ref): Update call to lookup_field.
29617         (set_init_label): Use lookup_field to find initialized field.
29618         Handle returned list of fields like a sequence of designators.
29619
29620 2010-05-09  Richard Guenther  <rguenther@suse.de>
29621
29622         PR middle-end/44024
29623         * fold-const.c (tree_single_nonzero_warnv_p): Properly
29624         handle &FUNCTION_DECL.
29625
29626 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29627
29628         PR c/4784
29629         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
29630         structures and unions recursively.
29631         (detect_field_duplicates): Move duplicate detection with a hash to
29632         detect_field_duplicates_hash.  Always use a hash if anonymous
29633         structures or unions are present.
29634         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
29635         give errors.
29636
29637 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
29638
29639         PR target/44046
29640         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
29641         detect Atom, Core 2 and Core i7.
29642
29643 2010-05-09  Richard Guenther  <rguenther@suse.de>
29644
29645         * gcc.c (store_arg): Handle temporary file deletion for
29646         joined arguments.
29647
29648 2010-05-09  Richard Guenther  <rguenther@suse.de>
29649
29650         PR middle-end/44043
29651         * ipa-inline.c (estimate_function_body_sizes): Return after
29652         disregarding inline limits.
29653
29654 2010-05-09  Richard Guenther  <rguenther@suse.de>
29655
29656         * gcc.c (store_arg): Revert last change.
29657
29658 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
29659
29660         PR middle-end/28685
29661         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
29662         (optimize_ops_list): Call it.
29663
29664 2010-05-08  Richard Guenther  <rguenther@suse.de>
29665
29666         PR tree-optimization/44030
29667         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
29668         NECESSARY flag if we propagate from a inserted expression.
29669
29670 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
29671
29672         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
29673         domain types as equal if they are both PLACEHOLDER_EXPRs.
29674
29675 2010-05-08  Richard Guenther  <rguenther@suse.de>
29676
29677         * lto-wrapper.c (run_gcc): Remove linker output from
29678         command line for LTRANS invocation.
29679
29680 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29681
29682         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
29683         lto-macho as lto_binary_reader.
29684         * target.h (struct gcc_target): New hooks lto_start and lto_end.
29685         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
29686         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
29687         in lto_start and lto_end calls.
29688         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
29689         magic numbers.
29690         (scan_prog_file): Update is_elf_or_coff call.
29691         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
29692
29693         * collect2.c (main): Fix enum comparison.
29694
29695         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
29696         Add prototypes.
29697         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
29698         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
29699         and TARGET_ASM_LTO_END.
29700         * darwin.c: Include obstack.h and lto-streamer.h.
29701         (lto_section_names_offset, lto_section_names_obstack,
29702         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
29703         global variables.
29704         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
29705         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
29706         to a temporary file.
29707         (darwin_asm_lto_end): New function.  Restore asm_out_file.
29708         (darwin_asm_named_section): For LTO sections, replace the name with
29709         the offset of the section name in a string table, and build this
29710         table.
29711         (darwin_file_start): Initialize global vars for LTO support.
29712         (darwin_file_end): If output to asm_out_file was redirected, append it
29713         to the proper asm_out_file here.  Add the section names section.
29714
29715 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29716
29717         * c-pragma.c (pending_weak_d, pending_weak): New.
29718         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
29719         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
29720         handle_pragma_weak): Update the uses of pending_weaks.
29721
29722 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29723
29724         PR documentation/44016
29725         * doc/standards.texi (Standards): Link to unversioned
29726         cxx0x_status.html page.
29727
29728 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
29729
29730         PR target/43708
29731         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
29732         in addition to TREE_USED, to avoid "set but unused" warnings.
29733
29734 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29735
29736         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
29737         (is_loop_prefetching_profitable): Do not insert prefetches
29738         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
29739         times the prefetch ahead distance.
29740
29741 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29742
29743         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
29744         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
29745         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
29746         the unroll_factor.
29747
29748 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29749
29750         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
29751         a diagnostic info when the insn-to-mem ratio is too small.
29752
29753 2010-05-07  Richard Guenther  <rguenther@suse.de>
29754
29755         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
29756         the linker plugin.
29757         (store_arg): Queue temp_filename for deletion instead of
29758         the whole argument.
29759
29760 2010-05-07  Richard Guenther  <rguenther@suse.de>
29761
29762         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
29763         (run_gcc): Handle LTRANS phase invocation.
29764         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
29765
29766 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
29767
29768         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
29769         this is also meaningful on PARM_DECLs and RESULT_DECLs.
29770
29771 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29772
29773         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
29774
29775 2010-05-07  Richard Guenther  <rguenther@suse.de>
29776
29777         PR tree-optimization/44020
29778         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
29779         code when PRE is not yet initialized.
29780
29781 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29782
29783         * config/mips/dbxmdebug.h: Remove.
29784         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
29785
29786 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
29787
29788         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
29789         with null pointer and also warn about ordered comparison of zero with
29790         pointer if -Wextra.
29791
29792 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29793
29794         * graphite-blocking.c
29795         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
29796         * graphite-clast-to-gimple.c
29797         (clast_to_gcc_expression): Same.
29798         (precision_for_value): Same.
29799         (precision_for_interval): Same.
29800         (gcc_type_for_interval): Same.
29801         (graphite_create_new_guard): Same.
29802         (compute_bounds_for_level): Same.
29803         (graphite_create_new_loop_guard): Same.
29804         * graphite-interchange.c
29805         (build_linearized_memory_access): Same.
29806         (pdr_stride_in_loop): Same.
29807         (memory_strides_in_loop_1): Same.
29808         (memory_strides_in_loop): Same.
29809         (extend_scattering): Same.
29810         (psct_scattering_dim_for_loop_depth): Same.
29811         (pbb_number_of_iterations): Same.
29812         * graphite-poly.h
29813         (debug_iteration_domains): Same.
29814         * graphite-ppl.c
29815         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
29816         (ppl_set_inhomogeneous_gmp): Same.
29817         (ppl_strip_loop): Same.
29818         (ppl_lexico_compare_linear_expressions): Same.
29819         (ppl_read_polyhedron_matrix): Same.
29820         (ppl_max_for_le_pointset): Same.
29821         * graphite-ppl.h
29822         (ppl_read_polyhedron_matrix): Same.
29823         (tree_int_to_gmp): Same.
29824         (gmp_cst_to_tree): Same.
29825         (ppl_set_inhomogeneous): Same.
29826         (ppl_set_inhomogeneous_tree): Same.
29827         (ppl_set_coef): Same.
29828         (ppl_set_coef_tree): Same.
29829         * graphite-sese-to-poly.c
29830         (build_pbb_scattering_polyhedrons): Same.
29831         (build_scop_scattering): Same.
29832         (scan_tree_for_params_right_scev): Same.
29833         (scan_tree_for_params): Same.
29834         (find_params_in_bb): Same.
29835         (find_scop_parameters): Same.
29836         (add_upper_bounds_from_estimated_nit): Same.
29837         (build_loop_iteration_domains): Same.
29838         (add_condition_to_domain): Same.
29839         (pdr_add_memory_accesses): Same.
29840
29841 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29842
29843         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
29844         CLooG's value_* macros to their respective mpz_* counterparts.
29845         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
29846         (graphite_create_new_loop_guard): Same.
29847         * graphite-interchange.c (build_linearized_memory_access): Same.
29848         (pdr_stride_in_loop): Same.
29849         (memory_strides_in_loop_1): Same.
29850         (1st_interchange_profitable_p): Same.
29851         * graphite-poly.c (extend_scattering): Same.
29852         (psct_scattering_dim_for_loop_depth): Same.
29853         (pbb_number_of_iterations): Same.
29854         (pbb_number_of_iterations_at_time): Same.
29855         * graphite-poly.h (new_1st_loop): Same.
29856         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
29857         (oppose_constraint): Same.
29858         (insert_constraint_into_matrix): Same.
29859         (ppl_set_inhomogeneous_gmp): Same.
29860         (ppl_set_coef_gmp): Same.
29861         (ppl_strip_loop): Same.
29862         (ppl_lexico_compare_linear_expressions): Same.
29863         (ppl_max_for_le_pointset): Same.
29864         (ppl_min_for_le_pointset): Same.
29865         (ppl_build_realtion): Same.
29866         * graphite-ppl.h (gmp_cst_to_tree): Same.
29867         (ppl_set_inhomogeneous): Same.
29868         (ppl_set_inhomogeneous_tree): Same.
29869         (ppl_set_coef): Same.
29870         (ppl_set_coef_tree): Same.
29871         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
29872         (build_scop_scattering): Same.
29873         (add_value_to_dim): Same.
29874         (scan_tree_for_params_right_scev): Same.
29875         (scan_tree_for_params_int): Same.
29876         (scan_tree_for_params): Same.
29877         (find_params_in_bb): Same.
29878         (find_scop_parameters): Same.
29879         (add_upper_bounds_from_estimated_nit): Same.
29880         (build_loop_iteration_domains): Same.
29881         (create_linear_expr_from_tree): Same.
29882         (add_condition_to_domain): Same.
29883         (pdr_add_memory_accesses): Same.
29884
29885 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
29886             Jason Merrill  <jason@redhat.com>
29887
29888         * c-common.c (c_common_reswords): Add nullptr.
29889         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
29890         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
29891         (gen_type_die_with_usage): Likewise.
29892         * dbxout.c (dbxout_type): Likewise.
29893         * sdbout.c (plain_type_1): Likewise.
29894
29895 2010-05-06  Jason Merrill  <jason@redhat.com>
29896
29897         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
29898         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
29899         ret appropriately.
29900         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
29901
29902         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
29903         stripping WITH_SIZE_EXPR.
29904         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
29905         change.
29906
29907 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29908
29909         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
29910         list of obsolete configurations.
29911         Disabled check for obsolete configurations.
29912         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
29913         Removed support for previous versions.
29914         * config/mips/iris.h: Removed.
29915         * config/mips/iris5.h: Removed.
29916         * config/mips/iris6.h: Merged old iris.h contents.
29917         (TARGET_IRIX): Removed.
29918         (DRIVER_SELF_SPECS): Removed mabi=32.
29919         (IDENT_ASM_OP): Removed undef.
29920         (STARTFILE_SPEC): Removed mabi=32.
29921         (ENDFILE_SPEC): Likewise.
29922         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
29923         (MACHINE_TYPE): Update for IRIX 6.5.
29924         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
29925         TARGET_IRIX by TARGET_IRIX6.
29926         (mips_file_start): Likewise.
29927         (mips_output_external): Remove IRIX 5/6 O32 support.
29928         (mips_output_function_prologue): Likewise.
29929         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
29930         TARGET_IRIX6.
29931         (TARGET_CPU_CPP_BUILTINS): Likewise.
29932         (TARGET_IRIX): Removed.
29933         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
29934         (MULTILIB_DIRNAMES): Removed 32.
29935         (MULTILIB_OSDIRNAMES): Removed ../lib.
29936         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
29937         (Specific, mips-sgi-irix5): Document removal.
29938         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
29939         Remove references to older IRIX 6 releases and the O32 ABI.
29940
29941 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
29942
29943         PR bootstrap/43994
29944         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
29945         instead of DF_REF_REAL_REG.
29946
29947 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
29948
29949         PR target/43888
29950         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
29951         handling to still return true for x64 targets.
29952
29953 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
29954
29955         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
29956
29957 2010-05-06  Jan Hubicka  <jh@suse.cz>
29958
29959         PR tree-optimization/43791
29960         * ipa-inline.c (update_caller_keys): Remove bogus
29961         disregard_inline_limits check.
29962
29963 2010-05-06  Michael Matz  <matz@suse.de>
29964
29965         PR tree-optimization/43984
29966         * tree-ssa-pre.c (inserted_phi_names): Remove.
29967         (inserted_exprs): Change to bitmap.
29968         (create_expression_by_pieces): Set bits, don't append to vector.
29969         (insert_into_preds_of_block): Don't handle inserted_phi_names.
29970         (eliminate): Don't look at inserted_phi_names, remove deleted
29971         insns from inserted_exprs.
29972         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
29973         (init_pre, fini_pre): Allocate and free bitmaps.
29974         (execute_pre): Insert insns on edges before elimination.
29975
29976 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
29977
29978         * tree.c (initializer_zerop): Handle STRING_CST.
29979
29980 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29981
29982         PR 40989
29983         * doc/invoke.texi (Wimplicit): Document as C only.
29984         * opts.c (common_handle_option): Add argument kind.
29985         (handle_option): Rename as read_cmdline_option. Factor out code to...
29986         (handle_option): ... here. New.
29987         (handle_options): Rename as read_cmdline_options.
29988         (decode_options): Update call.
29989         (set_option): Use option index instead of option pointer. Classify
29990         diagnostics correctly.
29991         (enable_warning_as_error): Call handle_option.
29992         * opts.h (set_option): Update declaration.
29993         (handle_option): Declare.
29994         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
29995         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
29996         * c-opts.c (set_Wimplicit): Delete.
29997         (c_family_lang_mask): New static constant.
29998         (c_common_handle_option): Add argument kind. Use handle_option
29999         instead of set_Wimplicit.
30000         (c_common_post_options): warn_implicit and warn_implicit_int
30001         are disabled by default.
30002         * c-common.c (warn_implicit): Do not define here.
30003         * c-common.h (warn_implicit): Do not declare here.
30004         (c_common_handle_option): Update declaration.
30005         * lto-opts.c (lto_reissue_options): Update call to set_option.
30006
30007 2010-05-06  Richard Guenther  <rguenther@suse.de>
30008
30009         PR tree-optimization/43571
30010         * domwalk.c (walk_dominator_tree): Walk the dominator
30011         sons in more optimal order.
30012
30013 2010-05-06  Richard Guenther  <rguenther@suse.de>
30014
30015         PR tree-optimization/43934
30016         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
30017         (stmt_cost): Likewise.
30018         (extract_true_false_args_from_phi): New helper.
30019         (determine_max_movement): For PHI nodes verify we can hoist them
30020         and compute their cost.
30021         (determine_invariantness_stmt): Handle PHI nodes.
30022         (move_computations_stmt): Likewise.  Hoist PHI nodes in
30023         if-converted form using COND_EXPRs.
30024         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
30025         (tree_ssa_lim): Likewise.
30026         * tree-flow.h (tree_ssa_lim): Adjust prototype.
30027         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
30028
30029 2010-05-06  Richard Guenther  <rguenther@suse.de>
30030
30031         PR tree-optimization/43987
30032         * tree-ssa-structalias.c (could_have_pointers): For possibly
30033         address-taken variables force pointers to be recorded.
30034         (create_variable_info_for_1): Likewise.
30035         (push_fields_onto_fieldstack): Pass in wheter all fields
30036         must have pointers.
30037         (find_func_aliases): Query types instead of vars whether
30038         they contain pointers where appropriate.
30039
30040 2010-05-06  Jan Hubicka  <jh@suse.cz>
30041
30042         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
30043         (record_reference, mark_address, mark_load, mark_store): Record
30044         references.
30045         (record_references_in_initializer): Update call of record_references.
30046         (rebuild_cgraph_edges): Remove all references before rebuiding.
30047         * cgraph.c (cgraph_create_node): Clear ref list.
30048         (cgraph_remove_node): Remove references.
30049         (dump_cgraph_node): Dump references.
30050         (cgraph_clone_node): Clone references.
30051         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
30052         (struct cgraph_node, varpool_node): Add ref_lst.
30053         * ipa-ref.c: New file.
30054         * ipa-ref.h: New file.
30055         * ipa-ref-inline.h: New file.
30056         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
30057         (referenced_from_other_partition_p): New function.
30058         (lto_output_varpool_node): Take set arugment; call
30059         referenced_from_other_partition.
30060         (lto_output_ref): New.
30061         (add_references): New.
30062         (output_refs): New.
30063         (output_cgraph): Compute boundary based on references; output refs.
30064         (output_varpool): Accept cgraph_node_set argument.
30065         (input_ref): New.
30066         (input_refs): New.
30067         (input_cgraph): Call input_refs.
30068         * lto-section-in.c (lto_section_name): Add refs.
30069         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
30070         (ipa-ref.o): New file.
30071         * varpool.c (varpool_node): Clear ipa ref list.
30072         (varpool_remove_node): Remove references.
30073         (dump_varpool_node): Dump references.
30074         (varpool_assemble_decl): Only compile finalized ones.
30075         (varpool_extra_name_alias): Initialize ref list.
30076         * lto-streamer.c (lto-get_section_name): Add .refs section.
30077         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
30078         (referenced_from_other_partition_p): Declared.
30079
30080 2010-05-06  Ira Rosen  <irar@il.ibm.com>
30081
30082         PR tree-optimization/43901
30083         * tree-vect-stmts.c (vectorizable_call): Assert that vector
30084         type is not NULL if it's transformation phase, and return
30085         FALSE if it's analysis.
30086         (vectorizable_conversion, vectorizable_operation,
30087         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
30088
30089 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
30090
30091         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30092         Delete.
30093         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30094         New define.
30095         * config/mips/mips-protos.h
30096         (mips_small_register_classes_for_mode_p): Delete prototype.
30097
30098 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
30099
30100         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
30101         * config/arm/arm.c (multiple_operation_profitable_p,
30102         compute_offset_order): New static functions.
30103         (load_multiple_sequence, store_multiple_sequence): Use them.
30104         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
30105         memory offsets, not register numbers.
30106         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
30107
30108 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
30109
30110         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
30111         (get_pending_sizes, put_pending_size, put_pending_sizes):
30112         Update the uses of pending_sizes.
30113         * c-decl.c (store_parm_decls): Likewise.
30114         * c-tree.h (struct c_arg_info): Likewise.
30115         * tree.h: Update the prototype for get_pending_sizes and
30116         put_pending_sizes.
30117
30118 2010-05-05  Jason Merrill  <jason@redhat.com>
30119
30120         PR debug/43370
30121         * c-common.c (handle_aligned_attribute): Respect
30122         ATTR_FLAG_TYPE_IN_PLACE.
30123
30124         PR testsuite/43758
30125         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
30126         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30127         (TARGET_INITIALIZER): Use it.
30128         * c-common.c (attribute_takes_identifier_p): Call it.
30129         * c-common.h: Update prototype.
30130         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
30131         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30132
30133 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30134
30135         PR debug/43950
30136         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
30137         DW_ID_down_case for Fortran compilation units.
30138
30139 2010-05-05  Jan Hubicka  <jh@suse.cz>
30140
30141         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
30142         handle aliases.
30143
30144 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
30145
30146         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
30147         a variable-sized RESULT_DECL.
30148
30149 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
30150
30151         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
30152
30153 2010-05-05  Jason Merrill  <jason@redhat.com>
30154
30155         PR c++/43787
30156         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
30157         returns GS_OK.
30158         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
30159
30160 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
30161             Jakub Jelinek  <jakub@redhat.com>
30162
30163         PR debug/43478
30164         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
30165         (dead_debug_init, dead_debug_finish): New functions.
30166         (dead_debug_add, dead_debug_insert_before): Likewise.
30167         (df_note_bb_compute): Initialize a dead_debug object, add dead
30168         debug uses to it, insert debug bind insns before death insns,
30169         reset debug insns that refer to pending uses at the end.
30170         * rtl.h (make_debug_expr_from_rtl): New prototype.
30171         * varasm.c (make_debug_expr_from_rtl): New function.
30172
30173 2010-05-05  Jan Hubicka  <jh@suse.cz>
30174
30175         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
30176         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
30177         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
30178         lto_varpool_encoder_deref, lto_varpool_encoder_size,
30179         lto_varpool_encoder_encode_initializer_p,
30180         lto_set_varpool_encoder_encode_initializer): New functions.
30181         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
30182         call output_varpool.
30183         (input_varpool_node): Do not always set analyzed.
30184         (input_cgraph_1): Return vector of cgraph nodes.
30185         (input_varpool_1): Return vector of varpools.
30186         (input_cgraph): Free the vectors.
30187         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
30188         output only initializers needed.
30189         (lto_output): Only call output_cgraph.
30190         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
30191         * lto-section-out.c (lto_new_out_decl_state): Initialize
30192         state->varpool_node_encoder.
30193         * lto-streamer.h (lto_varpool_encoder_d): New.
30194         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
30195         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
30196         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
30197         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
30198         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
30199         Declare.
30200         (output_varpool, input_varpool): Remove declarations.
30201
30202 2010-05-05  Jan Hubicka  <jh@suse.cz>
30203
30204         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
30205         with body can prevail.
30206
30207 2010-05-05  Jan Hubicka  <jh@suse.cz>
30208
30209         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
30210         size.
30211
30212 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30213
30214         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
30215
30216         * gengtype.h (erro_at_line): Constify pos argument.
30217
30218         * gengtype.c: Include hashtab.h.
30219         (enum gc_used): Document GC_MAYBE_POINTED_TO.
30220         (error_at_line): Constify pos argument.
30221         (do_typedef): Initialize p->opt field.
30222         (get_file_gtfilename): Fix comment typo.
30223         (struct walk_type_data): Constify line field.
30224         (get_output_file_for_structure): New function.
30225         (write_local_func_for_structure): Constify orig_s argument.
30226         Use get_output_file_for_structure.
30227         (write_func_for_structure): Use get_output_file_for_structure.
30228         (INDENT): New define.
30229         (dump_pair, dump_type, dump_type_list, dump_typekind)
30230         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
30231         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
30232         functions.
30233         (seen_types): New variable.
30234         (main): New variable do_dump.  Process "-d" command line option.
30235         Call dump_everything if dump requested.
30236
30237 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30238
30239         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
30240         in a temporary instead of invoking the macro multiple times.
30241         (track_expr_p): Likewise.
30242
30243 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
30244
30245         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
30246         per new semantics.
30247         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
30248         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
30249         conditions for printing notes.
30250         * common.opt (-Wcoverage-mismatch): Allow negative, default to
30251         true, update documentation.
30252         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
30253
30254 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
30255
30256         PR c/43981
30257         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
30258         on dimen.
30259
30260 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30261
30262         PR target/43799
30263         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
30264         (*sse_prologue_save_insn1): Likewise.
30265         (SSE prologue save splitter): Likewise.
30266
30267 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
30268
30269         * tree.c (free_lang_data_in_one_sizepos): New inline function.
30270         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
30271         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
30272         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
30273         all decls.  Call it on DECL_FIELD_OFFSET of fields.
30274         (find_decls_types_r): Follow DECL_VALUE_EXPR.
30275         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
30276
30277 2010-05-04  Martin Jambor  <mjambor@suse.cz>
30278
30279         * tree-sra.c (build_access_from_expr_1): The first parameter type
30280         changed to simple tree.
30281         (build_access_from_expr): Likewise, gsi parameter was eliminated.
30282         (scan_assign_result): Renamed to assignment_mod_result, enum elements
30283         renamed as well.
30284         (build_accesses_from_assign): Removed all parameters except for a
30285         simple gimple statement.  Now returns a simple bool.
30286         (scan_function): All non-analysis parts moved to separate functions
30287         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
30288         parameters and updated both callers.
30289         (sra_modify_expr): Removed parameter data.
30290         (sra_modify_function_body): New function.
30291         (perform_intra_sra): Call sra_modify_function_body to modify the
30292         function body.
30293         (replace_removed_params_ssa_names): Parameter data changed into
30294         adjustments vector.
30295         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
30296         changed the parameter dont_convert to convert with the opposite
30297         meaning.
30298         (sra_ipa_modify_assign): Parameter data changed into adjustments
30299         vector, return value changed to bool.
30300         (ipa_sra_modify_function_body): New function.
30301         (sra_ipa_reset_debug_stmts): Updated a comment.
30302         (modify_function): Use ipa_sra_modify_function_body to modify function
30303         body.
30304
30305 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30306
30307         PR middle-end/43671
30308         * alias.c (true_dependence): Handle the same VALUE in x and mem.
30309         (canon_true_dependence): Likewise.
30310         (write_dependence_p): Likewise.
30311
30312 2010-05-04  Jan Hubicka  <jh@suse.cz>
30313
30314         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
30315         * cgraphbuild.c: Include ipa-utils.h
30316         (record_reference_ctx): New struct.
30317         (record_reference): Simplify to work on initializers; not statements.
30318         (mark_address, mark_load, mark_store): New.
30319         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30320         walk PHI nodes too.
30321         (record_references_in_initializer): Update use of record_reference.
30322         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30323         walk PHI nodes too.
30324
30325 2010-05-04  Jan Hubicka  <jh@suse.cz>
30326
30327         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
30328         node will be removed anyway.
30329         (lto_varpool_replace_node): Allow also unanalyzed nodes;
30330         relink aliases of node into prevailing node.
30331         * varpool.c (varpool_remove_node): Remove aliases properly;
30332         when removing node, remove all its aliases too; remove DECL_INITIAL
30333         of removed node; ggc_free the varpool node.
30334
30335 2010-05-04  Richard Guenther  <rguenther@suse.de>
30336
30337         PR tree-optimization/43879
30338         * tree-ssa-structalias.c (alias_get_name): Use
30339         DECL_ASSEMBLER_NAME if available.
30340         (create_function_info_for): Return the varinfo node.
30341         (ipa_pta_execute): Associate same-body aliases and extra names
30342         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
30343
30344 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
30345
30346         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
30347
30348 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
30349
30350         PR bootstrap/43964
30351         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
30352         only if HONOR_REG_ALLOC_ORDER is not defined.
30353
30354 2010-05-04  Richard Guenther  <rguenther@suse.de>
30355
30356         PR tree-optimization/43949
30357         * tree-vrp.c (extract_range_from_binary_expr): Only handle
30358         TRUNC_MOD_EXPR.
30359
30360 2010-04-26  Jason Merrill  <jason@redhat.com>
30361
30362         * c.opt (-fstrict-enums): New.
30363         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
30364
30365 2010-05-03  David Ung  <davidu@mips.com>
30366             James E. Wilson  <wilson@codesourcery.com>
30367
30368         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
30369         emit the trap instruction before the divide for TUNE_74K.
30370
30371 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
30372
30373         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
30374         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
30375         based on the above, for new target hook.
30376
30377         * hooks.c (hook_bool_mode_true): New generic hook.
30378         * hooks.h (hook_bool_mode_true): Add prototype.
30379
30380         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
30381         target hook.
30382         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
30383         target hook, set to hook_bool_mode_false.
30384         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
30385         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
30386         with targetm.small_register_classes_for_mode_p.
30387         (find_reusable_reload): Likewise.
30388         (combine_reloads): Likewise.
30389         * reload1.c (reload_as_needed): Likewise.
30390         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
30391         * ifcvt.c (noce_process_if_block, check_cond_move_block,
30392         dead_or_predicable): Likewise.
30393         * regmove.c (optimize_reg_copy_1): Likewise.
30394         * calls.c (prepare_call_address): Likewise.
30395         (precompute_register_parameters): Likewise.
30396
30397         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
30398         hook definition.
30399         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
30400         implementation of the hook that considers all register classes
30401         small except for SH64.
30402         (sh_override_options): Use the new hook.
30403         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
30404         Add prototype.
30405
30406         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
30407         hook definition.
30408         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
30409         implementation of the hook that considers all register classes
30410         small for THUMB1.
30411         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
30412         Add prototype.
30413
30414         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
30415         hook definition.
30416         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
30417         implementation of the hook that considers all register classes
30418         small for MIPS16.
30419         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
30420         Add prototype.
30421
30422         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
30423         hook definition.
30424         * config/m32c/m32c.h: Likewise.
30425         * config/pdp11/pdp11.h: Likewise.
30426         * config/avr/avr.h: Likewise.
30427         * config/xtensa/xtensa.h: Likewise.
30428         * config/m68hc11/m68hc11.h: Likewise.
30429         * config/mn10300/mn10300.h: Likewise.
30430         * config/mcore/mcore.h: Likewise.
30431         * config/h8300/h8300.h: Likewise.
30432         * config/bfin/bfin.h: Likewise.
30433
30434         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
30435         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
30436
30437 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
30438
30439         * double-int.h (tree_to_double_int): Remove macro.
30440         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
30441         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30442         (tree_to_double_int): New function.
30443         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
30444         Move ...
30445         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30446
30447 2010-05-03  Richard Guenther  <rguenther@suse.de>
30448
30449         PR tree-optimization/43971
30450         * tree-ssa-structalias.c (get_constraint_for_1): Fix
30451         constraints in the !flag_delete_null_pointer_checks case.
30452
30453 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
30454
30455         PR debug/43972
30456         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
30457         result mode matches original rtl mode.
30458
30459 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
30460
30461         PR target/43888
30462         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
30463
30464 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30465
30466         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
30467         when processing flag options.
30468
30469 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30470
30471         * gcov-iov.c (main): Change format string placeholder
30472         from %#08x to 0x%08x.
30473         * genchecksum.c (dosum): Change format string placeholder
30474         from %#02x to 0x%02x.
30475
30476 2010-05-02  Richard Guenther  <rguenther@suse.de>
30477
30478         PR tree-optimization/43879
30479         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
30480
30481 2010-05-02  Bruno Haible  <bruno@clisp.org>
30482
30483         * doc/extend.texi (Function Attributes): Fix a typo.
30484
30485 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30486
30487         Revert:
30488         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
30489         placeholder from 0x%x to %#x.
30490         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30491         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
30492         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
30493         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
30494         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
30495         * config/i386/i386.c (ix86_target_string): Ditto.
30496         * config/i386/i386.c (output_pic_addr_const): Ditto.
30497         (print_operand): Ditto.
30498
30499 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30500
30501         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
30502         placeholder from 0x%x to %#x.
30503         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
30504         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
30505         (ASM_OUTPUT_DEBUG_DATA): Ditto.
30506         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
30507         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
30508         * optc-gen.awk: Ditto.
30509         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
30510         (HOST_WIDE_INT_PRINT_HEX): Ditto.
30511         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
30512         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30513
30514 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30515
30516         * target.h (struct calls): Add function_value_regno_p field.
30517         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
30518         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
30519         * targhooks.c (default_function_value_regno_p): New function.
30520         * targhooks.h (default_function_value_regno_p): Declare function.
30521         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
30522         * builtins.c. (apply_result_size): (Ditto.).
30523         * combine.c. (likely_spilled_retval_p): (Ditto.).
30524         * mode-switching.c. Include 'target.h'.
30525         (create_pre_exit): Use function_value_regno_p hook.
30526         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
30527         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
30528         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
30529
30530         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
30531         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
30532         (ix86_function_value_regno_p): Declare as static, change argument
30533         type to const unsigned int.
30534         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
30535
30536 2010-05-01  Richard Guenther  <rguenther@suse.de>
30537
30538         PR tree-optimization/43949
30539         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
30540         types.
30541         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
30542
30543 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30544
30545         * rtl.h (CONST_DOUBLE_P): Define.
30546         (rtx_to_double_int): Declare.
30547         * emit-rtl.c (rtx_to_double_int): New function.
30548         * dwarf2out.c (insert_double): New function.
30549         (loc_descriptor, add_const_value_attribute): Clean up, use
30550         rtx_to_double_int and insert_double functions.
30551
30552 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
30553
30554         * doc/extend.texi (Inline): Add missing return keyword to examples.
30555         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
30556         "command-line".
30557
30558 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
30559
30560         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
30561         the variable part of the offset as well.  Use highest_pow2_factor for
30562         all alignment checks.
30563
30564 2010-04-30  Richard Guenther  <rguenther@suse.de>
30565
30566         PR tree-optimization/43879
30567         * tree-ssa-structalias.c (type_could_have_pointers): Functions
30568         can have pointers.
30569
30570 2010-04-30  Jan Hubicka  <jh@suse.cz>
30571
30572         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
30573         varpool.
30574         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
30575
30576 2010-04-30  Jan Hubicka  <jh@suse.cz>
30577
30578         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
30579         New.
30580         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
30581         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
30582         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
30583         cgraph_node_set_needs_ltrans_p): Remove.
30584
30585 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30586
30587         * sdbout.c: Include vec.h, do not include varray.h.
30588         (deferred_global_decls, sdbout_global_decl,
30589         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
30590         * toplev.c: Do not include varray.h.
30591         (dump_memory_report): Do not dump VARRAY statistics.
30592         * gengtype.c (open_base_file): Ignore varray.h.
30593         * Makefile.in: Update for abovementioned changes.
30594         Remove all traces of varray.c and varray.h.
30595         * varray.c: Remove file.
30596         * varray.h: Remove file.
30597
30598 2010-04-30  Jan Hubicka  <jh@suse.cz>
30599
30600         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
30601         references.
30602
30603 2010-04-30  Jan Hubicka  <jh@suse.cz>
30604
30605         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
30606         needed.
30607
30608 2010-04-30  Richard Guenther  <rguenther@suse.de>
30609
30610         * tree-ssa-structalias.c (get_constraint_for_1): Generate
30611         constraints for CONSTRUCTOR.
30612
30613 2010-04-30  Richard Guenther  <rguenther@suse.de>
30614
30615         PR lto/43946
30616         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
30617         first after all lowering passes.
30618
30619 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30620
30621         * toplev.c: Include varray.h for statistics dumping.
30622         * tree.h: Do not declare varray_head_tag.
30623         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
30624         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
30625         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
30626         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
30627         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
30628         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
30629         c-common.c, c-common.h, reg-stack.c, basic-block.h,
30630         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
30631         include varray.h.
30632         * Makefile.in: Update for abovementioned changes.
30633
30634 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
30635
30636         PR debug/43942
30637         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
30638
30639 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
30640
30641         * config/picochip/picochip.c (picochip_legitimize_address): Define.
30642         Use this function to do machine-specific conversion.
30643         (picochip_legitimize_reload_address): Likewise.
30644         (picochip_legitimate_address_p): Check valid base register only if
30645         strict.
30646         (picochip_check_conditional_copy): Check for modw only if opnd is
30647         register.
30648         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
30649         to call the function in c.
30650         * config/picochip/picochip-protos.h
30651         (picochip_legitimize_reload_address): Define.
30652         * config/picochip/picochip.md (supported_compare1): Define.
30653
30654 2010-04-30  Jan Hubicka  <jh@suse.cz>
30655
30656         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
30657         (cgraph_global_info): Remove inlined.
30658         (LTO_cgraph_tag_names): Remove.
30659         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
30660         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
30661         simplify cgraph tags and document.
30662         (lto_output_node): Use only LTO_cgraph_unavail_node and
30663         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
30664         for_functions_valid, global info, process and output flags.
30665         (input_overwrite_node): Initialize estimated stack size and
30666         estimated growth.  Do not read flags we no longer store.
30667         (input_node): Likewise do not read info no longer stored.
30668         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
30669         flag.
30670
30671 2010-04-30  Richard Guenther  <rguenther@suse.de>
30672
30673         PR tree-optimization/43879
30674         * tree-ssa-structalias.c (get_constraint_for_1): Properly
30675         handle non-zero initializers.
30676
30677 2010-04-30  Richard Guenther  <rguenther@suse.de>
30678
30679         * builtins.c (fold_builtin_1): Delete free (0).
30680
30681 2010-04-29  Jan Hubicka  <jh@suse.cz>
30682
30683         * gengtype.c (open_base_files): Add lto-streamer.h
30684         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
30685         (pass_ipa_cp): GGC collect.
30686         * toplev. (compile_file): Do not output symbols.
30687         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
30688         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
30689         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
30690         * lto-section-in.c: Include ggc.h
30691         (lto_new_in_decl_state): Alloc in GGC.
30692         (lto_delete_in_decl_state): Likewise.
30693         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
30694         Collect.
30695
30696 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30697
30698         PR target/42895
30699         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
30700         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
30701         (HONOR_REG_ALLOC_ORDER): Describe new macro.
30702         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
30703         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
30704         account only if HONOR_REG_ALLOC_ORDER is not defined.
30705         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
30706         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
30707
30708 2010-04-29  Jon Grant  <04@jguk.org>
30709
30710         * collect2.c (vflag): Change type from int to bool.
30711         (debug): Likewise.
30712         (helpflag): New global bool.
30713         (main): Set vflag and debug with boolean, not integer truth values.
30714         Accept new "--help" option and output usage text if found.
30715         * collect2.h (vflag): Update prototype.
30716         (debug): Likewise.
30717
30718 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30719
30720         PR bootstrap/43936
30721         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
30722
30723 2010-04-29  Richard Guenther  <rguenther@suse.de>
30724
30725         PR bootstrap/43935
30726         * plugin.h (invoke_plugin_callbacks): Annotate arguments
30727         with ATTRIBUTE_UNUSED.
30728
30729 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30730
30731         PR target/43921
30732         * config/i386/i386.c (get_some_local_dynamic_name): Replace
30733         INSN_P with NONDEBUG_INSN_P.
30734         (distance_non_agu_define): Likewise.
30735         (distance_agu_use): Likewise.
30736
30737 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30738
30739         From Dominique d'Humieres  <dominiq@lps.ens.fr>
30740         PR bootstrap/43858
30741         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
30742         test_set.
30743
30744 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
30745
30746         * plugin.h (invoke_plugin_callbacks): New inline function.
30747         * plugin.c (flag_plugin_added): New global flag.
30748         (add_new_plugin): Initialize above flag.
30749         (invoke_plugin_callbacks): Rename to ...
30750         (invoke_plugin_callbacks_full): ... this.
30751
30752 2010-04-28  Jan Hubicka  <jh@suse.cz>
30753
30754         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
30755         (lto_varpool_replace_node): New.
30756         (lto_symtab_resolve_symbols): Resolve varpool nodes.
30757         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
30758         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
30759         * cgraph.h (varpool_node_ptr): New type.
30760         (varpool_node_ptr): New vector.
30761         (varpool_node_set_def): New structure.
30762         (varpool_node_set): New type.
30763         (varpool_node_set): New vector.
30764         (varpool_node_set_element_def): New structure.
30765         (varpool_node_set_element, const_varpool_node_set_element): New types.
30766         (varpool_node_set_iterator): New type.
30767         (varpool_node): Add prev pointers, add used_from_other_partition,
30768         in_other_partition.
30769         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
30770         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
30771         varpool_get_node, varpool_remove_node): Declare.
30772         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
30773         varpool_node_set_size): New inlines.
30774         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
30775         * tree-pass.h (varpool_node_set_def): Forward declare.
30776         (ipa_opt_pass_d): Summary writting takes vnode sets too.
30777         (ipa_write_optimization_summaries): Update prototype.
30778         * ipa-cp.c (ipcp_write_summary): Update.
30779         * ipa-reference.c (ipa_reference_write_summary): Update.
30780         * lto-cgraph.c (lto_output_varpool_node): New static function.
30781         (output_varpool): New function.
30782         (input_varpool_node): New static function.
30783         (input_varpool_1): New function.
30784         (input_cgraph): Input varpool.
30785         * ipa-pure-const.c (pure_const_write_summary): Update.
30786         * lto-streamer-out.c (lto_output): Update, output varpool too.
30787         (write_global_stream): Kill WPA hack.
30788         (produce_asm_for_decls): Update.
30789         (output_alias_pair_p): Handle variables.
30790         (output_unreferenced_globals): Output only needed partition of varpool.
30791         * ipa-inline.c (inline_write_summary): Update.
30792         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
30793         cgraph.
30794         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
30795         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
30796         varpool_node_set_new, varpool_node_set_add,
30797         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
30798         debug_varpool_node_set): New functions.
30799         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
30800         (execute_one_pass): Process new decls too.
30801         (ipa_write_summaries_2): Pass around vsets.
30802         (ipa_write_summaries_1): Likewise.
30803         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
30804         to add.
30805         (ipa_write_optimization_summaries_1): Pass around vsets.
30806         (ipa_write_optimization_summaries): Likewise.
30807         * varpool.c (varpool_get_node): New.
30808         (varpool_node): Update doubly linked lists.
30809         (varpool_remove_node): New.
30810         (dump_varpool_node): More dumping.
30811         (varpool_enqueue_needed_node): Update doubly linked lists.
30812         (decide_is_variable_needed): Kill ltrans hack.
30813         (varpool_finalize_decl): Kill lto hack.
30814         (varpool_assemble_decl): Skip decls in other partitions.
30815         (varpool_assemble_pending_decls): Update doubly linkes lists.
30816         (varpool_empty_needed_queue): Likewise.
30817         (varpool_extra_name_alias): Likewise.
30818         * lto-streamer.c (lto_get_section_name): Add vars section.
30819         * lto-streamer.h (lto_section_type): Update.
30820         (output_varpool, input_varpool): Declare.
30821
30822 2010-04-28  Mike Stump  <mikestump@comcast.net>
30823
30824         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
30825
30826 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30827
30828         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
30829         record or union type with RECORD_OR_UNION_TYPE_P predicate.
30830         (lto_input_ts_type_tree_pointers): Likewise.
30831         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
30832         (lto_output_ts_type_tree_pointers): Likewise.
30833
30834 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30835
30836         Uniquization of constants at the Tree level
30837         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
30838         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
30839         bit to the end.
30840         (tree_output_constant_def): Declare.
30841         * gimplify.c (gimplify_init_constructor): When using block copy, first
30842         uniquize the constant constructor on the RHS.
30843         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
30844         DECL_IN_CONSTANT_POOL flag.
30845         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
30846         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
30847         constant pool.
30848         (assemble_variable): Deal with symbols belonging to the tree constant
30849         pool.
30850         (get_constant_section): Add ALIGN parameter and simplify.
30851         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
30852         (assemble_constant_contents): Use the expression of the VAR_DECL.
30853         (output_constant_def_contents): Use the alignment of the VAR_DECL.
30854         (tree_output_constant_def): New global function.
30855         (mark_constant): Use the expression of the VAR_DECL.
30856         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
30857         its expression.
30858         (output_object_block): Likewise and assemble the expression.
30859
30860 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30861
30862         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
30863         hash_tree, eq_tree): New tree hash table.
30864         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
30865         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
30866         lto_orig_address_remove): Reimplement.
30867
30868 2010-04-28  Xinliang David Li  <davidxl@google.com>
30869
30870         PR c/42643
30871         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
30872         (compute_uninit_opnds_pos): New function.
30873         (is_non_loop_exit_postdominating): New function.
30874         (compute_control_dep_chain): New function.
30875         (find_pdom): New function.
30876         (convert_control_dep_chain_into_preds): New function.
30877         (find_predicates): New function.
30878         (find_control_equiv_block): New function.
30879         (collect_phi_def_edges): New function.
30880         (find_def_preds): New function.
30881         (find_dom): New function.
30882         (dump_predicates): New function.
30883         (get_cmp_code): New function.
30884         (is_value_included_in): New function.
30885         (find_matching_predicate_in_rest_chains): New function.
30886         (use_pred_not_overlap_with_undef_path_pred): New function.
30887         (is_use_properly_guarded): New function.
30888         (normalize_cond_1): New function.
30889         (is_and_or_or): New function.
30890         (normalize_cond): New function.
30891         (is_gcond_subset_of): New function.
30892         (is_subset_of_any): New function.
30893         (is_or_set_subset_of): New function.
30894         (is_and_set_subset_of): New function.
30895         (is_norm_cond_subset_of): New function.
30896         (is_pred_expr_subset_of): New function.
30897         (is_pred_chain_subset_of): New function.
30898         (is_included_in): New function.
30899         (is_superset_of): New function.
30900         (find_uninit_use): New function.
30901         (warn_uninitialized_phi): New function.
30902         (compute_possibly_undefined_names): New function.
30903         (ssa_undefined_value_p): New function.
30904         (execute_late_warn_uninitialized): New function.
30905         * tree-ssa.c (ssa_undefined_value_p): Removed.
30906         (warn_uninit): Changed to extern.
30907         (warn_uninitialized_phi): Removed.
30908         (warn_uninitialized_vars): Changed to extern.
30909         (execute_late_warn_uninitialized): Removed
30910         * tree-flow.h: Add new prototypes.
30911         * timevar.def: Add new time variable.
30912         * Makefile.in: Add new build file.
30913
30914 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
30915
30916         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
30917         type if available.
30918
30919 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30920
30921         PR target/22224
30922         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
30923
30924 2010-04-28  Martin Jambor  <mjambor@suse.cz>
30925
30926         * cgraph.h (struct cgraph_node): New field indirect_calls.
30927         (struct cgraph_indirect_call_info): New type.
30928         (struct cgraph_edge): Removed field indirect_call. New fields
30929         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
30930         (cgraph_create_indirect_edge): Declare.
30931         (cgraph_make_edge_direct): Likewise.
30932         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
30933         * ipa-prop.h (struct ipa_param_call_note): Removed.
30934         (struct ipa_node_params): Removed field param_calls.
30935         (ipa_create_all_structures_for_iinln): Declare.
30936         * cgraph.c: Described indirect edges and uids in initial comment.
30937         (cgraph_add_edge_to_call_site_hash): New function.
30938         (cgraph_edge): Search also among the indirect edges, use
30939         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
30940         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
30941         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
30942         site hash.
30943         (initialize_inline_failed): Assign a reason to indirect edges.
30944         (cgraph_create_edge_1): New function.
30945         (cgraph_create_edge): Moved some functionality to
30946         cgraph_create_edge_1.
30947         (cgraph_create_indirect_edge): New function.
30948         (cgraph_edge_remove_callee): Add an assert checking for
30949         non-indirectness.
30950         (cgraph_edge_remove_caller): Special-case indirect edges.
30951         (cgraph_remove_edge): Likewise.
30952         (cgraph_set_edge_callee): New function.
30953         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
30954         (cgraph_make_edge_direct): New function.
30955         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
30956         the declaration of the call statement matches.
30957         (cgraph_node_remove_callees): Special-case indirect edges.
30958         (cgraph_clone_edge): Likewise.
30959         (cgraph_clone_node): Clone also the indirect edges.
30960         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
30961         indirect_call, dump count of indirect_calls edges.
30962         * ipa-prop.c (iinlining_processed_edges): New variable.
30963         (ipa_note_param_call): Create indirect edges instead of
30964         creating notes.  New parameter node.
30965         (ipa_analyze_call_uses): New parameter node, pass it on to
30966         ipa_note_param_call.
30967         (ipa_analyze_stmt_uses): Likewise.
30968         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
30969         (print_edge_addition_message): Work on edges rather than on notes.
30970         (update_call_notes_after_inlining): Likewise, renamed to
30971         update_indirect_edges_after_inlining.
30972         (ipa_create_all_structures_for_iinln): New function.
30973         (ipa_free_node_params_substructures): Do not free notes.
30974         (ipa_edge_duplication_hook): Propagate bits within
30975         iinlining_processed_edges bitmap.
30976         (ipa_node_duplication_hook): Do not duplicate notes.
30977         (free_all_ipa_structures_after_ipa_cp): Renamed to
30978         ipa_free_all_structures_after_ipa_cp.
30979         (free_all_ipa_structures_after_iinln): Renamed to
30980         ipa_free_all_structures_after_iinln.
30981         (ipa_write_param_call_note): Removed.
30982         (ipa_read_param_call_note): Removed.
30983         (ipa_write_indirect_edge_info): New function.
30984         (ipa_read_indirect_edge_info): Likewise.
30985         (ipa_write_node_info): Do not stream notes, do stream information
30986         in indirect edges.
30987         (ipa_read_node_info): Likewise.
30988         (lto_ipa_fixup_call_notes): Removed.
30989         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
30990         * ipa-inline.c (pass_ipa_inline): Likewise.
30991         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
30992         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
30993         * tree-inline.c (copy_bb): Removed an unnecessary double check for
30994         is_gimple_call.
30995         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
30996         edges.
30997         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
30998         (output_cgraph): Stream also indirect edges.
30999         (lto_output_edge): Added capability to stream indirect edges.
31000         (input_edge): Likewise.
31001         (input_cgraph_1): Likewise.
31002         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
31003         of indirect edges.
31004
31005 2010-04-28  Richard Guenther  <rguenther@suse.de>
31006
31007         PR tree-optimization/43879
31008         PR tree-optimization/43909
31009         * tree-ssa-structalias.c (struct variable_info): Add
31010         only_restrict_pointers flag.
31011         (new_var_info): Initialize it.  Increment stats.total_vars here.
31012         (create_function_info_for): Do not increment stats.total_vars here.
31013         (get_function_part_constraint): Fix build with C++.
31014         (insert_into_field_list): Remove.
31015         (push_fields_onto_fieldstack): Properly merge fields.
31016         (create_variable_info_for): Split and simplify.
31017         (create_variable_info_for_1): New piece.
31018         (intra_create_variable_infos): Properly make restrict constraints
31019         from parameters.
31020
31021 2010-04-28  Richard Guenther  <rguenther@suse.de>
31022
31023         PR c++/43880
31024         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
31025
31026 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31027             Jan Hubicka  <hubicka@ucw.cz>
31028
31029         * doc/invoke.texi (-Wsuggest-attribute=const,
31030         -Wsuggest-attribute=pure): Document.
31031         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
31032         (function_always_visible_to_compiler_p,
31033         suggest_attribute, warn_function_pure, warn_function_const):
31034         New functions.
31035         (check_call): Improve debug info.
31036         (analyze_function): Do not check availability.
31037         (add_new_function): Check availability.
31038         (propagate): Output warnings.
31039         (skip_function_for_local_pure_const): New function.
31040         (local_pure_const): Use it; output warnings.
31041         * common.opt (Wsuggest-attribute=const,
31042         Wsuggest-attribute=pure): New.
31043
31044 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31045
31046         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
31047         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
31048         or DW_CFA_def_cfa_offset{,_sf}.
31049
31050 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31051
31052         * tree.h: Fix truncated long macros.
31053
31054 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
31055
31056         * collect2.c (TARGET_64BIT): Redefine to target's default.
31057         * tlink.c: Likewise.
31058         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
31059         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
31060         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
31061         for underscoring __USER_LABEL_PREFIX__.
31062         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
31063         (SUB_LINK_ENTRY32): New.
31064         (SUB_LINK_ENTRY64): New.
31065         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
31066         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
31067         (SUB_LINK_ENTRY64): New.
31068         (SUB_LINK_ENTRY): New.
31069         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
31070         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
31071         x64 target is choosen.
31072         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
31073         * configure: Regenerated.
31074         * configure.ac (leading-mingw64-underscores): Option added.
31075
31076 2010-04-27  Jan Hubicka  <jh@suse.cz>
31077
31078         * doc/invoke.texi (-fipa-profile): Document.
31079         * opts.c (decode_options): Enable ipa-profile at -O1.
31080         * timevar.def (TV_IPA_PROFILE): Define.
31081         * common.opt (fipa-profile): Add.
31082         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
31083         flag for clones.
31084         (cgraph_propagate_frequency): Handle only local ones.
31085         * tree-pass.h (pass_ipa_profile): Declare.
31086         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
31087         (pass_ipa_profile): Use TV_IPA_PROFILE.
31088         * ipa.c (ipa_profile): New function.
31089         (gate_ipa_profile): Likewise.
31090         (pass_ipa_profile): New global variable.
31091         * passes.c (pass_ipa_profile): New.
31092
31093 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
31094
31095         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
31096
31097 2010-04-27  Martin Jambor  <mjambor@suse.cz>
31098
31099         PR middle-end/43812
31100         * ipa.c (dissolve_same_comdat_group_list): New function.
31101         (function_and_variable_visibility): Call
31102         dissolve_same_comdat_group_list when comdat group contains external or
31103         newly local nodes.
31104         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
31105         lists are circular and that they contain only DECL_ONE_ONLY nodes.
31106
31107 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31108
31109         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
31110         (const_hash_1) <VECTOR_CST>: New case.
31111         (compare_constant) <VECTOR_CST>: Likewise.
31112         <ADDR_EXPR>: Deal with LABEL_REFs.
31113         (copy_constant) <VECTOR_CST>: New case.
31114
31115 2010-04-27  Jan Hubicka  <jh@suse.cz>
31116
31117         * cgraph.c (cgraph_propagate_frequency): New function.
31118         * cgraph.h (cgraph_propagate_frequency): Declare.
31119         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
31120         cgraph_propagate_frequency.
31121
31122 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31123
31124         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
31125
31126 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
31127
31128         PR target/40657
31129         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
31130         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
31131         here to determine which regs to push and how much stack to reserve.
31132
31133 2010-04-27  Jie Zhang  <jie@codesourcery.com>
31134
31135         * doc/gimple.texi (gimple_statement_with_ops): Remove
31136         addresses_taken field.
31137         (gimple_statement_with_memory_ops): Likewise.
31138
31139 2010-04-27  Jan Hubicka  <jh@suse.cz>
31140
31141         * tree-inline.c (eni_inlining_weights): Remove.
31142         (estimate_num_insns): Special case more builtins.
31143
31144 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
31145
31146         PR c/32207
31147         * c-typeck.c (build_binary_op): Move forward check for comparison
31148         pointer with null pointer constant and adjust the diagnostic message.
31149
31150 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
31151
31152         PR lto/42776
31153         * configure.ac (gcc_cv_as_section_has_align): Set if installed
31154         binutils supports extended .section directive needed by LTO, or
31155         warn if older binutils found.
31156         (LTO_BINARY_READER): New AC_SUBST'd variable.
31157         (LTO_USE_LIBELF): Likewise.
31158         * config.gcc (lto_binary_reader): New target-specific configure
31159         variable.
31160         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
31161         (LTO_USE_LIBELF): Likewise.
31162         * configure: Regenerate.
31163
31164         * collect2.c (is_elf): Rename from this ...
31165         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
31166          object files in addition to ELF-formatted ones.
31167         (scan_prog_file): Caller updated.  Also allow for LTO info marker
31168         symbol to be prefixed or not by an extra underscore.
31169
31170         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
31171         * config/i386/winnt.c: Also #include lto-streamer.h
31172         (i386_pe_asm_named_section): Specify 1-byte section alignment for
31173         LTO named sections.
31174         (i386_pe_asm_output_aligned_decl_common): Add comment.
31175         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
31176
31177 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
31178
31179         PR target/43889
31180         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
31181         Add missing earlyclobber for second alternative.
31182
31183 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
31184
31185         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
31186         bits for artificial defs at the top of the block.
31187         * fwprop.c (single_def_use_enter_block): Don't call it.
31188
31189 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
31190
31191         PR 43715
31192         * configure.ac: Use "$gcc_cv_nm -g" on darwin
31193         instead of "$gcc_cv_objdump -T".
31194         Use "-undefined dynamic_lookup" on darwin.
31195         * configure: Regenerate.
31196
31197 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
31198
31199         PR c/43893
31200         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
31201
31202 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31203
31204         * c-parser.c (struct c_token): Move location field up.
31205         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
31206         (struct c_declspecs): Convert typespec_word, storage_class, and
31207         default_int_p into bitfields.
31208         (struct c_declarator): Move loc field up.
31209
31210 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31211
31212         * cfgloop.h (struct loop): Move can_be_parallel field up.
31213         * ipa-prop.h (struct ip_node_params): Move bitfields up.
31214         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
31215         down.
31216         (struct iv_cand): Convert pos field into a bitfield.
31217         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
31218         field up.
31219         (struct _stmt_vec_info): Shuffle fields for better packing.
31220
31221 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31222
31223         * varasm.c (IN_NAMED_SECTION): Remove guard.
31224         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
31225         (IN_NAMED_SECTION_P): ...this.
31226         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
31227         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
31228
31229 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31230
31231         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
31232         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
31233         of shadowing it.  Fix comments.
31234
31235 2010-04-26  Jan Hubicka  <jh@suse.cz>
31236
31237         * cgraph.c (cgraph_create_node): Set node frequency to normal.
31238         (cgraph_clone_node): Copy function frequency.
31239         * cgraph.h (node_frequency): New enum
31240         (struct cgraph_node): Add.
31241         * final.c (rest_of_clean_state): Update.
31242         * lto-cgraph.c (lto_output_node): Output node frequency.
31243         (input_overwrite_node): Input node frequency.
31244         * tre-ssa-loop-ivopts (computation_cost): Update.
31245         * lto-streamer-out.c (output_function): Do not output function
31246         frequency.
31247         * predict.c (maybe_hot_frequency_p): Update and handle functions
31248         executed once.
31249         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
31250         attribute lookup.
31251         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
31252         (compute_function_frequency): Set noreturn functions to be executed
31253         once.
31254         (choose_function_section): Update.
31255         * lto-streamer-in.c (input_function): Do not input function frequency.
31256         * function.c (allocate_struct_function): Do not initialize function
31257         frequency.
31258         * function.h (function_frequency): Remove.
31259         (struct function): Remove function frequency.
31260         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
31261         (try_update): Update.
31262         * tree-inline.c (initialize_cfun): Do not update function frequency.
31263         * passes.c (pass_init_dump_file): Update.
31264         * i386.c (ix86_compute_frame_layout): Update.
31265         (ix86_pad_returns): Update.
31266
31267 2010-04-26  Jie Zhang  <jie@codesourcery.com>
31268
31269         PR tree-optimization/43833
31270         * tree-vrp.c (range_int_cst_p): New.
31271         (range_int_cst_singleton_p): New.
31272         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
31273         when both operands are constants.  Use range_int_cst_p in
31274         BIT_IOR_EXPR case.
31275
31276 2010-04-26  Jan Hubicka  <jh@suse.cz>
31277
31278         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
31279
31280 2010-04-26  Richard Guenther  <rguenther@suse.de>
31281
31282         PR lto/43080
31283         * gimple.c (gimple_decl_printable_name): Deal gracefully
31284         with a NULL DECL_NAME.
31285
31286 2010-04-26  Richard Guenther  <rguenther@suse.de>
31287
31288         PR lto/42425
31289         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
31290         if emitting debug information and it is either a function
31291         or a namespace decl.
31292
31293 2010-04-26  Ira Rosen  <irar@il.ibm.com>
31294
31295         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
31296         determine if the statement is vectorizable, and a macro to access it.
31297         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31298         Skip statements that can't be vectorized. If the analysis fails,
31299         mark the statement as unvectorizable if vectorizing basic block.
31300         (vect_compute_data_refs_alignment): Likewise.
31301         (vect_verify_datarefs_alignment): Skip statements marked as
31302         unvectorizable. Add print.
31303         (vect_analyze_group_access): Skip statements that can't be
31304         vectorized. If the analysis fails, mark the statement as
31305         unvectorizable if vectorizing basic block.
31306         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
31307         * tree-vect-stmts.c (vectorizable_store): Fix the number of
31308         generated stmts for SLP.
31309         (new_stmt_vec_info): Initialize the new field.
31310         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
31311         statements marked as unvectorizable.
31312
31313 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
31314
31315         * c-common.c (flag_isoc1x): New.
31316         (flag_isoc99): Update comment.
31317         * c-common.h (flag_isoc1x): New.
31318         (flag_isoc99): Update comment.
31319         * c-cppbuiltin.c (builtin_define_float_constants): Also define
31320         __<type>_DECIMAL_DIG__.
31321         * c-opts.c (set_std_c1x): New.
31322         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
31323         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
31324         * c.opt (-std=c1x, -std=gnu1x): New options.
31325         * doc/cpp.texi: Mention -std=c1x.
31326         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
31327         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
31328         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
31329         * doc/standards.texi: Mention C1X.
31330         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
31331         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
31332         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
31333         Define for C1X.
31334
31335 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
31336
31337         * config/i386/gmon-sol2.c (_mcleanup): Change format string
31338         placeholder from 0x%x to %#x.
31339         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
31340         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
31341         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
31342         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
31343         * config/i386/i386.c (ix86_target_string): Ditto.
31344         (output_pic_addr_const): Ditto.
31345         (print_operand): Ditto.
31346
31347 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
31348
31349         * combine.c (find_split_point): Add third argument.  Use it
31350         to find nested multiply-accumulate instructions.  Adjust calls.
31351         (try_combine): Adjust call to find_split_point.
31352
31353 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
31354
31355         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
31356
31357 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
31358
31359         PR tree-optimization/41442
31360         * fold-const.c (merge_truthop_with_opposite_arm): New function.
31361         (fold_binary_loc): Call it.
31362
31363 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31364
31365         * toplev.c (general_init): Set default for fdiagnostics-show-option.
31366         * opts.c (common_handle_option): Allow disabling it.
31367         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
31368
31369 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
31370
31371         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
31372         between modes if both types are integral.
31373
31374 2010-04-23  Richard Guenther  <rguenther@suse.de>
31375
31376         PR tree-optimization/43572
31377         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
31378
31379 2010-04-23  Richard Guenther  <rguenther@suse.de>
31380
31381         PR lto/43455
31382         * tree-inline.c (tree_can_inline_p): Also check compatibility
31383         of return types.
31384
31385 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31386
31387         PR tree-optimization/43846
31388         * tree-sra.c (struct access): New flag grp_assignment_read.
31389         (build_accesses_from_assign): Set grp_assignment_read.
31390         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
31391         (enum mark_read_status): New type.
31392         (analyze_access_subtree): Propagate grp_assignment_read, create
31393         accesses also if both direct_read and root->grp_assignment_read.
31394
31395 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31396
31397         PR middle-end/43835
31398         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
31399         function does not have type attributes.
31400
31401 2010-04-23  Richard Guenther  <rguenther@suse.de>
31402
31403         PR lto/42653
31404         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
31405         of FUNCTION_DECLs.
31406
31407 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31408
31409         * sese.h (create_if_region_on_edge): Remove.
31410
31411         * sese.c (create_if_region_on_edge): Make static.
31412
31413         * tree-inline.c: Do not include ggc.h.
31414
31415         * expr.c: Do not include ggc.h.
31416
31417         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
31418         dependencies.
31419
31420 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
31421
31422         PR target/43744
31423         * config/sh/sh.c (find_barrier): Don't emit a constant pool
31424         in the middle of insns for casesi_worker_2.
31425
31426 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
31427
31428         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
31429
31430 2010-04-22  Ira Rosen  <irar@il.ibm.com>
31431
31432         PR tree-optimization/43842
31433         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
31434         loop unrolling in update of exit phis. Fix comment.
31435         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
31436         least two reduction statements in the loop before starting SLP
31437         analysis.
31438
31439 2010-04-22  Nick Clifton  <nickc@redhat.com>
31440
31441         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
31442
31443 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
31444
31445         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
31446         to simplify a + ~a.
31447
31448 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31449
31450         * tree-parloops.c (loop_parallel_p): New argument
31451         parloop_obstack.  Pass it down.
31452         (parallelize_loops): New variable parloop_obstack.  Initialize it,
31453         pass it down, free it.
31454
31455         * tree-loop-linear.c (linear_transform_loops): Pass down
31456         lambda_obstack.
31457
31458         * tree-data-ref.h (lambda_compute_access_matrices): New argument
31459         of type struct obstack *.
31460
31461         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
31462         scratch_obstack.  Initialize it, pass down, free it.
31463
31464         * lambda.h (lambda_loop_new): Remove.
31465         (lambda_matrix_new, lambda_matrix_inverse)
31466         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
31467         argument of type struct obstack *.
31468
31469         * lambda-trans.c (lambda_trans_matrix_new): New argument
31470         lambda_obstack.  Pass it down, use obstack allocation for ret.
31471         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
31472         it down.
31473
31474         * lambda-mat.c (lambda_matrix_get_column)
31475         (lambda_matrix_project_to_null): Remove.
31476         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
31477         allocation for mat.
31478         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
31479         lambda_obstack.
31480
31481         * lambda-code.c (lambda_loop_new): New function.
31482         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
31483         (lambda_compute_auxillary_space, lambda_compute_target_space)
31484         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
31485         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
31486         (build_access_matrix): New argument lambda_obstack.  Use obstack
31487         allocation for am.
31488         (lambda_compute_step_signs, lambda_compute_access_matrices): New
31489         argument lambda_obstack.  Pass it down.
31490
31491 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31492
31493         * optabs.h (expand_widening_mult): Declare.
31494
31495 2010-04-22  Richard Guenther  <rguenther@suse.de>
31496
31497         PR tree-optimization/43845
31498         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
31499         lookup the CALL_EXPR function and arguments.
31500
31501 2010-04-22  Nick Clifton  <nickc@redhat.com>
31502
31503         * config/stormy16/stormy16.c
31504         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
31505         * config/stormy16/stormy16.h: Tidy up formatting.
31506         (DONT_USE_BUILTIN_SETJMP): Remove definition.
31507         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
31508         (ineqbranchsi): Delete pattern.
31509         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
31510         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
31511         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
31512         stormy16-lib2-ucmpsi2.c.
31513
31514 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31515
31516         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
31517         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
31518         extra set merge_set_noclobber, and use it to relax the final test
31519         slightly.
31520         * df.h (df_simulate_find_noclobber_defs): Declare.
31521         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
31522         conditional defs.
31523         (df_simulate_find_noclobber_defs): New function.
31524
31525 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
31526
31527         * config/i386/i386.md: Use {} around multi-line preparation statements.
31528
31529 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31530
31531         * c-tree.h (push_init_level, pop_init_level, set_init_index)
31532         (process_init_element): New argument of type struct obstack *.
31533
31534         * c-typeck.c (push_init_level, pop_init_level, set_designator)
31535         (set_init_index, set_init_label, set_nonincremental_init)
31536         (set_nonincremental_init_from_string, find_init_member)
31537         (output_init_element, output_pending_init_elements)
31538         (process_init_element): New argument braced_init_obstack.  Pass it
31539         down.
31540         (push_range_stack, add_pending_init): New argument
31541         braced_init_obstack.  Use obstack allocation.
31542
31543         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
31544         braced_init_obstack.  Pass it down.
31545         (c_parser_braced_init): New variables ret, braced_init_obstack.
31546         Initialize obstack, pass it down and finally free it.
31547
31548 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31549
31550         PR middle-end/29274
31551         * tree-pass.h (pass_optimize_widening_mul): Declare.
31552         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
31553         gate_optimize_widening_mul): New static functions.
31554         (pass_optimize_widening_mul): New.
31555         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
31556         <case MULT_EXPR>: Remove support for widening multiplies.
31557         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
31558         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
31559         simplify_gen_unary rather than directly building extensions.
31560         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
31561         WIDEN_MULT_EXPR.
31562         * expmed.c (expand_widening_mult): New function.
31563         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
31564
31565 2010-04-21  Jan Hubicka  <jh@suse.cz>
31566
31567         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
31568         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
31569         * lto-wpa-fixup.c: Remove.
31570         * Makefile.in (lto-wpa-fixup.o): Remove.
31571         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
31572         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
31573         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
31574
31575 2010-04-21  Jan Hubicka  <jh@suse.cz>
31576
31577         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
31578         add write_optimization_summary, read_optimization_summary.
31579         (ipa_write_summaries_of_cgraph_node_set): Remove.
31580         (ipa_write_optimization_summaries): Declare.
31581         (ipa_read_optimization_summaries): Declare.
31582         * ipa-cp.c (pass_ipa_cp): Update.
31583         * ipa-reference.c (pass_ipa_reference): Update.
31584         * ipa-pure-const.c (pass_ipa_pure_const): Update.
31585         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
31586         Update.
31587         * ipa-inline.c (pass_ipa_inline): Update.
31588         * ipa.c (pass_ipa_whole_program): Update.
31589         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
31590         * passes.c (ipa_write_summaries_1): Do not test wpa.
31591         (ipa_write_optimization_summaries_1): New.
31592         (ipa_write_optimization_summaries): New.
31593         (ipa_read_summaries): Do not test ltrans.
31594         (ipa_read_optimization_summaries_1): New.
31595         (ipa_read_optimization_summaries): New.
31596
31597 2010-04-21  Jan Hubicka  <jh@suse.cz>
31598
31599         * lto-cgraph.c (lto_output_node): Do not output comdat groups
31600         for boundary nodes.
31601         (output_cgraph): Do not arrange comdat groups for boundary nodes.
31602
31603 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31604
31605         PR debug/40040
31606         * dwarf2out.c (add_name_and_src_coords_attributes): Add
31607         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
31608
31609 2010-04-21  Jan Hubicka  <jh@suse.cz>
31610
31611         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
31612
31613 2010-04-21  Jan Hubicka  <jh@suse.cz>
31614
31615         * varpool.c (decide_is_variable_needed): Variable is always needed
31616         during ltrans.
31617
31618 2010-04-21  Jan Hubicka  <jh@suse.cz>
31619
31620         * opts.c (decode_options): Enable pure-const pass for whopr.
31621
31622 2010-04-21  Jan Hubicka  <jh@suse.cz>
31623
31624         * cgraph.c (dump_cgraph_node): Dump also assembler name.
31625         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
31626         at WPA dumping.
31627         (cgraph_decide_inlining): Do not expect callee to be removed in all
31628         cases.
31629
31630 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
31631
31632         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
31633
31634 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31635
31636         * config/i386/i386.md (x86_shrd): Add athlon_decode and
31637         amdfam10_decode attributes.
31638
31639 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31640
31641         PR middle-end/43570
31642         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
31643         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
31644         (lower_copyprivate_clauses): Use private var in outer
31645         context instead of original var.  Make sure the types
31646         are correct for VLAs.
31647
31648 2010-04-21  Richard Guenther  <rguenther@suse.de>
31649
31650         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
31651         to non-pointer objects.
31652
31653 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31654
31655         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
31656         last chain entry if it starts with the still current label.
31657         (add_location_or_const_value_attribute): Check that
31658         loc_list->first->next is NULL instead of comparing ->first with ->last.
31659         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
31660         to add_var_loc_to_decl.
31661
31662         * dwarf2out.c (output_call_frame_info): For dw_cie_version
31663         >= 4 add also address size and segment size fields into CIE header.
31664
31665         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
31666         long as address size is the same as sizeof (void *) and
31667         segment size is 0.
31668         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
31669         address size or segment size is unexpected, return DW_EH_PE_omit.
31670         (classify_object_over_fdes): If get_cie_encoding returned
31671         DW_EH_PE_omit, return -1.
31672         (init_object): If classify_object_over_fdes returned -1,
31673         pretend there were no FDEs at all.
31674
31675 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31676
31677         * config/i386/i386.md (bswap<mode>2): Macroize expander from
31678         bswap{si,di}2 using SWI48 mode iterator.
31679         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
31680         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
31681         set modrm attribute of bswap insn to 0 and remove length attribute.
31682         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
31683         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
31684         set mode attribute to <MODE> and remove length attribute.
31685
31686 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
31687
31688         PR rtl-optimization/43520
31689         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
31690         zero available registers.
31691
31692 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31693
31694         * builtins.c (fold_builtin_cproj): Fold more cases.
31695
31696 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31697
31698         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
31699         (fold_builtin_1): Fold builtin cproj.
31700         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
31701         Use ATTR_CONST_NOTHROW_LIST.
31702
31703 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
31704
31705         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
31706         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
31707         ffsi2_no_cmove for !TARGET_CMOVE.
31708         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
31709         (ffssi2): Remove expander.
31710         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
31711         mode iterator.
31712         (ctz<mode>2): Ditto from ctz{si,di}2.
31713         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
31714         mode iterator.
31715         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
31716         mode iterator.
31717
31718 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31719
31720         * dwarf2out.c (AT_linkage_name): Define.
31721         (clone_as_declaration): Handle DW_AT_linkage_name.
31722         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
31723         of DW_AT_MIPS_linkage_name.
31724         (move_linkage_attr): Likewise.
31725         (dwarf2out_finish): Likewise.
31726
31727 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
31728
31729         PR middle-end/41952
31730         * fold-const.c (fold_comparison): New folding rule.
31731
31732 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
31733
31734         * double-int.h (double_int_setbit): Declare.
31735         * double-int.c (double_int_setbit): New function.
31736         * rtl.h (immed_double_int_const): Declare.
31737         * emit-rtl.c (immed_double_int_const): New function.
31738         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
31739         and immed_double_int_const functions.
31740         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
31741         expand_copysign_bit): (Ditto.).
31742         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
31743         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
31744         * dojump.c (prefer_and_bit_test): (Ditto.).
31745         * expr.c (convert_modes, reduce_to_bit_field_precision,
31746         const_vector_from_tree): (Ditto.).
31747         * expmed.c (mask_rtx, lshift_value): (Ditto.).
31748
31749 2010-04-20  Jan Hubicka  <jh@suse.cz>
31750
31751         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
31752         (dump_cgraph_node): Dump new flags.
31753         * cgraph.h (struct cgraph_node): Add flags
31754         reachable_from_other_partition and in_other_partition.
31755         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
31756         other partition can not be removed.
31757         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
31758         the other partition must be output; silence sanity checking on
31759         leaking functions bodies from other paritition.
31760         * lto-cgraph.c (reachable_from_other_partition_p): New function.
31761         (lto_output_node): Output new flags; do not sanity check that inline
31762         clones are output; drop lto_forced_extern_inline_p code; do not mock
31763         visibility flags at partition boundaries.
31764         (add_node_to): New function.
31765         (output_cgraph): Use it to sort functions so masters appear before
31766         clones.
31767         (input_overwrite_node): Input new flags.
31768         * passes.c (ipa_write_summaries): Do not call
31769         lto_new_extern_inline_states.
31770         * lto-section-out.c (forced_extern_inline,
31771         lto_new_extern_inline_states lto_delete_extern_inline_states,
31772         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
31773         * lto-streamer.h (lto_new_extern_inline_states,
31774         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
31775         lto_forced_extern_inline_p): Kill.
31776
31777 2010-04-20  Richard Guenther  <rguenther@suse.de>
31778
31779         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
31780         from vars that can have pointers.
31781         (process_constraint): Dump useless constraints.
31782
31783 2010-04-20  Richard Guenther  <rguenther@suse.de>
31784
31785         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
31786         (dump_sa_points_to_info): Remove asserts.
31787         (init_base_vars): nothing_id isn't an escape point nor does it
31788         have pointers.
31789
31790 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31791
31792         * tree.h (TYPE_REF_IS_RVALUE): Define.
31793         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
31794         should_move_die_to_comdat, prune_unused_types_walk): Handle
31795         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
31796         (modified_type_die, gen_reference_type_die): Emit
31797         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
31798         if TYPE_REF_IS_RVALUE and -gdwarf-4.
31799
31800 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31801
31802         PR target/43635
31803         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
31804         calls for -fpic -m31 if they have been sibcall optimized.
31805
31806 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
31807
31808         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
31809         ar.lc fixed and call-used.
31810
31811         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
31812
31813 2010-04-19  Jan Hubicka  <jh@suse.cz>
31814
31815         * opts.c (decode_options): Disable whpr incompatible passes.
31816         * lto/lto.c (lto_1_to_1_map): Skip clones.
31817         (read_cgraph_and_symbols): Do not mark everything as needed.
31818         (do_whole_program_analysis): Do map only after optimizing;
31819         set proper cgraph_state; use passmanager.
31820
31821 2010-04-19  DJ Delorie  <dj@redhat.com>
31822
31823         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
31824         POINTER_PLUS_EXPR and fix them.
31825
31826 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
31827
31828         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
31829         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
31830         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
31831         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
31832         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
31833         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
31834         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
31835         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
31836         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
31837         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
31838         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
31839
31840 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
31841
31842         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
31843         (check_cond_move_block): Likewise.
31844         (cond_move_process_if_block): Likewise.
31845         (noce_find_if_block): Improve formatting.
31846         (find_if_header): Pass 0 to memset and tweak conditions.
31847         (cond_exec_find_if_block): Fix long lines and tweak conditions.
31848
31849 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31850
31851         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
31852         for -gdwarf-4.
31853
31854         PR middle-end/43337
31855         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
31856         with non-local decl doesn't need chain.
31857
31858 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
31859
31860         * ira-color.c (allocno_reload_assign): Avoid accumulating
31861         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
31862
31863 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31864
31865         * gimple.h (create_tmp_reg): Declare.
31866         * gimplify.c (create_tmp_reg): New function.
31867         (gimplify_return_expr): Use create_tmp_reg.
31868         (gimplify_omp_atomic): Likewise.
31869         (gimple_regimplify_operands): Likewise.
31870         * tree-dfa.c (make_rename_temp): Likewise.
31871         * tree-predcom.c (predcom_tmp_var): Likewise.
31872         (reassociate_to_the_same_stmt): Likewise.
31873         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
31874         (get_replaced_param_substitute): Likewise.
31875         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
31876         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
31877         * tree-ssa-pre.c (get_representative_for): Likewise.
31878         (create_expression_by_pieces): Likewise.
31879         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
31880         (create_tailcall_accumulator): Likewise.
31881
31882 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31883
31884         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
31885         new_stmt.
31886         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
31887
31888 2010-04-19  Richard Guenther  <rguenther@suse.de>
31889
31890         PR tree-optimization/43796
31891         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
31892         from SCEV in the lattice.
31893         (vrp_visit_phi_node): Dump change.
31894
31895 2010-04-19  Richard Guenther  <rguenther@suse.de>
31896
31897         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
31898         * configure: Re-generated.
31899
31900 2010-04-19  Richard Guenther  <rguenther@suse.de>
31901
31902         PR tree-optimization/43783
31903         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
31904         constant ARRAY_REF operands two and three if possible.
31905
31906 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
31907
31908         PR target/43766
31909         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
31910
31911 2010-04-19  Jie Zhang  <jie@codesourcery.com>
31912
31913         PR target/43662
31914         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
31915
31916 2010-04-19  Ira Rosen  <irar@il.ibm.com>
31917
31918         PR tree-optimization/37027
31919         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
31920         and macro to access it.
31921         (vectorizable_reduction): Add argument.
31922         (vect_get_slp_defs): Likewise.
31923         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
31924         statements for possible use in SLP.
31925         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
31926         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
31927         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
31928         add new argument.
31929         (vectorizable_reduction): Likewise.
31930         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
31931         vect_get_slp_defs.
31932         (vectorizable_type_demotion, vectorizable_type_promotion,
31933         vectorizable_store): Likewise.
31934         (vect_analyze_stmt): Update call to vectorizable_reduction.
31935         (vect_transform_stmt): Likewise.
31936         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
31937         (vect_build_slp_tree): Fix indentation. Check that there are no loads
31938         from different interleaving chains in same node.
31939         (vect_slp_rearrange_stmts): New function.
31940         (vect_supported_load_permutation_p): Allow load permutations for
31941         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
31942         inside SLP nodes if necessary.
31943         (vect_analyze_slp_instance): Handle reductions.
31944         (vect_analyze_slp): Try to build SLP instances originating from groups
31945         of reductions.
31946         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
31947         (vect_get_constant_vectors): Create initial vectors for reductions
31948         according to reduction code. Add new argument.
31949         (vect_get_slp_defs): Add new argument, pass it to
31950         vect_get_constant_vectors.
31951         (vect_schedule_slp_instance): Remove SLP tree root statements.
31952
31953 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31954
31955         * tree.h (ENUM_IS_SCOPED): Define.
31956         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
31957         for ENUM_IS_SCOPED enums.
31958
31959 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
31960
31961         * fold-const.c (fold_comparison): Use ssizetype.
31962         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
31963         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
31964         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
31965         * tree-object-size.c (compute_object_sizes): Use size_type_node.
31966
31967         * tree.h (initialize_sizetypes): Remove parameter.
31968         (build_common_tree_nodes): Remove second parameter.
31969         * stor-layout.c (initialize_sizetypes): Remove parameter.
31970         Always create an unsigned type.
31971         (set_sizetype): Assert that the passed type is unsigned and simplify.
31972         * tree.c (build_common_tree_nodes): Remove second parameter.
31973         Adjust call to initialize_sizetypes.
31974         * c-decl.c (c_init_decl_processing): Remove second argument in call to
31975         build_common_tree_nodes.
31976
31977 2010-04-18  Matthias Klose  <doko@ubuntu.com>
31978
31979         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
31980
31981 2010-04-18  Ira Rosen  <irar@il.ibm.com>
31982
31983         PR tree-optimization/43771
31984         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
31985         load permutation doesn't have gaps.
31986
31987 2010-04-18  Jan Hubicka  <jh@suse.cz>
31988
31989         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
31990         (sse_prologue_save_insn expander): Use new pattern.
31991         (sse_prologue_save_insn1): New pattern and splitter.
31992         (sse_prologue_save_insn): Update to deal also with 64bit aligned
31993         blocks.
31994         * i386.c (setup_incoming_varargs_64): Do not compute jump
31995         destination here.
31996         (ix86_gimplify_va_arg): Update alignment needed.
31997         (ix86_local_alignment): Do not align all local arrays to 128bit.
31998
31999 2010-04-17  Jan Hubicka  <jh@suse.cz>
32000
32001         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
32002
32003 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32004
32005         * arm.md (negdi2): Remove redundant code to force values into a
32006         register.
32007
32008 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32009
32010         * arm/bpabi.S: Add EABI alignment attributes to objects.
32011         * arm/bpabi-v6m.S: Likewise.
32012         * arm/crti.asm: Likewise.
32013         * arm/crtn.asm: Likewise.
32014         * arm/lib1funcs.asm: Likewise.
32015         * arm/libunwind.S: Likewise.
32016
32017 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32018
32019         * arm-protos.h (tune_params): New structure.
32020         * arm.c (current_tune): New variable.
32021         (arm_constant_limit): Delete.
32022         (struct processors): Add pointer to the tune parameters.
32023         (arm_slowmul_tune): New tuning option.
32024         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
32025         (all_cores): Adjust to pick up the tuning model.
32026         (arm_constant_limit): New function.
32027         (arm_override_options): Select the appropriate tuning model.  Delete
32028         initialization of arm_const_limit.
32029         (arm_split_constant): Use the new constant-limit model.
32030         (arm_rtx_costs): Pick up the current tuning model.
32031         * arm.md (is_strongarm, is_xscale): Delete.
32032         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
32033         for Xscale variant architectures.
32034         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
32035
32036 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32037
32038         * config/arm/arm.c (arm_gen_constant): Remove unused variable
32039         can_shift.
32040         (arm_rtx_costs_1): Remove unused variable extra_cost.
32041         (arm_unwind_emit_set): Use variable offset.
32042         (thumb1_output_casesi): Remove unused variable flags.
32043
32044 2010-04-16  Jeff Law  <law@redhat.com>
32045
32046         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
32047         needing assignment rather than doing a two-phase assignment.  Remove
32048         unused variable 'm'.
32049
32050 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32051
32052         PR bootstrap/43767
32053         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
32054
32055 2010-04-16  Doug Kwan  <dougkwan@google.com>
32056
32057         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
32058         (next_operand_entry_id): New static variable.
32059         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
32060         (add_to_ops_vec): Assigned unique ID to operand entry.
32061         (struct oecount_s): New field ID.
32062         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
32063         (undistribute_ops_list): Assign unique IDs to oecounts.
32064         (init_reassoc): reset next_operand_entry_id.
32065
32066 2010-04-16  Doug Kwan  <dougkwan@google.com>
32067
32068         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
32069         missing left parenthesis.
32070
32071 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
32072
32073         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
32074         *btdi_rex64 using SWI48 mode iterator.
32075         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
32076         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
32077         *jcc_btdi_mask_rex64.
32078
32079 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
32080
32081         * double-int.h (tree_to_double_int): Convert to macro.
32082         * double-int.c (tree_to_double_int): Remove.
32083
32084 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32085
32086         PR debug/43762
32087         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
32088         with want_address 2 and in case a single element list might be
32089         possible, call it again with want_address 0.
32090
32091 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32092
32093         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
32094         case 'W' print operands for HI mode.
32095         * config/h8300/h8300.h (Y0, Y2) : New constraints.
32096         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
32097         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
32098         * config/h8300/predicate.md (bit_register_indirect_operand): New.
32099
32100         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
32101
32102         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
32103         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
32104         #xx:3 and #xx:4 mode.
32105
32106         * config/h8300/h8300.md (inverted load with HImode dest): Add
32107         support for H8300SX.
32108
32109         * config/h8300/predicate.md (bit_operand): Allow immediate values that
32110         satisfy 'U' constraint.
32111
32112 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32113
32114         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
32115         * configure: Regenerate.
32116         * config.in: Regenerate.
32117         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
32118         works.
32119
32120 2010-04-16  Richard Guenther  <rguenther@suse.de>
32121
32122         * tree.h (struct tree_decl_minimal): Move pt_uid ...
32123         (struct tree_decl_common): ... here.
32124         (DECL_PT_UID): Adjust.
32125         (SET_DECL_PT_UID): Likewise.
32126         (DECL_PT_UID_SET_P): Likewise.
32127
32128 2010-04-16  Richard Guenther  <rguenther@suse.de>
32129
32130         PR tree-optimization/43572
32131         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
32132         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
32133         * tree-flow.h (is_call_clobbered): Remove.
32134         * tree-flow-inline.h (is_call_clobbered): Likewise.
32135         * tree-dfa.c (dump_variable): Do not dump call clobber state.
32136         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
32137         (execute_return_slot_opt): Adjust.
32138         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
32139         check for call clobbered vars here.
32140         (find_tail_calls): Move tailcall verification to the
32141         proper place.
32142
32143 2010-04-16  Diego Novillo  <dnovillo@google.com>
32144
32145         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
32146
32147 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32148
32149         PR target/40603
32150         * config/arm/arm.md (cbranchqi4): New pattern.
32151         * config/arm/predicates.md (const0_operand,
32152         cbranchqi4_comparison_operator): New predicates.
32153
32154 2010-04-16  Richard Guenther  <rguenther@suse.de>
32155
32156         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
32157         (dump_gimple_stmt): Likewise.
32158
32159 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32160
32161         * recog.h (struct recog_data): New field is_operator.
32162         (struct insn_operand_data): New field is_operator.
32163         * recog.c (extract_insn): Set recog_data.is_operator.
32164         * genoutput.c (output_operand_data): Emit code to set the
32165         is_operator field.
32166         * reload.c (find_reloads): Use it rather than testing for an
32167         empty constraint string.
32168
32169         PR target/41514
32170         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
32171         If the previous insn is a cbranchsi4_insn with the same arguments,
32172         omit the compare instruction.
32173
32174         * config/arm/arm.md (addsi3_cbranch): If destination is a high
32175         register, inputs must be low registers and we need a low register
32176         scratch.  Handle alternative 2 like alternative 3.
32177
32178 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32179
32180         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
32181         don't call get_addr on both.  If one expression is a VALUE and
32182         the other a REG, check VALUE's locs if the REG isn't among them.
32183
32184 2010-04-16  Christian Bruel  <christian.bruel@st.com>
32185
32186         * config/sh/sh.h (sh_frame_pointer_required): New function.
32187         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
32188         (flag_omit_frame_pointer) Set.
32189         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
32190         (rounded_frame_size): Adjust size with outgoing_args_size.
32191         (sh_set_return_address): Must return from stack pointer.
32192         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
32193         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
32194         (ACCUMULATE_OUTGOING_ARGS): Define.
32195         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
32196         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
32197
32198 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32199
32200         PR target/43471
32201         * config/sh/sh.c (sh_legitimize_reload_address): Use
32202         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
32203         Remove a unneeded check for offset_base.
32204
32205 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
32206
32207         * configure: Regenerated.
32208
32209 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32210
32211         * config/s390/s390.c (s390_call_save_register_used): Switch back
32212         to HARD_REGNO_NREGS.
32213
32214 2010-04-15  Richard Guenther  <rguenther@suse.de>
32215
32216         * alias.c (alias_set_subset_of): Handle alias-set zero
32217         child properly.
32218
32219 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
32220             Julian Brown  <julian@codesourcery.com>
32221
32222         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
32223         alternatives according to use of high and low regs.
32224         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
32225         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
32226         optimizing for size on Thumb-2.
32227
32228 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
32229
32230         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
32231
32232 2010-04-15  Richard Guenther  <rguenther@suse.de>
32233
32234         * tree-ssa-structalias.c (struct variable_info): Add
32235         is_fn_info flag.
32236         (new_var_info): Initialize it.
32237         (dump_constraints): Support printing last added constraints.
32238         (debug_constraints): Adjust.
32239         (dump_constraint_graph): Likewise.
32240         (make_heapvar_for): Check for NULL cfun.
32241         (get_function_part_constraint): New function.
32242         (get_fi_for_callee): Likewise.
32243         (find_func_aliases): Properly implement IPA PTA constraints.
32244         (process_ipa_clobber): New function.
32245         (find_func_clobbers): Likewise.
32246         (insert_into_field_list_sorted): Remove.
32247         (create_function_info_for): Properly allocate vars for IPA mode.
32248         Do not use insert_into_field_list_sorted.
32249         (create_variable_info_for): Properly generate constraints for
32250         global vars in IPA mode.
32251         (dump_solution_for_var): Always dump the solution.
32252         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
32253         (find_what_var_points_to): Adjust.
32254         (pt_solution_set): Change.
32255         (pt_solution_ior_into): New function.
32256         (pt_solution_empty_p): Export.
32257         (pt_solution_includes_global): Adjust.
32258         (pt_solution_includes_1): Likewise.
32259         (pt_solutions_intersect_1): Likewise.
32260         (dump_sa_points_to_info): Check some invariants.
32261         (solve_constraints): Move constraint dumping ...
32262         (compute_points_to_sets): ... here.
32263         (ipa_pta_execute): ... and here.
32264         (compute_may_aliases): Do not re-compute points-to info
32265         locally if IPA info is available.
32266         (ipa_escaped_pt): New global var.
32267         (ipa_pta_execute): Properly implement IPA PTA.
32268         * tree-into-ssa.c (dump_decl_set): Support dumping
32269         decls not in referenced-vars.
32270         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
32271         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
32272         (dump_points_to_solution): Likewise.
32273         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
32274         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
32275         (remap_gimple_stmt): Reset call clobber/use information if necessary.
32276         (copy_decl_to_var): Copy DECL_PT_UID.
32277         (copy_result_decl_to_var): Likewise.
32278         * tree.c (make_node_stat): Initialize DECL_PT_UID.
32279         (copy_node_stat): Copy it.
32280         * tree.h (DECL_PT_UID): New macro.
32281         (SET_DECL_PT_UID): Likewise.
32282         (DECL_PT_UID_SET_P): Likewise.
32283         (struct tree_decl_minimal): Add pt_uid member.
32284         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
32285         (pt_solution_empty_p): Declare.
32286         (pt_solution_set): Adjust.
32287         (ipa_escaped_pt): Declare.
32288         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
32289         * gimple-pretty-print.c (pp_points_to_solution): New function.
32290         (dump_gimple_call): Dump call clobber/use information.
32291         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
32292         * tree-pass.h (TDF_ALIAS): New dump option.
32293         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
32294         * doc/invoke.texi (-fipa-pta): Update documentation.
32295
32296 2010-04-15  Richard Guenther  <rguenther@suse.de>
32297
32298         * Makefile.in (OBJS-common): Add gimple-fold.o.
32299         (gimple-fold.o): New rule.
32300         * tree.h (maybe_fold_offset_to_reference,
32301         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
32302         prototypes ...
32303         * gimple.h: ... here.
32304         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
32305         may_propagate_address_into_dereference): Move prototypes ...
32306         * gimple.h: ... here.
32307         * tree-ssa-ccp.c (get_symbol_constant_value,
32308         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
32309         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
32310         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
32311         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
32312         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
32313         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
32314         gimplify_and_update_call_from_tree): Move ...
32315         * gimple-fold.c: ... here.  New file.
32316         (ccp_fold_builtin): Rename to ...
32317         (gimple_fold_builtin): ... this.
32318         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
32319
32320 2010-04-15  Richard Guenther  <rguenther@suse.de>
32321
32322         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
32323         fit_double_type, force_fit_type_double, add_double_with_sign,
32324         neg_double, mul_double_with_sign, lshift_double, rshift_double,
32325         lrotate_double, rrotate_double, div_and_round_double): Move ...
32326         * double-int.c: ... here.
32327         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
32328         add_double, neg_double, mul_double_with_sign, mul_double,
32329         lshift_double, rshift_double, lrotate_double, rrotate_double,
32330         div_and_round_double): Move prototypes ...
32331         * double-int.h: ... here.
32332
32333 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
32334
32335         PR target/43742
32336         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
32337         matching constraints to ensure inputs match the output.
32338
32339 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32340
32341         PR target/43742
32342         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
32343         in an input-only operand.
32344
32345 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
32346
32347         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
32348         (double_int_not, double_int_lshift, double_int_rshift): Declare.
32349         (double_int_negative_p): Convert to static inline function.
32350         * double-int.c (double_int_lshift, double_int_lshift): New functions.
32351         (double_int_negative_p): Remove.
32352         * tree.h (lshift_double, rshift_double):
32353         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
32354         * fold-const.c (fold_convert_const_int_from_real,
32355         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
32356         (lshift_double): Change type of arith argument to bool.
32357         (rshift_double): Change type of arith argument to bool. Correct
32358         comment.
32359         * expmed.c (mask_rtx, lshift_value): (Ditto.).
32360
32361 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
32362
32363         PR target/21803
32364         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
32365         at the start and end of the then/else blocks, and omit them from the
32366         conversion.
32367         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
32368         argument; all callers changed.  Pass zero to old_insns_match_p instead.
32369         (flow_find_head_matching_sequence): New function.
32370         (old_insns_match_p): Check REG_EH_REGION notes for calls.
32371         * basic-block.h (flow_find_cross_jump,
32372         flow_find_head_matching_sequence): Declare functions.
32373
32374 2010-04-14  Jason Merrill  <jason@redhat.com>
32375
32376         PR c++/36625
32377         * c-common.c (attribute_takes_identifier_p): New fn.
32378         * c-common.h: Declare it.
32379
32380 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32381
32382         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
32383         splitter condition.
32384         (*udivmod<mode>4): Ditto.
32385
32386 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32387
32388         * config/i386/i386.md (maxmin_int): Rename code attribute from
32389         maxminiprefix and update all users.
32390         (maxmin_float): Ditto from maxminfprefix.
32391         (logic): Ditto from logicprefix.
32392         (absneg_mnemonic): Ditto from absnegprefix.
32393         * config/i386/mmx.md: Update all users of maxminiprefix,
32394         maxminfprefix and logicprefix for rename.
32395         * config/i386/sse.md: Ditto.
32396         * config/i386/sync.md (sync_<code><mode>): Update for
32397         logicprefix rename.
32398
32399 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32400
32401         PR 42966
32402         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
32403         warnings converted to errors.
32404
32405 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32406
32407         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
32408         used insn_type variable.
32409         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
32410         to avoid set-but-not-used warning.
32411
32412 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32413
32414         * df-core.c (df_ref_debug): Change format string placeholder
32415         from 0x%x to %#x.
32416         * dwarf2asm.c (dw2_asm_output_data_raw,
32417         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
32418         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
32419         * dwarf2out.c (output_cfi, output_cfi_directive,
32420         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
32421         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
32422         Ditto.
32423         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
32424         * print-rtl.c (print_rtx): Ditto.
32425
32426 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
32427
32428         PR middle-end/42694
32429         * builtins.c (expand_builtin_pow_root): New function to expand pow
32430         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
32431         series of sqrt and cbrt calls under -ffast-math.
32432         (expand_builtin_pow): Call it.
32433
32434 2010-04-14  Michael Matz  <matz@suse.de>
32435
32436         PR tree-optimization/42963
32437         * tree-cfg.c (touched_switch_bbs): New static variable.
32438         (group_case_labels_stmt): New function broken out from ...
32439         (group_case_labels): ... here, use the above.
32440         (start_recording_case_labels): Allocate touched_switch_bbs.
32441         (end_recording_case_labels): Deallocate it, call
32442         group_case_labels_stmt.
32443         (gimple_redirect_edge_and_branch): Remember index of affected BB.
32444
32445 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32446
32447         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
32448         from insn template.
32449
32450 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32451
32452         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
32453
32454 2010-04-13  Jan Hubicka  <jh@suse.cz>
32455
32456         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
32457         of optimized out static functions.
32458         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
32459         cost computation.  Also sanity check for overflows.
32460         (update_caller_keys): Update cgraph_edge_badness call; properly
32461         update fibheap and sanity check that it is up to date.
32462         (add_new_edges_to_heap): Update cgraph_edge_badness.
32463         (cgraph_decide_inlining_of_small_function): Likewise;
32464         add sanity checking that badness in heap is up to date;
32465         improve dumping of reason; Update badness of calls to the
32466         offline copy of function currently inlined; dump badness
32467         of functions not inlined because of unit growth limits.
32468
32469 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32470
32471         PR middle-end/32628
32472         * c-common.c (pointer_int_sum): Disregard overflow that occured only
32473         because of sign-extension change when converting to sizetype here...
32474         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
32475
32476         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
32477         the folding to constants.  Remove redundant final conversion.
32478         (fold_binary) <associate>: Do not associate if the re-association of
32479         constants alone overflows.
32480         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
32481         to the end of the list.
32482         (multiple_of_p) <COND_EXPR>: New case.
32483
32484 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32485
32486         * opt-functions.awk (opt_sanitized_name): New.
32487         (opt_enum): New.
32488         * optc-gen.awk: Use it
32489         * opth-gen.awk: Use it.
32490
32491 2010-04-13  Martin Jambor  <mjambor@suse.cz>
32492
32493         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
32494         (sra_modify_assign): Delete stmts loading dead data even if racc has no
32495         children.  Call replace_uses_with_default_def_ssa_name to handle
32496         SSA_NAES on lhs.
32497
32498 2010-04-13  Michael Matz  <matz@suse.de>
32499
32500         PR middle-end/43730
32501         * builtins.c (expand_builtin_interclass_mathfn): Also create
32502         a register if the predicate doesn't match.
32503
32504 2010-04-13  Diego Novillo  <dnovillo@google.com>
32505
32506         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
32507         * c-pch.c: Include timevar.h.
32508         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
32509         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
32510         * ggc-common.c: Include timevar.h.
32511         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
32512         * timevar.def (TV_PCH_SAVE): Define.
32513         (TV_PCH_CPP_SAVE): Define.
32514         (TV_PCH_PTR_REALLOC): Define.
32515         (TV_PCH_PTR_SORT): Define.
32516         (TV_PCH_RESTORE): Define.
32517         (TV_PCH_CPP_RESTORE): Define.
32518
32519 2010-04-13  Michael Matz  <matz@suse.de>
32520
32521         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
32522         into MINUS_EXPRs.
32523         (can_reassociate_p): New function.
32524         (break_up_subtract_bb, reassociate_bb): Use it.
32525
32526 2010-04-13  Richard Guenther  <rguenther@suse.de>
32527
32528         PR bootstrap/43737
32529         * builtins.c (c_readstr): Fix assert.
32530
32531 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
32532
32533         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
32534         when generating cltd insn.
32535
32536         (*ashl<mode>3_1): Remove special handling for register operand 2.
32537         (*ashlsi3_1_zext): Ditto.
32538         (*ashlhi3_1): Ditto.
32539         (*ashlhi3_1_lea): Ditto.
32540         (*ashlqi3_1): Ditto.
32541         (*ashlqi3_1_lea): Ditto.
32542         (*<shiftrt_insn><mode>3_1): Ditto.
32543         (*<shiftrt_insn>si3_1_zext): Ditto.
32544         (*<shiftrt_insn>qi3_1_slp): Ditto.
32545         (*<rotate_insn><mode>3_1): Ditto.
32546         (*<rotate_insn>si3_1_zext): Ditto.
32547         (*<rotate_insn>qi3_1_slp): Ditto.
32548
32549 2010-04-13  Richard Guenther  <rguenther@suse.de>
32550
32551         * tree-ssa-structalias.c (callused_id): Remove.
32552         (call_stmt_vars): New.
32553         (get_call_vi): Likewise.
32554         (lookup_call_use_vi): Likewise.
32555         (lookup_call_clobber_vi): Likewise.
32556         (get_call_use_vi): Likewise.
32557         (get_call_clobber_vi): Likewise.
32558         (make_transitive_closure_constraints): Likewise.
32559         (handle_const_call): Adjust to do per-call call-used handling.
32560         (handle_pure_call): Likewise.
32561         (find_what_var_points_to): Remove general callused handling.
32562         (init_base_vars): Likewise.
32563         (init_alias_vars): Initialize call_stmt_vars.
32564         (compute_points_to_sets): Process call-used and call-clobbered
32565         vars for call statements.
32566         (delete_points_to_sets): Free call_stmt_vars.
32567
32568 2010-04-13  Richard Guenther  <rguenther@suse.de>
32569
32570         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
32571         Only add RW dependence for dependence distance zero.
32572         Adjust maximal vectorization factor according to dependences.
32573         Move alignment handling ...
32574         (vect_find_same_alignment_drs): ... here.  New function.
32575         (vect_analyze_data_ref_dependences): Adjust.
32576         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
32577         (vect_analyze_data_refs): Adjust minimal vectorization factor
32578         according to data references.
32579         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
32580         dependences before determining the vectorization factor.
32581         Analyze alignment after determining the vectorization factor.
32582         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
32583         dependences before alignment.
32584         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
32585         Adjust prototype.
32586         (vect_analyze_data_refs): Likewise.
32587         (MAX_VECTORIZATION_FACTOR): New define.
32588
32589 2010-04-13  Duncan Sands  <baldrick@free.fr>
32590
32591         * except.h (lang_eh_type_covers): Remove.
32592         * except.c (lang_eh_type_covers): Likewise.
32593
32594 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32595             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32596
32597         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
32598         * config/s390/s390.c: Replace UNTIS_PER_WORD with
32599         UNITS_PER_LONG where it is ABI relevant.
32600         (s390_return_addr_rtx): Likewise.
32601         (s390_back_chain_rtx): Likewise.
32602         (s390_frame_area): Likewise.
32603         (s390_frame_info): Likewise.
32604         (s390_initial_elimination_offset): Likewise.
32605         (save_gprs): Likewise.
32606         (s390_emit_prologue): Likewise.
32607         (s390_emit_epilogue): Likewise.
32608         (s390_function_arg_advance): Likewise.
32609         (s390_function_arg): Likewise.
32610         (s390_va_start): Likewise.
32611         (s390_gimplify_va_arg): Likewise.
32612         (s390_function_profiler): Likewise.
32613         (s390_optimize_prologue): Likewise.
32614         (s390_rtx_costs): Likewise.
32615         (s390_secondary_reload): Likewise.
32616         (s390_promote_function_mode): Likewise.
32617         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
32618         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
32619         registers available.
32620         (s390_unwind_word_mode): New function.
32621         (s390_function_value): Split 64 bit values into register pair if
32622         used as return value.
32623         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
32624         function call parameters.  Handle parallels.
32625         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
32626         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
32627         (DWARF_CIE_DATA_ALIGNMENT): New macro.
32628         (s390_expand_setmem): Remove unused variable src_addr.
32629         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
32630         deal with 64 bit registers.
32631         * config/s390/s390.h: Define __zarch__ predefined macro.
32632         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
32633         (UNITS_PER_LONG): New macro.
32634         * libjava/include/s390-signal.h: Define extended ucontext
32635         structure containing the upper halfs of the 64 bit registers.
32636
32637 2010-04-13  Simon Baldwin  <simonb@google.com>
32638
32639         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
32640
32641 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32642
32643         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
32644         rvalue on the RHS if the LHS is of a non-renamable type.
32645         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
32646
32647 2010-04-13  Matthias Klose  <doko@ubuntu.com>
32648
32649         * gcc.c (cc1_options): Handle -iplugindir before processing
32650         the cc1 spec. Only add -iplugindir once.
32651         (cpp_unique_options): Add -iplugindir option if -fplugin* options
32652         found.
32653         * common.opt (iplugindir): Remove `Separate' property, initialize.
32654         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
32655         option.
32656         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
32657         (distclean): Remove plugin dir.
32658         * doc/invoke.texi: Document -iplugindir.
32659
32660 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
32661
32662         * doc/plugins.texi (Loading Plugins): Document short
32663         -fplugin=foo option.
32664         (Plugin API): Mention default_plugin_dir_name function.
32665
32666         * gcc.c (find_file_spec_function): Add new declaration.
32667         (static_spec_func): Use it for "find-file".
32668         (find_file_spec_function): Add new function.
32669         (cc1_options): Add -iplugindir option if -fplugin* options found.
32670
32671         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
32672
32673         * plugin.c (add_new_plugin): Updated comment, and handle short
32674         plugin name.
32675         (default_plugin_dir_name): Added new function.
32676
32677         * common.opt (iplugindir): New option to set the plugin directory.
32678
32679 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
32680
32681         * config/i386/i386.md (any_rotate): New code iterator.
32682         (rotate_insn): New code attribute.
32683         (rotate): Ditto.
32684         (SWIM124): New mode iterator.
32685         (<rotate_insn>ti3): New expander.
32686         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
32687         any_rotate code iterator.
32688         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
32689         using any_rotate code iterator and SWIM124 mode iterator.
32690         (ix86_rotlti3): New insn_and_split pattern.
32691         (ix86_rotrti3): Ditto.
32692         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
32693         ix86_rotl{di,ti}3 patterns.
32694         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
32695         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
32696         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
32697         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
32698         code iterator and SWI mode iterator.
32699         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
32700         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
32701         code iterator.
32702         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
32703         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
32704         (bswap rotatert splitter): Add splitter.
32705         (bswap splitter): Macroize splitter using any_rotate code iterator.
32706         Add insn predicate to split only for TARGET_USE_XCHGB or when
32707         optimizing function for size.
32708
32709 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32710
32711         * config/pa/pa.c (emit_move_sequence): Remove use of
32712         deleted variable flag_argument_noalias.
32713
32714 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32715
32716         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
32717         configurations.
32718         Add to unsupported targets list.
32719         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
32720         sparc*-sun-solaris2.[567]* from target lists.
32721         * configure: Regenerate.
32722         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
32723         removal.
32724         Remove Solaris 7 patch references.
32725         (Specific, sparc-sun-solaris2.7): Removed.
32726         (sparc-sun-solaris2*): Update Solaris 7 example.
32727         (sparc64-*-solaris2*): Likewise.
32728
32729 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32730
32731         * config.build (alpha*-dec-osf4*): Remove.
32732         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
32733         of obsolete configurations.
32734         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
32735         support.
32736         * config/alpha/t-osf4: Renamed to ...
32737         * config/alpha/t-osf5: ... this.
32738         * config/alpha/osf.h: Renamed to ...
32739         * config/alpha/osf5.h: ... this.
32740         Merged old osf5.h contents.
32741         Update comments.
32742         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
32743         (EXTRA_SPECS): Removed.
32744         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
32745         reflect removal of Tru64 UNIX V4.0/V5.0 support.
32746         Document that.
32747
32748 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32749
32750         * doc/contrib.texi (Contributors, Rainer Orth): Update.
32751
32752 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
32753
32754         PR/43702
32755         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
32756         __thiscall convention.
32757
32758 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32759
32760         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
32761         orig_base.
32762         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
32763
32764 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32765
32766         * function.c (assign_parms_initialize_all): Add unused attribute
32767         to fntype.
32768
32769 2010-04-12  Richard Guenther  <rguenther@suse.de>
32770
32771         * gsstruct.def (GSS_CALL): New.
32772         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
32773         * gimple.h: Include tree-ssa-alias.h.
32774         (struct gimple_statement_call): New.
32775         (union gimple_statement_struct_d): Add gimple_call member.
32776         (gimple_call_reset_alias_info): Declare.
32777         (gimple_call_use_set): New function.
32778         (gimple_call_clobber_set): Likewise.
32779         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
32780         * gimple.c (gimple_call_reset_alias_info): New function.
32781         (gimple_build_call_1): Call it.
32782         * lto-streamer-in.c (input_gimple_stmt): Likewise.
32783         * tree-inline.c (remap_gimple_stmt): Likewise.
32784         (expand_call_inline): Remove callused handling.
32785         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
32786         * tree-dfa.c (dump_variable): Likewise.
32787         * tree-parloops.c (parallelize_loops): Likewise.
32788         * tree-ssa.c (init_tree_ssa): Likewise.
32789         (delete_tree_ssa): Likewise.
32790         * tree-flow-inline.h (is_call_used): Remove.
32791         * tree-flow.h (struct gimple_df): Remove callused member.
32792         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
32793         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
32794         (ref_maybe_used_by_call_p_1): Simplify.
32795         (call_may_clobber_ref_p_1): Likewise.
32796         * tree-ssa-structalias.c (compute_points_to_sets): Set
32797         the call stmt used and clobbered sets.
32798         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
32799         (find_tail_calls): Verify the tail call.
32800
32801 2010-04-12  Richard Guenther  <rguenther@suse.de>
32802
32803         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
32804         single-iteration always-inline inlining.
32805         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
32806         (cgraph_decide_inlining): Do not handle always-inline specially.
32807         (try_inline): Remove always-inline cycle detection special case.
32808         Do not recurse on always-inlines.
32809         (cgraph_early_inlining): Do not iterate if not optimizing.
32810         (cgraph_gate_early_inlining): remove.
32811         (pass_early_inline): Run unconditionally.
32812         (gate_cgraph_decide_inlining): New function.
32813         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
32814         not inlining or optimizing.
32815         (cgraph_decide_inlining_of_small_functions): Also consider
32816         always-inline functions.
32817         (cgraph_default_inline_p): Return true for nodes which should
32818         disregard inline limits.
32819         (estimate_function_body_sizes): Assume zero size and time for
32820         nodes which are marked as disregarding inline limits.
32821         (cgraph_decide_recursive_inlining): Do not perform recursive
32822         inlining on always-inline nodes.
32823
32824 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
32825
32826         PR bootstrap/43699
32827         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
32828         for exprs satisfying handled_component_p.
32829
32830 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
32831
32832         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
32833         non-constant aggregate elements.
32834
32835         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
32836         is a real initialization.
32837
32838 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
32839
32840         PR c/36774
32841         * c-decl.c (start_function): Move forward check for nested function.
32842
32843 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
32844
32845         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
32846         * config/sh/sh.c: Include reload.h.
32847         (sh_legitimize_reload_address): New.
32848         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
32849         sh_legitimize_reload_address.
32850
32851 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32852
32853         * config/sh/sh.md (*movqi_pop): New insn pattern.
32854         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
32855
32856 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32857
32858         * config/i386/i386.md (any_shiftrt): New code iterator.
32859         (shiftrt_insn): New code attribute.
32860         (shiftrt): Ditto.
32861         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
32862         using any_shiftrt code iterator.
32863         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
32864         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
32865         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
32866         pattern from corresponding peephole2 patterns.
32867         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
32868         using any_shiftrt code iterator.
32869         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
32870         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
32871         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
32872         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
32873         *{ashr,lshr}<mode>3_cmp_zext.
32874         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
32875
32876 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32877
32878         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
32879         scratch register.
32880         (*lshr<mode>3_cconly): Ditto.
32881
32882 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32883
32884         * config/i386/i386.md (lshr<mode>3): Macroize expander from
32885         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32886         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32887         pattern from *lshr{di,ti}3_1 and corresponding splitters using
32888         DWI mode iterator.
32889         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32890         from corresponding peephole2 patterns.
32891         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
32892         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
32893         and *lshrdi3_1_rex64 using SWI mode iterator.
32894         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
32895         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
32896         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
32897         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
32898         and *lshrdi3_cmp_rex64 using SWI mode iterator.
32899         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
32900         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
32901         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
32902         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
32903         SWI mode iterator.
32904
32905 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
32906
32907         * config/i386/i386.md (ashr<mode>3): Macroize expander from
32908         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32909         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32910         pattern from *ashr{di,ti}3_1 and corresponding splitters using
32911         DWI mode iterator.
32912         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32913         from corresponding peephole2 patterns.
32914         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
32915         (ashrsi3_cvt): Rename from ashrsi3_31.
32916         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
32917         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
32918         and x86_64_shift_adj_3 using SWI48 mode iterator.
32919         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
32920         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
32921         and *ashrdi3_1_rex64 using SWI mode iterator.
32922         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
32923         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
32924         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
32925         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
32926         and *ashrdi3_cmp_rex64 using SWI mode iterator.
32927         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
32928         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
32929         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
32930         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
32931         SWI mode iterator.
32932         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
32933         * config/i386/i386.c (ix86_split_ashr): Update for renamed
32934         x86_shift<mode>_adj_3 expanders.
32935
32936 2010-04-10  Wei Guozhi  <carrot@google.com>
32937
32938         PR target/42601
32939         * config/arm/arm.c (arm_pic_static_addr): New function.
32940         (legitimize_pic_address): Call arm_pic_static_addr when it detects
32941         a static symbol.
32942         (arm_output_addr_const_extra): Output expression for new pattern.
32943         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
32944
32945 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
32946
32947         * ira-costs.c (record_reg_classes): Ignore alternatives that are
32948         not enabled.
32949
32950         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
32951         * web.c: Include "insn-config.h" and "recog.h".
32952         (union_match_dups): New function.
32953         (web_main): Call it.
32954         (union_defs): Don't try to recognize match_dups.
32955
32956         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
32957         if doing so would replace the entire pattern.
32958
32959 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
32960
32961         PR target/43707
32962         PR target/43709
32963         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
32964         and splitter pattern.  Change splitter operand 1 predicate to
32965         nonmemory_operand.
32966
32967 2010-04-09  Martin Jambor  <mjambor@suse.cz>
32968
32969         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
32970         lattices are addresses of CONST_DECLs with the same initial value.
32971         (ipcp_print_all_lattices): Print values of CONST_DECLs.
32972         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
32973
32974 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
32975             Bernd Schmidt  <bernds@codesourcery.com>
32976
32977         * loop-invariant.c (replace_uses): New static function.
32978         (move_invariant_reg): Use it to ensure we can replace the uses.
32979
32980 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
32981
32982         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
32983         function template.
32984         (picochip_override_options): Enable section anchors only above -O1.
32985         (picochip_reorg): Fixed a couple of build warnings.
32986
32987 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32988
32989         * configure.ac (plugin -rdynamic test): Log result.
32990         * configure: Regenerate.
32991         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
32992         (RDYNAMIC_SPEC): Define.
32993         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
32994
32995 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32996
32997         * configure.ac: Determine Sun ld version numbers.
32998         (comdat_group): Restrict GNU ld version checks to gld.
32999         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
33000         (enable_comdat): Support --enable-comdat.
33001         * configure: Regenerate.
33002         * doc/install.texi (Configuration): Document --enable-comdat.
33003
33004 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33005
33006         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
33007         * config/sol2-gld.h: ... here.
33008         * config.gcc (sparc*-*-solaris2*): Reflect this.
33009         (i[34567]86-*-solaris2*): Use it.
33010
33011 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
33012
33013         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
33014         setup_clocks_p.
33015         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
33016
33017 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33018
33019         PR 42965
33020         * diagnostic.c (diagnostic_initialize): Initialize
33021         some_warnings_are_errors.
33022         (diagnostic_finish): New.
33023         (diagnostic_action_after_output): Call it before exiting.
33024         (diagnostic_report_diagnostic): Do not print message here. Set
33025         some_warnings_are_errors.
33026         * diagnostic.h (diagnostic_context): Delete
33027         issue_warnings_are_errors_message. Add some_warnings_are_errors.
33028         (diagnostic_finish): Declare.
33029         * toplev.c (toplev_main): Call it before exit.
33030
33031 2010-04-09  Jason Merrill  <jason@redhat.com>
33032
33033         PR c++/42623
33034         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
33035         for incomplete type.
33036
33037         PR c++/41788
33038         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
33039         based on a warning flag.
33040
33041 2010-04-09  Richard Guenther  <rguenther@suse.de>
33042
33043         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
33044
33045 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
33046
33047         PR bootstrap/43684
33048         * varasm.c (default_assemble_visibility): Wrap vars that are
33049         set, but unused, by targets without GAS.
33050         * config/rs6000/rs6000.c (paired_emit_vector_compare):
33051         Remove set, but unused, vars.
33052         (rs6000_legitimize_tls_address): Likewise.
33053         (altivec_expand_dst_builtin): Likewise.
33054         * config/darwin.c (machopic_classify_symbol): Likewise.
33055         (machopic_indirection_name): Likewise.
33056
33057 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33058
33059         * config/i386/i386.md (DWI): New mode iterator.
33060         (S): New mode attribute.
33061         (shift_operand): Ditto.
33062         (shift_immediate_operand): Ditto.
33063         (ashl_input_operand): Ditto.
33064         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
33065         using SDWIM mode iterator.
33066         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33067         pattern from *ashl{di,ti}3_1 and corresponding splitters using
33068         DWI mode iterator.
33069         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
33070         from corresponding peephole2 patterns.
33071         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
33072         and x86_64_shift_adj_1 using SWI48 mode iterator.
33073         (x86_shift<mode>_adj_2): Ditto.
33074         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
33075         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
33076         using SWI48 mode iterator.
33077         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
33078         *ashldi3_cmp_rex64 using SWI mode iterator.
33079         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
33080         *ashldi3_cconly_rex64 using SWI mode iterator.
33081         * config/i386/i386.c (ix86_split_ashl): Update for renamed
33082         x86_shift<mode>_adj_{1,2}.
33083         (ix86_split_ashr): Ditto.
33084         (ix86_split_lshr): Ditto.
33085
33086 2010-04-09  Richard Guenther  <rguenther@suse.de>
33087
33088         * target.h (builtin_conversion): Pass in input and output types.
33089         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
33090         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
33091         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
33092         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
33093
33094         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
33095         Handle AVX modes.
33096         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
33097
33098 2010-04-09  Richard Guenther  <rguenther@suse.de>
33099
33100         PR target/43152
33101         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
33102
33103 2010-04-09  Richard Guenther  <rguenther@suse.de>
33104
33105         * tree-vectorizer.h (struct _stmt_vec_info): Document
33106         that vectype is the type of the LHS.
33107         (supportable_widening_operation, supportable_narrowing_operation):
33108         Get both input and output vector types as arguments.
33109         (vect_is_simple_use_1): Declare.
33110         (get_same_sized_vectype): Likewise.
33111         * tree-vect-loop.c (vect_determine_vectorization_factor):
33112         Set STMT_VINFO_VECTYPE to the vector type of the def.
33113         (vectorizable_reduction): Adjust.
33114         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
33115         Adjust.  Specify the output vector type.
33116         (vect_pattern_recog_1): Adjust.
33117         * tree-vect-stmts.c (get_same_sized_vectype): New function.
33118         (vectorizable_call): Adjust.
33119         (vectorizable_conversion): Likewise.
33120         (vectorizable_operation): Likewise.
33121         (vectorizable_type_demotion): Likewise.
33122         (vectorizable_type_promotion): Likewise.
33123         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
33124         the def.
33125         (vect_is_simple_use_1): New function.
33126         (supportable_widening_operation): Get both input and output
33127         vector types.
33128         (supportable_narrowing_operation): Likewise.
33129         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
33130
33131 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
33132
33133         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
33134         __thiscall and _thiscall as predefined macros.
33135         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
33136         thiscall attribute handling.
33137         (ix86_comp_type_attributes): Likewise.
33138         (ix86_function_regparm): Likewise.
33139         (ix86_return_pops_args): Likewise.
33140         (init_cumulative_args): Likewise.
33141         (find_drap_reg): Likewise.
33142         (ix86_static_chain): Likewise.
33143         (x86_this_parameter): Likewise.
33144         (x86_output_mi_thunk): Likewise.
33145         (ix86_attribute_table): Add description for thiscall attribute.
33146         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
33147         * doc/extend.texi: Add documentation for thiscall.
33148
33149 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33150
33151         PR c++/28584
33152         * c.opt (Wint-to-pointer-cast): Available in C++.
33153         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
33154
33155 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
33156
33157         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
33158         * calls.c (expand_call): Pass the function type to aggregate_value_p.
33159         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
33160         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
33161         function type instead.  Reorder and simplify checks.
33162
33163         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
33164
33165 2010-04-08  Jing Yu  <jingyu@google.com>
33166             Zdenek Dvorak  <ook@ucw.cz>
33167
33168         PR tree-optimization/42720
33169         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
33170         loop unswitch conditions here from ...
33171         (tree_unswitch_single_loop): ... here.
33172
33173 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33174
33175         * tree-if-conv.c: Fix comments and simplify logic.
33176
33177 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33178
33179         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
33180         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
33181         (main_tree_if_conversion): Update call to tree_if_conversion.
33182
33183 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33184
33185         PR 42485
33186         * doc/invoke.texi (-b,-V): Delete.
33187         * doc/tm.texi: Do not mention -b.
33188         * gcc.c (display_help): Delete -b and -V.
33189         (process_command): Delete -b and -V.
33190         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
33191
33192 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
33193             Wolfgang Gellerich  <gellerich@de.ibm.com>
33194
33195         Implement target hook for loop unrolling
33196         * target.h (loop_unroll_adjust): Add a new target hook function.
33197         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
33198         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
33199         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
33200         (s390_loop_unroll_adjust): Implement the new target hook for s390.
33201         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
33202         target hook.
33203         (decide_unroll_stupid): Likewise.
33204
33205 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33206
33207         PR target/43643
33208         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
33209
33210 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33211
33212         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
33213         (Specific, *-*-solaris2*): Likewise.
33214         Don't prefer Sun as over GNU as.
33215
33216 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
33217
33218         * config/s390/s390.c (override_options): Adjust the z10 defaults
33219         for max-unroll-times, max-completely-peeled-insns
33220         and max-completely-peel-times.
33221
33222 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33223
33224         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
33225         instructions for z10.
33226         (s390_expand_setmem): Likewise.
33227         (s390_expand_cmpmem): Likewise.
33228
33229 2010-04-08  Richard Guenther  <rguenther@suse.de>
33230
33231         PR tree-optimization/43679
33232         * tree-ssa-pre.c (eliminate): Only propagate copies.
33233
33234 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33235
33236         PR bootstrap/43681
33237         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
33238         set but not used variable warning.
33239
33240 2010-04-08  Wei Guozhi  <carrot@google.com>
33241
33242         PR target/41653
33243         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
33244         (arm_size_rtx_costs): Call the new function when optimized for size.
33245
33246 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33247
33248         PR debug/43670
33249         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
33250         op0 is not a MEM, just return NULL instead of assertion
33251         failure.
33252         (discover_nonconstant_array_refs): Don't walk debug stmts.
33253
33254 2010-04-08  Doug Kwan  <dougkwan@google.com>
33255
33256         * configure.ac: Recognize gold and do not use its version number
33257         to test ld features.
33258         * configure: Regenerate.
33259
33260 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
33261
33262         PR middle-end/40815
33263         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
33264         (negate_value): Move code to push elements to broken_up_substracts ...
33265         (eliminate_plus_minus_pair): ... here.  Push operands that have no
33266         negative pair to plus_negates.
33267         (repropagate_negates, init_reassoc, fini_reassoc): Update.
33268
33269 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33270
33271         * doc/install.texi (Configuration): Move description of
33272         --enable-lto, --with-libelf*, --enable-gold from Java section to
33273         general section.
33274
33275         * doc/generic.texi (Working with declarations)
33276         (Function Properties, C and C++ Trees): Fix typos.
33277         * doc/sourcebuild.texi (Top Level): Likewise.
33278
33279 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33280
33281         PR c/18624
33282         * tree.h (DECL_READ_P): Define.
33283         (struct tree_decl_common): Add decl_read_flag.
33284         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
33285         a set but not used warning.
33286         (merge_decls): Merge DECL_READ_P flag.
33287         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
33288         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
33289         * c-common.c (handle_used_attribute, handle_unused_attribute):
33290         Likewise.
33291         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
33292         New prototypes.
33293         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
33294         New functions.
33295         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
33296         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
33297         c_parser_binary_expression, c_parser_cast_expression,
33298         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
33299         Call default_function_array_read_conversion instead of
33300         default_function_array_conversion where needed.
33301         (c_parser_unary_expression, c_parser_conditional_expression,
33302         c_parser_postfix_expression_after_primary, c_parser_initelt):
33303         Likewise.  Call mark_exp_read where needed.
33304         (c_parser_statement_after_labels, c_parser_asm_operands,
33305         c_parser_typeof_specifier, c_parser_sizeof_expression,
33306         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
33307         where needed.
33308         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
33309         New.
33310         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
33311         (warn_unused_but_set_parameter): Default to warn_unused
33312         && extra_warnings.
33313         * doc/invoke.texi: Document -Wunused-but-set-variable and
33314         -Wunused-but-set-parameter.
33315
33316         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
33317         used count variable.
33318         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
33319         when operandN variables aren't used in the body of the expander
33320         or splitter.
33321         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
33322         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
33323         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
33324         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
33325         FOR_EACH_IMM_USE_ON_STMT): Likewise.
33326         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
33327         * tree.c (PROCESS_ARG): Likewise.
33328
33329 2010-04-07  Simon Baldwin  <simonb@google.com>
33330
33331         * diagnostic.h (diagnostic_override_option_index): New macro to
33332         set a diagnostic's option_index.
33333         * c-tree.h (c_cpp_error): Add warning reason argument.
33334         * opts.c (_warning_as_error_callback): New.
33335         (register_warning_as_error_callback): Store callback for
33336         warnings enabled via enable_warning_as_error.
33337         (enable_warning_as_error): Call callback, minor code tidy.
33338         * opts.h (register_warning_as_error_callback): Declare.
33339         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
33340         response to -Werror=.
33341         (c_common_init_options): Register warning_as_error_callback in opts.c.
33342         * common.opt: Add -Wno-cpp option.
33343         * c-common.c (struct reason_option_codes_t): Map cpp warning
33344         reason codes to gcc option indexes.
33345         * (c_option_controlling_cpp_error): New function, lookup the gcc
33346         option index for a cpp warning reason code.
33347         * (c_cpp_error): Add warning reason argument, call
33348         c_option_controlling_cpp_error for diagnostic_override_option_index.
33349         * doc/invoke.texi: Document -Wno-cpp.
33350
33351 2010-04-07  Richard Guenther  <rguenther@suse.de>
33352
33353         * ipa-reference.c (mark_load): Use get_base_address.
33354         (mark_store): Likewise.
33355
33356         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
33357         inserting GIMPLE_NOPs into the IL.
33358         * tree-ssa-structalias.c (get_constraint_for_component_ref):
33359         Explicitly strip handled components and indirect references.
33360
33361         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
33362         folding address expressions.
33363         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
33364         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
33365         operand_equal_p to compare decls.
33366         (ptr_deref_may_alias_decl_p): Likewise.
33367         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
33368         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
33369         Handle reversed comparison ops.
33370         * tree-sra.c (asm_visit_addr): Use get_base_address.
33371         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
33372         * ipa-reference.c (mark_address): Use get_base_address.
33373
33374 2010-04-07  Richard Guenther  <rguenther@suse.de>
33375
33376         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
33377         Propagate constants everywhere.
33378
33379 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33380
33381         PR debug/43516
33382         * tree.c (MAX_INT_CACHED_PREC): Define.
33383         (nonstandard_integer_type_cache): New array.
33384         (build_nonstandard_integer_type): Cache results for precision
33385         <= MAX_INT_CACHED_PREC.
33386
33387 2010-04-07  Richard Guenther  <rguenther@suse.de>
33388
33389         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
33390         -fargument-noalias-global, -fargument-noalias-anything): Remove.
33391         * common.opt: Likewise.
33392         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
33393         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
33394         (nonoverlapping_memrefs_p): Likewise.
33395         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
33396         * opts.c (common_handle_option): Handle OPT_fargument_alias,
33397         OPT_fargument_noalias, OPT_fargument_noalias_anything and
33398         OPT_fargument_noalias_global for backward compatibility.
33399
33400 2010-04-07  Richard Guenther  <rguenther@suse.de>
33401
33402         PR tree-optimization/43270
33403         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
33404         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
33405         * tree-ssa-pre.c (phi_translate_1): Adjust.
33406         (fully_constant_expression): Split out vn_reference handling to ...
33407         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
33408         Fold reads from constant strings.
33409         (vn_reference_lookup): Handle fully constant references.
33410         (vn_reference_lookup_pieces): Likewise.
33411         * Makefile.in (expmed.o-warn): Add -Wno-error.
33412
33413 2010-04-07  Martin Jambor  <mjambor@suse.cz>
33414
33415         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
33416
33417 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
33418
33419         PR driver/41594
33420         * gcc.c: Add -static-libstdc++ to list of recognized options.
33421
33422 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33423
33424         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
33425
33426 2010-04-07  Richard Guenther  <rguenther@suse.de>
33427
33428         PR middle-end/42617
33429         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
33430         bases build simple mem attributes to retain points-to information.
33431
33432 2010-04-07  Richard Guenther  <rguenther@suse.de>
33433
33434         PR middle-end/42617
33435         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
33436         preserve points-to related information.
33437
33438 2010-04-07  Richard Guenther  <rguenther@suse.de>
33439
33440         PR middle-end/42617
33441         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
33442         discard plain indirect references.
33443         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
33444         * tree.c (tree_nop_conversion): Likewise.
33445
33446 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
33447
33448         PR debug/43628
33449         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
33450
33451 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
33452
33453         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
33454         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
33455
33456 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33457
33458         * tree-if-conv.c: Fix indentation and comments.
33459
33460 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33461
33462         * tree-if-conv.c: Sort static functions in topological order.
33463
33464 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33465
33466         * tree-if-conv.c: Fix indentation and comments.
33467
33468 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33469
33470         PR middle-end/43519
33471         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
33472         lang_hooks.types.type_for_size instead of
33473         build_nonstandard_integer_type.
33474         When converting an unsigned type to signed, double its precision.
33475         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
33476         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
33477         (graphite_create_new_loop_guard): When ub + 1 wraps around,
33478         use lb <= ub.
33479
33480 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33481
33482         PR middle-end/43519
33483         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
33484         POINTER_PLUS_EXPR for pointer types.
33485
33486 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33487
33488         PR middle-end/43519
33489         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
33490         * graphite-clast-to-gimple.c: Include langhooks.h.
33491         (max_signed_precision_type): New.
33492         (max_precision_type): Takes two types as arguments.
33493         (precision_for_value): New.
33494         (precision_for_interval): New.
33495         (gcc_type_for_interval): New.
33496         (gcc_type_for_value): New.
33497         (gcc_type_for_clast_term): New.
33498         (gcc_type_for_clast_red): New.
33499         (gcc_type_for_clast_bin): New.
33500         (gcc_type_for_clast_expr): Split up into several functions.
33501         (gcc_type_for_clast_eq): Rewritten.
33502         (compute_bounds_for_level): New.
33503         (compute_type_for_level_1): New.
33504         (compute_type_for_level): New.
33505         (gcc_type_for_cloog_iv): Removed.
33506         (gcc_type_for_iv_of_clast_loop): Rewritten.
33507         (graphite_create_new_loop): Compute the lower and upper bound types
33508         with gcc_type_for_clast_expr.
33509         (graphite_create_new_loop_guard): Same.
33510         (find_cloog_iv_in_expr): Removed.
33511         (compute_cloog_iv_types_1): Removed.
33512         (compute_cloog_iv_types): Removed.
33513         (gloog): Do not call compute_cloog_iv_types.
33514         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
33515         GBB_CLOOG_IV_TYPES.
33516         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
33517         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
33518         (GBB_CLOOG_IV_TYPES): Removed.
33519
33520 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33521
33522         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
33523         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
33524         (detect_commutative_reduction): Same.
33525
33526 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33527
33528         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
33529         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
33530         argument.
33531         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
33532         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
33533         (rewrite_commutative_reductions_out_of_ssa): Same.
33534         * passes.c (execute_function_todo): Call verify_ssa for every pass
33535         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
33536         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
33537         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
33538         with an extra argument.
33539         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
33540         verify_ssa only when the extra argument is true.
33541         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
33542         with an extra argument.
33543         (tree_transform_and_unroll_loop): Same.
33544
33545 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33546
33547         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
33548         for all the passes of the LNO having LOOP_CLOSED_SSA.
33549         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
33550         * tree-loop-distribution.c (pass_loop_distribution): Same.
33551         * tree-pass.h (TODO_verify_loops): Removed.
33552         * tree-ssa-loop.c (pass_tree_loop_init): Same.
33553         (pass_lim): Same.
33554         (pass_tree_unswitch): Same.
33555         (pass_predcom): Same.
33556         (pass_vectorize): Same.
33557         (pass_linear_transform): Same.
33558         (pass_graphite_transforms): Same.
33559         (pass_iv_canon): Same.
33560         (pass_complete_unroll): Same.
33561         (pass_complete_unrolli): Same.
33562         (pass_parallelize_loops): Same.
33563         (pass_loop_prefetch): Same.
33564         (pass_iv_optimize): Same.
33565
33566 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
33567
33568         PR middle-end/32824
33569         * passes.c (init_optimization_passes): Move pass_lim before
33570         pass_copy_prop and pass_dce_loop.
33571
33572 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33573
33574         PR target/43667
33575         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
33576         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
33577         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
33578         MULTI_* defines for 4 argument vpermil2p* builtins.
33579
33580 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33581
33582         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
33583         * config/i386/i386.c (x86_maybe_negate_const_int): New.
33584         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
33585         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
33586         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
33587         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
33588         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
33589         Use x86_maybe_negate_const_int to output insn mnemonic.
33590         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
33591         check from instruction predicate.  Update comments.
33592         * config/i386/sync.md (sync_add<mode>): Use
33593         x86_maybe_negate_const_int to output insn mnemonic.
33594
33595 2010-04-06  Jan Hubicka  <jh@suse.cz>
33596
33597         PR tree-optimization/42906
33598         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
33599         IGNORE_SELF argument.  Set visited_control_parents for fully
33600         processed BBs.
33601         (find_obviously_necessary_stmts): Update call of
33602         mark_control_dependent_edges_necessary.
33603         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
33604
33605 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33606
33607         * config/i386/i386.md: Remove comment about 'e' and 'E'
33608         operand modifier.
33609
33610 2010-04-06  Richard Guenther  <rguenther@suse.de>
33611
33612         PR tree-optimization/43627
33613         * tree-vrp.c (extract_range_from_unary_expr): Widenings
33614         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
33615         not varying.
33616
33617 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33618
33619         * BASE-VER: Change to 4.6.0.
33620
33621         PR target/43638
33622         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
33623         handling.
33624
33625 2010-04-06  Richard Guenther  <rguenther@suse.de>
33626
33627         PR middle-end/43661
33628         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
33629
33630 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33631
33632         * doc/invoke.texi (Optimize Options): Document that LTO
33633         won't remove object access purely due to incompatible
33634         declarations.
33635
33636 2010-04-04  Matthias Klose  <doko@ubuntu.com>
33637
33638         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
33639         Initialize variable.
33640
33641 2010-04-03  Richard Guenther  <rguenther@suse.de>
33642
33643         PR middle-end/42509
33644         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
33645         require a non-NULL MEM_OFFSET.
33646
33647 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
33648
33649         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
33650         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
33651         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
33652         config/alpha/predicates.md, config/arm/arm.md,
33653         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
33654         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
33655         config/darwin9.h, config/darwin.c, config/darwin.h,
33656         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
33657         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
33658         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
33659         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
33660         config/mips/mips.md, config/mn10300/mn10300.c,
33661         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
33662         config/rs6000/aix.h, config/rs6000/dfp.md,
33663         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
33664         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
33665         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
33666         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
33667         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
33668         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
33669         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
33670         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
33671         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
33672         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
33673         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
33674         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
33675         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
33676         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
33677         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
33678         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
33679         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
33680         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
33681         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
33682         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
33683         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
33684         opt-functions.awk, opth-gen.awk, params.def, passes.c,
33685         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
33686         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
33687         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
33688         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
33689         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
33690         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
33691         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
33692         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
33693         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
33694         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
33695         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
33696         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
33697         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
33698         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
33699
33700 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33701
33702         PR other/43620
33703         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
33704         * aclocal.m4: Regenerate.
33705
33706 2010-04-02  Richard Guenther  <rguenther@suse.de>
33707
33708         PR tree-optimization/43629
33709         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
33710         if we have seen a constant value.
33711
33712 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
33713
33714         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
33715
33716 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
33717
33718         PR target/43469
33719         * arm.c (legitimize_tls_address): Adjust call to
33720         gen_tls_load_dot_plus_four.
33721         (arm_note_pic_base): New function.
33722         (arm_cannot_copy_insn_p): Use it.
33723         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
33724         constraint.
33725
33726 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33727
33728         PR bootstrap/43531
33729
33730         Revert:
33731         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33732
33733         * Makefile.in ($(out_object_file)): Depend on
33734         gt-$(basename $(notdir $(out_file))).h.
33735
33736 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
33737
33738         * config.gcc (lm32-*-rtems*): Add t-lm32.
33739
33740 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
33741
33742         * config.gcc: Add lm32-*-rtems*.
33743         * config/lm32/rtems.h: New file.
33744
33745 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
33746
33747         PR target/42609
33748         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
33749
33750 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
33751
33752         * dwarf2out.c (output_compilation_unit_header): For
33753         -gdwarf-4 use version 4 instead of version 3.
33754         (output_line_info): For version 4 and above emit additional
33755         maximum ops per insn header field.
33756         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
33757
33758         * dwarf2out.c (is_c_family, is_java): Remove.
33759         (lower_bound_default): New function.
33760         (add_bound_info, gen_descr_array_type_die): Use it.
33761
33762 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
33763
33764         PR debug/43325
33765         * dwarf2out.c (gen_variable_die): Allow debug info for variable
33766         re-declaration when it happens in a function.
33767
33768 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
33769
33770         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
33771         (cgraph_remove_function_insertion_hook): Same.
33772         (cgraph_call_function_insertion_hooks): Same.
33773
33774 2010-04-01  Richard Guenther  <rguenther@suse.de>
33775
33776         PR middle-end/43614
33777         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
33778         and TREE_THIS_VOLATILE.
33779         (copy_ref_info): Likewise.
33780         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
33781         * tree.c (build6_stat): Ignore side-effects of all but arg5
33782         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
33783         TARGET_MEM_REF.
33784
33785 2010-04-01  Richard Guenther  <rguenther@suse.de>
33786
33787         PR tree-optimization/43607
33788         * ipa-type-escape.c (check_call): Do not access non-existing
33789         arguments.
33790
33791 2010-04-01  Richard Guenther  <rguenther@suse.de>
33792
33793         PR middle-end/43602
33794         Revert
33795         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
33796                     Jack Howarth  <howarth@bromo.med.uc.edu>
33797
33798         * tree-profile.c (tree_init_ic_make_global_vars): Make static
33799         variables TLS.
33800
33801 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33802
33803         * doc/install.texi (Prerequisites): Document libelf usability on
33804         IRIX 5/6 and Solaris 2.
33805         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
33806         Update GNU as, GNU ld requirements.
33807         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
33808         Document Sun Studio compiler download.
33809         Update and simplify as, ld recommendations.
33810         (Specific, *-*-solaris2.7): Note obsoletion, removal.
33811
33812 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33813
33814         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
33815         with_tune_32 to pentium4.
33816
33817 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
33818
33819         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
33820
33821 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33822
33823         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
33824         obsoletion, removal.
33825         Update IDO URL.
33826         Document GNU as requirement.
33827         Update configure requirements.
33828         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
33829         Recomment IRIX 6.5.18+.
33830         Document IDF/IDL requirement.
33831         Document GNU as requirement.
33832         Document GNU ld bootstrap failure.
33833         Remove freeware.sgi.com reference.
33834
33835 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33836
33837         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
33838         UNIX V4.0, V5.0 obsoletion, removal.
33839         Remove --with-gc=simple reference.
33840         Update VM requirements during bootstrap.
33841         Remove -oldas bootstrap description.
33842         Update binutils reference.
33843         Remove comparison failure note.
33844
33845 2010-03-31  Richard Guenther  <rguenther@suse.de>
33846             Zdenek Dvorak  <ook@ucw.cz>
33847             Sebastian Pop  <sebastian.pop@amd.com>
33848
33849         PR middle-end/43464
33850         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
33851         with multiple arguments.
33852         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
33853
33854 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33855
33856         * graphite-dependences.c (print_pddr): Call print_pdr with an
33857         extra argument.
33858         * graphite-poly.c (debug_pdr): Add an extra argument for the
33859         verbosity level.
33860         (print_pdr): Same.
33861         (print_pbb_domain): Same.
33862         (print_pbb): Same.
33863         (print_scop_context): Same.
33864         (print_scop): Same.
33865         (print_cloog): Same.
33866         (debug_pbb_domain): Same.
33867         (debug_pbb): Same.
33868         (print_pdrs): Same.
33869         (debug_pdrs): Same.
33870         (debug_scop_context): Same.
33871         (debug_scop): Same.
33872         (debug_cloog): Same.
33873         (print_scop_params): Same.
33874         (debug_scop_params): Same.
33875         (print_iteration_domain): Same.
33876         (print_iteration_domains): Same.
33877         (debug_iteration_domain): Same.
33878         (debug_iteration_domains): Same.
33879         (print_scattering_function): Same.
33880         (print_scattering_functions): Same.
33881         (debug_scattering_function): Same.
33882         (debug_scattering_functions): Same.
33883         * graphite-poly.h (debug_pdr): Update declaration.
33884         (print_pdr): Same.
33885         (print_pbb_domain): Same.
33886         (print_pbb): Same.
33887         (print_scop_context): Same.
33888         (print_scop): Same.
33889         (print_cloog): Same.
33890         (debug_pbb_domain): Same.
33891         (debug_pbb): Same.
33892         (print_pdrs): Same.
33893         (debug_pdrs): Same.
33894         (debug_scop_context): Same.
33895         (debug_scop): Same.
33896         (debug_cloog): Same.
33897         (print_scop_params): Same.
33898         (debug_scop_params): Same.
33899         (print_iteration_domain): Same.
33900         (print_iteration_domains): Same.
33901         (debug_iteration_domain): Same.
33902         (debug_iteration_domains): Same.
33903         (print_scattering_function): Same.
33904         (print_scattering_functions): Same.
33905         (debug_scattering_function): Same.
33906         (debug_scattering_functions): Same.
33907
33908 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33909
33910         * graphite-poly.c (print_scattering_function_1): New.
33911         (print_scattering_function): Call it.
33912         (print_scop_params): Remove spaces at the end of lines.
33913         (print_cloog): New.
33914         (debug_cloog): New.
33915         * graphite-poly.h (print_cloog): Declared.
33916         (debug_cloog): Declared.
33917
33918 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33919
33920         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
33921         in loop->header.
33922         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
33923         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
33924         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
33925         to switch between adding the IV bump in loop->latch or in loop->header.
33926
33927 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33928
33929         * graphite-poly.c (print_scattering_function): Pretty print following
33930         the scoplib format.
33931         (print_pdr): Same.
33932         (print_pbb_domain): Same.
33933         (dump_gbb_cases): Same.
33934         (dump_gbb_conditions): Same.
33935         (print_pdrs): Same.
33936         (print_pbb): Same.
33937         (print_scop_params): Same.
33938         (print_scop_context): Same.
33939         (print_scop): Same.
33940         (print_pbb_body): New.
33941         (lst_indent_to): New.
33942         (print_lst): Start new lines with a #.
33943         * graphite-poly.h (pbb_bb): New.
33944         (pbb_index): Use pbb_bb.
33945         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
33946         disjuncts.
33947         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
33948
33949 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
33950
33951         * dwarf2out.c (size_of_die): For -gdwarf-4 use
33952         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
33953         and 0 instead of 1 for dw_val_class_flag.
33954         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
33955         dw_val_class_range_list, dw_val_class_loc_list,
33956         dw_val_class_lineptr and dw_val_class_macptr, use
33957         DW_FORM_flag_present for dw_val_class_flag and
33958         DW_FORM_exprloc for dw_val_class_loc.
33959         (output_die): For -gdwarf-4 print dw_val_class_loc
33960         size as uleb128 instead of 1 or 2 bytes and don't print
33961         anything for dw_val_class_flag.
33962
33963         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
33964         instead of cselib_lookup following by tweaking locs->setting_insn.
33965
33966         PR bootstrap/43596
33967         * cselib.c (cselib_process_insn): Clear cselib_current_insn
33968         even before returning from label, setjmp call or volatile asm
33969         handling.
33970
33971 2010-03-31  Richard Guenther  <rguenther@suse.de>
33972
33973         PR middle-end/43600
33974         * cgraphunit.c (cgraph_output_in_order): Do not allocate
33975         temporary data on stack.
33976
33977 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33978
33979         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
33980         (PUSHSECTION_ASM_OP): Remove.
33981         (POPSECTION_ASM_OP): Remove.
33982         (PUSHSECTION_FORMAT): Remove.
33983         * config/sol2.h (PUSHSECTION_FORMAT): Define.
33984         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
33985         * config/sol2.c (solaris_output_init_fini): Use it.
33986
33987 2010-03-31  Jie Zhang  <jie@codesourcery.com>
33988
33989         PR 43574
33990         * opt-functions.awk (var_type_struct): Use signed char type
33991         for simple variables.
33992
33993 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33994
33995         * config/sol2.c: Include output.h.
33996         (solaris_assemble_visibility): New function.
33997         * config/t-sol2 (sol2.o): Add output.h dependency.
33998         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
33999         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
34000         Redefine.
34001
34002 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
34003
34004         PR target/43580
34005         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
34006         V2SImode or XFmode on PRE_DEC.
34007
34008         PR debug/43557
34009         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
34010         BLKmode.
34011
34012 2010-03-31  Jie Zhang  <jie@codesourcery.com>
34013
34014         PR 43562
34015         * reload.h (caller_save_initialized_p): Declare.
34016         * toplev.c (backend_init_target): Don't call
34017         init_caller_save but set caller_save_initialized_p to false.
34018         * caller-save.c (caller_save_initialized_p): Define.
34019         (init_caller_save): Check caller_save_initialized_p.
34020         * ira.c (ira): Call init_caller_save if flag_caller_saves.
34021
34022 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34023
34024         PR target/39048
34025         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
34026         and soft-fp/t-softfp to tmake_file.
34027         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
34028         (LIBGCC2_TF_CEXT): Define.
34029         (TF_SIZE): Define.
34030
34031 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
34032
34033         PR debug/42977
34034         * cselib.c (n_useless_values): Document handling of debug locs.
34035         (n_useless_debug_values, n_debug_values): New variables.
34036         (new_elt_loc_list): Don't add to debug values, keep count.
34037         (promote_debug_loc): New.
34038         (cselib_reset_table): Zero new variables.
34039         (entry_and_rtx_equal_p): Promote debug locs.
34040         (discard_useless_locs): Increment n_useless_debug_values for
34041         debug values.
34042         (remove_useless_values): Adjust n_useless_values and n_debug_values
34043         with n_useless_debug_values.
34044         (add_mem_for_addr): Promote debug locs.
34045         (cselib_lookup_mem): Likewise.
34046         (cselib_lookup_addr): Renamed to...
34047         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
34048         (cselib_log_lookup): ... this.  Turn into...
34049         (cselib_lookup_addr): ... new wrapper.
34050         (cselib_lookup_from_insn): New.
34051         (cselib_invalidate_regno): Increment n_useless_debug_values for
34052         debug values.
34053         (cselib_invalidate_mem): Likewise.
34054         (cselib_process_insn): Take n_deleted and n_debug_values into
34055         account to guard remove_useless_value call.
34056         (cselib_finish): Zero n_useless_debug_values.
34057         * cselib.h (cselib_lookup_from_insn): Declare.
34058         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
34059         (sched_analyze_2): Likewise.
34060
34061 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
34062
34063         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
34064         functions.
34065         (adjust_mems): Replace narrowing SUBREG of expression containing
34066         just PLUS, MINUS, MULT and ASHIFT of registers and constants
34067         with operations in the narrower mode.
34068
34069         PR debug/43593
34070         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
34071         regs_invalidated_by_call instead all call_used_reg_set registers.
34072
34073 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
34074
34075         PR middle-end/43430
34076         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
34077         pointer comparisons with types_compatible_p.
34078         * tree-vect-stmts.c (vectorizable_call): Same.
34079         (vectorizable_condition): Same.
34080
34081 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34082
34083         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
34084         stack check if the mask would be zero.
34085
34086 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34087             Jack Howarth  <howarth@bromo.med.uc.edu>
34088
34089         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34090         variables TLS.
34091
34092 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
34093
34094         PR other/25232
34095         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
34096         and __unordtf2.
34097         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
34098         Include ___unordxf2 and ___unordtf2.
34099         * config/i386/libgcc-glibc.ver: Do not define inheritance from
34100         GCC_4.4.0 here.
34101
34102 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
34103
34104         * config/lm32/t-lm32: New file.
34105         * config.gcc: Use the above file when targetting lm32.
34106
34107 2010-03-28  Duncan Sands  <baldrick@free.fr>
34108
34109         * Makefile.in (PLUGIN_HEADERS): Add except.h.
34110
34111 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34112
34113         PR middle-end/43431
34114         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
34115         Improve vectorization cost model diagnostic.
34116
34117 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34118
34119         PR middle-end/43436
34120         * tree-vect-data-refs.c (vect_analyze_data_refs): When
34121         compute_data_dependences_for_loop returns false, early exit
34122         and output an extra diagnostic for the failed data reference
34123         analysis.
34124
34125 2010-03-29  Richard Guenther  <rguenther@suse.de>
34126
34127         PR tree-optimization/43560
34128         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
34129         (can_sm_ref_p): Treat stores to readonly locations as trapping.
34130
34131 2010-03-29  Jie Zhang  <jie@codesourcery.com>
34132
34133         PR 43564
34134         * toplev.c (process_options): Set optimization_default_node
34135         and optimization_current_node.
34136         * opts.c (decode_options): Don't set optimization_default_node
34137         and optimization_current_node.
34138
34139 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
34140
34141         * config/rtems.h: Abandon -qrtems_debug.
34142
34143 2010-03-28  Jan Hubicka  <jh@suse.cz>
34144
34145         PR tree-optimization/43505
34146         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
34147         map should not be copied.
34148
34149 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34150
34151         PR middle-end/41674
34152         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
34153         cdtors, set DECL_PRESERVE_P.
34154         * ipa.c (cgraph_externally_visible_p): Return true if declaration
34155         should be preseved.
34156
34157 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
34158
34159         PR tree-optimization/43528
34160         * stor-layout.c (place_field): Check that constant fits into
34161         unsigned HWI when skipping calculation of MS bitfield layout.
34162
34163 2010-03-27  Jan Hubicka  <jh@suse.cz>
34164
34165         PR middle-end/43391
34166         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
34167         notice_global_symbol work.
34168
34169 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
34170
34171         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
34172         instead of dwarf2out_decl.
34173         (struct var_loc_node): Remove section_label field.
34174         (dwarf2out_function_decl): New function.
34175         (dwarf2out_var_location): Don't set section_label field.
34176         (dwarf2out_begin_function): Don't empty decl_loc_table here.
34177
34178 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
34179
34180         PR tree-optimization/43544
34181         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
34182         First argument for builtin vectorized function hook is now a
34183         tree to be able to distinguish between machine specific and
34184         standard builtins.
34185         * targhooks.c (default_builtin_vectorized_function): Ditto.
34186         * targhooks.h (default_builtin_vectorized_function): Ditto.
34187         * target.h (struct gcc_target): Ditto.
34188         * tree-vect-stmts.c (vectorizable_function): Ditto.
34189         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
34190         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
34191         Ditto.
34192
34193 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
34194
34195         PR c/43381
34196         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
34197         nested binding iff it is a FUNCTION_DECL.
34198         (store_parm_decls_newstyle): Pass nested=true to bind for
34199         FUNCTION_DECLs amongst parameters.
34200
34201 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34202
34203         * var-tracking.c (vt_expand_loc_callback): Don't run
34204         cselib_expand_value_rtx_cb in dummy mode if
34205         cselib_dummy_expand_value_rtx_cb returned false.
34206
34207         * var-tracking.c (emit_note_insn_var_location): For one part
34208         notes with offset 0, don't add EXPR_LIST around the location.
34209         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
34210         add_location_or_const_value_attribute): Adjust for that change.
34211
34212         PR debug/43540
34213         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
34214         into first operand and location into second.
34215         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
34216         dw_cfi_oprnd_loc for DW_CFA_expression.
34217         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
34218         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
34219         assume first argument is regnum and second argument is location.
34220
34221 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34222
34223         PR target/42113
34224         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
34225         of scratch register to DImode.  Split to DImode comparison operator.
34226         Use SImode subreg of scratch register in the multiplication.
34227         (*cmp_sadd_sidi): Ditto.
34228         (*cmp_ssub_si): Ditto.
34229         (*cmp_ssub_sidi): Ditto.
34230
34231 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34232
34233         PR target/43524
34234         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
34235         Remove invalid assert and wrong comment.
34236
34237 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34238
34239         PR debug/43516
34240         * flags.h (final_insns_dump_p): New extern.
34241         * final.c (final_insns_dump_p): New variable.
34242         (rest_of_clean_state): Set it before -fdump-final-insns=
34243         dumping, clear afterwards.
34244         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
34245         MEM_ALIAS_SET on MEMs.
34246
34247 2010-03-26  David S. Miller  <davem@davemloft.net>
34248
34249         * configure.ac: Fix sparc GOTDATA_OP bug check.
34250         * configure: Rebuild.
34251
34252 2010-03-26  Alan Modra  <amodra@gmail.com>
34253
34254         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
34255
34256 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34257
34258         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
34259         TLS_SECTION_ASM_FLAG.
34260
34261 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
34262
34263         PR bootstrap/43511
34264         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
34265         Clear first_function_block_is_cold.
34266
34267         PR c/43385
34268         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
34269         argument if the argument is truth_value_p.
34270
34271 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
34272
34273         * config/rs6000/constraints.md: Update copyright year for my changes.
34274
34275         PR target/43484
34276         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
34277         used in reg+reg addressing, swap registers.
34278
34279 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34280
34281         PR debug/43293
34282         * target.h (struct gcc_target): Add code_end hook.
34283         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
34284         if not yet defined.
34285         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
34286         * toplev.c (compile_file): Call targetm.asm_out.code_end
34287         hook before unwind info/debug info output.
34288         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
34289         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
34290         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34291         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
34292         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34293         * config/i386/i386.c (ix86_file_end): Renamed to...
34294         (ix86_code_end): ... this.  Make static.  Don't call
34295         file_end_indicate_exec_stack.  Emit unwind info using
34296         final_start_function/final_end_function.
34297         (darwin_x86_file_end): Remove.
34298         (TARGET_ASM_CODE_END): Define.
34299         * config/i386/i386.h (TARGET_ASM_FILE_END,
34300         NEED_INDICATE_EXEC_STACK): Don't define.
34301         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
34302         (TARGET_ASM_FILE_END): Define to darwin_file_end.
34303         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
34304         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
34305
34306         PR target/43498
34307         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
34308         at the beginning and final_end_function at the end.
34309         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
34310
34311 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34312
34313         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
34314         and Sun as TLS syntax.
34315         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
34316         * configure: Regenerate.
34317         * config.in: Regenerate.
34318         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
34319         (default_elf_asm_named_section): Use it.
34320         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
34321         (i386_output_dwarf_dtprel): Likewise.
34322         (output_addr_const_extra): Likewise.
34323         (output_pic_addr_const): Lowercase @GOTTPOFF.
34324         (output_addr_const_extra): Likewise.
34325         (output_pic_addr_const): Lowercase @GOTNTPOFF.
34326         (output_addr_const_extra): Likewise.
34327         (output_pic_addr_const): Lowercase @INDNTPOFF.
34328         (output_addr_const_extra): Likewise.
34329         (output_pic_addr_const): Lowercase @NTPOFF.
34330         (output_addr_const_extra): Likewise.
34331         (output_pic_addr_const): Lowercase @TPOFF.
34332         (output_addr_const_extra): Likewise.
34333         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
34334         (*tls_global_dynamic_64): Likewise.
34335         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
34336         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
34337
34338         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
34339         (ASM_OUTPUT_TLS_COMMON): Use it.
34340         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
34341
34342         PR target/38118
34343         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
34344         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
34345         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
34346         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
34347         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34348         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
34349
34350 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34351
34352         * config/i386/i386.c (override_options): Don't accept
34353         -mtls-dialect=sun any longer.
34354         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
34355         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
34356         (*tls_local_dynamic_base_32_sun): Likewise.
34357         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34358
34359 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34360
34361         PR debug/43508
34362         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
34363         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
34364
34365         PR debug/43479
34366         * ira.c (adjust_cleared_regs): New function.
34367         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
34368
34369         PR debug/19192
34370         PR debug/43479
34371         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
34372         from gimple_block.
34373         * expr.c (expand_expr_real): Restore previous
34374         curr_insn_source_location and curr_insn_block after
34375         expand_expr_real_1 call.
34376         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
34377         instead of expand_expr_real_1.
34378
34379 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
34380
34381         PR rtl-optimization/43413
34382         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
34383         hard regs too.
34384
34385 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
34386
34387         PR target/43348
34388         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
34389         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
34390
34391 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
34392
34393         * config/i386/i386.c (ix86_target_string): Add -mfma.
34394         Fix a typo in comment.
34395
34396 2010-03-22  Mike Stump  <mikestump@comcast.net>
34397
34398         PR target/23071
34399         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
34400         Don't overly align based upon packed packed fields.
34401
34402 2010-03-22  Jason Merrill  <jason@redhat.com>
34403
34404         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
34405         Use () rather than [], and move before the element type.
34406
34407 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34408
34409         * doc/configfiles.texi (Configuration Files): Removed
34410         fixinc/Makefile*, intl/Makefile.*.
34411         * doc/makefile.texi: Fixed markup. Abstract from version
34412         control system used.
34413         (Makefile): Removed obsolete java/parse.y example.
34414         * doc/sourcebuild.texi: Likewise.
34415         (Top Level): Added config, gnattools, libdecnumber, libgcc,
34416         libgomp, libssp.  Removed fastjar.
34417         (Miscellaneous Docs): Clarify location.
34418         Added COPYING3, COPYING3.LIB.
34419         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
34420
34421 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34422
34423         PR target/38085
34424         * config/i386/i386.c (x86_function_profiler)
34425         [!NO_PROFILE_COUNTERS]: Fix typo.
34426         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
34427         instead of callq.
34428
34429 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
34430             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34431
34432         * doc/sourcebuild.texi (Test Directives): Split into six
34433         subsections, with most of the current text in new subsections
34434         Directives, Selectors, and Final Actions.
34435         (Directives): Split list of test directives into multiple
34436         subsubsections.
34437         (Selectors): Describe use and syntax of selectors.
34438         (Effective-Target Keywords): Describe all existing keywords.
34439         (Add Options): Describe features for dg-add-options.
34440         (Require Support): Describe variants of dg-require-support.
34441         (Final Actions): Describe commands to use in dg-final.
34442
34443 2010-03-22  Michael Matz  <matz@suse.de>
34444
34445         PR middle-end/43475
34446         * recog.c (validate_replace_rtx_group): Replace also in
34447         REG_EQUAL and REG_EQUIV notes.
34448
34449 2010-03-22  Richard Guenther  <rguenther@suse.de>
34450
34451         PR tree-optimization/43390
34452         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
34453         sure vector extracts are type correct.
34454
34455 2010-03-22  Richard Guenther  <rguenther@suse.de>
34456
34457         PR middle-end/40106
34458         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
34459         x * sqrt (x) even when optimizing for size if the target
34460         has native support for sqrt.
34461
34462 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
34463
34464         * varasm.c (make_decl_rtl_for_debug): Also clear
34465         flag_mudflap for the duration of make_decl_rtl call.
34466
34467         PR debug/43443
34468         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
34469         locs from preserved VALUEs.
34470
34471 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34472
34473         PR middle-end/42718
34474         * pa.md (movmemsi): Set align to one if zero.
34475         (movmemdi): Likewise.
34476
34477 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
34478
34479         PR target/42321
34480         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
34481         with their corresponding prologue pushes.
34482
34483 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
34484
34485         PR target/43156
34486         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
34487         at the begining or end.
34488         (spu_expand_epilogue): Likewise.
34489
34490 2010-03-20  Richard Guenther  <rguenther@suse.de>
34491
34492         PR rtl-optimization/43438
34493         * combine.c (make_extraction): Properly zero-/sign-extend an
34494         extraction of the low part of a CONST_INT.  Also handle
34495         CONST_DOUBLE.
34496
34497 2010-03-19  Mike Stump  <mikestump@comcast.net>
34498
34499         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
34500         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
34501         (override_options): Use SUBTARGET32_DEFAULT_CPU.
34502
34503 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
34504
34505         PR c/43211
34506         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
34507         an error.
34508
34509 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
34510
34511         PR rtl-optimization/42258
34512         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
34513         use that may match DEF.
34514
34515         PR target/40697
34516         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
34517         the cost of loading the constant rather than assuming
34518         COSTS_N_INSNS (1).
34519         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
34520         outer code is AND, do the same tests as the andsi3 expander and
34521         return COSTS_N_INSNS (1) if and is cheap.
34522
34523         * optabs.c (avoid_expensive_constant): Fix formatting.
34524
34525 2010-03-19  Michael Matz  <matz@suse.de>
34526
34527         PR c++/43116
34528         * attribs.c (decl_attributes): When rebuilding a function pointer
34529         type use the same qualifiers as the original pointer type.
34530
34531 2010-03-19  Martin Jambor  <mjambor@suse.cz>
34532
34533         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
34534         and is_gimple_ip_invariant_address.
34535
34536 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34537
34538         Revert
34539         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34540
34541         * config/arm/arm.c (arm_override_options): Turn off
34542         flag_dwarf2_cfi_asm for AAPCS variants.
34543
34544 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34545
34546         PR target/43399
34547         * config/arm/arm.c (emit_multi_reg_push): Update comments.
34548         Use PRE_MODIFY instead of PRE_DEC.
34549         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
34550         (vfp_emit_fstmd): Likewise.
34551
34552 2010-03-19  Michael Matz  <matz@suse.de>
34553
34554         PR target/43305
34555         * builtins.c (expand_builtin_interclass_mathfn,
34556         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
34557         if that fails.
34558
34559 2010-03-19  Richard Guenther  <rguenther@suse.de>
34560
34561         PR tree-optimization/43415
34562         * tree-ssa-pre.c (phi_translate): Split out worker to ...
34563         (phi_translate_1): ... this.
34564         (phi_translate): Move all caching here.  Cache all NARY
34565         and REFERENCE translations.
34566
34567 2010-03-19  David S. Miller  <davem@davemloft.net>
34568
34569         With help from Eric Botcazou.
34570         * config/sparc/sparc.c: Include dwarf2out.h.
34571         (emit_pic_helper): Delete.
34572         (pic_helper_symbol_name): Delete.
34573         (pic_helper_emitted_p): Delete.
34574         (pic_helper_needed): New.
34575         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
34576         (get_pc_thunk_name): New.
34577         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
34578         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
34579         Set pic_helper_needed to true.  Don't call emit_pic_helper.
34580         (sparc_expand_prologue): Update load_pic_register call.
34581         (sparc_output_mi_thunk): Likewise.
34582         (sparc_file_end): Emit a hidden comdat symbol for the PIC
34583         thunk if possible.  Output CFI information as needed.
34584
34585 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
34586             Jack Howarth  <howarth@bromo.med.uc.edu>
34587
34588         PR target/36399
34589         * config/i386/i386.h: Fix ABI on darwin x86-32.
34590
34591 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
34592
34593         * tree.h: Declare make_decl_rtl_for_debug.
34594         * varasm.c (make_decl_rtl_for_debug): New.
34595         * dwarf2out.c (rtl_for_decl_location): Call it.
34596         * cfgexpand.c (expand_debug_expr): Call it.
34597
34598 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34599
34600         PR bootstrap/43399
34601         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
34602         mem_mode.
34603
34604         PR bootstrap/43403
34605         * var-tracking.c (vt_init_cfa_base): Do nothing if
34606         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
34607
34608 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
34609
34610         PR debug/42873
34611         * var-tracking.c (canonicalize_vars_star): New.
34612         (dataflow_post_merge_adjust): Use it.
34613
34614 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34615
34616         PR debug/43058
34617         * var-tracking.c (non_suitable_const): New function.
34618         (add_uses): For DEBUG_INSNs with constants, don't record any
34619         value, instead just the constant value itself.
34620         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
34621         is not VAR_LOC_UNKNOWN_P, set var to the constant.
34622         (emit_notes_in_bb): Likewise.
34623         (emit_note_insn_var_location): For onepart variables if
34624         cur_loc is a VOIDmode constant, use DECL_MODE.
34625
34626 2010-03-18  Martin Jambor  <mjambor@suse.cz>
34627
34628         PR middle-end/42450
34629         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
34630         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
34631         all non-clones.  Moved call redirection...
34632         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
34633         (cgraph_materialize_all_clones): Dispose of all
34634         combined_args_to_skip bitmaps.
34635         (verify_cgraph_node): Do not check for edges pointing to wrong
34636         nodes in inline clones.
34637         * tree-inline.c (copy_bb): Call
34638         cgraph_redirect_edge_call_stmt_to_callee.
34639         * ipa.c (cgraph_remove_unreachable_nodes): Call
34640         cgraph_node_remove_callees even when there are used clones.
34641
34642 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34643
34644         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
34645
34646 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34647
34648         PR target/43383
34649         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
34650         for 32bit.
34651
34652 2010-03-18  Michael Matz  <matz@suse.de>
34653
34654         PR middle-end/43419
34655         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
34656         into sqrt(x) if we need to preserve signed zeros.
34657
34658 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
34659             Eric Botcazou  <ebotcazou@adacore.com>
34660
34661         PR rtl-optimization/43360
34662         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
34663         note if we don't know its invariant status.
34664
34665 2010-03-18  Michael Matz  <matz@suse.de>
34666
34667         PR tree-optimization/43402
34668         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
34669         PHI chains of ssa names registered for update.
34670
34671 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
34672
34673         PR target/42427
34674         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
34675         non-offsettable and pre_modify update addressing.
34676         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
34677         and "2" alternatives "#".
34678         (*movdd_softfloat32): Make all alternatives "#";
34679         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
34680         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
34681         (*movdf_softfloat32): Make all alternatives "#";
34682         (movdi): Use the new DIFD mode iterator to create a common splitter
34683         for movdi, movdf and movdd patterns.
34684
34685 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
34686
34687         * common.opt (dumpdir): Remove redundant tab.
34688
34689 2010-03-17  Martin Jambor  <mjambor@suse.cz>
34690
34691         PR tree-optimization/43347
34692         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
34693         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
34694
34695 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
34696
34697         PR rtl-optimization/42216
34698         * regrename.c (create_new_chain): New function, broken out from...
34699         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
34700         appending a use to an empty chain.
34701         (build_def_use): Remove previous changes that convert OP_INOUT to
34702         OP_OUT operands; instead detect the case where an OP_INOUT operand
34703         uses a previously untracked register and create an empty chain for it.
34704
34705 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34706
34707         * doc/extend.texi (Function Attributes): Rewrite unfinished
34708         sentence in ms_abi documentation.
34709
34710 2010-03-17  Alan Modra  <amodra@gmail.com>
34711
34712         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
34713         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
34714         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
34715         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
34716
34717 2010-03-16  Richard Henderson  <rth@redhat.com>
34718
34719         PR middle-end/43365
34720         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
34721         (lower_try_finally): Save and restore eh_seq around the expansion
34722         of the try-finally.
34723
34724 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34725
34726         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
34727         statements before splitting block.
34728
34729 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34730
34731         * doc/sourcebuild.texi (Testsuites): Fix markup.
34732         Use pathnames relative to gcc/testsuite.
34733         (Test Directives): Move description of how timeout is determined.
34734         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
34735         (C Tests): Correct gcc.misc-tests directory.
34736         Framework tests now live in gcc.test-framework.
34737
34738 2010-03-16  Richard Guenther  <rguenther@suse.de>
34739
34740         PR middle-end/43379
34741         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
34742         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
34743
34744 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34745             Alexandre Oliva  <aoliva@redhat.com>
34746
34747         PR tree-optimization/42917
34748         * lambda-code.c (remove_iv): Skip debug statements.
34749         (lambda_loopnest_to_gcc_loopnest): Likewise.
34750         (not_interesting_stmt): Debug statements are not interesting.
34751
34752 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
34753
34754         PR debug/43051
34755         PR debug/43092
34756         * cselib.c (cselib_preserve_constants,
34757         cfa_base_preserved_val): New static variables.
34758         (preserve_only_constants): New function.
34759         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
34760         clear its REG_VALUES.  If cselib_preserve_constants, don't
34761         empty the whole hash table, but preserve there VALUEs with constants,
34762         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
34763         (cselib_preserve_cfa_base_value): New function.
34764         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
34765         (cselib_init): Change argument to int bitfield.  Set
34766         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
34767         is in it.
34768         (cselib_finish): Clear cselib_preserve_constants and
34769         cfa_base_preserved_val.
34770         * cselib.h (enum cselib_record_what): New enum.
34771         (cselib_init): Change argument to int.
34772         (cselib_preserve_cfa_base_value): New prototype.
34773         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
34774         * dse.c (dse_step1): Likewise.
34775         * cfgcleanup.c (thread_jump): Likewise.
34776         * sched-deps.c (sched_analyze): Likewise.
34777         * gcse.c (local_cprop_pass): Likewise.
34778         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
34779         If FN is non-NULL, call the callback always and whenever it returns
34780         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
34781         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
34782         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
34783         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
34784         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
34785         * var-tracking.c: Include recog.h.
34786         (bb_stack_adjust_offset): Remove.
34787         (vt_stack_adjustments): Don't call it, instead just gather the
34788         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
34789         (adjust_stack_reference): Remove.
34790         (compute_cfa_pointer): New function.
34791         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
34792         (struct adjust_mem_data): New type.
34793         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
34794         functions.
34795         (get_address_mode): New function.
34796         (replace_expr_with_values): Use it.
34797         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
34798         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
34799         (adjust_sets): Remove.
34800         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
34801         Use get_address_mode.
34802         (get_adjusted_src): Remove.
34803         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
34804         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
34805         (add_with_sets): Don't call adjust_sets.
34806         (fp_setter, vt_init_cfa_base): New functions.
34807         (vt_initialize): Change return type to bool.  Move most of pool etc.
34808         initialization to the beginning of the function from end.  Pass
34809         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
34810         If !frame_pointer_needed, call vt_stack_adjustment before mos
34811         vector is filled, call vt_init_cfa_base if argp/framep has been
34812         eliminated to sp.  If frame_pointer_needed and argp/framep has
34813         been eliminated to hard frame pointer, set
34814         hard_frame_pointer_adjustment and call vt_init_cfa_base after
34815         encountering fp setter in the prologue.  For MO_ADJUST, call
34816         log_op_type before pusing the op into mos vector, not afterwards.
34817         Call adjust_insn before cselib_process_insn/add_with_sets,
34818         call cancel_changes (0) afterwards.
34819         (variable_tracking_main_1): Adjust for vt_initialize calling
34820         vt_stack_adjustments and returning whether it succeeded or not.
34821
34822 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
34823
34824         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
34825         debug statements.
34826
34827 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
34828
34829         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
34830         has been set.
34831         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
34832         drap_reg has not been set.
34833
34834 2010-03-15  Michael Matz  <matz@suse.de>
34835
34836         PR middle-end/43300
34837         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
34838         use it to expand block copies.
34839         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
34840         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
34841         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
34842
34843 2010-03-15  Richard Guenther  <rguenther@suse.de>
34844
34845         PR tree-optimization/43367
34846         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
34847         elimination check.
34848
34849 2010-03-15  Richard Guenther  <rguenther@suse.de>
34850
34851         PR tree-optimization/43317
34852         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
34853
34854 2010-03-15  Martin Jambor  <mjambor@suse.cz>
34855
34856         PR tree-optimization/43141
34857         * tree-sra.c (create_abstract_origin): New function.
34858         (modify_function): Call create_abstract_origin.
34859
34860 2010-03-15  Chris Demetriou  <cgd@google.com>
34861
34862         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
34863         wasn't copied.
34864
34865 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34866
34867         PR middle-end/43354
34868         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
34869         call insert_out_of_ssa_copy for default definitions.
34870
34871 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34872
34873         * graphite-clast-to-gimple.c (my_long_long): Defined.
34874         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
34875         * graphite-sese-to-poly.c (my_long_long): Defined.
34876         (scop_ivs_can_be_represented): Use it.
34877
34878 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34879
34880         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
34881         graphite-max-bbs-per-function, and loop-block-tile-size.
34882         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
34883         with "maximum".
34884         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
34885
34886 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34887
34888         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
34889         forward declaration.
34890         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
34891         (add_upper_bounds_from_estimated_nit): New.
34892         (build_loop_iteration_domains): Use it.
34893
34894 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34895
34896         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
34897
34898 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34899
34900         PR middle-end/43306
34901         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
34902         should be an INTEGER_CST.  Also handle CASE_CONVERT.
34903
34904 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34905
34906         * graphite.c (graphite_initialize): To bound the number of bbs per
34907         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
34908         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
34909         * doc/invoke.texi: Document it.
34910
34911 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34912
34913         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
34914         * graphite-sese-to-poly.h (build_poly_scop): Same.
34915
34916 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34917
34918         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
34919         the number of parameters in the scop.  Use as an upper bound
34920         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
34921         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
34922         * doc/invoke.texi: Document it.
34923
34924 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
34925
34926         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
34927         * doc/c-tree.texi: Remove.
34928         * doc/generic.texi: Merge c-tree.texi here.
34929         * doc/gccint.texi (Trees): Remove menu entry.
34930         (c-tree.texi): Remove @include.
34931         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
34932         * doc/languages.texi (Reading RTL): Ditto.
34933
34934 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
34935
34936         PR target/42869
34937         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
34938
34939 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
34940
34941         PR middle-end/42431
34942         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
34943         code added to work around reload clobbering CONST insns.
34944
34945 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
34946
34947         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
34948         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
34949         (cselib_preserve_only_values): Remove retain argument, don't
34950         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
34951         * cselib.h (cselib_preserve_only_values): Remove retain argument.
34952         * var-tracking.c (micro_operation): Move insn field before union.
34953         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
34954         (struct variable_tracking_info_def): Remove n_mos field, change
34955         mos into a vector of micro_operations.
34956         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
34957         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
34958         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
34959         changing into a vector.
34960         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
34961         come before all other uops generated by add_stores.
34962         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
34963         argument removal.
34964         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
34965         a vector.  Run just one pass over the bbs instead of separate counting
34966         and computation phase.
34967         (vt_finalize): Free VTI (bb)->mos vector instead of array.
34968
34969         PR debug/43329
34970         * tree-inline.c (remap_decls): Put old_var rather than origin_var
34971         into *nonlocalized_list vector.
34972         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
34973         even if origin is non-NULL.
34974         (gen_variable_die): Likewise.
34975         (process_scope_var): Don't change origin.
34976         (gen_decl_die): Likewise.
34977         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
34978         before adding new edges instead of after it, fix moving over
34979         debug stmts.
34980
34981 2010-03-11  David S. Miller  <davem@davemloft.net>
34982
34983         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
34984         of four.
34985         * configure: Rebuild.
34986
34987 2010-03-11  Martin Jambor  <mjambor@suse.cz>
34988
34989         PR tree-optimization/43257
34990         * tree.c (assign_assembler_name_if_neeeded): New function.
34991         (free_lang_data_in_cgraph): Assembler name assignment moved to the
34992         above new function.
34993         * tree.h (assign_assembler_name_if_neeeded): Declare.
34994         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
34995         the function if needed.
34996
34997 2010-03-11  Chris Demetriou  <cgd@google.com>
34998
34999         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
35000         include/stdint-gcc.h, and include/stdint.h world-readable.
35001
35002 2010-03-11  Richard Guenther  <rguenther@suse.de>
35003
35004         PR tree-optimization/43255
35005         * tree-vrp.c (process_assert_insertions_for): Do not insert
35006         asserts for trivial conditions.
35007
35008 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35009
35010         PR tree-optimization/43280
35011         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
35012         generation.  Move calculation of size out of the if branch.
35013         (find_bswap): Modify compare number generation.
35014
35015 2010-03-11  Richard Guenther  <rguenther@suse.de>
35016
35017         PR lto/43200
35018         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
35019         (input_gimple_stmt): Fixup handled component types during
35020         operand read.  Also fix up decls in ADDR_EXPRs.
35021
35022 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
35023
35024         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
35025         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
35026
35027 2010-03-10  Jan Hubicka  <jh@suse.cz>
35028
35029         PR c/43288
35030         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
35031         * varasm.c (get_variable_section): Don't do that here...
35032         (make_decl_rtl): ... and here.
35033         (do_assemble_alias): Produce decl RTL.
35034         (assemble_alias): Likewise.
35035
35036 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35037
35038         PR debug/43290
35039         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
35040         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
35041         of fde->vdrap_reg.
35042         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
35043         (based_loc_descr): Only express drap or vdrap regno based expressions
35044         using DW_OP_fbreg when not optimizing.
35045         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
35046         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
35047         REG_CFA_SET_VDRAP note.
35048
35049 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
35050
35051         PR tree-optimization/43236
35052         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
35053         error in calculation of base address in reverse iteration case.
35054         (generate_builtin): Take number of latch executions if the statement
35055         is in the latch.
35056
35057 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
35058
35059         PR middle-end/42859
35060         * tree-eh.c: Include pointer-set.h.
35061         (lower_eh_dispatch): Filter out duplicate case labels and
35062         remove the unneeded edge when the label is unused.  Return
35063         true when some edges are removed.
35064         (execute_lower_eh_dispatch): When any lowering resulted in
35065         removing an edge, also delete unreachable blocks.
35066
35067 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35068
35069         PR bootstrap/43287
35070         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
35071         UNSPEC_MACHOPIC_OFFSET.
35072
35073 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
35074
35075         PR target/43294
35076         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
35077         (m68k_delegitimize_address): New function.
35078
35079 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
35080
35081         PR debug/43299
35082         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
35083
35084         PR debug/43299
35085         * var-tracking.c (adjust_sets): New function.
35086         (count_with_sets, add_with_sets): Use it.
35087         (get_adjusted_src): New inline function.
35088         (add_stores): Use it.
35089
35090         PR debug/43304
35091         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
35092         call cselib_dummy_expand_value_rtx_cb instead of
35093         cselib_expand_value_rtx_cb.
35094
35095         PR debug/43293
35096         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
35097         * config/i386/i386.c: Include debug.h and dwarf2out.h.
35098         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
35099         and .cfi_endproc around the pic thunks.
35100         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
35101         all queued unwind info register saves are saved before the call.
35102         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
35103         considered as sp-=4 for unwind info and the pop as sp+=4 which
35104         also clobbers dest, but doesn't actually restore it.
35105
35106         PR debug/43290
35107         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
35108         RTX_FRAME_RELATED_P.
35109
35110 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35111
35112         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
35113         whitespaces in output template.
35114
35115 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35116
35117         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
35118         out array boundary.
35119
35120 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35121
35122         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
35123         builtins.exp in a separate job.
35124
35125 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35126
35127         * graphite-sese-to-poly.c (add_param_constraints): Use
35128         lower_bound_in_type and upper_bound_in_type.
35129
35130 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35131
35132         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
35133         instead of unsigned_type_node.
35134
35135 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35136             Reza Yazdani  <reza.yazdani@amd.com>
35137
35138         PR middle-end/43065
35139         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
35140         on pointer type parameters.
35141
35142 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35143
35144         PR middle-end/42644
35145         PR middle-end/42130
35146         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
35147         handle conversions from pointer to integers.
35148         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
35149         induction variable, to be able to work with code generated by CLooG.
35150         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
35151         (build_poly_scop): Bail out if we cannot codegen a loop.
35152
35153 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35154
35155         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
35156         code generation with gloog_error.
35157
35158 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35159
35160         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
35161         Call fold_convert on all the returned values.
35162         (expand_scalar_variables_expr): Pass to
35163         expand_scalar_variables_ssa_name the type of the resulting expression.
35164
35165 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35166
35167         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
35168         ppl_min_for_le_pointset.
35169         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
35170         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
35171
35172 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35173
35174         * graphite-dependences.c (map_into_dep_poly): Removed.
35175         (dependence_polyhedron_1): Use combine_context_id_scat.
35176
35177 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35178
35179         * graphite-poly.h (struct poly_scattering): Add layout documentation.
35180         (struct poly_bb): Same.
35181         (combine_context_id_scat): New.
35182
35183 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35184
35185         PR middle-end/42326
35186         * sese.c (name_defined_in_loop_p): Return false for default
35187         definitions.
35188
35189 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35190
35191         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
35192         and clean up the logic.
35193
35194 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35195
35196         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
35197         early return.
35198
35199 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35200
35201         * var-tracking.c (remove_cselib_value_chains): Define only for
35202         ENABLE_CHECKING.
35203         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
35204         delete_slot_part, emit_notes_for_differences_1): Don't call
35205         remove_cselib_value_chains here.
35206         (set_slot_part, emit_notes_for_differences_2): Don't call
35207         add_cselib_value_chains here.
35208         (preserved_values): New vector.
35209         (preserve_value): New function.
35210         (add_uses, add_stores, vt_add_function_parameters): Use it
35211         instead of cselib_preserve_value.
35212         (changed_values_stack): New vector.
35213         (check_changed_vars_0): New function.
35214         (check_changed_vars_1, check_changed_vars_2): Use it.
35215         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
35216         changed_values_stack VALUEs.
35217         (vt_emit_notes): For all preserved_values call
35218         add_cselib_value_chains.  If ENABLE_CHECKING call
35219         remove_cselib_value_chains before verifying value_chains is empty.
35220         Initialize and free changed_values_stack.
35221         (vt_initialize): Initialize preserved_values.
35222         (vt_finalize): Free preserved_values.
35223
35224 2010-03-08  Richard Guenther  <rguenther@suse.de>
35225
35226         PR tree-optimization/43269
35227         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
35228         region detection.
35229
35230 2010-03-08  Martin Jambor  <mjambor@suse.cz>
35231
35232         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
35233         (ipa_is_param_called): Removed.
35234         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
35235         (ipa_print_node_params): Do not print the called flag.
35236         (ipa_write_node_info): Do not stream the called flag.
35237         (ipa_read_node_info): Likewise.
35238
35239 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
35240
35241         PR debug/43176
35242         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
35243         * cselib.c (struct expand_value_data): Add dummy field.
35244         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
35245         dummy to false.
35246         (cselib_dummy_expand_value_rtx_cb): New function.
35247         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
35248         any rtl.
35249         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
35250         * var-tracking.c: Include pointer-set.h.
35251         (variable): Change n_var_parts to char from int.  Add
35252         cur_loc_changed and in_changed_variables fields.
35253         (variable_canonicalize): Remove.
35254         (shared_var_p): New inline function.
35255         (unshare_variable): Maintain cur_loc_changed and
35256         in_changed_variables fields.  If var was in changed_variables,
35257         replace it there with new_var.  Just copy cur_loc instead of
35258         resetting it to something else.
35259         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
35260         (dataflow_set_union): Don't call variable_canonicalize.
35261         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
35262         of their DEBUG_EXPR_TREE_DECLs.
35263         (canonicalize_loc_order_check): Verify that cur_loc is NULL
35264         and in_changed_variables and cur_loc_changed is false.
35265         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
35266         and cur_loc_changed.  Don't update cur_loc here.
35267         (variable_merge_over_src): Don't call variable_canonicalize.
35268         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
35269         removing loc that is equal to cur_loc, clear cur_loc,
35270         set cur_loc_changed and ensure variable_was_changed is called.
35271         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
35272         compare pointers in cur_loc check, if it is equal to loc,
35273         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
35274         (variable_different_p): Remove compare_current_location argument,
35275         don't compare cur_loc.
35276         (dataflow_set_different_1): Adjust variable_different_p caller.
35277         (variable_was_changed): If dv had some var in changed_variables
35278         already, reset in_changed_variables flag for it and propagate
35279         cur_loc_changed over to the new variable.  On empty var
35280         always set cur_loc_changed.  Set in_changed_variables on whatever
35281         var is added to changed_variables.
35282         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
35283         Use shared_var_p.  When removing loc that is equal to cur_loc,
35284         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
35285         end, don't set it to something else, just call variable_was_changed.
35286         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
35287         loc being removed, clear cur_loc and set cur_loc_changed.
35288         Set cur_loc_changed if all locations have been removed.
35289         (struct expand_loc_callback_data): New type.
35290         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
35291         allocated.  Always create SUBREGs if simplify_subreg failed.
35292         Prefer to use cur_loc, when that fails and still in
35293         changed_variables (and seen first time) recompute it.  Set
35294         cur_loc_changed of variables which had to change cur_loc and
35295         compute elcd->cur_loc_changed if any of the subexpressions used
35296         had to change cur_loc.
35297         (vt_expand_loc): Adjust to pass arguments in
35298         expand_loc_callback_data structure.
35299         (vt_expand_loc_dummy): New function.
35300         (emitted_notes): New variable.
35301         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
35302         that weren't used for any other decl in current
35303         emit_notes_for_changes call call vt_expand_loc_dummy to update
35304         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
35305         first loc_chain location if NULL before.  Always use just
35306         cur_loc instead of first loc_chain location.  When cur_loc_changed
35307         is false, when not --enable-checking=rtl just don't emit any note.
35308         When rtl checking, compute the note and assert it is the same
35309         as previous note.  Clear cur_loc_changed and in_changed_variables
35310         at the end before removing from changed_variables.
35311         (check_changed_vars_3): New function.
35312         (emit_notes_for_changes): Traverse changed_vars to call
35313         check_changed_vars_3 on each changed var.
35314         (emit_notes_for_differences_1): Clear cur_loc_changed and
35315         in_changed_variables.  Recompute cur_loc of new_var.
35316         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
35317         (vt_emit_notes): Initialize and destroy emitted_notes.
35318
35319 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
35320
35321         PR rtl-optimization/42220
35322         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
35323         Use verify_reg_tracked to determine if we should use OP_OUT rather
35324         than OP_INOUT.
35325         (build_def_use): If we see an in-out operand for a register that we
35326         know nothing about, treat is an output if possible, fail the block if
35327         not.
35328
35329 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35330
35331         PR debug/42897
35332         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
35333         permanently.
35334
35335 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35336
35337         PR debug/42897
35338         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
35339         uses of relevant DEFs that are dead outside the loop too.
35340
35341 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35342
35343         * var-tracking.c (dataflow_set_merge): Swap src and src2.
35344         Reverted:
35345         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
35346         PR debug/41371
35347         * var-tracking.c (values_to_unmark): New variable.
35348         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
35349         values_to_unmark vector.  Moved body to...
35350         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
35351         instead queue it into values_to_unmark vector.
35352         (vt_find_locations): Free values_to_unmark vector.
35353
35354 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
35355
35356         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
35357         (site.exp): Export them when plugins are enabled.
35358
35359 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
35360
35361         PR middle-end/42326
35362         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
35363         that contain scevs.
35364         (chrec_fold_multiply): Same.
35365
35366 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
35367
35368         PR c/43248
35369         * c-decl.c (build_compound_literal): Return early if init is
35370         an error_mark_node.
35371
35372 2010-03-04  Martin Jambor  <mjambor@suse.cz>
35373
35374         PR tree-optimization/43164
35375         PR tree-optimization/43191
35376         * tree-sra.c (type_consists_of_records_p): Reject records with
35377         zero-size bit-fields at the end.
35378
35379 2010-03-04  Mike Stump  <mikestump@comcast.net>
35380
35381         * Makefile.in (TAGS): Remove *.y.
35382
35383 2010-03-04  Richard Guenther  <rguenther@suse.de>
35384
35385         PR tree-optimization/40761
35386         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
35387         in reverse order.
35388         (my_rev_post_order_compute): New function.
35389         (init_pre): Call it.
35390
35391 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
35392
35393         PR middle-end/43209
35394         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
35395         decrease the cost of an IV candidate when the cost is infinite.
35396
35397 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35398
35399         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
35400         Use '3DNow!' for the extension of that name, ensure normal space
35401         after the string.
35402         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
35403
35404 2010-03-03  Jeff Law  <law@redhat.com>
35405
35406         * PR middle-end/32693
35407         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
35408         than gen_rtx_SUBREG.
35409         (extract_bit_field_1): Likewise.
35410
35411 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
35412
35413         * doc/sourcebuild.texi (Test directives): Document that arguments
35414         include-opts and exclude-opts are now optional for dg-skip-if,
35415         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
35416
35417 2010-03-03  Jason Merrill  <jason@redhat.com>
35418
35419         PR c++/12909
35420         * cgraph.h (varpool_node): Add extra_name field.
35421         * varpool.c (varpool_extra_name_alias): New.
35422         (varpool_assemble_decl): Emit extra name aliases.
35423         (varpool_mark_needed_node): Look past an extra name alias.
35424         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
35425         * lto-streamer-in.c (lto_input_tree): Read it.
35426         * lto-streamer-out.c (output_unreferenced_globals): Write it.
35427
35428 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
35429
35430         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
35431         (sparc*-*-solaris2*): ...this.
35432
35433 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
35434
35435         PR debug/43229
35436         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
35437         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
35438         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
35439         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
35440
35441         PR debug/43237
35442         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
35443         fallthrough to default handling, just with want_address 0 instead of 2.
35444         For single element lists, add_AT_loc directly, otherwise create an
35445         artificial variable DIE and stick location list to it.
35446
35447         PR debug/43177
35448         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
35449         (VAL_EXPR_HAS_REVERSE): Define.
35450         (reverse_op): New function.
35451         (add_stores): For reversible operations add an extra MO_VAL_USE.
35452
35453 2010-03-02  Jason Merrill  <jason@redhat.com>
35454
35455         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
35456
35457 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
35458
35459         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
35460         (sparc64-*-linux*): Likewise.
35461         (sparc64-*-solaris2*): Include assembler files before linker ones.
35462         (sparc-*-solaris2*): Simplify and reorder to match previous case.
35463         * config/sparc/gas.h: Delete.
35464         * config/sparc/sol2-64.h: Add copyright notice.
35465         * config/sparc/sol2-gas-bi.h: Likewise.
35466         * config/sparc/sol2-gld.h: Likewise.
35467         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
35468         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
35469         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
35470         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
35471         (sparc_elf_asm_named_section): Rename into...
35472         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
35473
35474 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
35475
35476         * config/alpha/alpha.c (override_options): Fix -mtune error message.
35477
35478 2010-03-02  Jeff Law  <law@redhat.com>
35479
35480         PR middle-end/42431
35481         * reload1.c (rtx_p, substitute_stack): Declare.
35482         (substitute): Record addresses of changed rtxs.
35483         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
35484         Restore the original rtx when complete.
35485         (reload): Free subsitute_stack when complete.
35486
35487 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
35488
35489         * doc/gccint.texi (menu): Add Testsuites as a chapter.
35490         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
35491         new chapter.
35492         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
35493         LTO Testing, gcov Testing, profopt Testing, compat Testing,
35494         Torture Tests): Change from subsection to section.
35495
35496 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
35497             Steven Bosscher  <steven@gcc.gnu.org>
35498
35499         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
35500         instead of bb.
35501
35502 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
35503
35504         PR middle-end/42640
35505         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
35506         the assignment from the new induction variable to the assignment
35507         of the value from the original loop PHI function.
35508
35509 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
35510             Daniel Jacobowitz  <dan@codesourcery.com>
35511
35512         * doc/sourcebuild.texi (Test directives): Clarify options to
35513         dg-skip-if.
35514
35515 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35516
35517         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
35518         Disable cfi directives unless GCC and gas agree on using read-only
35519         .eh_frame sections for 64-bit.
35520         * configure: Regenerate.
35521
35522 2010-03-01  Richard Guenther  <rguenther@suse.de>
35523
35524         PR tree-optimization/43220
35525         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
35526         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
35527
35528 2010-03-01  Richard Guenther  <rguenther@suse.de>
35529             Martin Jambor  <mjambor@suse.cz>
35530
35531         PR middle-end/41250
35532         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
35533         gimplified parameters.
35534
35535 2010-03-01  Christian Bruel  <christian.bruel@st.com>
35536
35537         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
35538
35539 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
35540
35541         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
35542
35543 2010-03-01  Richard Guenther  <rguenther@suse.de>
35544
35545         PR middle-end/43213
35546         * expr.c (expand_assignment): Use the alias-oracle to tell
35547         if the rhs aliases the result decl.
35548
35549 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35550
35551         PR pch/14940
35552         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
35553         to sol_gt_pch_get_address.
35554         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
35555         64-bit, SPARC and x86.
35556         (sol_gt_pch_get_address): New function.
35557
35558 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
35559
35560         * toplev.h (inform_n, error_n): Declare.
35561         * diagnostic.c (inform_n, error_n): New function.
35562
35563 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
35564
35565         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
35566         has no rtl yet when processing local_decls, queue it and recheck
35567         if deferred stack allocation hasn't assigned it rtl.
35568
35569 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
35570
35571         * config/sh/sh.c (unspec_bbr_uid): New.
35572         (gen_block_redirect): Use it instead of INSN_UID.
35573         (gen_far_branch): Likewise.
35574
35575 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
35576
35577         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
35578         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
35579
35580 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35581
35582         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
35583         (Warning Options): -Wno-conversion-null is valid for
35584         Objective-C++ as well.
35585         * doc/tm.texi (Named Address Spaces): Likewise.
35586         * doc/plugins.texi (Plugins): Replace TABs with spaces.
35587         * doc/tree-ssa.texi (Tree SSA): Likewise.
35588
35589 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35590
35591         PR bootstrap/43202
35592         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
35593         by default.  Don't set the default arch for
35594         i[34567]86-*-darwin*|x86_64-*-darwin*.
35595
35596 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35597
35598         PR bootstrap/43202
35599         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
35600         default.  Set the default 32bit/64bit archs with $with_arch
35601         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
35602
35603 2010-02-27  Richard Guenther  <rguenther@suse.de>
35604
35605         PR tree-optimization/43186
35606         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
35607         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
35608         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
35609         unroller iterations.
35610
35611 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35612
35613         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
35614         required and i[34567]86-*-* targets don't support 64bit ISA.
35615
35616 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
35617
35618         PR ada/43096
35619         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
35620         the same alias set.
35621
35622 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35623
35624         * config.gcc: Set the default arch at least to Prescott for
35625         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
35626         if SSE math is enabled.
35627
35628 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35629
35630         * diagnostic.c (diagnostic_initialize): Update.
35631         (diagnostic_report_diagnostic): Test inhibit_notes_p for
35632         informative notes.
35633         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
35634         (diagnostic_inhibit_notes): New.
35635         * toplev.c (process_options): inhibit notes with -fcompare-debug.
35636
35637 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35638
35639         PR c/20631
35640         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
35641         * doc/standards.texi: Likewise.
35642         * doc/extend.texi: Likewise.
35643         * doc/trouble.texi: Likewise.
35644         * doc/cppopts.texi: Likewise.
35645         * doc/install.texi: Likewise.
35646         * c.opt (std=c90,std=gnu90): New options.
35647         * c-opts.c (c_common_handle_option): Handle them.
35648
35649 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35650
35651         PR c/24577
35652         * c-decl.c (undeclared_variable): Use an informative note.
35653
35654 2010-02-26  Richard Guenther  <rguenther@suse.de>
35655
35656         PR tree-optimization/43186
35657         * gimple.h (gimple_fold): Remove.
35658         * gimple.c (gimple_fold): Remove.  Inline into single user ...
35659         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
35660         Try harder for conditions.
35661
35662 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35663
35664         PR debug/43190
35665         * function.c (used_types_insert): Don't skip through named pointer
35666         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
35667         and it is different from the main variant's type.
35668
35669 2010-02-26  Nick Clifton  <nickc@redhat.com>
35670
35671         * config/rx/rx.md (sminsi3): Remove bogus alternative.
35672
35673 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35674
35675         * config.gcc: Support --with-fpmath=sse for x86.
35676
35677         * config/i386/ssemath.h: New.
35678
35679         * doc/install.texi (--with-fpmath=sse): Documented.
35680
35681 2010-02-26  Richard Guenther  <rguenther@suse.de>
35682
35683         PR tree-optimization/43188
35684         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
35685         vector types of over-aligned element type.
35686
35687 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
35688
35689         PR target/43175
35690         * config/i386/i386.c (expand_vec_perm_blend): Use correct
35691         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
35692
35693 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
35694
35695         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
35696
35697 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35698
35699         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
35700         * var-tracking.c: Include diagnostic.h.
35701         (debug_dv): New function.
35702         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
35703
35704         PR debug/43160
35705         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
35706         (add_value_chain, add_value_chains, remove_value_chain,
35707         remove_value_chains): Handle DEBUG_EXPRs.
35708         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
35709
35710         PR debug/43161
35711         * regcprop.c (struct queued_debug_insn_change): New type.
35712         (struct value_data_entry): Add debug_insn_changes field.
35713         (struct value_data): Add n_debug_insn_changes field.
35714         (debug_insn_changes_pool): New variable.
35715         (free_debug_insn_changes, apply_debug_insn_changes,
35716         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
35717         (kill_value_one_regno): Call free_debug_insn_changes if needed.
35718         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
35719         fields.
35720         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
35721         changes for them.
35722         (copyprop_hardreg_forward_1): Don't call apply_change_group for
35723         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
35724         changes, call cprop_find_used_regs via note_stores.
35725         (copyprop_hardreg_forward): When copying vd from predecessor
35726         which has any queued DEBUG_INSN changes, make sure the pointers are
35727         cleared.  At the end call df_analyze and then if there are any
35728         DEBUG_INSN changes queued at the end of some basic block for still
35729         live registers, apply them.
35730         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
35731
35732 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
35733
35734         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
35735         (arm*-*-*): Ditto.
35736
35737 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
35738
35739         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
35740         targets.  Set the default with_cpu/with_arch from arch/cpu.
35741         Allow x86-64 and native for with_cpu/with_arch.
35742
35743 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
35744
35745         * ebitmap.c: Change calls to verify_popcount with calls to
35746         sbitmap_verify_popcount.
35747         (ebitmap_clear_bit): Fixed map->cacheindex test and
35748         map>cache update when bit clearing results in an empty
35749         element.
35750
35751 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
35752
35753         PR target/43154
35754         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
35755         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
35756         and support both V2DF and V2DI modes.
35757         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
35758         support both V2DF and V2DI modes.
35759         (general): Delete trailing whitespace from a few patterns.
35760
35761         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
35762         V2DF/V2DI interleave high/low builtins.
35763
35764         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
35765         new VSX builtins.
35766
35767         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
35768         interleave high/low functions.
35769
35770 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
35771
35772         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
35773         #pragma extern_prefix.
35774
35775 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
35776
35777         PR debug/43166
35778         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
35779         BLKmode, assert op0 is a MEM and just adjust its mode.
35780
35781         PR debug/43165
35782         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
35783         if bitpos isn't multiple of mode's bitsize.
35784
35785 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35786
35787         * c.opt (-ftemplate-depth=): New.
35788         (-ftemplate-depth-): Deprecate.
35789         * optc-gen.awk: Handle -ftemplate-depth=.
35790         * opth-gen.awk: Likewise.
35791         * c-opts.c (c_common_handle_option): Likewise.
35792         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
35793
35794 2010-02-24  Jason Merrill  <jason@redhat.com>
35795
35796         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
35797
35798 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35799
35800         * cfg.c (alloc_aux_for_block): Remove inline.
35801         (alloc_aux_for_edge): Likewise.
35802
35803 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35804
35805         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
35806
35807 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35808
35809         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
35810         * config/i386/sol2-gas.h: New file.
35811         * config.gcc (i[34567]86-*-solaris2*): Use it.
35812
35813 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35814
35815         PR c/43128
35816         * c-typeck.c (ep_convert_and_check): New.
35817         (build_conditional_expr): Use it.
35818         (build_binary_op): Likewise.
35819
35820 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
35821
35822         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
35823
35824         PR debug/43150
35825         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
35826         bounds even for -O+.
35827         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
35828         expr needs to have DECL_NAME set.
35829
35830 2010-02-24  Nick Clifton  <nickc@redhat.com>
35831
35832         * config/mep/mep.c: Include gimple.h.
35833         (mep_function_uses_sp): Delete unused function.
35834         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
35835         parameters.  Use unsigned integers to count args.  Return a
35836         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
35837
35838 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35839
35840         PR target/43107
35841         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
35842         greater or equal to nelt instead of 2 * nelt.
35843         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
35844         with nelt - 1.
35845
35846 2010-02-23  Jason Merrill  <jason@redhat.com>
35847
35848         PR debug/42800
35849         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
35850         in cfun->local_decls even if they have register types.
35851
35852         PR c++/42837
35853         * stor-layout.c (place_field): Don't warn about unnecessary
35854         DECL_PACKED if the type is packed.
35855
35856 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35857
35858         PR target/43139
35859         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
35860         GOTOFF relocs, even when the base reg isn't pic pointer.
35861
35862 2010-02-23  Michael Matz  <matz@suse.de>
35863
35864         PR debug/43077
35865         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
35866         (expand_gimple_basic_block): Generate and use debug temps if there
35867         are debug uses left after the last real use of TERed ssa names.
35868         Unlink debug immediate uses when they are expanded.
35869
35870 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35871
35872         PR 43123
35873         * config/i386/i386.c (override_options): Reorganise to provide
35874         better error messages.
35875
35876 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35877
35878         PR middle-end/43083
35879         * graphite-scop-detection.c (create_single_exit_edge): Move
35880         the call to find_single_exit_edge to....
35881         (create_sese_edges): ...here.  Don't handle multiple edges
35882         exiting the function.
35883         (build_graphite_scops): Don't handle multiple edges
35884         exiting the function.
35885
35886 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35887
35888         PR middle-end/43097
35889         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
35890         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
35891
35892 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35893
35894         PR middle-end/43026
35895         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
35896
35897 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35898
35899         PR c++/43126
35900         * c-typeck.c (convert_arguments): Print declaration location.
35901         * c-common.c (validate_nargs): Rename as
35902         builtin_function_validate_nargs.
35903         (check_builtin_function_arguments): Update.
35904
35905 2010-02-22  Richard Guenther  <rguenther@suse.de>
35906
35907         PR lto/43045
35908         * tree-inline.c (declare_return_variable): Use the type of
35909         the call stmt lhs if available.
35910
35911 2010-02-22  Duncan Sands  <baldrick@free.fr>
35912
35913         * passes.c (register_pass): Always consider all pass lists when
35914         ref_pass_instance_number is zero.
35915
35916 2010-02-22  Richard Guenther  <rguenther@suse.de>
35917
35918         PR tree-optimization/42749
35919         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
35920         parameter.  Do arithmetic in the original type.
35921         (update_accumulator_with_ops): Likewise.
35922         (adjust_accumulator_values): Adjust.
35923
35924 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35925
35926         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
35927         (QI to BLKmode splitter): New splitter.
35928
35929 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
35930
35931         * config/i386/i386.c (initial_ix86_tune_features): Turn on
35932         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
35933
35934 2010-02-22  Richard Guenther  <rguenther@suse.de>
35935
35936         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
35937
35938 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
35939
35940         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
35941         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
35942         ($(T)crti.o, $(T)crtn.o): Remove rules.
35943
35944 2010-02-21  Tobias Burnus  <burnus@net-b.de>
35945
35946         PR fortran/35259
35947         * doc/invoke.texi (-fassociative-math): Document that this
35948         option is automatically enabled for Fortran.
35949
35950 2010-02-20  David S. Miller  <davem@davemloft.net>
35951
35952         * configure.ac: Test if linker and assembler properly support
35953         GOTDATA_OP relocations.
35954         * configure: Rebuild.
35955         * config.in: Likewise.
35956         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
35957         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
35958         (movsi_high_pic): Likewise.
35959         (movdi_lo_sum_pic): Likewise.
35960         (movdi_high_pic): Likewise.
35961         (movsi_pic_gotdata_op): New pattern.
35962         (movdi_pic_gotdata_op): Likewise.
35963         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
35964         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
35965
35966 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
35967
35968         PR target/43067
35969         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
35970         attribute to ssemul.
35971         (xop_mulv2div2di3_high): Ditto.
35972
35973 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35974
35975         PR c++/35669
35976         * c.opt (Wconversion-null): New option.
35977         * doc/invoke.texi (Wconversion-null): Document.
35978
35979 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35980
35981         * common.opt (Wlarger-than-): Add Undocumented.
35982
35983 2010-02-19  Mike Stump  <mikestump@comcast.net>
35984
35985         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
35986
35987 2010-02-19  Jason Merrill  <jason@redhat.com>
35988
35989         PR target/40332
35990         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
35991         * configure: Likewise.
35992
35993 2010-02-20  Alan Modra  <amodra@gmail.com>
35994
35995         PR middle-end/42344
35996         * cgraph.h (cgraph_make_decl_local): Declare.
35997         * cgraph.c (cgraph_make_decl_local): New function.
35998         (cgraph_make_node_local): Use it.
35999         * cgraphunit.c (cgraph_function_versioning): Likewise.
36000         * ipa.c (function_and_variable_visibility): Likewise.
36001
36002 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36003
36004         PR bootstrap/43121
36005         * except.c (sjlj_emit_function_enter): Don't call
36006         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
36007         directly.
36008         * rtl.h (add_reg_br_prob_note): Remove prototype.
36009
36010 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36011
36012         PR 41779
36013         * c-common.c (conversion_warning): Remove widening conversions
36014         before checking the conversion of integers to reals.
36015
36016 2010-02-19  Mike Stump  <mikestump@comcast.net>
36017
36018         PR middle-end/43125
36019         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
36020
36021         PR objc/43061
36022         * cgraphunit.c (process_function_and_variable_attributes): Check
36023         DECL_PRESERVE_P instead of looking up attribute "used".
36024         * ipa-pure-const.c (check_decl): Likewise.
36025         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
36026         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
36027         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
36028         instead of attribute "used".
36029         * config/sol2-c.c (solaris_pragma_init): Likewise.
36030         (solaris_pragma_fini): Likewise.
36031
36032 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36033
36034         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
36035         Use XCNEW instead of xcalloc.
36036         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
36037         XNEW instead of xmalloc.
36038         (get_fields): Use XNEWVEC instead of xmalloc.
36039
36040         PR debug/43084
36041         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
36042         populate vars array.
36043         (create_new_general_access): For debug stmts just reset value.
36044         (get_stmt_accesses): For accesses within debug stmts just record them
36045         using add_access_to_acc_sites instead of preventing the peeling or
36046         counting them as accesses.
36047
36048         PR middle-end/42233
36049         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
36050
36051 2010-02-19  Richard Guenther  <rguenther@suse.de>
36052
36053         PR tree-optimization/42916
36054         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
36055         instructions.
36056
36057 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
36058
36059         * configure.ac: Replace all uses of changequote in macro arguments
36060         with proper quoting.
36061
36062 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36063
36064         PR middle-end/42233
36065         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
36066
36067 2010-02-19  Richard Guenther  <rguenther@suse.de>
36068
36069         PR tree-optimization/42944
36070         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
36071         test for aliasing with errno.
36072
36073 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36074
36075         PR middle-end/42233
36076         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
36077         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
36078         * dojump.c: Include output.h.
36079         (inv): New inline function.
36080         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
36081         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
36082         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
36083         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
36084         argument, pass it down to other calls.
36085         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
36086         add REG_BR_PROB note to the conditional jump.
36087         * cfgexpand.c (add_reg_br_prob_note): Removed.
36088         (expand_gimple_cond): Don't call it, add the probability
36089         as last argument to jumpif_1/jumpifnot_1.
36090         * Makefile.in (dojump.o): Depend on output.h.
36091         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
36092         callers.
36093         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
36094         * stmt.c (do_jump_if_equal): Likewise.
36095         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
36096         * loop-unswitch.c (compare_and_jump_seq): Likewise.
36097         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
36098         Likewise.
36099         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
36100         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
36101         jumpifnot_1 callers.
36102         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
36103         callers.
36104         (store_expr): Adjust jumpifnot caller.
36105         (store_constructor): Adjust jumpif caller.
36106
36107         PR middle-end/42233
36108         * gimplify.c (gimple_boolify): For __builtin_expect call
36109         gimple_boolify also on its first argument.
36110
36111 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
36112
36113         * configure.ac (gnu-unique-object): Wrap regexps using [] in
36114         changequote block.
36115         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
36116         * configure: Regenerated.
36117
36118 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
36119
36120         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
36121         lang_hooks.types_compatible_p instead of comptypes.
36122
36123 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
36124
36125         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
36126         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
36127         if __prefer_thumb__ is defined.
36128
36129 2010-02-18  Martin Jambor  <mjambor@suse.cz>
36130
36131         PR tree-optimization/43066
36132         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
36133         array with zero-sized element type.
36134
36135 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
36136
36137         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
36138         rtx, allocate struct var_loc_node here and return it to the
36139         caller, and only if it is actually needed.
36140         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
36141         move it earlier and return immediately if it returns NULL.
36142
36143 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
36144
36145         * config/sparc/gas.h: New file.  Restore
36146         TARGET_ASM_NAMED_SECTION to its ELF default.
36147         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
36148         check !HAVE_GNU_AS.
36149         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36150         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
36151         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
36152         after sparc/sysv4.h.
36153
36154 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
36155
36156         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
36157
36158 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
36159
36160         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
36161         patterns from predicated pattern.
36162
36163 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
36164
36165         PR target/43103
36166         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
36167         for insn mnemonic suffix.
36168
36169 2010-02-17  Richard Guenther  <rguenther@suse.de>
36170
36171         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
36172         to loop PHI nodes.
36173
36174 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
36175
36176         PR debug/42918
36177         * caller-save.c (save_call_clobbered_regs): If BB ends with
36178         a DEBUG_INSN, move any notes in between last real insn and the last
36179         DEBUG_INSN after the last DEBUG_INSN.
36180
36181 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
36182
36183         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
36184         Fix return type.  Fix argument type.  Explain meaning of return value.
36185
36186 2010-02-16  Richard Guenther  <rguenther@suse.de>
36187
36188         PR tree-optimization/41043
36189         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
36190         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
36191         statements ...
36192         (vrp_visit_phi_node): ... but only for loop PHI nodes.
36193
36194 2010-02-16  Ira Rosen  <irar@il.ibm.com>
36195
36196         PR tree-optimization/43074
36197         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
36198         * tree-vect-loop.c (vect_analyze_loop_operations): Add
36199         vectorizable cycles in hybrid SLP check.
36200         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
36201
36202 2010-02-16  Richard Guenther  <rguenther@suse.de>
36203
36204         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
36205         (true_dependence): If memrefs_conflict_p computes must-alias
36206         trust it.  Move TBAA check after offset-based disambiguation.
36207         (canon_true_dependence): Likewise.
36208
36209 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
36210
36211         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
36212         * doc/invoke.texi: Document it.
36213         * var-tracking.c: Include toplev.h and params.h.
36214         (vt_find_locations): Return bool indicating success.  Compute
36215         hash sizes unconditionally.  Check new parameter, report.
36216         (variable_tracking_main_1): Check vt_find_locations results and
36217         retry.  Renamed from...
36218         (variable_tracking_main): ... this.  New wrapper to preserve
36219         flag_var_tracking_assignments.
36220         * Makefile.in (var-tracking.o): Adjust dependencies.
36221
36222 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
36223             Jakub Jelinek  <jakub@redhat.com>
36224
36225         PR target/42854
36226         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
36227         if weak_import attribute is present.
36228         * config/darwin.c (machopic_select_section): Likewise.
36229
36230 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
36231
36232         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
36233         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
36234         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
36235         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
36236
36237         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
36238         types.
36239
36240         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
36241         Fix argument types.
36242
36243         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
36244         Rewrite text to refer to the names.
36245
36246 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
36247
36248         * config/i386/i386-builtin-types.def
36249         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
36250         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
36251         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
36252         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
36253         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
36254         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
36255         IX86_BUILTIN_VPERMIL2PS256.
36256         (MULTI_ARG_4_DF2_DI_I): Defined.
36257         (MULTI_ARG_4_DF2_DI_I1): Defined.
36258         (MULTI_ARG_4_SF2_SI_I): Defined.
36259         (MULTI_ARG_4_SF2_SI_I1): Defined.
36260         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
36261         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
36262         __builtin_ia32_vpermil2ps256.
36263         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36264         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36265         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
36266         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36267         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36268         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
36269         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
36270         CODE_FOR_xop_vpermil2v8sf3.
36271         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
36272         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
36273         * config/i386/xopintrin.h (_mm_permute2_pd): New.
36274         (_mm256_permute2_pd): New.
36275         (_mm_permute2_ps): New.
36276         (_mm256_permute2_ps): New.
36277
36278 2010-02-15  Nick Clifton  <nickc@redhat.com>
36279
36280         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
36281         boolean parameters.  Use emit_jump_insn when emitting a pop
36282         instruction containing a return insn.
36283         (push): Use 'true' rather than '1' as second parameter to F.
36284         (h8300_expand_prologue): Likewise.
36285         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
36286         (h8300_expand_epilogue): Likewise.
36287
36288 2010-02-15  Richard Guenther  <rguenther@suse.de>
36289
36290         PR middle-end/43068
36291         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
36292         if that is zero.
36293
36294 2010-02-15  Nick Clifton  <nickc@redhat.com>
36295
36296         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
36297         delta.
36298
36299 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
36300
36301         * intl.c (fake_ngettext): New function.
36302         * intl.h (fake_ngettext): Declare.
36303         (ngettext): Define macro.
36304         * collect2.c (notice_translated): New function.
36305         (main): Use notice_translated and ngettext.
36306         * collect2.h (notice_translated): Declare.
36307
36308 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
36309
36310         * reorg.c (delete_computation): Comment fixes.
36311         * caller-save.c (setup_save_areas): Idem.
36312         * sel-sched-dump.c (dump_lv_set): Idem.
36313         * rtl.def: Idem.
36314
36315 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36316
36317         * config/s390/s390.c (s390_sched_init): New function.
36318         (TARGET_SCHED_INIT): Target hook defined.
36319
36320 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
36321             Jack Howarth  <howarth@bromo.med.uc.edu>
36322             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
36323
36324         PR target/42982
36325         Partial revert of unintended change in fix for PR41605.
36326         * config/darwin.h: Fix typo.
36327         * config/darwin9.h: Same.
36328
36329 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36330
36331         * c-pch.c (pch_init): Clear v.
36332
36333 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36334
36335         PR middle-end/42930
36336         * graphite-scop-detection.c (graphite_can_represent_scev): Call
36337         graphite_can_represent_init for MULT_EXPR.
36338
36339 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36340
36341         PR middle-end/42914
36342         PR middle-end/42530
36343         * graphite-sese-to-poly.c (remove_phi): New.
36344         (translate_scalar_reduction_to_array): Call remove_phi.
36345
36346 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36347
36348         PR middle-end/42771
36349         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
36350         * graphite-clast-to-gimple.h (gloog): Update declaration.
36351         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
36352         * graphite-poly.h (struct poly_bb): Add missing comments.
36353         (struct scop): Add poly_scop_p field.
36354         (POLY_SCOP_P): New.
36355         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
36356         * graphite.c (graphite_transform_loops): Build the polyhedral
36357         representation for each scop before code generation.
36358         * sese.c (rename_variables_in_operand): Removed.
36359         (rename_variables_in_expr): Return the renamed expression.
36360         (rename_sese_parameters): New.
36361         * sese.h (rename_sese_parameters): Declared.
36362
36363 2010-02-11  Richard Guenther  <rguenther@suse.de>
36364
36365         PR tree-optimization/42998
36366         * tree-ssa-pre.c (create_expression_by_pieces): Treat
36367         POINTER_PLUS_EXPR properly.
36368
36369 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36370             Changpeng Fang  <changpeng.fang@amd.com>
36371
36372         PR middle-end/40886
36373         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
36374         the cost of an IV candidate when the IV is used in a test against zero.
36375
36376         * gcc.dg/tree-ssa/ivopts-3.c: New.
36377
36378 2010-02-11  Richard Guenther  <rguenther@suse.de>
36379
36380         PR lto/41664
36381         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
36382         pointer-vs-decl case by swapping refs.  Handle some cases
36383         of pointer-vs-decl disambiguations more conservatively.
36384         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
36385         to false after expanding.
36386
36387 2010-02-11  Richard Guenther  <rguenther@suse.de>
36388
36389         PR driver/43021
36390         * gcc.c (process_command): Handle LTO file@offset case more
36391         appropriately.
36392
36393 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36394
36395         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
36396         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
36397         of DEBUG_INSNs.
36398         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
36399
36400         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
36401         if MEM's mode size isn't DWARF2_ADDR_SIZE.
36402         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
36403         Optimize eq/ne comparisons when both arguments are known to be
36404         zero-extended.
36405         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
36406         Don't mask operands unnecessarily if they are known to be already
36407         zero-extended.
36408
36409 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
36410
36411         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
36412         instead of loop.
36413
36414 2010-02-10  Richard Guenther  <rguenther@suse.de>
36415
36416         PR tree-optimization/43017
36417         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
36418         for wrapping signed arithmetic.
36419
36420 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36421
36422         PR debug/43010
36423         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
36424         if no debug info should be emitted for it.
36425
36426 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
36427
36428         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
36429         note when flag_exceptions is set.
36430
36431 2010-02-10  Duncan Sands  <baldrick@free.fr>
36432
36433         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
36434
36435 2010-02-10  Richard Guenther  <rguenther@suse.de>
36436
36437         PR c/43007
36438         * tree.c (get_unwidened): Handle constants.
36439         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
36440
36441 2010-02-10  Martin Jambor  <mjambor@suse.cz>
36442
36443         PR lto/42985
36444         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
36445         check for variable argument counts independently.
36446
36447 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36448
36449         PR target/42841
36450         * config/sh/sh.c (find_barrier): Increase length for non delayed
36451         conditional branches.
36452
36453 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36454
36455         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
36456
36457 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36458
36459         * builtins.c (set_builtin_user_assembler_name): Also handle
36460         ffs if int is smaller than word.
36461
36462 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
36463
36464         PR middle-end/42973
36465         * ira-conflicts.c (get_dup): Remove.
36466         (process_reg_shuffles): Add new parameter.  Use it as an
36467         additional guard for copy generation.
36468         (add_insn_allocno_copies): Rewrite.
36469
36470 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
36471
36472         * common.opt (fsched2-use-traces): Preserved for backward
36473         compatibility.
36474         * doc/invoke.texi: Remove the documentation about option
36475         -fsched2-use-traces.
36476         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
36477         flag_sched2_use_traces.
36478         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
36479         the backward compatibility flag section.
36480
36481 2010-02-09  Richard Guenther  <rguenther@suse.de>
36482
36483         PR tree-optimization/43008
36484         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
36485         make HEAP variables initialized from global memory if they
36486         are not known builtin functions.
36487         (find_func_aliases): Adjust.
36488
36489 2010-02-09  Richard Guenther  <rguenther@suse.de>
36490
36491         PR tree-optimization/43000
36492         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
36493         arithmetic manually.
36494
36495 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
36496
36497         PR tree-optimization/42931
36498         * tree-loop-linear.c (try_interchange_loops): Don't call
36499         double_int_mul if estimated_loop_iterations failed.
36500
36501 2010-02-08  Martin Jambor  <mjambor@suse.cz>
36502
36503         PR middle-end/42898
36504         * tree-sra.c (build_accesses_from_assign): Do not mark in
36505         should_scalarize_away_bitmap if stmt has volatile ops.
36506         (sra_modify_assign): Do not process assigns piecemeal if if stmt
36507         has volatile ops.
36508
36509 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
36510
36511         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
36512
36513 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
36514
36515         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
36516         before the pattern.
36517
36518 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
36519
36520         PR middle-end/42946
36521         * df-core.c (df_finish_pass): Change type of saved_flags to int.
36522
36523 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36524
36525         PR middle-end/42988
36526         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
36527         to unknown_dependence.
36528         (graphite_legal_transform_dr): Handle the unknown_dependence.
36529         (graphite_carried_dependence_level_k): Same.
36530
36531 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36532
36533         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
36534
36535 2010-02-07  Richard Guenther  <rguenther@suse.de>
36536
36537         PR middle-end/42991
36538         * expr.c (get_inner_reference): Always initialize *pbitsize.
36539
36540 2010-02-07  Richard Guenther  <rguenther@suse.de>
36541
36542         PR middle-end/42956
36543         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
36544         new ARRAY_REFs on variable size element or minimal index arrays.
36545         Complete.
36546         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
36547         gimple_fold_indirect_ref.
36548
36549 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
36550
36551         PR target/42957
36552         * arm.c (arm_override_options): Just return if the user has specified
36553         an invalid fpu name.
36554
36555 2010-02-03  Jason Merrill  <jason@redhat.com>
36556
36557         PR c++/42870
36558         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
36559         i386_pe_maybe_record_exported_symbol.
36560
36561 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
36562
36563         PR target/42924
36564         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36565         (pa_delegitimize_address): New function.
36566
36567 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
36568
36569         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
36570         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
36571
36572 2010-02-05  Richard Guenther  <rguenther@suse.de>
36573
36574         PR lto/42762
36575         * lto-streamer-in.c (get_resolution): Deal with references
36576         to undefined functions.
36577
36578 2010-02-05  Richard Guenther  <rguenther@suse.de>
36579
36580         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
36581         (fold_const_aggregate_ref): Likewise.
36582         (ccp_fold_stmt): Substitute loads.
36583         (maybe_fold_reference): Verify types before substituting.
36584         Unshare properly.
36585         (fold_gimple_assign): Unshare properly.
36586         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
36587
36588 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
36589
36590         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
36591         for rs6000_gen_cell_microcode.
36592
36593 2010-02-04  Richard Guenther  <rguenther@suse.de>
36594
36595         PR rtl-optimization/42952
36596         * dse.c (const_or_frame_p): Remove MEM handling.
36597
36598 2010-02-04  Nick Clifton  <nickc@redhat.com>
36599
36600         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
36601         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
36602         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
36603         (mn10300_asm_output_mi_thunk): New function.
36604         (mn10300_can_output_mu_thunk): New function.
36605         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
36606         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
36607         (FUNCTION_ARG): Delete incorrect comment.
36608
36609 2010-02-03  Jason Merrill  <jason@redhat.com>
36610
36611         PR c++/40138
36612         * fold-const.c (operand_equal_p): Handle erroneous types.
36613
36614 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
36615
36616         * config/h8300/h8300.md (can_delay): Fix attibute condition.
36617
36618 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
36619
36620         PR rtl-optimization/42941
36621         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
36622         of xmalloc.
36623
36624 2010-02-03  Jason Merrill  <jason@redhat.com>
36625
36626         PR c++/35652
36627         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
36628
36629 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
36630
36631         PR debug/42896
36632         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
36633         (cselib_reset_table): Renamed from...
36634         (cselib_reset_table_with_next_value): ... this.
36635         (cselib_get_next_uid): Renamed from...
36636         (cselib_get_next_unknown_value): ... this.
36637         * cselib.c (next_uid): Renamed from...
36638         (next_unknown_value): ... this.
36639         (cselib_clear_table): Adjust.
36640         (cselib_reset_table): Adjust.  Renamed from...
36641         (cselib_reset_table_with_next_value): ... this.
36642         (cselib_get_next_uid): Adjust.  Renamed from...
36643         (cselib_get_next_unknown_value): ... this.
36644         (get_value_hash): Use hash.
36645         (cselib_hash_rtx): Likewise.
36646         (new_cselib_val): Adjust.  Set and dump uid.
36647         (cselib_lookup_mem): Pass next_uid as hash.
36648         (cselib_subst_to_values): Likewise.
36649         (cselib_log_lookup): Dump uid.
36650         (cselib_lookup): Pass next_uid as hash.  Adjust.
36651         (cselib_process_insn): Adjust.
36652         (cselib_init): Initialize next_uid.
36653         (cselib_finish): Adjust.
36654         (dump_cselib_table): Likewise.
36655         * dse.c (canon_address): Dump value uid.
36656         * print-rtl.c (print_rtx): Print value uid.
36657         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
36658         (dvuid): New type.
36659         (dv_uid): New function, sort of renamed from...
36660         (dv_htab_hash): ... this, reimplemented in terms of it and...
36661         (dv_uid2hash): ... this.  New.
36662         (variable_htab_eq): Drop excess assertions.
36663         (tie_break_pointers): Removed.
36664         (canon_value_cmp): Compare uids.
36665         (variable_post_merge_New_vals): Print uids.
36666         (vt_add_function_parameters): Adjust.
36667         (vt_initialize): Reset table.  Adjust.
36668
36669 2010-02-03  Richard Guenther  <rguenther@suse.de>
36670
36671         PR tree-optimization/42944
36672         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
36673         (call_may_clobber_ref_p_1): Likewise.  Properly handle
36674         malloc and calloc clobbering errno.
36675
36676 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
36677
36678         * doc/invoke.texi: Fix name of sched1 dump.
36679
36680         * opts.c (decode_options): Set flag_tree_switch_conversion
36681         only conditionally on optimize >= 2.
36682
36683         * gcse.c: Assorted comment fixes in pass description.
36684
36685 2010-02-03  Anthony Green  <green@moxielogic.com>
36686
36687         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
36688         nop padding in order to maintain alignment of storage location of
36689         target function address.
36690         (moxie_trampoline_init): Store target function address at newly
36691         aligned location.
36692         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
36693         to 32.
36694         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
36695
36696 2010-02-03  Richard Guenther  <rguenther@suse.de>
36697
36698         PR middle-end/42927
36699         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
36700
36701 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36702
36703         * config.gcc: Reenable check for obsolete targets.
36704         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
36705         mips-sgi-irix6.[0-4]*.
36706
36707 2010-02-02  Nick Clifton  <nickc@redhat.com>
36708
36709         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
36710         constant size of 4 as being the same as 0.
36711         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
36712         can take values in the range 0..4.
36713
36714 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
36715
36716         PR java/41991
36717         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
36718         as _darwin10_Unwind_FindEnclosingFunction().
36719         * libgcc-libsystem.ver: New.
36720
36721 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
36722
36723         PR target/41399
36724         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
36725         implicitly set registers.
36726
36727 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
36728
36729         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
36730         (arm_override_options): Allow automatic selection of the thread
36731         pointer register if thumb2.
36732         (legitimize_pic_address): Improve code sequences for Thumb2.
36733         (arm_call_tls_get_addr): Likewise.
36734         (legitimize_tls_address): Likewise.
36735         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
36736         (pic_load_addr_32bit): ... this.  New named pattern.
36737         * thumb2.md (pic_load_addr_thumb2): Delete.
36738         (pic_load_dot_plus_four): Delete.
36739         (tls_load_dot_plus_four): New named pattern.
36740
36741 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36742
36743         PR libgomp/29986
36744         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
36745         Document fix for TLS bug.
36746
36747 2010-01-31  Richard Guenther  <rguenther@suse.de>
36748
36749         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
36750         conservatively correct.
36751
36752 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36753
36754         PR target/42850
36755         Revert:
36756         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36757
36758         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
36759
36760 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
36761
36762         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
36763
36764 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
36765
36766         * config.gcc: Adjust order of makefile fragments for mingw targets.
36767
36768 2010-01-31  Richard Guenther  <rguenther@suse.de>
36769
36770         PR middle-end/42898
36771         * gimplify.c (gimplify_init_constructor): For volatile LHS
36772         initialize a temporary.
36773
36774 2010-01-31  Matthias Klose  <doko@ubuntu.com>
36775
36776         * configure.ac: Fix __stack_chk_fail check for cross builds configured
36777         --with-headers
36778         * configure: Regenerate.
36779
36780 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
36781
36782         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
36783         the same alias set and their sizes different constantness.
36784         (aliasing_component_refs_p): Revert 2009-10-24 change.
36785
36786 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36787
36788         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
36789         unused.
36790
36791 2010-01-29  Richard Guenther  <rguenther@suse.de>
36792
36793         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
36794         Assert we successfully updated the call.
36795
36796 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
36797
36798         PR rtl-optimization/42889
36799         * df.h (df_set_bb_dirty_nonlr): New prototype.
36800         * df-core.c (df_set_bb_dirty_nonlr): New function.
36801         * df-scan.c (df_insn_rescan): Call it instead of
36802         df_set_bb_dirty for DEBUG_INSNs.
36803
36804 2010-01-29  Richard Guenther  <rguenther@suse.de>
36805
36806         PR middle-end/37448
36807         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
36808         quadratic behavior in most cases.
36809
36810 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
36811
36812         PR target/42891
36813         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
36814         in the call to gen_x86_movsicc_0_m1.
36815
36816 2010-01-28  Richard Guenther  <rguenther@suse.de>
36817
36818         PR tree-optimization/42871
36819         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
36820
36821 2010-01-28  Richard Guenther  <rguenther@suse.de>
36822
36823         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
36824         into call arguments.
36825
36826 2010-01-28  Richard Guenther  <rguenther@suse.de>
36827
36828         PR middle-end/42883
36829         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
36830         the forwarder if the destination is an EH landing pad.
36831
36832 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
36833
36834         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
36835         block list passed to gimple_duplicate_sese_tail.
36836         (parallelize_loops): Avoid parallelization when the function
36837         has_nonlocal_label.
36838         Avoid parallelization when the preheader is IRREDUCIBLE.
36839         Try to optimize when estimated_loop_iterations_int is unresolved.
36840         Add the loop's location to the dump file.
36841         * tree-cfg.c (add_phi_args_after_redirect): Remove.
36842         (gimple_duplicate_sese_tail): Remove the check for the latch.
36843         Redirect nexits to the exit block.
36844         Remove handling of the incoming edges to the latch.
36845         Redirect the backedge from the copied latch to the exit bb.
36846
36847 2010-01-28  Michael Matz  <matz@suse.de>
36848
36849         PR target/42881
36850         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
36851         Wrap force_reg into a sequence, emit it before user.
36852
36853 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
36854
36855         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
36856         (arm_rev): New.
36857         (arm_legacy_rev): Likewise.
36858         (thumb_legacy_rev): Likewise.
36859
36860 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36861
36862         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
36863         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
36864         on MEM's address failed, try avoid_constant_pool_reference and
36865         recurse if it returned something different.
36866         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
36867         address, try avoid_constant_pool_reference and recurse if it
36868         returned something different.
36869         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
36870         address and avoid_constant_pool_reference returned something
36871         different, don't set have_address.
36872
36873 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
36874
36875         PR debug/42861
36876         * var-tracking.c (val_store): Add modified argument, obey it.
36877         Adjust callers.
36878         (count_uses): Move down logging of main.
36879         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
36880         don't need resolution.
36881         (emit_notes_in_bb): Likewise.
36882
36883 2010-01-27  Richard Guenther  <rguenther@suse.de>
36884
36885         PR middle-end/42878
36886         * tree-inline.c (remap_decl): Delay remapping of SSA name
36887         default definitions until we need them.
36888
36889 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36890
36891         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36892         (rs6000_delegitimize_address): New function.
36893
36894         * config/s390/s390.c (s390_delegitimize_address): Call
36895         delegitimize_mem_from_attrs.
36896
36897         PR middle-end/42874
36898         * tree-inline.c (cannot_copy_type_1): Removed.
36899         (copy_forbidden): Don't forbid copying of functions containing
36900         records/unions with variable length fields.
36901
36902 2010-01-27  Christian Bruel  <christian.bruel@st.com>
36903
36904         Revert:
36905         PR target/42841
36906         * config/sh/sh.c (find_barrier): Increase length for non delayed
36907         conditional branches.
36908
36909 2010-01-27  Matthias Klose  <doko@ubuntu.com>
36910
36911         * configure.ac (gnu-unique-object): Fix ldd version check.
36912         * configure: Regenerate.
36913
36914 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36915
36916         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
36917         HAVE_GNU_AS value.
36918         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
36919         Test for HAVE_GNU_AS value.
36920
36921 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36922
36923         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
36924         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
36925         INT64_TYPE): Define.
36926         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
36927         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
36928         INT_LEAST64_TYPE): Define.
36929         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
36930         UINT_LEAST64_TYPE): Define.
36931         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
36932         INT_FAST64_TYPE): Define.
36933         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
36934         UINT_FAST64_TYPE): Define.
36935         (INTMAX_TYPE, UINTMAX_TYPE): Define.
36936         (INTPTR_TYPE, UINTPTR_TYPE): Define.
36937         (SIG_ATOMIC_TYPE): Define.
36938
36939 2010-01-26  Richard Guenther  <rguenther@suse.de>
36940
36941         * df-scan.c (df_scan_set_bb_info): Remove assert.
36942         (df_insn_rescan_debug_internal): Merge asserts.
36943         (df_install_ref): Likewise.
36944         (df_mark_reg): Use bitmap_set_range.
36945         (df_hard_reg_used_p): Remove assert.
36946         (df_hard_reg_used_count): Likewise.
36947
36948 2010-01-26  Richard Guenther  <rguenther@suse.de>
36949
36950         PR rtl-optimization/42685
36951         * web.c (web_main): Ignore DEBUG_INSNs.
36952
36953 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
36954
36955         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
36956
36957         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
36958         Fix types of fndecl and arglist parameters.
36959
36960 2010-01-26  Richard Guenther  <rguenther@suse.de>
36961
36962         PR middle-end/42806
36963         * tree-eh.c (unsplit_eh): Skip debug insns.
36964
36965 2010-01-26  Richard Guenther  <rguenther@suse.de>
36966
36967         PR tree-optimization/42250
36968         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
36969
36970 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
36971
36972         PR fortran/42866
36973         * omp-low.c (expand_omp_sections): Only use single_pred if
36974         l2_bb is single_pred_p.
36975
36976 2010-01-25  Christian Bruel  <christian.bruel@st.com>
36977
36978         PR target/42841
36979         * config/sh/sh.c (find_barrier): Increase length for non delayed
36980         conditional branches.
36981         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
36982
36983 2010-01-24  David S. Miller  <davem@davemloft.net>
36984
36985         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
36986         define if not using GAS.
36987         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36988         Likewise.  Delete SECTION_MERGE code, which is only applicable
36989         when using GAS.
36990
36991 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
36992
36993         PR c++/42748
36994         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
36995         mangling of va_list in system headers.
36996
36997 2010-01-23  Toon Moene  <toon@moene.org>
36998
36999         * tree-predcom.c (combine_chains): Return NULL, not false.
37000
37001 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
37002
37003         * tree-loop-distribution.c (distribute_loop): Fix declaration and
37004         initialization of variable res to agree with return type.
37005
37006 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
37007
37008         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
37009         * tree-sra.c: Add include of expr.h.
37010
37011 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
37012
37013         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
37014         insert the debug stmt on the single non-EH edge from the stmt.
37015
37016 2010-01-22  Richard Henderson  <rth@redhat.com>
37017
37018         PR tree-opt/42833
37019         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
37020         the RHS until after generate_subtree_copies has insertted its
37021         code before the current statement.
37022
37023 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
37024
37025         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
37026
37027         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
37028
37029 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37030
37031         PR tree-optimization/42585
37032         * tree-sra.c (struct access): New field grp_total_scalarization.
37033         (dump_access): Dump the new field.
37034         (should_scalarize_away_bitmap): New variable.
37035         (cannot_scalarize_away_bitmap): Likewise.
37036         (sra_initialize): Allocate new bitmaps.
37037         (sra_deinitialize): Free new bitmaps.
37038         (create_access_1): New function.
37039         (create_access): Parts moved to create_access_1.
37040         (type_consists_of_records_p): New function.
37041         (completely_scalarize_record): Likewise.
37042         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
37043         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
37044         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
37045         access.
37046         (analyze_all_variable_accesses): Completely scalarize small eligible
37047         records.
37048
37049 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37050
37051         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
37052
37053 2010-01-21  Andrew Haley  <aph@redhat.com>
37054
37055         * gcc.c (process_command): Move lang_specific_driver before
37056         setting cc_libexec_prefix.
37057
37058 2010-01-21  Richard Guenther  <rguenther@suse.de>
37059
37060         PR middle-end/19988
37061         * fold-const.c (negate_expr_p): Pretend only negative
37062         real constants are easily negatable.
37063
37064 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
37065             Jason Merrill  <jason@redhat.com>
37066
37067         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
37068         (TYPE_TRANSPARENT_AGGR): this, for union and record.
37069         * calls.c (initialize argument_information): Handle it.
37070         * c-common.c (handle_transparent_union_attribute): Use new name.
37071         * c-decl.c (finish_struct): Ditto.
37072         * c-typeck.c (type_lists_compatible_p): Ditto.
37073         (convert_for_assignment): Use new name and also handle record.
37074         * function.c (aggregate_value_p): Handle it.
37075         (pass_by_reference): Ditto.
37076         (assign_parm_data_types): Ditto.
37077         * print-tree.c (print_node): Ditto.
37078         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
37079         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
37080         * tree.c (first_field): New fn.
37081
37082 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
37083
37084         PR target/42818
37085         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
37086         even when linking statically, for now.
37087
37088 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37089
37090         PR debug/42715
37091         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
37092         without a cselib val.
37093         (count_uses): Accept MO_VAL_SET with no val on stores.
37094         (add_stores): Likewise.
37095
37096 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37097
37098         * var-tracking.c (check_value_val): Add a compile time assertion.
37099         (dv_is_decl_p): Simplify.
37100         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
37101         gcc_assert if ENABLE_CHECKING.
37102
37103 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37104
37105         PR debug/42782
37106         * var-tracking.c: Include tree-flow.h.
37107         (mem_dies_at_call): New.
37108         (dataflow_set_preserve_mem_locs): Use it.
37109         (dataflow_set_remove_mem_locs): Likewise.
37110         (dump_var): Renamed from dump_variable.  Adjust all callers.
37111         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
37112         * Makefile.in (var-tracking.o): Adjust deps.
37113
37114 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
37115
37116         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
37117
37118 2010-01-20  Richard Guenther  <rguenther@suse.de>
37119
37120         PR tree-optimization/42717
37121         * tree-ssa-dce.c (get_live_post_dom): Remove.
37122         (forward_edge_to_pdom): Take an arbitrary edge to copy
37123         degenerate PHI args from.
37124         (remove_dead_stmt): Use the first post-dominator even if it
37125         does not contain live statements as redirection destination.
37126
37127 2010-01-20  Richard Guenther  <rguenther@suse.de>
37128
37129         * tree-inline.c (estimate_num_insns): Handle EH builtins.
37130
37131 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37132
37133         * sel-sched.c (create_speculation_check): Remove set but not used
37134         variable twin.
37135         (try_transformation_cache): Remove set but not used variable ds.
37136         (calculate_privileged_insns): Remove set but not used variables
37137         cur_insn and min_spec_insn.
37138         (find_best_expr): Remove set but not used variable avail_n.
37139         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
37140         variable e.
37141         * cgraphunit.c (assemble_thunk): Remove set but not used variable
37142         false_label.
37143         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
37144         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
37145         new_scop_exit_edge.
37146
37147 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
37148
37149         PR bootstrap/42786
37150         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
37151         cpu types.  Add support for *-sse3 cpu types.
37152         (x86_64-*-*): Ditto.
37153
37154 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37155
37156         PR middle-end/42803
37157         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
37158         argument, call initializer_constant_valid_p_1 instead of
37159         initializer_constant_valid_p, pass CACHE to it, return NULL
37160         immediately if first call returns NULL.
37161         (initializer_constant_valid_p_1): New function.
37162         (initializer_constant_valid_p): Use it.
37163
37164 2010-01-20  Thomas Quinot  <quinot@adacore.com>
37165
37166         * tree.def (PLACEHOLDER_EXPR): Fix comment.
37167
37168 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37169
37170         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
37171         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
37172         (loc_list_from_tree): Don't handle unsigned division.  Handle
37173         signed modulo using DW_OP_{over,over,div,mul,minus}.
37174         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
37175         modulo instead of signed.
37176
37177 2010-01-20  DJ Delorie  <dj@redhat.com>
37178
37179         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
37180         (Fpa): Pass it
37181         (h8300_emit_stack_adjustment): Propogate it.
37182         (push): Pass it.
37183         (h8300_expand_prologue): Likewise.
37184         (h8300_expand_epilogue): Likewise.
37185
37186 2010-01-19  Michael Matz  <matz@suse.de>
37187
37188         PR tree-optimization/41783
37189         * tree-data-ref.c (toplevel): Include flags.h.
37190         (dump_data_dependence_relation):  Also dump the inputs if the
37191         result will be unknown.
37192         (split_constant_offset_1): Look through some conversions.
37193         * tree-predcom.c (determine_roots_comp): Restart a new chain if
37194         the offset from last element is too large.
37195         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
37196         (reassociate_to_the_same_stmt): Handle vector registers.
37197         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
37198         (e.g. conversions).
37199         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
37200         wide_prolog_niters argument, emit widening instructions.
37201         (vect_do_peeling_for_alignment): Adjust caller, use widened
37202         variant of the iteration cound.
37203         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
37204
37205 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37206
37207         PR target/38697
37208         * config/arm/neon-testgen.m (emit_automatics): New parameter
37209         features. Adjust for Fixed_return_reg feature.
37210         (test_intrinsic): Call emit_automatics with new feature.
37211         * config/arm/neon.ml: Update copyright years.
37212         (features): New Fixed_return_reg feature.
37213         (ops): Update feature for Vget_low.
37214
37215 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
37216
37217         PR tree-optimization/42719
37218         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
37219         stmt uses.
37220
37221         PR debug/42728
37222         * fwprop.c (all_uses_available_at): Return false if def_set dest
37223         is a REG that is used in def_insn.
37224
37225 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
37226
37227         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
37228
37229         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
37230         Add argument names.
37231
37232         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
37233
37234         * target.h (struct gcc_target) <secondary_reload>: Change type
37235         of last argument to secondary_reload_info *.
37236
37237 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
37238
37239         PR target/42774
37240         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
37241         memory references with unaligned offsets.  Remove CQImode handling.
37242         (unaligned_memory_operand): Return 1 for memory references with
37243         unaligned offsets.  Remove CQImode handling.
37244
37245 2010-01-18  Richard Guenther  <rguenther@suse.de>
37246
37247         PR middle-end/39954
37248         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
37249         builtin calls.
37250
37251 2010-01-18  Richard Guenther  <rguenther@suse.de>
37252
37253         PR tree-optimization/42781
37254         * tree-ssa-structalias.c (find_what_var_points_to): Skip
37255         restrict processing only if the original variable was artificial.
37256
37257 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
37258
37259         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
37260         find number of popped argument bytes.
37261
37262         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
37263         Fix the text that describes the return value for invalid insns.
37264
37265         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
37266
37267         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
37268         Clarify what 'cost of the -dependence' is.  Fix quoting.
37269
37270         * toplev.c (default_get_pch_validity): Rename argument to "sz".
37271         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
37272
37273 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
37274
37275         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
37276         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
37277
37278 2010-01-17  Richard Guenther  <rguenther@suse.de>
37279
37280         PR middle-end/42248
37281         * function.c (split_complex_args): Take a VEC to modify.
37282         (assign_parms_augmented_arg_list): Build a VEC instead of
37283         a chain of PARM_DECLs.
37284         (assign_parms_unsplit_complex): Take a VEC of arguments.
37285         Do not fixup unmodified parms.
37286         (assign_parms): Deal with the VEC.
37287         (gimplify_parameters): Likewise.
37288
37289 2010-01-17  Richard Guenther  <rguenther@suse.de>
37290
37291         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
37292         node existence check.
37293         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
37294         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
37295         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
37296         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
37297         (gimple_execute_on_growing_pred): Likewise.
37298
37299 2010-01-17  Richard Guenther  <rguenther@suse.de>
37300
37301         PR tree-optimization/42773
37302         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
37303         (compute_antic_aux): Likewise.
37304         (compute_partial_antic_aux): Likewise.
37305
37306 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
37307
37308         PR debug/42767
37309         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
37310         and US_TRUNCATE.
37311
37312 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
37313
37314         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
37315         appearance.
37316
37317         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
37318         Fix markup for strict argument.
37319
37320         (TARGET_SCHED_REORDER2): Fix argument types.
37321
37322         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
37323         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
37324
37325         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
37326         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
37327
37328         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
37329         Add argument name.
37330
37331         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
37332         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
37333         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
37334         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
37335         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
37336
37337         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
37338
37339         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
37340
37341         (TARGET_ASM_RELOC_RW_MASK): Add return type.
37342         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
37343
37344         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
37345
37346         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
37347         Use prototype.
37348
37349         (TARGET_ASM_NAMED_SECTION): Fix argument list.
37350
37351         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
37352         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
37353
37354         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
37355
37356         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
37357
37358         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
37359         referring to it.  Fix language.
37360
37361         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
37362
37363         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
37364
37365         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
37366
37367         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
37368
37369         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
37370         '@var{stream}.  Remove stray 'and'.
37371
37372         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
37373
37374         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
37375
37376         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
37377
37378         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
37379         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
37380
37381         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
37382         Fix description of return value.
37383         Rename argument "sz" to "len."
37384
37385         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
37386         Clarify meaning of 'true' return value.
37387
37388         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
37389
37390         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
37391         rep_mode versus mode_rep.
37392
37393         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
37394
37395         (TARGET_BUILTIN_DECL): Fix name.
37396
37397         (TARGET_COMMUTATIVE_P): Fix type of first argument.
37398
37399         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
37400
37401         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
37402
37403         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
37404
37405         (TARGET_RELAXED_ORDERING): Use @deftypevr.
37406
37407         (TARGET_GET_DRAP_RTX): Note that this is a hook.
37408         Clarify language.
37409
37410         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
37411         Rename argument tm_fn to md_fn.
37412
37413         (TARGET_OPTION_PRINT): Fix argument list.
37414
37415 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
37416
37417         PR target/42664
37418         * config/i386/i386.c (ix86_fixup_binary_operands):
37419         Revert FMA4 fixup of operands.
37420
37421 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37422
37423         PR other/42525
37424         * Makefile.in (write_entries_to_file, install-plugin):
37425         Use \012 instead of \n with tr.
37426
37427 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
37428
37429         * configure.ac (HAVE_AS_REF): New C macro.
37430         * configure: Regenerate.
37431         * config.in: Likewise.
37432         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
37433         if HAVE_AS_REF.
37434         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
37435         if HAVE_AS_REF.
37436
37437 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
37438
37439         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
37440
37441         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
37442
37443         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
37444
37445         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
37446
37447         (TARGET_IN_SMALL_DATA_P): Fix argument type.
37448
37449         (TARGET_BINDS_LOCAL_P): Fix argument type.
37450
37451         (TARGET_ASM_FILE_END): Use prototype.
37452
37453         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
37454
37455         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
37456
37457         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
37458
37459         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
37460
37461         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
37462         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
37463
37464         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
37465         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
37466
37467         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
37468         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
37469         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
37470         (TARGET_ADDR_SPACE_CONVERT): Likewise.
37471
37472         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
37473
37474         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
37475
37476         (TARGET_INIT_BUILTINS): Use prototype.
37477
37478         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
37479         Put 'const char *' in braces.  Fix parameter types.
37480         (TARGET_INVALID_CONVERSION): Fix parameter types.
37481         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
37482         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
37483
37484         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
37485         Fix argument type.
37486
37487         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
37488
37489         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
37490
37491 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
37492
37493         * doc/tm.texi (TARGET_HELP): Fix return type.
37494
37495         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
37496         in braces.  Fix argument types.
37497
37498         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
37499
37500         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
37501
37502         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
37503
37504         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
37505         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
37506
37507         (TARGET_MANGLE_TYPE): Fix argument types.
37508
37509         (TARGET_IRA_COVER_CLASSES): Use prototype.
37510
37511         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
37512
37513         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
37514
37515         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
37516
37517         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
37518
37519         (TARGET_CALLEE_COPIES): Fix argument types.
37520
37521         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
37522
37523         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
37524
37525         (TARGET_FUNCTION_VALUE): Fix argument types.
37526
37527         (TARGET_RETURN_IN_MSB): Fix argument type.
37528
37529         (TARGET_RETURN_IN_MEMORY): Fix argument types.
37530
37531         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
37532
37533         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
37534
37535         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
37536         agree with return type.
37537
37538         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
37539
37540 2010-01-15  Jing Yu  <jingyu@google.com>
37541
37542         PR rtl-optimization/42691
37543         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
37544         a pseudo to a constant and are merged, and adjust comments.
37545
37546 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
37547
37548         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
37549
37550 2010-01-15  Richard Guenther  <rguenther@suse.de>
37551
37552         PR middle-end/42739
37553         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
37554         labels of computed or non-local gotos to the destination.
37555         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
37556         landing pad label is the first label.
37557
37558 2010-01-15  Richard Guenther  <rguenther@suse.de>
37559
37560         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
37561
37562 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
37563
37564         PR target/42747
37565         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
37566         to allow generation of the xssqrtdp instruction on power7.
37567         (sqrtdf2_fpr): Ditto.
37568
37569 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37570
37571         PR middle-end/42674
37572         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
37573         functions with noreturn attribute.
37574
37575         PR c++/42608
37576         * varasm.c (declare_weak): Add weak attribute to decl if it
37577         doesn't have one already.
37578         (assemble_external): Only add decls to weak_decls if they also
37579         have weak attribute.
37580
37581 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
37582
37583         * var-tracking.c (var_reg_delete): Don't delete the association
37584         between REGs and values or one-part variables if the register
37585         isn't clobbered.
37586
37587 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37588
37589         PR debug/42657
37590         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
37591         because its first operand is a non-localized variable.
37592
37593 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37594
37595         PR tree-optimization/42706
37596         * tree-sra.c (encountered_recursive_call): New variable.
37597         (encountered_unchangable_recursive_call): Likewise.
37598         (sra_initialize): Initialize both new variables.
37599         (callsite_has_enough_arguments_p): New function.
37600         (scan_function): Call decl and flags check only for IPA-SRA, check
37601         whether there is a recursive call and whether it has enough arguments.
37602         (all_callers_have_enough_arguments_p): New function.
37603         (convert_callers): Look for recursive calls only when
37604         encountered_recursive_call is set.
37605         (ipa_early_sra): Bail out either if
37606         !all_callers_have_enough_arguments_p or
37607         encountered_unchangable_recursive_call.
37608
37609 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37610
37611         * sel-sched.c: Add 2010 to copyright years.
37612         * sel-sched-ir.c: Likewise.
37613         * sel-sched-ir.h: Likewise.
37614
37615 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37616
37617         PR tree-optimization/42714
37618         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
37619         constructors specially.
37620
37621 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37622
37623         * config/i386/drivers-i386.c (detect_caches_intel):
37624         Add l2sizekb parameter and fill in.
37625         (host_detect_local_cpu): Add l2sizekb, fill in.
37626         Add Atom small cache heuristic.
37627
37628 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37629
37630         * config/i386/drivers-i386.c (detect_caches_cpuid4):
37631         Add level3 parameter and fill in.
37632         (detect_caches_intel): Handle level3 cache.
37633
37634 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37635
37636         * config/i386/drivers-i386.c (host_detect_local_cpu):
37637         Fix core duo detection.
37638
37639 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37640
37641         * config/i386/drivers-i386.c (host_detect_local_cpu):
37642         Fix Atom detection.
37643
37644 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37645
37646         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
37647         (rs6000_variable_issue_1): this.  Use...
37648         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
37649
37650 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37651
37652         * sel-sched-ir.c (sel_restore_other_notes): Rename to
37653         sel_restore_notes.  Update all callers.  Call reemit_notes
37654         for all insns.
37655
37656 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37657
37658         PR rtl-optimization/42246
37659         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
37660         loops.
37661
37662 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37663
37664         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
37665         all successors is the same as number of successors in current region.
37666
37667 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37668
37669         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
37670         to rename is not separable.  Otherwise check that its LHS is not NULL.
37671
37672 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37673
37674         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
37675
37676 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37677
37678         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
37679         available registers when failed to discover LHS register class.
37680         Fix indentation.  Update comment.
37681
37682 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37683             Alexander Monakov  <amonakov@ispras.ru>
37684
37685         PR rtl-optimization/42389
37686         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
37687         to can_issue_more.
37688         (advance_state_on_fence): Likewise.
37689         (sel_target_adjust_priority): Print debug output only when
37690         sched_verbose >= 4, not 2.
37691         (get_expr_cost): Do not issue all unique insns on the next cycle.
37692         (fill_insns): Initialize can_issue_more from the value saved
37693         with the fence.
37694         * sel-sched-ir.c (flist_add): New parameter issue_more.
37695         Init FENCE_ISSUE_MORE with it.
37696         (merge_fences): Likewise.
37697         (init_fences): Update call to flist_add.
37698         (add_to_fences, add_clean_fence_to_fences)
37699         (add_dirty_fence_to_fences): Likewise.
37700         (move_fence_to_fences): Update call to merge_fences.
37701         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
37702         sched groups.
37703         * sel-sched-ir.h (struct _fence): New field issue_more.
37704         (FENCE_ISSUE_MORE): New accessor macro.
37705
37706 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37707
37708         PR rtl-optimization/42388
37709         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
37710         that have no predecessors nor successors.  Do not call move_bb_info
37711         for empty blocks outside of current region.
37712
37713 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37714
37715         PR rtl-optimization/42294
37716         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
37717         * sel-sched.c (move_exprs_to_boundary): Transitively add all
37718         originators' originators.
37719
37720 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37721
37722         PR rtl-optimization/39453
37723         PR rtl-optimization/42246
37724         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
37725         for pipelining_p.
37726         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
37727
37728 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37729             Alexander Monakov  <amonakov@ispras.ru>
37730
37731         PR middle-end/42245
37732         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
37733         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
37734         argument.  Update all callers.
37735         (tidy_control_flow): ... and here.  Recompute topological order
37736         of basic blocks in region if necessary.
37737         (sel_redirect_edge_and_branch): Change return type.  Return true
37738         if topological order might have been invalidated.
37739         (purge_empty_blocks): Export and move from...
37740         * sel-sched.c (purge_empty_blocks): ... here.
37741         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
37742         (maybe_tidy_empty_bb): Delete prototype.
37743         (purge_empty_blocks): Declare.
37744
37745 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37746
37747         PR rtl-optimization/42249
37748         * sel-sched.c (try_replace_dest_reg): When chosen register
37749         and original register is the same, do not bail out early, but
37750         still check all original insns for validity of replacing destination
37751         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
37752         in this case.
37753
37754 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37755
37756         PR c/42721
37757         Port from no-undefined-overflow branch:
37758         2009-03-09  Richard Guenther  <rguenther@suse.de>
37759
37760         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
37761
37762 2010-01-14  Richard Guenther  <rguenther@suse.de>
37763
37764         PR lto/42665
37765         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
37766
37767 2010-01-14  Ira Rosen  <irar@il.ibm.com>
37768
37769         PR tree-optimization/42709
37770         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
37771         as scalar type in creation of constant vector operand.
37772
37773 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37774
37775         PR testsuite/42414
37776         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
37777         (check-parallel-%): Match `testsuite' directory component only
37778         at the end.
37779
37780 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
37781
37782         PR translation/39521
37783         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
37784         strings with _().
37785
37786 2010-01-13  Richard Guenther  <rguenther@suse.de>
37787
37788         PR tree-optimization/42730
37789         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
37790         offset zero.
37791
37792 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
37793
37794         PR target/pr42542
37795         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
37796         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
37797         them signed.
37798
37799 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
37800
37801         * config/bfin/libgcc-bfin.ver: Regenerate based on current
37802         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
37803         ___umulsi3_highpart.
37804
37805         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
37806         rather than schedule_insns if the pass is enabled.
37807
37808 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37809
37810         PR tree-optimization/42704
37811         * tree-sra.c (sra_modify_assign): Do not delete assignments to
37812         SSA_NAMEs.
37813
37814 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37815
37816         PR tree-optimization/42703
37817         * tree-sra.c (analyze_access_subtree): Check that we can build a
37818         reference to the original data within the aggregate.
37819
37820 2010-01-13  Richard Guenther  <rguenther@suse.de>
37821
37822         PR tree-optimization/42705
37823         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
37824
37825 2010-01-13  Richard Guenther  <rguenther@suse.de>
37826
37827         PR middle-end/42716
37828         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
37829
37830 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
37831
37832         PR debug/41371
37833         * var-tracking.c (values_to_unmark): New variable.
37834         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
37835         values_to_unmark vector.  Moved body to...
37836         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
37837         instead queue it into values_to_unmark vector.
37838         (vt_find_locations): Free values_to_unmark vector.
37839
37840 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
37841
37842         * config/s390/s390.c (override_options): Set
37843         default of max-pending-list-length to 256
37844
37845 2010-01-13  Richard Guenther  <rguenther@suse.de>
37846
37847         PR lto/42678
37848         * tree-pass.h (PROP_gimple_lcx): New.
37849         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
37850         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
37851         before the final cleanup_eh.
37852         (dump_properties): Dump PROP_gimple_lcx.
37853         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
37854         (tree_lower_complex_O0): Remove.
37855         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
37856         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
37857         tree_lower_complex, schedule TODO_update_ssa.
37858         * lto-streamer-out.c (output_function): Stream the functions
37859         properties.
37860         * lto-streamer-in.c (input_function): Likewise.
37861         (lto_read_body): Do not override them here.
37862
37863 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
37864
37865         PR c/42708
37866         * c-typeck.c (build_c_cast): Fold value cast to union type before
37867         wrapping it in a CONSTRUCTOR.
37868
37869 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37870
37871         PR rtl-optimization/42699
37872         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
37873         involved.
37874
37875 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37876
37877         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37878         SUBTARGET_WARN_UNUSED_SPEC): Move ...
37879         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37880         SUBTARGET_WARN_UNUSED_SPEC): ... here
37881         * config/mips/iris5.h (LIBGCC_SPEC): Define.
37882
37883 2010-01-12  Julian Brown  <julian@codesourcery.com>
37884
37885         * config/arm/neon-schedgen.ml (Utils): Don't try to
37886         open missing module.
37887         (find_with_result): New.
37888
37889 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37890
37891         PR debug/42662
37892         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
37893         sharing when canonicalizing ({lt,ge}u (plus a b) b).
37894
37895         PR tree-optimization/42645
37896         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
37897         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
37898         decl_map, set processing_debug_stmt to -1 and return name without
37899         any remapping.
37900
37901 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
37902
37903         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
37904         binutils version, and reword target configuration description.
37905
37906 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
37907
37908         * config/avr/avr.h (LINKER_NAME): Remove.
37909
37910 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
37911
37912         PR target/42416
37913         * config/rs6000/rs6000.c (rs6000_override_options): On targets
37914         that support VSX, warn for -mno-altivec if vsx is not disabled,
37915         and disable vsx.
37916
37917 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
37918             Shujing Zhao  <pearly.zhao@oracle.com>
37919
37920         PR translation/42469
37921         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
37922         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
37923         character between option name and help text.
37924         * c.opt (imultilib): Likewise.
37925
37926 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
37927
37928         * lto-streamer-out.c (output_unreferenced_globals): Output static
37929         variables.
37930
37931 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
37932
37933         PR rtl-optimization/42621
37934         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
37935         optimizing for size.
37936         (duplicate_computed_gotos): Remove now-redundant check.
37937
37938 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
37939
37940         PR target/37454
37941         * configure.ac: Save and restore LDFLAGS and LIBS
37942         * configure: Regenerate.
37943
37944 2010-01-10  Richard Guenther  <rguenther@suse.de>
37945
37946         PR middle-end/42667
37947         * builtins.c (fold_builtin_strlen): Add type argument and
37948         convert the resulting length to it.
37949         (fold_builtin_1): Adjust.
37950
37951 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
37952
37953         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
37954         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
37955         1 insn.
37956         (num_insns_constant_wide): Adjust for that change.
37957
37958 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37959
37960         PR debug/42631
37961         * web.c (union_defs): Add used argument, to combine uses of
37962         uninitialized regs.
37963         (entry_register): Adjust type and tests of used argument.
37964         (web_main): Widen used for new use.  Pass it to union_defs.
37965         * df.h (union_defs): Adjust prototype.
37966
37967 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37968
37969         PR debug/42630
37970         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
37971         uses in new incoming argument.  Free body.
37972         (reset_debug_uses_in_loop): New.
37973         (analyze_insn_to_expand_var): Call the latter if the former found
37974         anything.  Fix whitespace.  Reject invalid dest overlaps before
37975         going through all insns in the loop.
37976
37977 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37978
37979         PR debug/42629
37980         * haifa-sched.c (dying_use_p): Debug insns don't count.
37981
37982 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37983
37984         PR middle-end/42363
37985         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
37986         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
37987         (verify_gimple_call): Reject LHS in noreturn calls.
37988
37989 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37990
37991         PR debug/42604
37992         PR debug/42395
37993         * tree-vect-loop-manip.c (adjust_info): New type.
37994         (adjust_vec): New pointer to vector.
37995         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
37996         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
37997         (slpeel_update_phis_for_duplicate_loop): Use them.
37998         (slpeel_update_phi_nodes_for_guard1): Likewise.
37999         (slpeel_update_phi_nodes_for_guard2): Likewise.
38000         (slpeel_tree_peel_loop_to_edge): Likewise.
38001         (vect_update_ivs_after_vectorizer): Likewise.
38002
38003 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38004
38005         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
38006         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
38007
38008 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38009
38010         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
38011         bogus uninitialized warning.
38012
38013 2010-01-09  Richard Guenther  <rguenther@suse.de>
38014
38015         PR middle-end/42512
38016         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
38017         the evolution is compatible with the initial condition.
38018
38019 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
38020
38021         * gcc.c (process_command): Update copyright notice dates.
38022         * gcov.c (print_version): Likewise.
38023         * gcov-dump.c (print_version): Likewise.
38024         * mips-tfile.c (main): Likewise.
38025         * mips-tdump.c (main): Likewise.
38026
38027 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
38028
38029         PR target/41885
38030         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
38031         (rotlhi3): Delete.
38032         (rotlhi3_8): Delete.
38033         (rotlsi3): Delete.
38034         (rotlsi3_8): Delete.
38035         (rotlsi3_16): Delete.
38036         (rotlsi3_24): Delete.
38037         (rotl<mode>3): New.
38038         (*rotw<mode>3): New.
38039         (*rotb<mode>3): New.
38040         * config/avr/avr.c (avr_rotate_bytes): New function.
38041         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
38042
38043 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
38044
38045         PR target/37454
38046         * configure.ac: Modify -rdynamic check.
38047         * configure: Regenerate.
38048
38049 2010-01-08  DJ Delorie  <dj@redhat.com>
38050
38051         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
38052         register popping order.
38053
38054 2010-01-08  Richard Guenther  <rguenther@suse.de>
38055
38056         PR lto/42528
38057         * c.opt (fsigned-char): Also let LTO handle this option.
38058         (funsigned-char): Likewise.
38059
38060 2010-01-07  Richard Guenther  <rguenther@suse.de>
38061
38062         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
38063         (gimple_op): Likewise.
38064         (gimple_op_ptr): Likewise.
38065         (gimple_assign_set_lhs): Remove gcc_assert.
38066         (gimple_assign_set_rhs1): Likewise.
38067         (gimple_assign_set_rhs2): Likewise.
38068         (gimple_call_set_lhs): Likewise.
38069         (gimple_call_set_fn): Likewise.
38070         (gimple_call_set_fndecl): Likewise.
38071         (gimple_call_fndecl): Likewise.
38072         (gimple_call_return_type): Likewise.
38073         (gimple_call_set_chain): Likewise.
38074         (gimple_call_num_args): Likewise.
38075         (gimple_call_set_arg): Likewise.
38076         (gimple_cond_set_code): Likewise.
38077         (gimple_cond_set_lhs): Likewise.
38078         (gimple_cond_set_rhs): Likewise.
38079         (gimple_cond_set_true_label): Likewise.
38080         (gimple_cond_set_false_label): Likewise.
38081         (gimple_label_set_label): Likewise.
38082         (gimple_goto_set_dest): Likewise.
38083         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
38084         (gimple_debug_bind_get_value): Likewise.
38085         (gimple_debug_bind_get_value_ptr): Likewise.
38086         (gimple_debug_bind_set_var): Likewise.
38087         (gimple_debug_bind_set_value): Likewise.
38088         (gimple_debug_bind_reset_value): Likewise.
38089         (gimple_debug_bind_has_value_p): Likewise.
38090         (gimple_return_retval_ptr): Remove gcc_assert.
38091         (gimple_return_retval): Likewise.
38092         (gimple_return_set_retval): Likewise.
38093         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
38094         (safe_referenced_var_iterator): Remove.
38095         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
38096         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
38097         (fill_referenced_var_vec): Remove.
38098         (first_readonly_imm_use): Remove redundant gcc_assert.
38099         (phi_arg_index_from_use): Combine gcc_asserts.
38100         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
38101         (first_imm_use_stmt): Remove redundant gcc_assert.
38102         * tree-cfg.c (verify_gimple_call): Verify function and chain
38103         operands.  Verify arguments.
38104         (verify_types_in_gimple_stmt): Verify condition code and labels.
38105
38106 2010-01-07  Richard Guenther  <rguenther@suse.de>
38107
38108         PR tree-optimization/42641
38109         * sese.c (rename_map_elt_info): Use the SSA name version, do
38110         not hash pointers.
38111
38112 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
38113
38114         PR tree-optimization/42625
38115         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
38116         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
38117
38118 2010-01-07  Duncan Sands  <baldrick@free.fr>
38119
38120         * Makefile.in (PLUGIN_HEADERS): Add version.h.
38121
38122 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
38123
38124         PR target/42511
38125         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
38126         note itself is not function_invariant_p.
38127
38128 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
38129
38130         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
38131         Do not add the DF_NOTE problem.
38132         * store-motion.c (execute_rtl_store_motion): Likewise.
38133
38134 2010-01-07  Martin Jambor  <mjambor@suse.cz>
38135
38136         PR tree-optimization/42157
38137         * tree-sra.c (compare_access_positions): Stabilize sort if both
38138         accesses have integer types, return zero immediately if they are the
38139         same.
38140
38141 2010-01-06  Richard Henderson  <rth@redhat.com>
38142
38143         PR middle-end/41883
38144         * haifa-sched.c (add_to_note_list): Merge into ...
38145         (concat_note_lists): ... here, and ...
38146         (unlink_other_notes, rm_other_notes): Merge into...
38147         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
38148         NOTE_INSN_EPILOGUE_BEG.
38149
38150 2010-01-06  Richard Guenther  <rguenther@suse.de>
38151
38152         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
38153         not inline regular functions into always-inline functions.
38154
38155 2010-01-06  Nick Clifton  <nickc@redhat.com>
38156
38157         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
38158         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
38159         used together.
38160         (OVERRIDE_OPTIONS): Delete.
38161         (OPTIMIZATION_OPTIONS): Define.
38162         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
38163         * config/rx/rx.c (rx_handle_option): Issue an error message if
38164         -mcpu=rx200 and -fpu are used together.
38165         (rx_set_optimization_options): New function.  Issue an error
38166         message if an optimization attribute attempts to reset the FPU/
38167         math optimization pairing.
38168         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
38169         * config/rx/rx.opt: Set the default to 32-bit doubles.
38170         * config/rx/t-rx: Add multilibs for -nofpu option.
38171         * doc/invoke.texi: Update documentation of RX options.
38172
38173 2010-01-06  Richard Guenther  <rguenther@suse.de>
38174
38175         * tree-ssa-pre.c (name_to_id): New global.
38176         (alloc_expression_id): Simplify SSA name handling.
38177         (lookup_expression_id): Likewise.
38178         (init_pre): Zero name_to_id.
38179         (fini_pre): Free it.
38180
38181 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
38182
38183         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
38184
38185 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
38186
38187         PR target/42542
38188         * config/i386/sse.md (smaxv2di3): New.
38189         (umaxv2di3): Likewise.
38190         (sminv2di3): Likewise.
38191         (uminv2di3): Likewise.
38192
38193 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
38194
38195         PR target/42564
38196         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
38197         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
38198         (legitimize_tls_address): Likewise.
38199         (sparc_tls_referenced_p): Likewise.
38200         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
38201         and adjust calls to legitimize_pic_address.
38202         (legitimate_constant_p) Use sparc_tls_referenced_p.
38203         (legitimate_pic_operand_p): Likewise.
38204         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
38205         (sparc_tls_symbol_ref_1): Delete.
38206         (sparc_tls_referenced_p): Make static, recognize specific patterns.
38207         (legitimize_tls_address): Make static, handle CONST patterns.
38208         (legitimize_pic_address): Make static, remove unused parameter and
38209         adjust recursive calls.
38210         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
38211         and adjust call to legitimize_pic_address.
38212         (sparc_output_mi_thunk): Likewise.
38213
38214 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
38215             H.J. Lu  <hongjiu.lu@intel.com>
38216
38217         PR target/42542
38218         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
38219         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
38220         operands to make them signed.
38221
38222         Revert:
38223         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38224
38225         PR target/42542
38226         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38227         GTU to GT for V4SI and V2DI.
38228
38229         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38230         (umin<mode>3): Removed.
38231         (uminv8hi3): New.
38232         (uminv4si3): Likewise.
38233
38234 2010-01-05  Martin Jambor  <mjambor@suse.cz>
38235
38236         PR tree-optimization/42462
38237         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
38238         current_function_decl to helper functions and macros.
38239
38240 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38241
38242         PR bootstrap/41771
38243         * flags.h: Don't include real.h.
38244         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
38245         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
38246         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
38247         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
38248         * dominance.c: Update copyright.
38249         * gimple.c (walk_gimple_op): Remove inline.
38250         * tree-ssa-reassoc.c: Include real.h.
38251         * Makefile.in (FLAGS_H): Remove $(REAL_H).
38252         (tree-ssa-reassoc.o): Depend on $(REAL_H).
38253
38254 2010-01-05  Nick Clifton  <nickc@redhat.com>
38255
38256         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
38257         register to push into the stack frame when the accumulator has to
38258         be saved during interrupts.
38259
38260 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
38261
38262         * doc/invoke.texi: Remove the documentation about option
38263         -Wunreachable-code.
38264         * common.opt (Wunreachable-code):  Preserved for backward
38265         compatibility.
38266         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
38267         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
38268         the backward compatibility flag section.
38269
38270 2010-01-05  Richard Guenther  <rguenther@suse.de>
38271
38272         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
38273
38274 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
38275
38276         PR other/42611
38277         * cfgexpand.c (expand_one_var): Diagnose too large variables.
38278
38279         PR tree-optimization/42508
38280         * tree-sra.c (convert_callers): Check for recursive call
38281         by comparing cgraph nodes instead of decls.
38282         (modify_function): Call ipa_modify_formal_parameters also
38283         on all same_body aliases.
38284
38285         * cgraphunit.c (cgraph_materialize_all_clones): Compare
38286         cgraph nodes when checking for same_body aliases.
38287
38288 2010-01-05  Richard Guenther  <rguenther@suse.de>
38289
38290         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
38291         allocation and lookup.
38292         (get_or_alloc_expr_for_constant): Likewise.
38293         (phi_translate): Sink allocation.
38294
38295 2010-01-04  Richard Guenther  <rguenther@suse.de>
38296
38297         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
38298         a new entry only if needed.
38299         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
38300         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
38301         hashtable lookup.
38302         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
38303         the result array.
38304         (phi_translate): Handle CONSTANTs early.
38305
38306 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38307
38308         PR tree-optimization/42398
38309         * tree-sra.c (struct access): Removed flag grp_different_types.
38310         (dump_access): Do not dump the removed flag.
38311         (sort_and_splice_var_accesses): Do not set the removed flag.
38312         (sra_modify_expr): Check for type compatibility directly.
38313
38314 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38315
38316         PR tree-optimization/42366
38317         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
38318         edges with variable number of parameters.
38319         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
38320         flag instead of asserting it.
38321         (ipa_read_node_info): Read uses_analysis_done flag.
38322
38323 2010-01-04  Richard Guenther  <rguenther@suse.de>
38324
38325         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
38326         iterative_hash_* as intended.
38327         (vn_reference_compute_hash): Likewise.  Simplify hashing
38328         SSA names.
38329         (vn_reference_lookup_2): Likewise.
38330         (vn_nary_op_compute_hash): Likewise.
38331         (vn_phi_compute_hash): Likewise.
38332         (expressions_equal_p): Remove strange code.
38333         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
38334         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
38335         (bitmap_insert_into_set_1): Take value-id as parameter.
38336         (add_to_value): Pass it.
38337         (bitmap_insert_into_set): Likewise.
38338         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
38339
38340 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
38341
38342         PR driver/42442
38343         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
38344         (do_self_spec): For switches with SWITCH_IGNORE set set also
38345         SWITCH_IGNORE_PERMANENTLY.
38346         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
38347         of SWITCH_IGNORE.
38348
38349 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
38350
38351         * lto-streamer-out.c (output_unreferenced_globals): Output the full
38352         tree of an unreferenced global var.
38353
38354 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38355
38356         PR target/42542
38357         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38358         GTU to GT for V4SI and V2DI.
38359
38360         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38361         (umin<mode>3): Removed.
38362         (uminv8hi3): New.
38363         (uminv4si3): Likewise.
38364
38365 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38366
38367         PR lto/42581
38368         * collect2.c (main): Turn on trace in collect2 if -v is passed
38369         to gcc with LTO.
38370
38371 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
38372
38373         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
38374         description of expression operand.
38375
38376 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
38377
38378         * configure.ac: Add install-html to target_list for Make-hooks.
38379         * configure: Regenerate.
38380         * fortran/Make-lang.in (F95_HTMLFILES): New.
38381         (fortran.html): Use it.
38382         (fortran.install-html): New.
38383         * Makefile.in (install-html): Add lang.install-html.
38384         * java/Make-lang.in (JAVA_HTMLFILES): New.
38385         (java.html): Use it.
38386         (java.install-html): New.
38387         * objc/Make-lang.in (objc.install-html): New.
38388         * objcp/Make-lang.in (obj-c++.install-html): New.
38389         * cp/Make-lang.in (c++.install-html): New.
38390         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
38391         * lto/Make-lang.in (lto.install-html): New.
38392
38393 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38394
38395         PR lto/42520
38396         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
38397
38398 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38399
38400         PR rtl-optimization/41862
38401         * store-motion.c (store_killed_in_insn, compute_store_table,
38402         remove_reachable_equiv_notes, replace_store_insn,
38403         build_store_vectors): Ignore all DEBUG_INSNs.
38404
38405 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38406
38407         PR lto/41564
38408         * common.opt: Add dumpdir.
38409
38410         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
38411         isn't specified.
38412         (option_map): Add --dumpdir.
38413
38414         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
38415
38416         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
38417
38418         * opts.c (decode_options): Try dump_dir_name first if
38419         dump_base_name isn't an absolute path.
38420         (common_handle_option): Handle OPT_dumpdir.
38421
38422         * toplev.c (dump_dir_name): New.
38423         (print_switch_values): Also ignore -dumpdir.
38424
38425         * toplev.h (dump_dir_name): New.
38426
38427 2010-01-03  Richard Guenther  <rguenther@suse.de>
38428
38429         PR tree-optimization/42589
38430         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
38431         double-word expansion of bswap32.
38432
38433 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38434
38435         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
38436         with BLOCK_FOR_INSN.
38437         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
38438         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
38439         noce_process_if_block): Likewise.
38440         * gcse.c (compute_local_properties, insert_expr_in_table,
38441         insert_set_in_table, canon_list_insert, find_avail_set,
38442         pre_insert_copy_insn): Likewise.
38443
38444         * basic-block.h (BLOCK_NUM): Move from here...
38445         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
38446
38447 2010-01-03  Richard Guenther  <rguenther@suse.de>
38448
38449         PR tree-optimization/42438
38450         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
38451         contains_may_not_return_call flag.
38452         (BB_MAY_NOTRETURN): New.
38453         (valid_in_sets): Trapping nary operations are not valid
38454         in blocks that may not return.
38455         (insert_into_preds_of_block): Remove check for trapping expressions.
38456         (compute_avail): Compute also BB_MAY_NOTRETURN.
38457
38458 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
38459
38460         * doc/invoke.texi: Add 2010 to copyright years.
38461
38462 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
38463
38464         * config/sparc/sparc.c: Fix formatting nits.
38465
38466 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
38467             Alexander Monakov  <amonakov@ispras.ru>
38468
38469         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
38470
38471 2010-01-02  Richard Guenther  <rguenther@suse.de>
38472
38473         PR middle-end/42577
38474         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
38475         (simplify_switch_using_ranges): Mark to be removed edges
38476         as non-executable.
38477
38478 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38479
38480         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
38481
38482         * collect2.c (scan_libraries): Add missing argument in call to
38483         scan_prog_file.
38484
38485 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
38486
38487         PR target/42448
38488         * config/alpha/predicates.md (aligned_memory_operand): Return false
38489         for CQImode.
38490         (unaligned_memory_operand): Return true for CQImode.
38491         * config/alpha/alpha.c (get_aligned_mem): Assert that location
38492         doesn not cross aligned SImode word boundary.
38493
38494 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
38495
38496         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
38497         Remove.
38498         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
38499         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
38500
38501 2010-01-02  Richard Guenther  <rguenther@suse.de>
38502
38503         PR lto/41597
38504         * toplev.c (compile_file): Emit LTO marker properly.  Change
38505         it to __gnu_lto_v1.
38506         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
38507
38508 2010-01-01  Richard Guenther  <rguenther@suse.de>
38509
38510         PR debug/42455
38511         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
38512
38513 2010-01-01  Richard Guenther  <rguenther@suse.de>
38514
38515         PR c/42570
38516         * c-decl.c (grokdeclarator): For zero-size arrays force
38517         structural equality checks as layout_type does.
38518
38519 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38520
38521         * builtins.c: Update copyright to 2010.
38522
38523 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38524
38525         PR lto/42531
38526         * lto-streamer-out.c (produce_asm): Revert the last change.
38527         (copy_function): Likewise.
38528
38529         * lto-streamer.c (lto_get_section_name): Skip any leading
38530         asterisk in name.
38531
38532 2010-01-01  Richard Guenther  <rguenther@suse.de>
38533
38534         PR middle-end/42559
38535         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
38536         for LABEL_DECLs.
38537
38538 \f
38539 Copyright (C) 2010 Free Software Foundation, Inc.
38540
38541 Copying and distribution of this file, with or without modification,
38542 are permitted in any medium without royalty provided the copyright
38543 notice and this notice are preserved.